接続オーバーライドでアトリビュートの接続をオーバーライドする

サーフェス シェーダの接続などのアトリビュート接続をオーバーライドするために、接続オーバーライドを作成します。

次のガイドラインと例では、サーフェス シェーダのアトリビュート接続をオーバーライドするための接続オーバーライドの作成方法について説明します。この場合はシェーダが例として使用されていますが、同じガイドラインに従って任意のアトリビュート接続をオーバーライドできます。コレクションにシェーダを追加するのではなく、オーバーライドするノードをコレクションに追加します。

注:

入力接続のみがサポートされています。出力接続はサポートされていません。

このワークフローは上級ユーザ向けです。

サーフェス シェーダのアトリビュート接続をオーバーライドするために、接続オーバーライドを作成します。

  1. コレクションを作成してオブジェクトに追加します。
  2. 2 つ目のコレクションを作成してシェーダを追加します。

    このコレクション内にシェーダ ノードを含めるには、プロパティ エディタ(Property Editor)コレクションのフィルタ(Collection Filters)ドロップダウン リストからシェーダ(Shaders)を選択します。

  3. シェーダ コレクションを右クリックし、接続のオーバーライドを作成(Create Connection Override)を選択します。
  4. シェーダのアトリビュート エディタ(Attribute Editor)からプロパティ エディタ(Property Editor)に、オーバーライドするアトリビュート(透明度(Transparency)など)を中マウス ボタンでドラッグ アンド ドロップします。
  5. プロパティ エディタ(Property Editor)のアトリビュートの横にあるマップ ボタン をクリックします。

    既存のレンダー ノードに接続するには、ハイパーシェード ブラウザ (Hypershade Browser)パネルからオーバーライド(Override)アトリビュートに中マウス ボタンでドラッグ アンド ドロップします。

  6. 注: 接続先の新しいレンダー ノードが含まれないシーンに接続オーバーライドを読み込むと、! がオーバーライドの横に表示されます。この問題を解決するには、失われたレンダー ノードを再度作成してオーバーライドに再度接続します。失われたノードを再度作成すると、レイヤの可視性アイコン の周囲に赤い境界が表示されます。このアイコンをクリックしてレイヤを更新し、更新された結果を確認します。
    ヒント: 同一アトリビュート上で複数のオーバーライドを作成し、オーバーライドの有効化/無効化を切り替えると、異なる結果を得ることができます。

接続オーバーライドを作成して、lamp_body および lamp_brassFixture に割り当てられたシェーダの透明度(Transparency)アトリビュートに割り当てられたテクスチャをオーバーライドします。

ヒント: 透明度(Transparency)アトリビュートで相対オーバーライドまたは絶対オーバーライドを作成し、テクスチャをオーバーライドに接続することにより、同様の結果を得ることもできます。「値のオーバーライドを使用してネットワークをアトリビュートに接続する」を参照してください。
  1. レイヤを右クリックし、コレクションを作成(Create Collection)を選択してコレクション LampBase_shaders を作成します。
  2. このコレクション内にシェーダ ノードを含めるには、プロパティ エディタ(Property Editor)コレクションのフィルタ(Collection Filters)ドロップダウン リストからシェーダ(Shaders)を選択します。
  3. アウトライナ(Outliner)で、表示(Display) > 割り当てられたマテリアル(Assigned Materials)が有効になっていることを確認します。それらのマテリアルを表示するには、アウトライナ(Outliner)で lamp_body および lamp_brass_Fixture を展開します。これら 2 つのマテリアルを選択し、プロパティ エディタ(Property Editor)追加(Add)をクリックし、コレクションに追加します。
  4. レンダリングの設定(Render Setup)エディタで LampBase_shaders コレクションを右クリックし、接続のオーバーライドを作成(Create Connection Override)を選択します。

    任意の Maya シェーダの透明度(Transparency)アトリビュートをアトリビュート エディタ(Attribute Editor)からプロパティ エディタ(Property Editor)にドラッグ & ドロップし、フラクタル(Fractal)などの任意のテクスチャにオーバーライドをマップします。結果は次のようになります。

注:

複数のシェーダに接続オーバーライドを同時に適用できます。オーバーライド ノードは、コレクション内のすべてのシェーダで指定されたアトリビュートを検索します。この場合、blinn と lambert の両方のシェーダで透明度(Transparency)アトリビュートが指定されているため、オーバーライドが両方のシェーダの透明度(Transparency)に適用されます。

接続オーバーライドはコレクション内のすべてのシェーダに適用されます。たとえばこの場合では、LampBase_shaders コレクション内の lampBody_blinn と lampBase_lambert です。フルーツ ボウルにも lampBody_blinn または lampBase_lambert のいずれかのシェーダが割り当てられると、本来の目的がランプの透明度のみをオーバーライドすることだとしても、フルーツ ボウルに透明度オーバーライドが適用されます。そのため、オブジェクトのシェーダを誤ってオーバーライドしないようにするには、レイヤの各オブジェクトに適用されたシェーダを確認することをお勧めします。このためには、アウトライナ(Outliner)表示 > 割り当てられたマテリアル(Display > Assigned Materials)を選択します。

関連トピック