エイプリルフールネタなんてありませんよ。
ちょっと思いついたネタはあったのだが、準備が大変なのに思い付いたのが3月中盤も過ぎていたので断念。
来年にご期待ください←ウソ。期待しないで。
日記を書き溜めたら上げるタイミングを逃してやけにたまってしまった。
いまのところ自作ゲームの見た目が大変しょぼいのですけど。
先日上げたスクリーンショットはしょぼさのあまり小さくしてあります。
キャラの小ささとブロックのテクスチャでごまかしてるけど、ライティングすらしてないからな。
ついでにいうとキャラモデルがしょぼくてアップに耐えません>< 直してはいるものの、お絵書きスキルを上げないことには…。
そのへんの素材作りが下手だという問題は、プログラムでカバーしたいところ。
最初の予定では普通に被写界深度エミュレートとか、ノーマルマップとか、IBLとかできる限り入れるつもりだったんだが、そんなことやっても意味ないんだよな。
だって被写界深度も何も、奥行きちょっぴりしかないし。ノーマルマップがわかる程大きく見えない上に、カメラの向きも一定。IBLも何も、そもそも普通のライティングだって効果が怪しいぜ?
そうなると何やっても無駄っぽいが、よく考えたら変化できる場所が少なくて効果が小さいなら、変化量を大きくしてあげればいいじゃない!
そんなわけでしょぼい素材をごまかすNPRを検討中。
もちろんやるからにはお手軽トゥーンで済ますつもりは無いよ。でも他に効果がでかい方法があればお手軽でもそれにするかも知れんがな!
全画面にかけられれば背景も変わっていいよなぁ。
そういやタイミングを見てリリースしたいとか言ってたの忘れてた。
正直リリースしたところでまともに使えるものになってるとはいえない。 つか誰でも使えるものとして作ってない。
2Dだけならなんとか使えるかも…だが、それなら他に沢山あるし、そっちを使った方がいいだろう。
やっぱりある程度ゲーム作ってからちゃんと整理してリリース、だろうなぁ。しかし3D用として頃合いを見てリリースもしたいんだよなぁ。
やはりリリースするなら整理期間が必要だな。
MacのrubyだとDTraceが使えると聞いたので。
しかしdtraceはD言語と呼ぶスクリプトで対象プロセスの外からいろいろできるだけで、別にプロファイラというわけでは無い。 プロファイルとるのに便利な関数はいっぱい用意されてるけどね。
D言語と呼ばれるそれは、一般的にいうD言語とは全く関係なさげな不思議言語だ。
それを駆使してプロファイラ作るのってめんどいね…。 適当に書いたらcopyinstr使いまくったからかめっちゃ重かったよ。
ゲームの動作が重いのでプロファイルをとってみた。
DTraceとかruby-profとか使ってみたけどどうも描画が重いらしい。
いろんな方法でプロファイルとったのは、描画が重いという事実から目を逸すためなんですが。しかし、どれでやってもゲーム処理と描画でかかってる時間が一桁違うとさすがにごまかせない。
それもCの関数呼んでるところで重いならはいはいGPU待ちとか、これ以上はかなり頑張らないと無理とか言えるんだが、そんな重い描画してるわけもなくCの関数は一瞬で返ってくるわけだ。
つまりRubyレベルでのセットアップがめっちゃ重い。
実際そんなに重そうな処理をしてるわけじゃないんだが、さすがに回数が多いと厳しい。柔軟性はあんまりいらんけど速度が必要なループって全くRubyに向いてないもんね…。
最低限Cで書いてあとはRubyで書こうとしてきたけど、もうちょっとC側に振らないとダメらしい。描画なんて単純ループなんでそりゃRubyを使う必要は無いんだけど、Cで書くのがめんどいんだよな。
意外とゲームの処理側は軽そうなんでまだ大丈夫かな。 ベクトル演算とかやりまくってて、無駄にオブジェクト作っては捨ててたので不安だったんだが思った程ではなさそうで安心。 そのうちGC対策は必要になるかもしれんけどな。
モデルを直してて、テクスチャを描き直そうとしたんだけど。
Macでいいテクスチャ編集用のソフトが無い。
PhotoshopElementsは2.0しか持って無いがPPCのアプリだし、そうでなくともめちゃくちゃ重い。あとアップデート周りで変な動作をする。 もうすぐUniversalになった6.0が出るみたいだけど、写真編集に特化されてるっぽいのであんまり期待できない。
FireworksはCS3で多少まともな速度になったが、お絵書きはできるようなものじゃ無い。ちょっとペイントできるドローソフトとして使う分にはいいんだけど。
PainterEssentialsは3が起動しなくなっちゃった。 4を買ってもいいが、体験版いじったところフルスクリーンのみのアプリになっちゃってた。それは許容できるとしてもtgaもpngも直接読み書きできないのはちょっと、いや、とても不便だ。
Pixelmaterというのもあってよさげだが、体験版をいじったらお絵書きツール周りが貧弱で使えなかった。というかやけに派手なUIのわりにはかゆいところに手が届いておらず見かけ倒しかよ。
GimpベースのSeashoreはまだ機能が不十分。今後も期待できるか怪しいな。
Gimpはタブレットの消しゴムを認識してくれなかった。なんでじゃろ。
ArtRageが2になってレイヤーなんかも使えるようになってた。お絵書き用なのでPainterEssentialsと似ているがpngの読み書きができる感じ。
安いので2980円のダウンロード版を買おうとしたが名前とか住所を入力するのが面倒で1000円高いパッケージ版を買うことにした。だって俺の嫌いなベクターを使ってるっていうんだもの。
しかし、テクスチャの編集できるアプリってほとんど無いよな。特にMac用。
みんなPhotoshop買ってるんだろうか。高いのに。
あんまり凝ってなくてもいいからお絵書きができて、RGBAのチャンネル毎の編集ができて、pngとかtgaとかddsとかexrの読み書きができて、浮動小数点テクスチャの編集ができて、欲をいえば3Dとかキューブマップテクスチャの編集ができるアプリがあれば、2万くらいでなら余裕で買うんだけどなぁ。
つかそこまでは贅沢いわなくてもRGBAのチャンネル毎の編集とtga、png読み書きができる安価なアプリが全く無いのはなんで?需要が無いって?ここにあるよ!
話はちょっと変わるけど、テクスチャつながりでプロシージャルにテクスチャが作れるMaPZoneが非常に良い。これが無料だなんて信じられん。自分でパターンを作るのが難しくていまだにノードつなぐくらいしかできんけど。
Mac版は無いがこれのためにWindows使うのは苦にならないから困らない。
あれ、Chocoflopがテクスチャ編集に大分いい感じだな。exrの読み書きはできるし浮動小数点テクスチャ使えるや。
ArtRage2買っちゃったけど、こっちは純粋なお絵描き用でいいか。
よろしい、ではNPRだ。
RenderMonkeyのNPRサンプルを参考にQuartzComposerで書いてみたスケッチ風シェーディング。
陰が濃いところを濃いテクスチャをサンプルしてるだけ。 テクスチャ自体はRenderMonkeyの奴のパクり。コードは自分で書いたけどほぼパクり。
最初見たときはいい感じに見えたんだが、見れば見る程テクスチャ貼っただけに見えるわ。実際そうなんだけど。
スケッチ風ならこれでもいいんかな。
スクリーントーン風にしようと思ったんだが、テクスチャがうまく作れなかった。うまくは作れなかったんだがとりあえずで作ってみたのを適用したら変な感じに。
丸が伸びるからおかしいんですねそうですね。丸がたくさん並んで気持ち悪いし。
そんなわけでスクリーンスペースでやってみた。
おお、2Dっぽい。輪郭線が欲しくなるねこれ。
ポストエフェクトにしちゃったので、後ろに書いた2D絵も対象に。
普通の色付き画像と混ぜてみた。うーん、普通にシェーディングもされてるから変かも。
あとおまけでGPU Gems2にのってた風のラフスケッチ風輪郭線。輪郭検出が適当すぎるのが問題だが。
あれ、これ色のほうもゆがませてるんだっけ?
でもNPR面白いな。簡単なわりにイメージ変わるし。もっといろいろ遊んでみよう。