Blenderでつくった見た目をUnityでなるべく再現する──テクスチャベイクを使う

Blenderではシェーダーノードを使って様々なマテリアルを表現することができます。しかし、シェーダーノードで表現したマテリアルはそのままUnityに持ち込むことができません。
完全再現は難しいですが、今回はBlenderでつくったマテリアルをUnity上でできるだけ再現するためのポイントを解説します。

「テクスチャベイク」「Unityマテリアル設定」で再現度を高める

今回紹介する手順は大きく「テクスチャベイク」「Unityマテリアル設定」です。
シェーダーノードでつくったテクスチャを画像にベイクし、UnityのStandardシェーダーでできるだけ質感を再現するパラメータ設定を解説します。

サンプルの机モデルは2つのマテリアルを持っており、ひとつはシェーダーノードで木目を表現したマテリアル、もうひとつはカラーとメタリックを調整した金のマテリアルです。
このマテリアルをUnityで再現します。

画像テクスチャにベイクする

シェーダーノードで生成したテクスチャがある場合、画像テクスチャにベイクして保存することでUnityで利用できます。

  • まずはモデルのUV展開をしましょう。ベイクする際にUVが重なっていると正しくベイクできない場合があります。
    • シェーダーノードでUV座標を利用しているなど変更したくない場合は、別のUVマップを追加してそちらにベイクすることもできます。
  • 続いて、ベイク先となるテクスチャを作成します。
    • シェーダーノードで「画像テクスチャ」ノードを作成し、「新規」からテクスチャを作成します。
  • 準備ができたらベイクを実行します。レンダープロパティを開いてください。
    • レンダーエンジンとして「Cycles」を選択し、「ベイク」の項目を開きます。
    • ベイクタイプは「ディフューズ」を選択、影響は「カラー」のみチェックを付けます。
  • UVマップを複数作成している場合は、オブジェクトデータプロパティで描画に適用するUVマップのカメラアイコンを有効にし、ベイク先のUVマップを選択した状態にしておきます。
  • シェーダーノードでベイク先の画像テクスチャノードを選択した状態で、レンダープロパティの「ベイク」ボタンをクリックします。成功すると選択したテクスチャにマテリアルがベイクされます。
    • ベイクタイプに「ノーマル」「放射」を選択するとそれぞれのテクスチャを同様にベイクすることができます。
  • ベイクしたテクスチャは画像エディターパネルから「名前を付けて保存」しましょう。

Unityにインポートしてマテリアルを作成する

モデルをFBXに書き出してUnityにインポートします。

  • 書き出す前に、UVマップが複数ある場合はベイク先として利用した以外のUVマップは削除しておきましょう。その他の注意点はこちらの記事を参考にしてください。
  • 書き出したFBXファイルとテクスチャを、UnityのProjectウインドウにドラッグ&ドロップしてインポートします。

FBXとテクスチャをUnityに取り込んで調整する

インポートしたFBXファイルをシーンにドラッグ&ドロップして配置します。続いて新しくマテリアルを作成し、このモデルに適用していきます。

  • Projectウインドウを右クリックして「Create>Material」で新規マテリアルを作成します。
    • マテリアルを選択してInspectorを開き、マテリアルの設定を変更していきます。
    • ベイクしたテクスチャがある場合は「Albedo」の左側の四角い部分にドラッグ&ドロップでテクスチャを指定します。
      • 「ノーマル」「放射」テクスチャがある場合は同様に「Normal」「Emission>Color」に設定します(Emission>ColorはEmissionにチェックを入れると設定できるようになります)。
      • テクスチャを使わずカラーを指定する場合は16進数表示の値をコピーするのがオススメです。

BlenderでプリンシプルBSDFシェーダーを利用している場合、UnityのStandardシェーダーの「Metallic」「Smoothness」がそれぞれBlenderの「メタリック」「粗さ」に対応します。ただしSmoothnessの値は「1.0 – 粗さの値」にします。

Blenderの「アルファ」はUnityではAlbedoのカラーの項目で「A」の値を調整します。透明・半透明を描画するためにはRender ModeをFadeまたはTransparentにします。
Fadeではテクスチャの透過部分は完全に見えなくなり、Transparentでは透過部分にも光の反射などが適用されガラスのように描画されます。

作成したマテリアルはシーン上のモデルにドラッグ&ドロップで適用できます。

Blenderでつくったマテリアルも、工夫次第ではある程度Unity上で再現できます。
つくったモデルをclusterのワールドに置く時に試してみてください!

記事をシェアしてワールド制作を盛り上げよう!