pmdとvmdがちゃんと動くようにしてみよう

MMD本体付属の初音ミクVer2.pmdを読み込んでみた図

とりあえず、SAnimatedMeshにSMeshをのせて中身をSMeshBufferとSSharedMeshBufferで充填するところまでやってみた。
SSharedMeshBufferは2chのIrrlichtスレにあるとおり既に放置されているらしく仮想関数が足りないという微妙ぶりだったが。
このあとIAnimatedMeshを継承した独自のスキニングクラス(IKとモーフィングとbulletが解決できる)を作成予定。


最近軸がぶれてきて迷走しているので中期の優先目標を決めた。
Irrlicht1.7.1でpmdのモデルを読み込んでvmdのモーションがきっちり動くようにする(Bullet込みで)。


これまでIrrlichtを触った感じだと現状ではボーンアニメーションまわりが使いにくい。で、CSkinnedMeshを改造しようとしたのだがいまいち気分が乗らなかった。いずれにせよ、モデルデータとモーションのローダとセットでやらないといかんのでPMDのローダを作るのにあわせて独自のスキニングクラスを作ることにした。さいわいIAnimatedMesh::OnAnimateさえ実装すればたぶんOKなので既存のCSkinndedMeshやXのローダーに拘らずに作る方向です。
間違いw


あと最近、ゲーム向けのモデルフォーマットもpmdでいいんでないかという気持ちになってきた。ローダさえ使いまわせば頂点配列を作るのがすごく楽だという。そうなるとBlenderでpmdのエクスポータを作る必要があるが途中までは作ってある。
で、Irrlichtでモーションが再生できるようになったらBlender方式のGLSL動画吐き出しをいただいてきて出力できるようにしたいと思っている。この段階まで来たらたぶんシェーダーをちゃんと学ぶ機が熟する。めんどくさがりなのでシェーダー単体ではいまいちやる気がおきないんよね。なんかと絡めないと。