見出し画像

3Dモデル編その③PMXを変換しよう!

皆さんこんにちは。
フルスクラッチでゲームエンジンを作ろう!第八回です。

今回からは前回つくった3Dモデルデータの形式に、ほかの3Dモデルのデータを変換していきます。
複雑雑多奇々怪々と言われているFBXをいきなり変換するのはハードルが高いので、今回の目標はMMDで使われているモデルデータ、PMXを変換します。

PMXはとても親切な仕様書が公開されており中身の構造も明かされていて、とても簡単に読み込むことができます。

こんな感じできれいに畳やインパクトドライバーをPMXから変換して描画できます。

なお、畳はこちらから

インパクトドライバーはこちらからお借りしました。

ありがとうございます。

変換の内容としては、ファイルを開いて順番通りにバイトを読み込んで独自形式に書き込んでいくだけなので特に解説できることはありません。
工夫と言っては何ですが、独自形式の仕様で頂点の構造を決める列挙型を二か所(頂点全体に対するものと頂点一つ一つに対するもの)に書くことにしているので、
畳のように全ての頂点がBDEF1のモデルからはBDEF1の頂点だけで構成された頂点バッファを作る、などが可能です。


今回は以上です。
かなり短くなってしまいましたが、PMXのデータ構造はそれくらい親切に作られているということです。

次回からはFBXを変換したいと思います。

最後まで読んで頂きありがとうございました。それでは。

この記事が気に入ったらサポートをしてみませんか?