今回、3Dモデルを作成したので試しにDXライブラリで読み込んでみようと思い、サンプルコードhttp://dxlib.o.oo7.jp/function/dxfunc_3d.html#R4N1を実行しました。
今回使ったモデルはこちらです。
https://www.dropbox.com/s/s69cndslilerl ... E.zip?dl=0
リファレンスには、.xと.pmdと.mqoと.mv1が使用可能とありました。また、ツールを使うことで.fbxを.mv1に変換できるということでした。今回はmqoエクスポーターのみ見つからなかったので、.x(デフォルトアドオン)、.pmx(blender2pmx)、.mv1(DxLibModelViewer)の三通りを試しました。
ところが、いずれもうまくいきませんでした。以下詳細です。
- まず初めに手を付けたのが、MMDでも使えてモーション編集も簡単なPMX形式でした。ここで、PMXは仮対応ということですが、PMDエクスポーターでいいものが見つけられなかったためPMXエクスポーターを用いてPMX形式で利用しました。その結果、MMDやModelViewerではきちんとblenderと同じようにモデルが描画されるものの、自作ソフト上ではこのようにメッシュが崩壊した状態で描画されました。
MV1SetMeshBackCulling関数をすべてのメッシュに適用しても同じ結果だったため、バックカリングをしていないという理由ではないようでした。また、これを他エディタで別のファイル形式に変換しても同じような結果になりました。
- 次に目をつけたのが、簡単にエクスポート出来てMMDでも一応開けるXファイルでした。こちらはデフォルトのアドオンがあるので、出力までは簡単にいきました。自作ソフト上でもこのように見事表示されました。
が、ここで問題はアニメーションが正常に動いていないということと(左上の-1はアニメーションのアタッチ番号を代入した変数なので、アニメーションが存在していない)、MMDで読もうとしたときに正しいXファイルではありませんという警告が出て、読み込めない事です。これに関してはblenderのXファイル出力はあまりよろしくないらしいという情報があるので、仕方ないということにして保留しています。
- 最後の可能性が、FBXからMV1ファイルへの変換です。しかし、FBXファイルで出力して読み込むと、このようにメッシュの一部が乱れてしまいます。
これをMV1に変換したものが、こちらです。
どうみてもスカートの中が外にでちゃってます。ありがとうございます。
いくら技術の勉強のためとはいえ、3Dの処女作でスカート内モロ見えというのは嫌です。というか3Dゲーム作るならこんな荒れたモデルは使いたくないです()
どうか皆様のご高察をお聞かせください。