seexpr シェーダ エクスプレッションを作成して、ディスクリプションに割り当てられているマテリアルおよびシェーダを修正することができます。たとえば、マテリアルのシェーディング ネットワークを作成し、seExpr シェーディング エクスプレッションを使用して、ヘアのグルーム内のプリミティブにシェーダからのカラー情報を渡すことができます。
これを行うには、xgen_seexpr ノードを作成してエクスプレッションがマテリアルのシェーディング パラメータにアクセスできるようにする必要があります。このノードは、Ptex マップを読み込み、ディスクリプション内のエクスプレッションを評価することができます。xgen_seexpr ノードはその後レンダー時にこのデータの結果をマテリアルに渡します。
この例では、seExpr エクスプレッションを使用し、ノイズを鏡面反射性チャネルに追加してシェーダを変更する方法について説明します。
カスタム シェーダ パラメータを作成する
- XGen ウィンドウで、プレビュー/出力(Preview/Output)タブをクリックします。
- プレビュー/出力(Preview/Output)タブで、カスタム シェーダ パラメータ(Custom Shader Parameters)に移動します。
- 名前(Name)の横に、SpecNoise と入力します。
- パラメータのタイプとして浮動小数(Float)が選択されていることを確認し、 をクリックします。
Maya が SpecNoise という新しい浮動小数点タイプのシェーディング パラメータを作成します。
次に、スペキュラ カラーをコントロールするノイズ エクスプレッションを作成します。
ノイズ エクスプレッションを作成する
- シェーディング パラメータの横にあるこのアイコン をクリックし、XGen エクスプレッション エディタ(XGen Expression Editor)を開きます。
- XGen エクスプレッション エディタ(XGen Expression Editor)で、次のいずれかの操作を実行します。
- サンプル fbm ノイズ エクスプレッションを使用するには、サンプル(Samples)タブをクリックし、グローバル(Global) > カラー(Color) > プロシージャ(Procedural) > ノイズ(Noise) > fbm を参照します。
- 単純なノイズ エクスプレッションを作成するには、 rand(0.3, 1.3)*noise(0,1)と入力します。
- 適用(Accept)をクリックします。
次に、エクスプレッションを評価する xgen_seexpr ノードを作成します。
xgen_seexpr ノードを作成する
- ハイパーシェード(Hypershade)(ウィンドウ >レンダリング エディタ(Windows > Rendering Editors))を開き、ディスクリプションに割り当てられたシェーダを選択します。
- ノード エディタ(Node Editor) (ウィンドウ > ノード エディタ(Window > Node Editor))で、シェーダ ノードの接続を表示します。
ノード接続の表示、ノードの作成、ノードの接続の詳細については、「ノード エディタ(Node Editor)の基本」を参照してください。
- xgen_seexpr ノードを作成します。
- ノードの出力値(Output Value)をシェーダ ノードのスペキュラ カラー(Specular Color)入力に接続します。
また、Spec1cosine などの xgen_seexpr ノードの別のカラー チャネルを接続することもできます。
次に、 xgen_seexpr ノードでエクスプレッションを登録します。
xgen_seexpr ノードでノイズ エクスプレッションを登録する
- ノード エディタ(Node Editor)で、xgen_seexpr ノードを選択します。
- エクスプレッション(Expression)の横にあるノードのアトリビュート エディタ(Attribute Editor)内で $SpecNoise と入力します。
これにより、ノードが評価するエクスプレッションをポイントします。
- カスタム(Customs)の横に、SpecNoise と入力します。
これにより、ノードでエクスプレッション名が登録されます。
- XGen ウィンドウのプレビュー/出力(Preview/Output)タブで、カスタム シェーダ パラメータ(Custom Shader Parameters)セクションのスライダ コントロールを使用して SpecNoise エクスプレッションの出力値を調整します。