FBX マテリアル パイプライン

FBX コンテンツ パイプラインを使ってメッシュと共に基本的なマテリアルとテクスチャを移行します。

FBX パイプラインでは、3D アプリケーションからメッシュ (スタティックメッシュおよびスケルタル メッシュ) に適用されたテクスチャおよびマテリアルを、アンリアルに移行することができます。 単純なマテリアルを変換するには、ソース マテリアルで使用されているテクスチャをインポートし、 こうしたテクスチャが適切なチャンネルに接続されるようにしてアンリアルでマテリアルを作成し、さらに、そのマテリアルをインポートしたメッシュに適用します。FBX パイプラインでは手動で集中的に行われていたものを自動化することで メッシュのインポートプロセスを合理化しています。

Unreal Engine の FBX インポート パイプラインでは、FBX 2020.2 を使用します。エクスポート中に他のバージョンを使用すると、互換性がなくなる場合があります。

このページでは、 Autodesk MayaAutodesk 3ds Max の両方の情報を掲載しています。以下でお好みのコンテンツ制作ツールを選んでください。 選んだツールの関連情報が表示されます。

3D Art Tool を選択してください。

Autodesk Maya

Autodesk 3ds Max

マテリアルのサポート

FBX パイプラインによるインポートは、基本的なマテリアルのみサポートされています。移行可能なマテリアルの種類は次のとおりです。

  • Surface

  • Anisotropic

  • Blinn

  • Lambert

  • Phong

  • Phone E

  • Standard

  • Multi/Sub-Object

こうしたマテリアルのタイプと、その特定の機能に限り移行することができます。FBX マテリアル パイプラインは、個々の設定値を移行しませんが、 マテリアルが使用する一部のマップやテクスチャの移行はサポートしています。

現在、メッシュでインポートされているマップ (テクスチャ) はマテリアルに追加され、一部の一般的なタイプはマテリアルのデフォルト入力に接続されますが、手作業による接続が必要なものもあります。 さらに、 Ambient Occlusion 用に Maya の Diffuse チャンネルを使用するなどのあまり一般的ではないマップ タイプはインポートされません。

複数のマテリアル

メッシュには複数のマテリアルが適用されている場合があります。それぞれ、メッシュの特定の面を覆っています。FBX パイプラインでは、複数マテリアルを持つメッシュをインポートすることができます (その場合、 3D アプリケーションで適切にセットアップされていることを前提にしています)。

Maya では、メッシュで複数マテリアルを使用するのは非常に簡単です。マテリアルを適用したいメッシュの面を選択し、マテリアルを適用するだけです。

mat_mult_maya.jpg

mat_mult_maya_result.jpg

Maya でメッシュに適用された各マテリアルに対して Unreal Editor でマテリアルが作成され、インポートしたメッシュはこうした各マテリアルのマテリアル スロットを持ちます。マテリアルがメッシュに適用されると、 Maya と同様に、メッシュのうちの対応するポリゴンにのみ影響を与えることになります。

3dsMax では、 Multi/Sub-Object マテリアルを使用して複数マテリアルを処理します。メッシュの各面は Material ID をもっており、 Multi/Sub-Object マテリアル内の各 Standard マテリアルが対応する Material ID に適用されます。

mat_multi_max.jpg

mat_multi_max_result.jpg

Multi/Sub-Object マテリアル内の各 Standard マテリアルのために Unreal Editor でマテリアルが作成されるとともに、インポートしたメッシュがこうした各マテリアルのためのマテリアル スロットを持ちます。マテリアルがメッシュに適用されると、 3dsMax におけるのと同様に、メッシュのうちの対応するポリゴンにのみ影響を与えることになります。

マテリアルの命名

インポート プロセス中に Unreal Editor で作成されたマテリアルは、3D アプリケーションのソース マテリアルと同じ名前になります。名前が引き出される場所は、どのアプリケーションがメッシュをエクスポートしたかに応じて変わります。

Maya の場合、Unreal Editor 内のマテリアル名は、 Maya 内のメッシュに適用されたシェーディング エンジン名から取られます。

mat_name_maya.jpg

3dsMax の場合、Unreal Editor 内のマテリアル名は、 3dsMax 内のメッシュに適用されたマテリアル名が直接使われます。

mat_name_max.jpg

マテリアルの順序

MaterialSlots.png

4.14 時点で、マテリアルの順序を指定するための Skin## の命名規則は不要になりました。

マテリアルを最初に FBX からインポートする場合、マテリアル スロットにマテリアル名が割り当てられます。これは、その FBX を再インポートする場合に、Original Import Material Name を使って マテリアルを正しい Element Index と一致させられるようにするためです。この方法は、マテリアルの順序を決めるうえで Skin## の命名規則を使うよりもはるかに一貫性があります。インポート プロセスで直接 メッシュの再インポート時に、FBX ファイル内でこの名前を探すようにし、どのセクションが既にリストに入っている既存マテリアルと一致するかを判断します。ここでのスロット名はメッシュの Level of Detail (LOD) セクションにある Material Name のドロップダウンでの選択と一致します。

Slot Name のテキストにマウスをかざすと、ツールチップにインポートしたマテリアルの名前がリストされます。4.14 より前にインポートされたスタティックメッシュやスケルタルメッシュがあれば、ツールチップの Material Name が None になります。

MaterialNameTooltip.png

マテリアル スロットを追加する、取り除く

マテリアル スロットを追加または取り除くには、Materials リストの上にある add (+) ボタンとスロット名の隣にある remove (x) ボタンを使用します。追加したスロットを使って、より低い LOD (Level of Detail) をオーバーライドすることはできますが、ベースとなる LOD はオーバーライドできません。

AddMaterialSlot.png

RemoveMaterialSlot.png

Add (+) Material Slot

Remove (x) Material Slot

ブループリントと C++ でマテリアル スロットを設定する

マテリアルに与えた Slot Name を使って、Set Material By Name を呼び出すことでランタイムにコンポーネントにマテリアルを設定することができます。こうすることでマテリアル エレメントのインデックス番号をハードコーディングして探しているマテリアル スロットを 呼び出す必要がなくなります。メッシュ上のマテリアルの順序が変わっても (代わりにスロット名を参照するため) ゲームプレイ コードが適切に機能するようにします。

テクスチャのインポート

3D アプリケーションにおいて、マテリアルのテクスチャを、ディフューズまたは法線マップのどちらかとして指定した場合は、それらのテクスチャが Unreal Editor にインポートされることになります。ただし、これは Import Textures 設定項目が FBX Import Properties において有効になっている場合に限ります。

ImportedMeshAndTex.png

Texture Sample 表現式が、Unreal Editor で新たに作成されたマテリアルで構築され、インポートしたテクスチャがその Texture Sample に割り当てられます。Texture Coordinate 表現式もマテリアルに追加され、 Texture Sample の UVs 入力に接続されます。ただし、幾つかのテクスチャをマテリアル スロットに接続する必要があります。

FBXMaterial.png

3D アプリケーション内でマテリアルに適用されたテクスチャが、アンリアルで使用できないフォーマットだったり、未知のマテリアル属性 (例えば Maya の Diffuse) に接続されている場合、インポートされません。このような場合や、そもそもマテリアルにテクスチャがない場合は、Unreal Editor 内のマテリアルに、ランダムに色付けされた Vector パラメータが入れられます。

NoTexture.png

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル