ダイナミック プロパティ アサインメントは Render Tree の機能の 1 つです。この機能では、1 つのシェーダからの出力を 1 つまたは複数のシェーダ パラメータの入力として使用することにより、シェーダを拡張できます。各ノードは、1 つの出力と 1 つ以上の入力を持つため、ほぼ無数のノードを接続できます。たとえば、2D または 3D テクスチャを使用してマテリアル シェーダの反射を制御したり、別のテクスチャを使用して鏡面反射を制御することができます。
Render Tree の接続にはごく基本的なものもあります。たとえば、カラー出力をオブジェクトのサーフェイス入力に接続することは単にオブジェクトのカラーを変更することと同じであり、ユーザはその結果を容易に予想できます。しかし、あるシェーダの[Reflection]入力にフラクタル シェーダを接続したり、あるマテリアルの[Displacement]入力にクラウド テクスチャを接続する場合はどうでしょう。その組み合わせは無限にあります。
通常、シェーダ ノードを接続するには、一方のシェーダ ノードの右側にある出力ポートをクリックして、もう一方のシェーダ ノードの左側にある入力ポートにドラッグするか、またはその反対に入力ポートを出力ポートにドラッグします。
データは最初のノードからの接続に沿って移動し、2 番目のノードによって処理されます。
ポートが接続されると、それに関連するパラメータの値は接続によって制御されます。つまり、パラメータ値は、そのシェーダのプロパティ エディタで設定することができません。さらに、パラメータおよびそのコントロール(チェックボックス、スライダなど)は、表示されません。接続を削除すると、コントロールはプロパティ エディタに再び表示されるようになります。
データのタイプによって(ポート カラーで示される)、特定の 2 ポートを接続できるかどうかを決まります。2 つのポートを接続できない場合は、ほとんどの場合、タイプに互換性がありません。詳細については、「パラメータのポート: 入力と出力」を参照してください。
ノードの出力から伸びる接続矢印を作成したら、そのカーソルを別のノード内のポートまでドラッグしてみましょう。その接続が可能であるかどうかがわかります。
Render Tree にシェーダ ノードがすでにある場合、出力ポートのポート アイコンを別のノードにドラッグすることによって接続できます。また、Preset Manager のノードを、あるノードのポートに直接ドラッグすることによって、新しいノードの追加と接続を同時に行うこともできます(シェーダ コンパウンドの場合はこれができません)。
接続にマウス ポインタを重ねると、接続されているポートがハイライト表示されます。ポートが折りたたまれていたりビューがあまりにも遠くズーム アウトされているせいでポートが表示されない場合は、ポートに関する情報がポップアップで表示されます。
集約されているノード、ポートグループ、およびテクスチャレイヤへの接続
ポート グループ、テクスチャ レイヤ、またはノード全体が集約されていると、そのポートは表示されません。集約された状態のノードは、展開せずにポップアップ メニューを使用してポートに接続することができます。
出力ポートから、集約されているノード、ポート グループ、またはテクスチャ レイヤに接続矢印をドラッグします。マウス ボタンを放すと、ポップアップ メニューが開いて、その接続に有効なすべての入力ポートを表示します。
すでに接続されているポートには名前の横に丸印が付いています。すでに接続されているポートを選択した場合、古い接続が新しい接続で置き換わります。
シェーダ ノードを Preset Manager または[ノード]メニューから取得して接続する方法のほか、コンテキスト メニューを使用して、特定のノードを Render Tree のワークスペースに直接挿入する方法があります。他のノード間にノードを挿入するには、以下の 3 つの方法があります。
テクスチャ レイヤを使用して、シェーダのパラメータにブレンドします。RenderTree でのテクスチャレイヤの操作については、「Render Tree でテクスチャ レイヤを操作する」を参照してください。
テクスチャ シェーダおよびその他の一定のプロパティでは、プロジェクションを選択する必要があります。既存のプロジェクションを指定するか、Render Tree の左上にあるテクスチャ プロジェクション コントロールを使用して新しいプロジェクションを作成することができます。
A |
複数のオブジェクトで同じマテリアルが使用される場合は、[すべて](All)または特定の 1 つのオブジェクトを選択できます。 このボックスは、マテリアルが複数のオブジェクトで共有されている場合にのみ表示されます。Render Tree がロックされていなければ、シーンでオブジェクトを選択すると自動的に更新されます。 |
B |
使用する、既存のプロジェクションを選択します。 テクスチャを適用するときに、オブジェクトに 1 つまたは複数のプロジェクションが既に含まれている場合は、テクスチャには最初のプロジェクションが自動的に使用されます。ただし、このボックスは、特定のプロジェクションを明示的に選択するまで空白となります。 同じマテリアルが使用されている複数のオブジェクトで異なるプロジェクションが使用されている場合は、1 つのプロジェクション名ではなく、[(複数の値)]((multiple values))が表示されます。すべてのオブジェクトに同じ名前のプロジェクションがある場合は、プロジェクションを名前で選択できます。ただし、異なるオブジェクトのプロジェクションに命名規則を使用している場合は、アスタリスク(*)のワイルドカードを使用して文字列を入力できます。 |
C |
クリックすると、選択したプロジェクションのプロパティとサポート(存在する場合)を変更します。 複数のテクスチャ プロジェクションの場合は、複数の選択項目のプロパティ エディタが開きます。このプロパティ エディタで行った変更は、すべてのプロジェクションに適用されます。 |
D |
クリックすると、新しいプロジェクションを作成できます。「テクスチャ プロジェクションを作成する」を参照してください。 |
テクスチャ プロジェクションに関する情報を表示および編集する以外に、選択したノードによって使用されている他のマップ(ウェイト マップ、頂点カラー マップなど)の情報を取得することもできます。複数種のマップを使用するノードを複数選択すると、テクスチャ プロジェクション コントロールが無効になります。
テクスチャ プロジェクションの詳細については、「テクスチャを適用と編集する」を参照してください。