pmdエクスポートその6

とりあえず完成。
本家の基本モデルをimportしてからexportしたらほぼ、だいたい同じ状態にできるようになった(200kくらい増えるので怪しいが)。実用的にするにはもう一息必要な気もするがとりあえず更新。
http://sourceforge.jp/projects/meshio/wiki/FrontPage

入出力でなるべく同じ状態を維持するために入力にもけっこう手を入れるはめになってしまった。
まずボーンに関してだが、PMDではボーンひとつひとつが1個の座標を保持するスタイルであるのに対してBlenderはひとつひとつが頭の座標と尻尾の座標の2つを保持するスタイルなのでこのギャップを埋める方法が必要だった。最初の実装では、入力するときにボーンツリーの末端の尻尾ボーン(pmdボーンのtype6, 7)が来たときにBlenderのボーンの親のtailに当てはめて消滅させるようにしていたが、再度エクスポートするときに復活させるのが煩雑になる弱点があった。そのため消滅させずに6,7型ボーンを作って見えないようにArmature Layerの2番に飛ばすことにした。これできっちりボーンをエクスポートできるようになった。
次にモーフに関して。pmdのbaseが持っている頂点をBlenderのVertex Groupとしてインポートする処理を追加した。こうしないと、エクスポートするときにbase頂点の数が維持できない。
他にボーンの名前に依存した並び替えなどを追加したりしたのだが、この辺りの処理でエクスポートできるモデルの条件が厳しくなってしまった。
インポートしたものをちょこっと弄ってそのままエクスポートする分にはいいが、Blenderで作ったものをエクスポートするのはつらい感じになった。

とりあえず予定通りBlender2.5向けの作業に進むとしよう。


メモ
頂点・三角形数
マテリアルの明るさ