Gaming Life

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

MagicaVoxelで作成したモデルをUE4で利用する (2) StaticMesh編

[MagicaVoxelで作成したモデルをUE4で利用する (2) StaticMesh編]

はじめに

 この記事は前回の続きです。前回の記事から見ていただくことをおすすめします。

ai-gaminglife.hatenablog.com

 第二回ではボーンを入れずアニメーションさせない、StaticMeshとして書き出したいときの方法を説明する。完成形は以下の通り。

f:id:ai_gaminglife:20180609152443p:plain f:id:ai_gaminglife:20180609152418p:plain

 頂点数208、ポリゴン数104と十分ゲームに使える少なさ。UVテクスチャも書き出されているのでマスク用テクスチャを作って質感調整などもできる。

 なおこの記事は以前公開した記事と大部分内容が被っている。この後SkeletalMeshとして書き出す解説もする為、繰り返しになるが話をわかりやすくするためこの記事を書いている。

[被ってるブログ]

1.MagicaVoxelでモデルを作成しQubicle用にエクスポートする

 まずはMagicaVoxelでボクセルモデリング。本筋から外れる為MagicaVoxelの使い方の説明はしないが直感的に操作出来るようになっているのでそう難しくないはず。が、UE4に持っていくに当たり注意することが一点。モデルの中心とワールドの中心を揃えなければならない。これをしないと後々面倒なことになる。

f:id:ai_gaminglife:20180609152123p:plain


 モデル全体を移動させるには以下の手順を踏む。

  1. Viewの"Grid","Frame" を選択。これでワールドにグリッド線が表示される。

  2. EditパネルからSelect -> Allを選択。

  3. BrushパネルのPaintの下にある十字矢印マークを選択。モデルを移動させることが出来る。

f:id:ai_gaminglife:20180609152136g:plain

 本当に真ん中か不安になったらMirrorをONにし、PaintやAttachしてみて試してみるといい。


 モデルの中心を揃えたらエクスポート。今回はQubicle独自形式の.qbで書き出す。

 右下のExportから"qb"を選択し、任意の場所に保存する。これでモデルをQubicleに持っていくことが出来る。

2.Qubicleで調整する

 Qubicleを起動。初期画面左下のファイルのアイコンをクリックし、先程エクスポートした.qbファイルを選択する。

f:id:ai_gaminglife:20180609152159p:plain

 .qbファイルを開くとこの様に中心と向きがずれている。

f:id:ai_gaminglife:20180609152207p:plain

 というわけでこれを直す。左クリックでオブジェクトを選択し、Transfromタブから"Flip Z"を選択。これでオブジェクトを正しい方向に向かせることが出来る。

f:id:ai_gaminglife:20180609152216p:plain

 続けてモデル中心から出ている赤矢印、青矢印をつかみ、x,z座標を動かして中心を本来のものに揃える。

f:id:ai_gaminglife:20180609152224p:plain

 続いて最終的にfbxとして書き出す時に頂点数を減らす為にメッシュを切り分ける。オブジェクトをダブルクリックしボクセル編集モードに移行。

f:id:ai_gaminglife:20180609152232p:plain

 Mキーをクリックし、"Rectangular Select Tool"ツールを選択。マウス左ボタンのドラックランドドロップで範囲を選び、Modifyタブの"Split off"を選択する。これでメッシュを切り分けることができた。今回は頭だけを切り分ける。

f:id:ai_gaminglife:20180609152246p:plainf:id:ai_gaminglife:20180609152250p:plain


 Rectangular Select Toolで選択しやすいようにカメラを正面に向けたりしたい。そんなときはCamera -> Perpendiculer View -> Frontを選択すればよい。


 左上にある左向き矢印アイコンを押すと元の画面に戻ることができる。

3.fbxファイルとして書き出す

 元の画面に戻ったらShiftキーを押しながら左クリックでオブジェクトを複数選択する。

 Fileタブから"Export FBX"を選択すると画像の様なウィンドウが出る。

f:id:ai_gaminglife:20180609152320p:plain

 ここでどの様な設定で書き出すか色々変更することが出来る。が、今回は画像の通り初期設定のままで書き出してもOK。OKボタンを押して任意の場所に.fbxファイルを保存する

4.Blenderで調整し書き出す

 Blenderを起動。最初に表示されている立方体を右クリック選択してdeleteしたらファイル->インポートで先程書き出したfbxをインポートする。

 切り分けたパーツをそのままエクスポートすると別メッシュとして認識されるのでメッシュを結合しなければならない。ということでオブジェクトモードのままShift右クリックで全てのメッシュを選択、Ctrl+Jでオブジェクトを結合する。

 続いてピボットポイントを変更する。今のままでは変な位置にピボットポイントがあるので原点をピボットポイントに変更する。

 まずShift+Sキーで「カーソル → 原点」を選択。3Dカーソルを原点に移動させる。続いて先程結合したメッシュを選択した状態で、画面左下(オブジェクトモードと表示されているところの隣)のオブジェクトからトランスフォーム->原点を3Dカーソルに移動を選択。これでピボットポイントを3Dカーソルの位置=原点に変更できる。

f:id:ai_gaminglife:20180609152328p:plain

 次にトランスフォーム値をリセットする。メッシュを選択した状態でCtrl+Aキーを押し、「回転と拡縮」、「位置」をクリック。これでトランスフォーム値をリセットできる。

f:id:ai_gaminglife:20180609152335p:plain

 最後にもう一つ。Qubicleで書き出したUVテクスチャは解像度が足りず、影がおかしな付き方をしてしまう。そこでBlender上で新たにライトマップ用のUVテクスチャを用意する。

 メッシュを選択した状態でプロパティパネルのデータを選択。UVマップの右側のプラスボタンを押し、新たに用意されたUVMapの右側にあるカメラアイコンを選択。

f:id:ai_gaminglife:20180609152343p:plain

 Tabキーを押し編集モードに移動。Aキーを押してメッシュの全ての頂点を選択したらUキー->ライトマップパックを選択して画像の設定でOKを押す。

f:id:ai_gaminglife:20180609152351p:plain

 これでBlender上での調整終了。このままfbxとして書き出す。

 メッシュを選択した状態でファイル->エクスポート->FBXを選択。画像のように設定。

f:id:ai_gaminglife:20180609152401p:plainf:id:ai_gaminglife:20180609152402p:plain

名前をつけたらFBXをエクスポートをクリック。これでUE4にインポートする準備が整った。

UE4にモデルをインポートする

 UE4を起動。コンテンツブラウザのインポートから画像の様な設定でモデルを取り込む。

f:id:ai_gaminglife:20180609152409p:plain

 自動でテクスチャとマテリアルを持った3Dモデルが取り込まれたはず。

 続いてライトマップの設定を変更。コンテンツブラウザでStaticMeshをダブルクリック。DetailパネルのGeneral Settingから

  • Lightmap Resolution を128に変更
  • LightMap CoordinateIndex を1に変更

 これで影の問題は解決したが見て分かる通りテクスチャがボケボケになっている。というわけで最後にこの問題を解決しよう。

 コンテンツブラウザで取り込んだテクスチャをダブルクリック。詳細パネルで以下の様に設定する。

  • Compression -> Compression Setttingを "UserInterface2D"に変更

  • Texture -> Filterを "Nearest" に変更

  • Level Of Detail -> Texture Groupを "2D Pixels" に変更

 この状態で保存する。

f:id:ai_gaminglife:20180609152418p:plain

 これで望み通りのモデルがUE4に取り込むことが出来た。