このタブを使用して、モデルをインポートするときに Unity がマテリアルとテクスチャを処理する方法を変更できます。
マテリアルを持たないモデルを Unity にインポートすると、Unity の拡散マテリアルが使用されます。モデルにマテリアルがある場合、Unity はそれらをサブアセットとしてインポートします。
モデルにテクスチャがある場合、Extract Texture (テクスチャの抽出) ボタンを使ってプロジェクトに抽出することもできます。
プロパティ | 機能 | |
---|---|---|
Material Creation Mode | モデルのマテリアルを生成またはインポートする方法を定義します。このドロップダウンメニューから None を選択すると、このタブの残りの設定が非表示になります。 | |
None | このモデルに埋め込まれたマテリアルを使用しません。代わりに Unity のデフォルトのディフューズマテリアルを使用します。 | |
Standard | インポート時に、マテリアルを生成するための一連のデフォルトルールが適用されます。スクリプトを使ってマテリアルを生成する方法をカスタマイズしたい場合は、代わりに Import via MaterialDescription (Experimental) モードを選択してください。 | |
Import via MaterialDescription (Experimental) | インポート時に、FBX ファイルに埋め込まれた Material description を使用してマテリアルを生成します。この方法では、以前のインポート方法よりもより正確な結果が得られ、より幅広いマテリアルタイプをサポートしています。例えば、オートデスクの Arnold やPhysical、Unity の HDRP マテリアル などです。詳細については、後述の Material description を参照してください。 | |
sRGB Albedo Colors | ガンマ空間のアルベドカラーを使用するには、このオプションを有効にします。 リニアの色空間 を使用しているプロジェクトではこれを無効にしてください。 このプロパティは、 Material Creation Mode のドロップダウンから Import via MaterialDescription (Experimental) を選択する場合には使用できません。 |
|
Location | マテリアルとテクスチャへのアクセス方法を定義します。これらのオプションのどれを選択するかによって、設定可能なプロパティが変わります。 | |
Use Embedded Materials | インポートしたマテリアルをインポートしたアセットの内部に維持します。これは Unity2017.2 以降でデフォルトのオプションです。 | |
Use External Materials (Legacy) | インポートしたマテリアルを外部アセットとして抽出します。これはマテリアルを処理する古い非推奨の方法で、2017.1 以前のバージョンの Unity で作られたプロジェクトのためのものです。 |
Location で Use Embedded Materials を選択すると、以下のインポートオプションが表示されます。
(A) ** Extract Materials** と Extract Textures ボタンをクリックすると、インポートしたアセットに埋め込まれているすべてのマテリアルとテクスチャが抽出されます。抽出するサブアセットがない場合はグレーアウトしています。これらのボタンの下には、Unity がインポートプロセスに関するメッセージを表示します。
(B) On Demand Remap セクションでは、Naming とSearch プロパティを提供し、インポートされたマテリアルをモデルにマッピングする方法をカスタマイズすることができます。Search and Remap ボタンをクリックすると、インポートされたマテリアルが既存のマテリアルアセットに再マップされます。Unity が正しい名前のマテリアルを見つけられない場合は何も変わりません。
(C) Unity は、アセット内で見つかったすべてのインポートされたマテリアルを Remapped Materials リストに表示します。各マテリアルをプロジェクト内の既存のマテリアルアセットに自動的に一致させることができない場合は、このリストでマテリアルへの参照を自身で設定することができます。
元のアセットへの新しいインポートまたは変更は、抽出されたマテリアルには影響しません。ソースアセットからマテリアルを再インポートする場合は、Remapped Materials リストで抽出されたマテリアルへの参照を削除する必要があります。リストから項目を削除するには、項目を選択してキーボードの Backspace キーを押します。
マテリアルの命名方法を決定します。
プロパティ | 機能 |
---|---|
By Base Texture Name | インポートされたマテリアルのディフューズテクスチャの名を使って、マテリアルを命名します。ディフューズテクスチャがマテリアルに割り当てられていない場合、Unity はインポートされたマテリアルの名前を使用します。 |
From Model’s Material | インポートされたマテリアルの名前を使って、マテリアルを命名します。 |
Model Name + Model’s Material | モデルファイルとインポートしたマテリアルの名前を組み合わせを使って、マテリアルを命名します。 |
Naming オプションで定義された名前で既存のマテリアルを検索するときに、検索する場所を決定します。
プロパティ | 機能 |
---|---|
Local Materials Folder | ローカルの マテリアル のサブフォルダー (モデルファイルと同じフォルダー) でマテリアルを検索します 。 |
Recursive-Up | Assets フォルダーまで上位に移動しながら、すべての親フォルダー内のマテリアルのサブフォルダーすべてのマテリアルを検索します。 |
Project-Wide | すべての Unity プロジェクトフォルダー内の既存のマテリアルを検索します。 |
バージョン 2019.3 から、Unity はインポート時のマテリアルマッピングをスクリプトで修正する機能を導入しました。ユーザーは、FBX ファイルに埋め込まれたデータからインポートされたマテリアルのプロパティを Unity のマテリアルのプロパティにマッピングする方法を変更することができます。Material description は、マテリアルとそれが参照するテクスチャを説明する名前といくつかの値のセットを定義します。この記述の構造についての詳細は、MaterialDescription クラスのページを参照してください。
ImportViaMaterialDescription モードの場合、モデルインポーターは マテリアルの作成をAssetPostProcessor.OnPreprocessMaterialDescription コールバックに委ねます。
Unity では、以下のマテリアルを扱うこのポストプロセッサーのデフォルトの実装を提供しています。
これらのデフォルトの実装では、マテリアルのインポートの扱いが ImportStandard モードとは異なり、以下のような改良が加えられています。
より多くのマテリアルタイプをサポートしています。例えば、オートデスクの Arnold や Interactive、Physical、Unity の HDRP Materials など。
エミッシブマテリアル をサポートします。
ディフューズテクスチャが設定されている場合、ディフューズ色は無視されます (これは Autodesk® Maya® と Autodesk® 3ds Max® での動作と同じです)。
バンプファクター、エミッシブカラー、エミッシブファクターを考慮します。
FBX ファイルで定義されている場合、エミッシブカラーのアニメーションをインポートします。
ノート: 3ds Max はエミッシブカラーのアニメーションをエクスポートしません。そのため、Unity はそれをインポートすることができません。
透明なマテリアルを完全に透明なものとしてインポートします。従来のシステムでは、完全に不透明なものとしてインポートします。
さらに、すべての Autodesk Interactive マテリアルのプロパティアニメーションをインポートし、3DS ファイルからマテリアルをインポートするときに不透明度を無視しなくなりました。
Location オプションに Use External Materials (Legacy) を選択すると、以下のインポートオプションが表示されます。
このオプションは、マテリアルを抽出して、モデルアセット内に保存するのではなく、外部に保存します。Naming と Search プロパティは、インポートされたマテリアルをモデルにマッピングするのに役立ちます。
Unity 2017.2 より前のバージョンでは、これがマテリアルを処理するデフォルトの方法でした。