オブジェクトのシェーディングをオーバーライド

オブジェクトのシェーディングをオーバーライドするには、次の 2 つの方法があります。

この機能は Maya のシェーダとサードパーティのシェーダの両方に適用されます。

注: 以前は、コレクションを作成するときに、シェーダ(Shaders)コレクション フィルタにはサーフェス シェーダのみが含まれていました。Maya 2018 では、このフィルタにサーフェス シェーダとボリューム シェーダが両方含まれるようになりました。

シーン内の各オブジェクトに割り当てられたシェーダを特定する

アウトライナ(Outliner)表示 > 割り当てられたマテリアル(Display > Assigned Materials)オプションを有効にして、シーン内の各オブジェクトに割り当てられたシェーダを表示します。

オブジェクトにフェース単位のシェーダが割り当てられている場合は、オブジェクトに割り当てられたすべてのシェーダがリスト表示され、マテリアル(Materials)という見出しの下にグループ化されます。「シーン内の各オブジェクトに割り当てられたシェーダを特定する」を参照してください。

用途例

例 1:

名前が似ているオブジェクトがある場合は、次のように各オブジェクトに割り当てられたマテリアルを簡単にオーバーライドできます。

3 つの窓を含むシーンがある場合、エクスプレッションを使用して、同じコレクションに 3 つすべての窓を動的に追加することができます。たとえば、すべての窓の名前に文字 window が含まれる場合、エクスプレッションで *window* と入力すると、コレクションにこれらの窓が含まれます。その後、コレクションでマテリアル オーバーライドを作成すると、元のマテリアルに新しいマテリアルをオーバーライドできます。「コレクション内のオブジェクトに適用されたマテリアルをオーバーライドする」を参照してください。

シーンに新しい建物を追加した場合、その窓の名前にも window という文字が含まれていれば、新しい窓がコレクションに含まれるようにエクスプレッションを再適用し、マテリアルのオーバーライドを適用できます。「シーンの更新時にレンダリング設定を更新する」を参照してください。

ヒント: これにより、新しいマテリアルを新しい窓に個別に適用する必要がなくなります。

例 2:

100 個のオブジェクトが配置された 1 つのシーンがあります。各オブジェクトには異なるシェーダが適用されていて、各シェーダを 10% 明るくする必要がある場合は、次の手順を実行できます。

  1. これら 100 個のオブジェクトを含むコレクションを作成します。
  2. コレクションを選択して、オーバーライドを追加(Add Override)ドロップダウン リストから相対(Relative)を選択し、いずれかのシェーダのアトリビュート エディタ(Attribute Editor)内の白熱光(Incandescence)アトリビュートをプロパティ エディタ(Property Editor)に中マウス ボタンでドラッグ アンド ドロップします。

    オブジェクト コレクションの下にシェーダのサブコレクションおよび対応する白熱光オーバーライドが自動的に作成されます。

  3. オーバーライドを選択し、プロパティ エディタ(Property Editor)の白熱光アトリビュートを調整します。こうすると、コレクションに含まれるすべてのシェーダが明るくなります。

これにより、それぞれのシェーダを個別に調整する手間が省けます。

例 3:

100 個のオブジェクトが配置された 1 つのシーンがあります。各オブジェクトに同じシェーダが適用されていて、これらのオブジェクトの中の 2 つのシェーディングを変更する必要がある場合は、次の手順を実行できます。

  1. レイヤを右クリックし、コレクションを作成(Create Collection)を選択して、これら 100 個のオブジェクトを含むコレクションを作成し、レイヤ内に表示されるようにします。
  2. コレクションを右クリックして、コレクションを作成(Create Collection)を選択して、シェーディングを変更する 2 つのオブジェクトを含むサブコレクションを作成します。
  3. このサブコレクションを右クリックし、マテリアル オーバーライドを作成(Create Material Override)を選択します。

    オーバーライドを選択します。プロパティ エディタ(Property Editor) ボタンをクリックして異なるマテリアルを割り当てるか、ハイパーシェード(Hypershade)の既存のマテリアルをプロパティ エディタ(Property Editor)にドラッグ アンド ドロップします。

    ビューポートが更新され、2 番目のコレクションのメンバーである 2 つのオブジェクトにのみ新しいマテリアルが割り当てられていることがわかります。

この場合、すべてのオブジェクトで同じシェーダが共有されるため、例 2 のようにシェーダ上のアトリビュートをオーバーライドすることはできません。シェーダ オーバーライドを作成すると、すべてのオブジェクトに同じオーバーライドが適用されてしまいます。シェーダ オーバーライドでなく、マテリアル オーバーライドを作成する必要があります。シェーダ オーバーライドはコレクションに対して固有ではなく、同じ初期シェーダ割り当てを共有する同じレイヤ内のすべてのオブジェクトに適用されます。

マテリアルおよびシェーダ オーバーライドの詳細については、「コレクション内のオブジェクトに適用されたマテリアルをオーバーライドする」を参照してください。

例 4:

100 個のオブジェクトが配置された 1 つのシーンがあります。各オブジェクトに異なるシェーダが適用されていて、これらのうち 2 つのオブジェクトのシェーディングを変更する必要がある場合は、次の手順を実行できます。

  1. レイヤを右クリックし、コレクションを作成(Create Collection)を選択して、これら 100 個のオブジェクトを含むコレクションを作成し、レイヤ内に表示されるようにします。
  2. コレクションを右クリックして、コレクションを作成(Create Collection)を選択して、シェーディングを変更する 2 つのオブジェクトを含むサブコレクションを作成します。
  3. このサブコレクションを右クリックして、シェーダのオーバーライドを作成(Create Shader Override)またはマテリアル オーバーライドを作成(Create Material Override)を選択します。

    例 2 のように、シェーダのアトリビュートをオーバーライドすることもできます。たとえば、カラー、白熱光などの任意のアトリビュートをオーバーライドできます。この方法の場合、各オブジェクトが異なるシェーダに最初に割り当てられるため、例 3 と比べてシンプルです。

例 5:

100 個のキャラクタが配置されたシーンがあります。キャラクタはすべて T シャツを着ており、T シャツには異なるシェーダが割り当てられていますが、これらすべての T シャツに新しいテクスチャマップする場合は、次の操作を行います。

  1. レイヤを右クリックし、コレクションを作成(Create Collection)を選択して、これら 100 個のキャラクタを含むコレクションを作成し、レイヤ内に表示されるようにします。
  2. コレクションを選択し、プロパティ エディタ(Property Editor)オーバーライドを追加(Add Override)ドロップダウン リストから絶対(Absolute)を選択します。
  3. 任意のシェーダを選択してそのアトリビュート エディタ(Attribute Editor)を表示し、アトリビュートのカラー(Color)を中マウス ボタンでドラッグし、プロパティ エディタ(Property Editor)にドロップします。

    シェーダのサブコレクションが対応するカラー オーバーライドとともに作成されます。

  4. カラー オーバーライドを選択し、プロパティ エディタ(Property Editor)にある ボタンをクリックして新しいテクスチャに接続します。

    詳細については、「値のオーバーライドを使用してネットワークをアトリビュートに接続する」を参照してください。

例 6:

100 個のキャラクタが配置されたシーンがあります。キャラクタはすべて T シャツを着ており、T シャツには 1 つのテクスチャがマップされていますが、これらすべての T シャツに新しいテクスチャマップする場合は、次の操作を行います。

  1. レイヤを右クリックし、コレクションを作成(Create Collection)を選択して、これら 100 個のキャラクタを含むコレクションを作成します。
  2. レイヤが可視に設定された状態でコレクションを選択し、新しいテクスチャへのマップ元となるファイル ノードを選択します。
  3. ファイル ノードのアトリビュート エディタ(Attribute Editor)で、イメージの名前(Image Name)アトリビュートのファイル パス領域を右クリックして、可視レイヤの絶対オーバーライドを作成(Create Absolute Override for Visible Layer)を選択します。

    ファイル ノードのサブコレクション、および対応するファイル テクスチャ名のオーバーライドが作成されます。

  4. オーバーライドを選択します。プロパティ エディタ(Property Editor)で、新しいテクスチャに接続するフォルダのアイコンをクリックします。