ランプ テクスチャとは、カラーまたはグレースケール値がイメージ全体にわたって 1 つの値から別の値へと変化する 2D テクスチャです。ランプを使用すると、パーティクルの存在時間に合わせてパーティクル単位のアトリビュートを制御することができます。ランプ テクスチャを使用すると、そのパーティクルの別のパーティクル単位のアトリビュートにコネクトすることもできます。一般に、ランプ テクスチャは、rgbPP、opacityPP、および radiusPP アトリビュートとともに使用されます。ほとんどのパーティクル単位のアトリビュートの場合、ランプを使用してその値を制御するためには、その前にアトリビュートをパーティクル オブジェクトに追加しなければなりません。
カラー ランプを使用すると、パーティクルの存在時間に合わせて、ベクトル配列の(パーティクル単位の)アトリビュートを変更することができます。ベクトル配列の(パーティクル単位の)アトリビュートについてランプを作成すると、そのアトリビュートがカラー ランプにコネクトされます。
ランプ アトリビュートの詳細については、 ランプ(Ramp)を参照してください。
ランプおよびエクスプレッションを使用して位置、速度、またはアクセラレーションを設定する場合、ランプは、エクスプレッションがその値をフレーム内で制御する前に値を設定します。
ランプ位置、ランプ速度、またはランプ アクセラレーションは、ランプだけから入力を受け付けることができます。各フレームではランプ(Ramp)アトリビュートが計算された後に、ランプ アトリビュートの値に基づいてダイナミクスが計算されます。
アトリビュート エディタに、そのアトリビュートを制御する、デフォルト カラーのランプが表示されます。アトリビュートの 3 つのコンポーネントの値は、パーティクルの存続期間にわたって、ランプの垂直コンポーネント(V)の RGB 値に設定されます。ランプの一番下の値はライフスパンの始めに使用され、一番上の値はライフスパンの終わりに使用されます。
各パーティクルのライフスパンの最初では、ランプの一番下の RGB 値が赤(1,0,0)なので、アトリビュートの左、中、右のベクトル コンポーネントはデフォルトで 1、0、0 です。
ライフスパンの中間では、RGB が緑(0,1,0)なので、ベクトル コンポーネントは 0、1、0 です。ライフスパンの終わりでは、RGB が青(0,0,1)なので、ベクトル コンポーネントは 0、0、1 です。Maya は、これらの 3 つのポイント間に、ベクトル コンポーネントを補間します。
カラー エディタ(Color Editor)で R、G、B に任意の数値を使用することができます。0 から 1 までの範囲外の値も有効ですが、テクスチャ サンプル(Texture Sample)カラー ボックスではそれに相当する有意なカラー表示を行えません。HSV 値は編集しないでください。編集した場合、不正確な結果になることがあります。
カラー ボックスのカラーがそのコンポーネント値を表すアトリビュートは、rgbPP および incandescencePP だけです。同等のカラーを持たないその他のアトリビュートについては、カラー エディタを使用して、カラーを直接クリックせずに、R、G、B ボックスに値を入力すると、値を編集できます。
たとえば、ランプで対応するポイントの R、G、B 値を 100、0、0 に設定して、ライフスパンのあるポイントの rampAcceleration を(100,0,0)に設定できます。このように値を設定すると、ランプに 1、0、0 と等しい赤が作成されます。ただし、スウォッチで隣り合うポイントは(1,0,0)とは異なり、(100,0,0)で補間されます。
また、ノイズ(Noise)やノイズ周波数(Noise Freq)といった他のランプ アトリビュートをアトリビュート エディタで変更することにより、カラー シーケンスを変更することもできます。ランプ アトリビュートの詳細については、『レンダリング』マニュアルを参照してください。
ランプの水平コンポーネント(U)は、デフォルトでアトリビュートに影響を与えないことに注意してください。正確には、ランプのコントロール コンポーネントは、アトリビュート エディタのテクスチャ サンプル カラーボックスの左端にある垂直線です。水平コンポーネントも同様に使用する場合は、 ランプによるパーティクル単位のアトリビュート制御のカスタマイズを参照してください。
放出されたパーティクルにデフォルトのランプを適用した例を次に示します。
グレースケール ランプを使用すると、float(浮動小数点)配列アトリビュートをパーティクルの存在時間に合わせて変更できます。float 配列(パーティクル単位の)アトリビュートのランプを作成すると、そのアトリビュートはグレースケール ランプにコネクトされます。グレースケール ランプでは、黒は 0 の値を表し、白は 1 の値を表します。
ランプ機能の詳細については、『シェーディング』マニュアルの次の項目を参照してください。
emitterNameRatePP を操作している場合は、放出を存続させる秒数をライフスパンに設定します。放出されたパーティクル オブジェクトは、指定されたライフスパン値が経過すると消滅します。
アトリビュート エディタに、アトリビュートを制御するデフォルトのグレースケール ランプが表示されます。アトリビュートの値は、パーティクルの存続期間にわたって、ランプの垂直コンポーネント(V)の RGB コンポーネントの R カラー値に設定されます。ランプの一番下の値はライフスパンの始めに使用され、一番上の値はライフスパンの終わりに使用されます。
各パーティクルのライフスパンの最初では、ランプの一番下の R コンポーネントが 1 であるため(カラーは白で、RGB 値は 1、1、1)、アトリビュートの値はデフォルトで 1 です。
ライフスパンの真ん中では、ランプの最下部で R コンポーネントは 0.5 なので、アトリビュートの値は 0.5 です(カラーは、RGB の値が 0.5、0.5、0.5 のグレーです)。
ライフスパンの最後では、ランプの最下部で R コンポーネントは 0 なので、アトリビュートの値は 0 です (カラーは、RGB の値が 0、0、0 の黒です)。
ランプ値を編集する場合、カラー エディタ(Color Editor)の R に任意の数値を使用することができます。0 から 1 までの範囲外の値も有効ですが、テクスチャ サンプル(Texture Sample)カラー ボックスではそれに相当する有意なカラー表示を行えません。HSV 値は編集しないでください。編集した場合、不正な値をアトリビュートに適用することになります。
通常、カラー ボックスのカラーがアトリビュートの値を表すアトリビュートは、opacityPP だけです。同等のカラーを持たないその他のアトリビュートについては、カラー エディタを使用して、カラーを直接クリックせずに、R ボックスに値を入力すると、カラー値を編集できます。
また、ノイズ(Noise)やノイズ周波数(Noise Freq)といった他のランプ アトリビュートをアトリビュート エディタで変更することにより、カラー シーケンスを変更することもできます。ランプ アトリビュートの詳細については、『レンダリング』マニュアルを参照してください。
ランプの水平コンポーネントはアトリビュートに影響を与えないことに注意してください。水平コンポーネントも使用する場合は、下の ランプによるパーティクル単位のアトリビュート制御のカスタマイズを参照してください。
ランプによるパーティクル単位のアトリビュート制御のカスタマイズ
ランプには U(水平)と V(垂直)の 2 つの入力があります。デフォルトでは、配列マッパの V 入力はパーティクルの存在時間にコネクトされ、U 入力はコネクトされません。ランプの作成中はこれらの入力コネクションを変更できます。
円形、対角、ボックスなど、その他のランプ オプションは、両軸に対して変更を行います。これらのオプションは、ランプのアトリビュート エディタで選択します。
パーティクル単位のアトリビュートのランプ コントロールを調整する場合、次の操作を行うことができます。
パーティクルのアトリビュートによりランプから値を取得する方法を指定するには
上に示すデフォルトのランプの場合、入力 U および入力 V にパーティクルの存在時間を使用しても意味はありません。なぜなら、ランプのカラーが U(水平)方向に変化しないからです。
ランプのアトリビュートを編集して、次に示すようなランプを作成した場合、入力 U および入力 V の両方にパーティクルの存在時間を選択すると、アトリビュートの制御の調整がきくようになります。
ランプの入力カラーとしてテクスチャを使用することもできます。たとえば、2D のチェッカ テクスチャをカラーのランプに次のようにマップすることもできます。
アトリビュート値がランプのカラーに有意に表示されるようにする
カラー エディタ(Color Editor)で RGB(または R)のランプ値を編集する場合、0 から 1 までの範囲外の値も有効ですが、テクスチャ サンプル(Texture Sample) スウォッチではそれに相当する有意なカラー表示を行うことができません。有意なカラーを作成する場合は、次の操作を行います。
アトリビュート値がランプのカラーに有意に表示されるようにするには
最小値は、デフォルトでライフスパンの始めにアトリビュートが持つ最小値(ランプの一番下の値)を設定します。最大値は、デフォルトでライフスパンの終わりにアトリビュートが持つ最大値(ランプの一番上の値)を設定します。
この例では、ランプの V 座標を使用して、原点からの距離に基づいてパーティクルのカラーを作成します。この例ではエミッタとフィールドを使用していますが、これらについては以下の章で説明しています。この例を使用する前に、エミッタとフィールドについて読んでおく必要があるかもしれません。または、MEL コードをスクリプト エディタ(Script Editor)にカット アンド ペーストして、エミッタとフィールドを作成してもかまいません。
原点からの距離に従ってパーティクルにカラー付けするためにランプを使用するには
これを行うには、次の MEL コマンドを Maya ヘルプ(Maya Help)からコピーして、それをスクリプト エディタ(Script Editor)にペーストします。
emitter -pos 0 0 0 -type volume -r 100 -sro 0 -nuv 0 -cye none -cyi 1 -spd 1 -srn 0 -nsp 1 -tsp 0 -mxd 0 -mnd 0 -dx 1 -dy 0 -dz 0 -sp 0 -vsh sphere -vof 0 0 0 -vsw 360 -tsr 0.5 -afc 1 -afx 1 -arx 0 -alx 0 -rnd 0 -drs 0 -ssz 0 ;
scale 10 10 10;
particle;
connectDynamic -em emitter1 particle1;
これを行うには、次の MEL コマンドを Maya ヘルプ(Maya Help)からコピーして、それをスクリプト エディタ(Script Editor)にペーストします。
radial -pos 0 0 0 -name pushIn -m -2 -att 0 -typ 0 -mxd -1 -vsh sphere -vex 1-vof 0 0 0 -vsw 360 -tsr 0.5 ;
scale 10 10 10;
connectDynamic -f pushIn particle1;
これを行うには、次の MEL コマンドを Maya ヘルプ(Maya Help)からコピーして、それをスクリプト エディタ(Script Editor)にペーストします。
addAttr -ln "rgbPP" -dt vectorArray particleShape1;
rgbVPP = mag( position ) / 10;
mag(position) は、常に、原点からパーティクルまでの距離と同じです。10 で割っていますが、この値は、設定時に、パーティクルが原点から取りうる最大距離です。
言い換えると、このエクスプレッションにより、ランプへの V 入力は、パーティクルが原点にある場合は値が 0 になり、パーティクルが原点をずっと離れて球体の境界にある場合は値が 10 になるということを表しています。
これを行うには、次の MEL コマンドを Maya ヘルプから切り取って、それをスクリプト エディタにペーストします。
addAttr -is true -ln "pointSize" -at long -min 1 -max 60 -dv 2 particleShape1;
setAttr "particleShape1.pointSize" 4;