最近なかなか日記がかけないなぁ。何もやってないからではあるんだけど。
あと書くまではいいんだが上げるのが億劫だったり。電車の中だとWillcomは切れまくるんだよねぇ。はやくXGPとか使えるようにならないかなぁ。
そういえばBlenderのCOLLADAエクスポーターのパッチを2.49aに対応させたんだけど、日記には書いてなかったので一応。
アニメーションつきのメッシュを書き出すときに、モディファイアの適用を有効にすると通常のアニメーション適用と別にArmatureモディファイアも適用されちゃうので壊れます。
もともとおかしいと思うんだが、ArmatureモディファイアじゃなくてArmatureの子としてメッシュをくっつける昔ながらの方法だとうまくいくのかな。いまどきそんな作り方しなくね?
直そうと思ったけど、けっこう面倒そうなので今回はパスです。
あ、そうそう。シェーダ書き出しの方もちょっと調べたんだった。
COLLADA書き出しするときに現状ではphongシェーディングぐらいしか書き出せないけど、BlenderでGLSLプレビューが出来るならこのシェーダをそのまま書き出せんじゃねと調べてみたんだった。
結論としては、そう簡単にはできない。現状PythonからGLSLのソース取得なんて全然出来ないし、それどころかノードを触るのすら無理だった。
というわけで現状ではCソースの方にまで手を入れないと無理。
しかしCからなら簡単にシェーダを取り出せるのかというとたぶんそうでもない。ノードとかマテリアル自体は、まあGLSLとか関係ないデータだ。普通のレンダラーで使うものだしね。
でもGLSLはプレビューアというかUI描画部分が勝手に生成するもので、データというと微妙。MVCでいうとモデルでなくビューの内部データみたいな物だよね。
で、COLLADA書き出すときにそれをなんとかぶっこぬいてくるってのは相当微妙だよなぁと。
Cからなら少なくともノードの情報は取れるのでそこから自前でシェーダ構築するのも悪くはない。
でもCで書いたらエクスポータどうすんだよ。全部Cで書く羽目になるぞ。しかもパッチ当てて再ビルド必要だよ><*1
2.5まで待つのが無難だろうなぁ。RubyでCOLLADA FXのGLSL読み込みはまだ出来てないし、書き出しは別なソフトでもできるから読み込む方が先決か。
しかしべつなアプリでも出来るといっても、いつのまにかFX Composerに付いてきてたmental millがこれまたいつのまにか付いてこなくなっちゃったから、FX ComposerとかRender Monkeyで手書きするしかないのがめんどい。それっぽいアプリを買うという手もあるが。
Rubyでシェーダジェネレータでも作ったほうがいいかもねー。まあそれにしても読み込みが先だわね。
*1 と思ったけどC++製のCOLLADAインポータってどうなってるんだろ?プラグインみたいな仕組みがある?調べてみるか
そんなわけでどんなわけでIronRuby始めました。
べつにIronRubyでRails動かすなんて不毛なことはしないよ。Silverlightだよ。
IronRubyの0.6.0を拾ってくると中にsilverlight開発用のアプリも入ってるので楽ちん。MacだとSilverlightプラグインの他にmonoも入れとく必要あるけどね。
テンプレートからrubyのsilverlightアプリ(?)を作ってやるとすぐ動かせる状態に。
script/sl ruby appname
を実行するとappnameディレクトリにHelloWorldみたいなテンプレートが出来るのであとはappname/app内のXAMLとかrbをいじればおっけー。
script/chr /b:appname/index.html
で、出来たページをブラウザに表示してくれる。いじったときもブラウザからリロードすれば更新される。
script/chr /z:app.xap
をappname/app内で実行するとapp.xapというパッケージが出来るので、これをindex.htmlと同じ場所に配置すれば配置完了*1。パッケージの作り方はもうちょいうまい方法があるかもしれないけど分からん。
しかしMacで開発してるからなのかデバッグしづらい。エラーがあればブラウザ上に表示されるはずなんだが、さっぱり出てこねぇ。Caminoじゃ駄目かと思うたらSafariでも駄目だなぁ。
例外情報は一旦JavaScriptに渡ってきてるので、alertでなんとか拾っても行番号すら入ってない。これはなんとかしないとしんどいなぁ。
とりあえずInkPresenterというお絵書き用クラスがあったので、サンプルを移植してみた。が、さすがにMacでは筆圧までは対応してないようだ。残念。
まあとにかくIronRubyでの弄り方はなんとなく把握できたから、ぼちぼちなんか作っていこう。いくつか作りたい物があるんだよね。
*1 cssとjsフォルダもいっしょに配置ね。appフォルダ自体はいらない。