blenderで作った3DモデルをDxLibで表示する

目標

blenderで作った3DモデルをDXライブラリで読み込んで正しく表示させる

環境

Windows10
blender v2.79
DXLib 2017.3.18c

手順など

0. まず、自分が欲しい3Dモデルを探す
 フリーで十分なのもあるし、お財布と相談しつつ買ってもよい
 なかったら作る
 
1. blenderで頑張ってモデルの素体を作る
 f:id:Nsan:20180801182915p:plain
 (この木の作成参考動画:【Blender】10分で作るMMDモデル製作入門 - ニコニコ動画)
 マテリアルの設定はあまり凝らなくていいかも、知らんけど
 形を決めるのがめんどくさかったらとりあえずバンバンおいてもええんちゃう?
 あと、ここではなるべくモデル統合はしないようにする

2-1. blenderで作ったモデルに対しUV展開を行い、テクスチャを貼る
 f:id:Nsan:20180801193233p:plain
 (木に対しマテリアル設定、地面に対しUV展開を行いテクスチャを貼りつけた後の図)
 テクスチャを使わないなら2の作業は不要
 UV展開したらテクスチャのマッピングのマップの値をUVMapに変更しておく
 なお、半透明など、α値を使うものはなるべく使わない方が無難かもしれない
 半透明の物を描画する手順を実装できるならいいかもしれないけど
 他にも、完全透明な部分に合わせて素体を変形(透明部分をオブジェクトから消す)させてもよい



ここより上はモデルが完成するまでの話
ここより下はモデルが完成したらの話



2-2. 各テクスチャのパスを相対パスにする
 f:id:Nsan:20180801193453p:plain
 モデルファイルから見た相対パス
 テクスチャの画像のソースを変更する

3. 裏面から見ても透明にしたくないオブジェクトを複製、面の反転を行う
 平面以外のオブジェクト、あるいは平面で片面しか使わないならこの作業は不要

4. 各モデルをフレームを意識して統合する
 f:id:Nsan:20180801202638p:plain
 (画像の状態で出力をするとフレームは2つ生成される)
 編集していたファイルを複製して、別ファイルで統合作業した方が良さげ
 右上側のメニュー(アウトライナー)にあるオブジェクトの分だけフレームも生成される
 なのでこの時点でcameraとか光源とかも消す(光源は消さなくていいかも)

5. fbx形式でエクスポート
6. DxLibModelViewerでmv1形式に変換しエクスポート
 名前を付けて保存するだけ
7. mv1ファイルをプログラムで読み込んで表示
 f:id:Nsan:20180801202821p:plain
 (画像が暗いのは光源を設定していないため)
 なお、mv1ファイルと使ったテクスチャの画像は2-2で設定した通りに配置する
 
こんな感じでたぶんできる
なお、透明のテクスチャを避ける理由は主に描画順が関係している
まぁあまり透明を用いるのは推奨はしない(方がいいと思っている)

Tips

試行錯誤の過程

nsan.hatenablog.com