3dsmax、Plasmaの Shockwave3D(W3D)エクスポータで、希にファイルを開けない不正な W3Dファイルが作られる。要因は色々とありそうなんだけど、今回はマテリアルIDの話。W3Dのモデルは、vertex, face, meshで構成される。max用語だと、頂点,△ポリゴン,マテリアルIDが割り当てられる。エクスポーターもこれらの要素を忠実に W3Dへと変換してくれるのだけども、マテリアルIDがおかしいと不正な W3Dファイルが出来上がる。開けない W3Dファイルは、まず マテリアルIDを確認。
◎:すべてのIDに適切なマテリアルが割り当てられている。正常に書き出しが行われる。書き出されたモデルの meshは 9個。
→ W3Dファイル
△:IDにマテリアルがないけど、足りないIDには適当に maxがマテリアルを割り当ててくれる。ID6以降にはマテリアルがないので、ID6 = ID1、ID7 = ID2みたいに連番どおりに解釈される。正常に書き出しが行われるが、書き出されたモデルの meshはマテリアルと同様に 5個。maxで作成中もあまり気持ちよいものではない。アイザワは几帳面なので、テクスチャ名もマテリアル名もモデル名もきちんと付ける派。
→ W3Dファイル
×:IDにマテリアルがないけど、足りないIDには適当に maxがマテリアルを割り当ててくれる。でも、これは連番になっていないからおかしなコトに。maxでは何とか解釈されても書き出し時には変なコトになる。で、このとき不正な W3Dファイルが生成される。
→ W3Dファイル
○:もちろん IDが連番でなくても、きちんと割り当てられていたら正常に書き出される。
→ W3Dファイル