このタブを使用して、モデルをインポートするときに Unity がマテリアルとテクスチャを処理する方法を変更できます。
マテリアルを持たないモデルを Unity にインポートすると、Unity のディフューズマテリアルが使用されます。モデルにマテリアルがある場合、Unity はそれらをサブアセットとしてインポートします。
モデルにテクスチャがある場合、Extract Textures ボタンを使ってプロジェクトに抽出することもできます。
| プロパティ | 機能 | |
|---|---|---|
| Material Creation Mode | モデルのマテリアルを生成またはインポートする方法を定義します。このドロップダウンメニューから None を選択すると、このタブの残りの設定が非表示になります。 | |
| なし | このモデルに埋め込まれたマテリアルを使用しません。代わりに Unity のデフォルトのディフューズマテリアルを使用します。 | |
| Standard | インポート時に、マテリアルを生成するための一連のデフォルトルールが適用されます。スクリプトを使ってマテリアルを生成する方法をカスタマイズしたい場合は、代わりに Import via MaterialDescription (Experimental) モードを選択してください。 | |
| Import via MaterialDescription (Experimental) | インポート時に、FBX ファイルに埋め込まれた Material description を使用してマテリアルが生成されます。この方法は、以前のインポート方法よりも正確な結果を提供し、Autodesk の Arnold や Physical、Unity の HDRP マテリアルなど、より幅広いマテリアルタイプをサポートします。詳細については、以下の Material description のセクションを参照してください。 | |
| sRGB Albedo Colors | ガンマ空間のアルベドカラーを使用するには、このオプションを有効にします。これは、古いインポート方法ではデフォルトで有効になります。 リニアの色空間 を使用するプロジェクトではこれを無効にしてください。 このプロパティは、 Material Creation Mode のドロップダウンメニューから Import via MaterialDescription (Experimental) を選択する場合には使用できません。 |
|
| Location | マテリアルとテクスチャへのアクセス方法を定義します。これらのオプションのどれを選択するかによって、設定可能なプロパティが変わります。 | |
| Use Embedded Materials | インポートしたマテリアルをインポートしたアセットの内部に維持します。これは Unity 2017.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 | ローカルの Materials サブフォルダー (モデルファイルと同じフォルダー) でマテリアルを検索します 。 |
| Recursive-Up | Assets フォルダーまで上位に移動しながら、すべての親フォルダー内のマテリアルのサブフォルダーすべてのマテリアルを検索します。 |
| Project-Wide | すべての Unity プロジェクトフォルダー内の既存のマテリアルを検索します。 |
バージョン 2019.3 から、Unity はインポート時のマテリアルマッピングをスクリプトで修正する機能を導入しました。ユーザーは、FBX ファイルに埋め込まれたデータからインポートされたマテリアルのプロパティを Unity のマテリアルのプロパティにマッピングする方法を変更することができます。Material description は、マテリアルとそれが参照するテクスチャを説明する名前といくつかの値のセットを定義します。この記述の構造についての詳細は、MaterialDescription クラスのページを参照してください。
ImportViaMaterialDescription モードの場合、モデルインポーターはマテリアルの作成を AssetPostProcessor.OnPreprocessMaterialDescription コールバックにデリゲートします。
Unity では、以下のマテリアルを扱うこのポストプロセッサーのデフォルトの実装を提供しています。
これらのデフォルトの実装では、マテリアルのインポートの扱いが ImportStandard モードとは異なり、以下のような改良が加えられています。
Autodesk の Arnold と Interactive、Physical など、より多くのマテリアルタイプおよび Unity の HDRP マテリアル をサポートします。
エミッシブマテリアル をサポートします。
ディフューズテクスチャが設定されている場合、ディフューズ色は無視されます (これは Autodesk® Maya® と Autodesk® 3ds Max® での動作と同じです)。
バンプファクター、エミッシブカラー、エミッシブファクターを考慮します。
FBX ファイルで定義されている場合、エミッシブカラーのアニメーションをインポートします。
ノート: 3ds Max はエミッシブカラーのアニメーションをエクスポートしません。そのため、Unity はそれをインポートすることができません。
透明なマテリアルを完全に透明なものとしてインポートします。従来のシステムでは、完全に不透明なものとしてインポートします。
さらに、すべての Autodesk Interactive マテリアルプロパティアニメーションをインポートし、3DS ファイルからのマテリアルのインポート時に不透明度が無視されなくなりました。
Location オプションに Use External Materials (Legacy) を選択すると、以下のインポートオプションが表示されます。
このオプションは、マテリアルを抽出して、モデルアセット内に保存するのではなく、外部に保存します。Naming と Search プロパティは、インポートされたマテリアルをモデルにマッピングするのに役立ちます。
Unity 2017.2 より前のバージョンでは、これがマテリアルを処理するデフォルトの方法でした。