PavilionDV7の雑多なやつ

Qiitaから移行しました。UE4に関する記事から興味のあることまで色々書きます。

Blender2.8でモデリングしてカラーIDマップ作ってUE4で使用するまでの手順まとめ

はじめに

Blender作成したモデルのパーツごとにそれぞれマテリアルを割り当てるとUE4にインポートした際にマテリアルスロットとして扱われ、パーツごとに異なる質感を表現したいときに便利ではあるが、単に色を変えただけのマテリアルや全く複雑ではないマテリアルををいくつも作って割り当てていくのは面倒くさい。(マテリアルインスタンスを使えばいいではあるのだがアセットが大量に作成されるのが嫌) そこでカラーIDマップをテクスチャマスクとして利用すると1つのマテリアルスロットで複数の質感を与えることが出来る。(例えば青色の面に対してはマットな質感。赤色の面に対してはメタリックな質感等)

注意点

使用するBlenderバージョン:2.8

BlenderでカラーIDマップを作成する手順

  1. モデルを作る
  2. UV展開する f:id:PavilionDV7:20200304213348p:plain

  3. ベイク先となるテクスチャを作成する f:id:PavilionDV7:20200304215816p:plain

  4. 割り当てる数分のマテリアルを作成する(RGBを割り当てるなら3つのマテリアル) f:id:PavilionDV7:20200304213353p:plain

  5. マテリアルノード編集画面を開き「Image Textureノード」を追加し、テクスチャに3番で作成したテクスチャを割り当てる

  6. マテリアルの「Surface」タイプを「Emission」にする(この方がきれいなRGBが出力される気がする) f:id:PavilionDV7:20200304215820p:plain

  7. 必要な面にマテリアルを割り当てる f:id:PavilionDV7:20200304215826p:plain

  8. オブジェクトモードに切り替える

  9. 右側の各プロパティ一覧からカメラマークのようなものを選択
  10. 「Render Engine」を「Eevee」から「Cycles」に変更
  11. 下から3番目に「Bake」の項目が現れる
  12. Bakeメニューを展開し「BakeType」を「Emit」に変更する(マテリアルのSurfaceタイプを「Emission」に変更したため)
  13. Bakeボタンを押す ※複数のオブジェクトを1つのテクスチャにベイクする場合は「Selected to Active」のチェックを入れる必要があるらしい f:id:PavilionDV7:20200304215838p:plain

  14. Bakeが終了したらテクスチャを好きな場所に保存する。 f:id:PavilionDV7:20200304215841p:plain

  15. モデルに割り当てるマテリアルを1つのみにし、残りは全て削除する。 f:id:PavilionDV7:20200304215843p:plain

Substance Painter 2 でカラーIDマップを作成する手順

ここはSubstance Painterを所持している人向けの手順。Substance Painter 2となっているのは自分がそれしか持っていないため。2以降のバージョンではどのような手順になっているかはわからない。

  1. モデルを作る
  2. UV展開する f:id:PavilionDV7:20200304213348p:plain

  3. マテリアルを1つ作成する f:id:PavilionDV7:20200304213353p:plain

  4. Vertex Paintモードに切り替える f:id:PavilionDV7:20200304213358p:plain

  5. 選択モードを「面」にする(3D Viewportの左側にある「Select Box」を有効にしておくと超楽) f:id:PavilionDV7:20200304213405p:plain

  6. それぞれ必要な面に必要な色を割り当てていく f:id:PavilionDV7:20200304213410p:plain

  7. Substance Painter 2 を起動

  8. 作成したモデルを使用してプロジェクトを新規作成する。 f:id:PavilionDV7:20200304213423p:plain

  9. 画面右下にある「TextureSet Settings」から「Bake Textures」ボタンを押す f:id:PavilionDV7:20200304213431p:plain

  10. ベイクの設定画面が表示される

  11. 左側にある「通常」「ワールド空間法線」と並ぶ項目から「ID」以外のチェックマークを全て外す
  12. 必要ならOutput Sizeを変更する
  13. 画面下側にある3つのボタンの中から中心の「Bake all texture sets」を押す f:id:PavilionDV7:20200304213435p:plain

カラーIDマップを使う

カラーIDマップはBlenderで作成したモデルのUVに依存するため当然カラーIDマップを作成する際に作成したモデルをFBX形式でエクスポートしてUE4へインポートする必要がある。

Blenderで作成したスタティックメッシュをUE4へ持っていく手順は以下を参照 www.3d-beginner.com

UE4へモデルをインポートできたら作成したカラーIDマップもインポートしておく。このときカラーIDマップテクスチャはCompression SettingsをMasksへ変更しておくと良い。

f:id:PavilionDV7:20200304221148p:plain

続いてカラーIDマップをより便利に活用するために以下のフォーラムに載ってあるマテリアル関数を作成する。このマテリアル関数により「RGB」の3色以外にも任意のカラーのみをマスクすることが出来る。超便利。おすすめ。

forums.unrealengine.com

マテリアル関数が作成できたらモデルにアタッチするためのマテリアルを作成する。以下のマテリアルは各面に割り当てられた色のマスクを作り出し、それぞれ改めて新しい色を割り当てている。

f:id:PavilionDV7:20200304221153p:plain

おわりに

以上がBlender2.8で作成したモデルからカラーIDマップを作成してUE4で使用するまで手順。文字だけでよくわからない方は以下の動画を見てみることをおすすめ。

BlenderでカラーIDマップを作成する手順 ※動画内ではマテリアルのSurfaceを「Diffuse BSDF」としているが「Emission」とした方がきれいなマップが作成される。 www.youtube.com

Substance PainterでカラーIDマップを作成する手順 www.youtube.com