ビルトインレンダーパイプラインのマテリアルバリデーター
マテリアルバリアントの作成、修正、適用
以下の手順では、マテリアルバリアントの操作方法について説明します。プログラマーがスクリプトでマテリアルバリアントを使用する方法については、Material および MaterialEditor の API ドキュメントを参照してください。
プレハブバリアントとマテリアルバリアントの違い
マテリアルバリアントのワークフローは、プレハブバリアントのワークフローとほとんど同じですが、2 つの重要な違いがあります。
マテリアルバリアントで 1 つ以上のプロパティをロックして、その子バリアント内でそれらのプロパティを編集できないようにすることができます。
マテリアルバリアントの親は変更することができます。
マテリアルバリアントの作成方法
新しいマテリアルバリアントを作成するには、以下の 2 つの方法があります。
Project ウィンドウで Material を右クリック
Project ウィンドウで Material を選択します。
その Material を右クリックします。
Create > Material Variant を選択します。
Material Hierarchy で選択
Material Hierarchy ダイアログを開きます。
マテリアルタイプのドロップダウンを選択します。
Material Variant を選択します。
親フィールドにマテリアルを割り当てます。
Material Hierarchy からマテリアルバリアントを作成するドロップダウン
新しいマテリアルバリアントの特定
新しいマテリアルバリアントを作成すると、マテリアル Inspector に [マテリアル名] Variant (Material Variant) という形式で名前が表示されます。Unity で新しいマテリアルバリアントのロードが始まると、Project ウィンドウにそのマテリアルバリアントのアイコンがストライプ模様付きで表示されます。新しいマテリアルバリアントのロードが完了すると、Project ウィンドウ内のストライプ模様のアイコンが通常のマテリアルプレビューに変わります。
マテリアルバリアントへのオーバーライドの追加
マテリアルバリアントを選択します。
マテリアル Inspector でプロパティの 1 つを変更します。
プロパティの左側にある太い線 (このスクリーンショットでは赤丸) はオーバーライドを示している。
マテリアルバリアントの 1 つ以上のオーバーライドの取り消し
Override を右クリックします。
この特定のオーバーライドを元に戻すには Revert を選択し、このバリアントのすべてのオーバーライドを元に戻す場合は、Revert all Overrides を選択します。このオーバーライドが子から発生したものであれば、取り消しがその子にも適用されます。
変更を元に戻す際の影響が継承によってどのように決定されるか、についての詳細は、マテリアルバリアント継承 または上方へ適用されたオーバーライドの取り消し を参照してください。
階層内上方へのオーバーライドの適用
オーバーライドは、階層内の上方の任意の先祖に適用できます。
このドロップダウンで、オーバーライドの取り消し、上方への適用、ロックが可能。
親へのオーバーライドの適用
オーバーライドを親に適用するには、オーバーライドを右クリックし、ドロップダウンで Apply to [親の名前] を選択します。
先祖へのオーバーライドの適用
オーバーライドを先祖に適用するには、オーバーライドを右クリックし、ドロップダウンで Apply to [先祖の名前] を選択します。
上方に適用された 1 つ以上のオーバーライドの取り消し
上方に適用されたオーバーライドは、オーバーライドの発生元である子の方で元に戻すことはできません。代わりに、適用された親または先祖の方で元に戻す必要があります。マテリアルバリアントの 1 つ以上のオーバーライドの取り消し の説明を参照してください。
マテリアルバリアントの削除
Project ウィンドウでマテリアルバリアントを選択します。
Delete キーを押します。次のステップは、マテリアルバリアントに子があるかどうかによって異なります。
マテリアルバリアントに子がない場合は、警告ダイアログで Delete をクリックしてバリアントを削除します。
マテリアルバリアントに 1 つ以上の子がある場合は、警告ダイアログに One or more of these Material(s) has one or more children.Would you like you reparent all of these children to their closest remaining ancestor? (1 つ以上の子を持つマテリアルが 1 つ以上あります。最も近い残りの先祖を、これらのすべての子の親にしますか?) と表示されます。
警告ダイアログには以下の 3 つのオプションがあります。
Delete and reparent children (削除して子の親を変更する): このオプションを使用すると、Unity はこの親の子を最も近い先祖に自動的に割り当てます。この新しい親は、マテリアルバリアント、またはマテリアルのいずれか (あるいは、削除するマテリアルが階層のルートの場合は、親なし) になります。
Delete only (削除のみ): ノート: 親が存在しないマテリアルは無効な状態にあり、ランタイムに正しくロードされません。
Cancel (キャンセル): 親が存在しないマテリアルバリアントの上方は、継承エラーメッセージ を参照してください。
マテリアルバリアントの親の変更
マテリアルバリアントの親を変更するには、以下の 2 つの方法があります。
マテリアル Inspector で変更する
Project ウィンドウで、親を変更するバリアントを選択します。
Parent プロパティの横にある二重丸を選択し、Select Material ダイアログで新しい親を選択します。
新しい親の選択
Project ウィンドウで変更する
新しく親に設定するマテリアルまたはマテリアルバリアントを、ターゲットの子にドラッグします。
プロパティのロック
プロパティを右クリックします。
ドロップダウンで Lock in children を選択します。
ロックされたプロパティの横に、南京錠のアイコンが表示されます。
プロパティのロックを解除するには、Lock in children をもう一度クリックします。
ロックメニュー
マテリアルバリアントからマテリアルへの変換
マテリアルバリアントをマテリアルに変換するには、以下の 2 つの方法があります。
Hierarchy ビューから変換する
Project ウィンドウでマテリアルバリアントを選択します。
マテリアル Inspector で Hierarchy ダイアログを展開します。
Material type のドロップダウンで Material を選択します。
Hierarchy ビューからマテリアルを変換する
Settings ドロップダウンから変換する
マテリアル Inspector で Settings ドロップダウンをクリックします。
ドロップダウンで Flatten Material Variant を選択します。
Flatten Material Variant オプション。
追加リソース
ビルトインレンダーパイプラインのマテリアルバリデーター