Gaming Life

一日24時間、ゲームは10時間

MagicaVoxelで作成した3DモデルをBlender経由でUE4に持っていく方法・決定版(にしたかった)

 前回の記事 ではply形式でexportし、スマートUV展開して頂点カラーを焼き込んでテクスチャを作成、そのテクスチャとfbxで書き出したモデルを取り込むという手法を紹介したが、この方法では色とUV座標がズレが生じ、色の位置がずれてしまう問題が発生していた。

ai-gaminglife.hatenablog.com

 消化不良のまま前回記事を書いた後に大学のテストがありずっと解決できずにいたが、テストも終わり、漸く(とりあえずの)解決策が見つかったので紹介する。

Blenderでの設定方法(決定版にしたかった)

 今回はMagicaVoxelで作成したモデルを obj形式でexport する。

 前回記事同様にBlenderにImportしてライティングとサイズを調整する。

サイズ調整の方法
UE4.18.2時点ではBlender上での1mはUE4では100mになっている。これはシーン設定の単位プリセット、長さをメートル法に、単位の倍率を0.01にすることでBlender上での大きさとUE上での大きさを揃えることができる
f:id:ai_gaminglife:20180212164316p:plain

 作業し易いように3Dビューを左上の三角を左にスライドし、2画面にする。続けて左画面の左下にあるアイコンを押し、表示を「3Dビュー」から「UV画像エディタ」に切り替える。

f:id:ai_gaminglife:20180212164328p:plain

 「+新規」を押し、「Lightmap」と名付ける。

 f:id:ai_gaminglife:20180212164343p:plain

 モデルを選択し、オブジェクトデータ→UVマップの+を選択。新たに作られたUVMap_001の右側にあるカメラマークを選択状態にする。

f:id:ai_gaminglife:20180212164410p:plain

 tabを押して編集モードに切り替え。Aキーを二回押してモデルの頂点を全て選択する。

 左画面にLightMapが表示されていることを確認してから(真っ黒の正方形が表示されていればいい。されていなければ「画像」のすぐ右側にあるアイコンを選んでLightMapに切り替える)Uキー→スマートUV展開と進み、島の余白を0.05程度にして実行。

f:id:ai_gaminglife:20180212164427p:plain

UE4にインポートする

 前回同様fbx形式でエクスポートする。終わったらfbxをUE4にImportする。この際、Generate Lightmap UVsにチェックが入っていることを確認する。

 自動生成されるマテリアルの名前が必ずpaletteになっているはずなので適切な名前に書き換える。こうしないと同じフォルダにボクセルモデルをインポートする時マテリアルが上書きされてしまう。

 このようにインポートしたモデルは色のズレもなく、Light Buildしても真っ黒にならず影がつくはず。

f:id:ai_gaminglife:20180212164440p:plain

 おわり。

解決できなかった問題点

 上の画像を見てもらうと分かる通り、気味の悪い影の付き方をしている。「Movable」に設定した時の影(下画像)は違和感がないのだが、Staticなのに何でもかんでもMovableに設定するのもよろしくない。Staticに設定したときもMovableと同じ影の付き方に出来れば良いのだが……

f:id:ai_gaminglife:20180212164452p:plain

(02/22追記)改良版を公開しました。

ai-gaminglife.hatenablog.com