ランプ テクスチャを使用してパーティクル アトリビュートを設定する
 
 
 

ランプ テクスチャとは、カラーまたはグレースケール値がイメージ全体にわたって 1 つの値から別の値へと変化する 2D テクスチャです。ランプを使用すると、パーティクルの存在時間に合わせてパーティクル単位のアトリビュートを制御することができます。ランプ テクスチャを使用すると、そのパーティクルの別のパーティクル単位のアトリビュートにコネクトすることもできます。一般に、ランプ テクスチャは、rgbPPopacityPP、および radiusPP アトリビュートとともに使用されます。ほとんどのパーティクル単位のアトリビュートの場合、ランプを使用してその値を制御するためには、その前にアトリビュートをパーティクル オブジェクトに追加しなければなりません。

注:メタボール サーフェス(Blobby Surface)パーティクル オブジェクトのカラー(Color)、透明度(Transparency)、または白熱光(Incandescence)を、そのライフスパンにわたって設定するには、 パーティクル サンプラ(Particle Sampler Info)ノードの使用例を参照してください。

カラー ランプを使用する

カラー ランプを使用すると、パーティクルの存在時間に合わせて、ベクトル配列の(パーティクル単位の)アトリビュートを変更することができます。ベクトル配列の(パーティクル単位の)アトリビュートについてランプを作成すると、そのアトリビュートがカラー ランプにコネクトされます。

ランプ アトリビュートの詳細については、 ランプ(Ramp)を参照してください。

カラー ランプを使用するには

  1. パーティクル オブジェクトを選択します。
  2. アトリビュート エディタ(Attribute Editor)パーティクル単位(配列)アトリビュート(Per Particle (Array) Attributes)セクションを開きます。次に目的のアトリビュート フィールドを右クリックし、ランプの作成(Create Ramp)を選択します。
    注:位置、速度、またはアクセラレーションを制御するには、それぞれランプ位置(rampPosition)ランプ速度(rampVelocity)、またはランプ アクセラレーション(rampAcceleration)アトリビュート フィールドを右クリックして、ランプの作成を選択します。位置、速度、アクセラレーションのアトリビュートに対して直接ランプを使用することはできません。

    ランプおよびエクスプレッションを使用して位置、速度、またはアクセラレーションを設定する場合、ランプは、エクスプレッションがその値をフレーム内で制御する前に値を設定します。

    ランプ位置ランプ速度、またはランプ アクセラレーションは、ランプだけから入力を受け付けることができます。各フレームではランプ(Ramp)アトリビュートが計算された後に、ランプ アトリビュートの値に基づいてダイナミクスが計算されます。

    パーティクルの存在時間に合わせてアトリビュートを制御するデフォルトのランプが作成されます。

  3. アトリビュート エディタライフスパン アトリビュート(Lifespan Attributes)セクションで、ライフスパン モード(Lifespan Mode)定数(Constant)に設定し、ライフスパン(Lifespan)を、アニメーションの中でパーティクルを存在させたい時間(秒単位)に設定します。
  4. アトリビュート エディタパーティクル単位(配列)のアトリビュート セクションで、たった今ランプを作成したアトリビュートのフィールドを右クリックしてから、arrayMappern .outColorPP > ランプの編集(arrayMapper n.outColorPP > Edit 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 つのポイント間に、ベクトル コンポーネントを補間します。

  5. 必要に応じて、ランプの RGB カラー値を編集します(詳細については、『レンダリング』マニュアルを参照)。

    カラー エディタ(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 の値を表します。

ランプ機能の詳細については、『シェーディング』マニュアルの次の項目を参照してください。

グレースケール ランプを使用するには

  1. パーティクル オブジェクトを選択します。
  2. アトリビュート エディタ(Attribute Editor)パーティクル単位(配列)アトリビュート(Per Particle (Array) Attributes)セクションを開きます。次に目的のアトリビュート フィールドを右クリックし、ランプの作成(Create Ramp)を選択します。

    パーティクルの存在時間に合わせてアトリビュートを制御するデフォルトのランプが作成されます。

  3. アトリビュート エディタライフスパン アトリビュート(Lifespan Attributes)セクションで、ライフスパン モード(Lifespan Mode)定数(Constant)に設定し、ライフスパン(Lifespan)を、アニメーションの中でパーティクルを存在させたい時間(秒単位)に設定します。

    emitterNameRatePP を操作している場合は、放出を存続させる秒数をライフスパンに設定します。放出されたパーティクル オブジェクトは、指定されたライフスパン値が経過すると消滅します。

  4. アトリビュート エディタ(Attribute Editor)パーティクル単位(配列)のアトリビュート セクションで、たった今ランプを作成したアトリビュートのフィールドを右クリックしてから、arrayMappern .outColorPP > ランプの編集(arrayMapper n.outColorPP > Edit Ramp)を選択します。

    アトリビュート エディタに、アトリビュートを制御するデフォルトのグレースケール ランプが表示されます。アトリビュートの値は、パーティクルの存続期間にわたって、ランプの垂直コンポーネント(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 の黒です)。

    ランプのこれらの 3 つのポイント間の値は、Maya によって補間されます。

    ヒント:存在時間は、デフォルトでは、ランプで使用するアトリビュートです。その他のアトリビュートも使用できます。
  5. 必要に応じて、ランプの R カラー値を編集します(詳細については、『レンダリング』マニュアルを参照)。

    ランプ値を編集する場合、カラー エディタ(Color Editor)の R に任意の数値を使用することができます。0 から 1 までの範囲外の値も有効ですが、テクスチャ サンプル(Texture Sample)カラー ボックスではそれに相当する有意なカラー表示を行えません。HSV 値は編集しないでください。編集した場合、不正な値をアトリビュートに適用することになります。

    通常、カラー ボックスのカラーがアトリビュートの値を表すアトリビュートは、opacityPP だけです。同等のカラーを持たないその他のアトリビュートについては、カラー エディタを使用して、カラーを直接クリックせずに、R ボックスに値を入力すると、カラー値を編集できます。

    また、ノイズ(Noise)ノイズ周波数(Noise Freq)といった他のランプ アトリビュートをアトリビュート エディタで変更することにより、カラー シーケンスを変更することもできます。ランプ アトリビュートの詳細については、『レンダリング』マニュアルを参照してください。

    ランプの水平コンポーネントはアトリビュートに影響を与えないことに注意してください。水平コンポーネントも使用する場合は、下の ランプによるパーティクル単位のアトリビュート制御のカスタマイズを参照してください。

ランプによるパーティクル単位のアトリビュート制御のカスタマイズ

ランプには U(水平)と V(垂直)の 2 つの入力があります。デフォルトでは、配列マッパの V 入力はパーティクルの存在時間にコネクトされ、U 入力はコネクトされません。ランプの作成中はこれらの入力コネクションを変更できます。

円形、対角、ボックスなど、その他のランプ オプションは、両軸に対して変更を行います。これらのオプションは、ランプのアトリビュート エディタで選択します。

パーティクル単位のアトリビュートのランプ コントロールを調整する場合、次の操作を行うことができます。

パーティクルのアトリビュートによりランプから値を取得する方法を指定するには

  1. 必要な場合は、アトリビュートをパーティクルに追加します。
  2. アトリビュート エディタ(Attribute Editor)パーティクル単位(配列)アトリビュート(Per Particle (Array) Attributes)セクションを開きます。次に目的のアトリビュート フィールドを右クリックし、ランプの作成(Create Ramp) を選択します。

    ランプの作成オプション ウィンドウが表示されます。

  3. 既存のランプを使用する場合は、マッピング先(Map To)メニューから ramp を選択します。
  4. U(水平)と V(垂直)ランプ コンポーネントを制御するアトリビュートをカスタマイズするには、入力 U(Input U)入力 V(Input V) について下記から 1 つを選択します。
  5. 入力 U または入力 V メニューでアトリビュートをクリックします。
    ヒント:入力 U および入力 V の両方にバーティクルの存在時間(Particle's Age)を使用した場合、パーティクルのライフスパンにわたってアトリビュートを制御するランプの部分が、次の図に示すように斜線で示されます。

    上に示すデフォルトのランプの場合、入力 U および入力 Vパーティクルの存在時間を使用しても意味はありません。なぜなら、ランプのカラーが U(水平)方向に変化しないからです。

    ランプのアトリビュートを編集して、次に示すようなランプを作成した場合、入力 U および入力 V の両方にパーティクルの存在時間を選択すると、アトリビュートの制御の調整がきくようになります。

    ランプの入力カラーとしてテクスチャを使用することもできます。たとえば、2D のチェッカ テクスチャをカラーのランプに次のようにマップすることもできます。

ランプを編集する

ランプを編集すると、カラーを変更できます。

ランプ機能の詳細については、『シェーディング』マニュアルの次の項目を参照してください。

ランプを編集するには

  1. パーティクル シェイプのアトリビュート エディタ(Attribute Editor)を表示します。rgbPP の右で、<-arrayMapper1.outColorPP を右ボタン クリックし、ポップアップ メニューでランプの編集(Edit Ramp)を選択します。

    rgbPP のランプがアトリビュート エディタに表示されます。

  2. ランプ内のカラーを編集します。ランプ内のカラーの編集方法については、『ペイント エフェクト』の「ランプ」を参照してください。

既存のランプにマップする

デフォルトのランプへのマッピングのほかにも、シーンの中ですでに使用したランプにアトリビュートをマップすることもできます。

既存のランプにマップするには

  1. ランプを作成したいパーティクル単位のアトリビュートのデータ フィールドにマウス カーソルを置きます。右マウス ボタンをクリックしてポップアップ メニューを表示し、ランプの作成(Create Ramp) を選択して、ランプの作成オプション(Create Ramp Options)ウィンドウを表示します。
  2. マッピング先(Map to)ボタンをクリックしてプルダウン メニューを表示します。

    シーンで使用しているランプがポップアップ メニューにリストされます。

  3. そのリストからランプを 1 つ選択します。

アトリビュート値がランプのカラーに有意に表示されるようにする

カラー エディタ(Color Editor)で RGB(または R)のランプ値を編集する場合、0 から 1 までの範囲外の値も有効ですが、テクスチャ サンプル(Texture Sample) スウォッチではそれに相当する有意なカラー表示を行うことができません。有意なカラーを作成する場合は、次の操作を行います。

アトリビュート値がランプのカラーに有意に表示されるようにするには

  1. ランプの最も小さな RGB(または R)値を 0 に、最も大きな RGB(または R)値を 1 に設定します。
  2. ランプにコネクトされているパーティクル単位のアトリビュートのアトリビュート フィールドを右クリックし、押したままマウス カーソルを右にスライドさせ、配列マッパの編集(Edit Array Mapper)を選択します。

    配列マッパを使用すると、パーティクルに適用されたアトリビュート値の範囲を増減することができます。

  3. アトリビュート エディタ(Attribute Editor)の配列マッパ タブをクリックします。
  4. アトリビュートに使用する最小値と最大値を、最大値(Min Value)および最小値(Max Value)に入力します。

    最小値は、デフォルトでライフスパンの始めにアトリビュートが持つ最小値(ランプの一番下の値)を設定します。最大値は、デフォルトでライフスパンの終わりにアトリビュートが持つ最大値(ランプの一番上の値)を設定します。

アトリビュートにコネクトされているランプのコントロールを解除する

ランプによるアトリビュート制御を解除するには、ランプにコネクトされているパーティクル単位のアトリビュートのアトリビュート フィールドを右クリックし、押したままマウス カーソルを右にスライドさせ、次のいずれかのメニュー項目を選択します。

コネクションの解除(Break Connection)

パーティクルのシェイプ ノードへの配列マッパの入力を解除します。このメニュー項目を選択しても、ランプ ノードまたは配列マッパは削除されません。このメニュー項目は、コネクションを解除するときにランプを削除したくない場合に使用します。

配列マッパの削除(Delete Array Mapper)

配列マッパを削除することによって、パーティクルのシェイプ ノードへの配列マッパの入力を解除します。他にコネクションがある場合は、ランプは削除されません。このメニュー項目は、シーン内でランプを使用する必要がなくなった場合に選択します。

ランプの例

原点からの距離に基づいてパーティクルのカラーを作成する

この例では、ランプの V 座標を使用して、原点からの距離に基づいてパーティクルのカラーを作成します。この例ではエミッタとフィールドを使用していますが、これらについては以下の章で説明しています。この例を使用する前に、エミッタとフィールドについて読んでおく必要があるかもしれません。または、MEL コードをスクリプト エディタ(Script Editor)にカット アンド ペーストして、エミッタとフィールドを作成してもかまいません。

原点からの距離に従ってパーティクルにカラー付けするためにランプを使用するには

  1. 球体ボリューム エミッタを作成します。ボリューム スピード アトリビュート(Volume Speed attributes)センターから遠ざかる(Away From Center)を 1、その他のスピードをすべて 0 に設定します。スケール(Scale)を(10,10,10)に設定します。

    これを行うには、次の 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;
  2. 球体(Sphere)の、ボリューム シェイプ(Volume Shape)を持つ放射状フィールドをパーティクルに適用します。マグニチュード(Magnitude)を -2 に、減衰(Attenuation)を 0 に設定し、最大距離の使用(Use Max Distance)を無効にします。ボリュームの排除(Volume Exclusion)をオンにし、スケール(Scale)を(10,10,10)に設定します。これにより、パーティクルが空間領域内にとどまるようになります。

    これを行うには、次の 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;
  3. パーティクル単位のカラーをパーティクルに追加します。

    これを行うには、次の MEL コマンドを Maya ヘルプ(Maya Help)からコピーして、それをスクリプト エディタ(Script Editor)にペーストします。

    addAttr -ln "rgbPP" -dt vectorArray particleShape1;
  4. パーティクルを選択し、パーティクル アトリビュート エディタ(Particle Attribute Editor)を表示します。rgbPP の右側にある空白で、右マウス ボタンをクリックし、ランプの作成(Create Ramp) を選択して、ランプの作成オプション(Create Ramp Options)ウィンドウを表示します。
  5. 入力 U(Input U)なし(None)(デフォルト)に、入力 V(Input V)rgbVPP に、マッピング先(Map to)新規ランプ(New Ramp)(デフォルト)に設定します。OK ボタンをクリックします。

    rgbVPP という名前の新しいアトリビュートがアトリビュート エディタに表示されます。

  6. rgbVPP の横で右マウス ボタンクリックし、ダイナミクス前のランタイム エクスプレッション(Runtime Expression Before Dynamics)またはダイナミクス後のランタイム エクスプレッション(Runtime Expression After Dynamics)を選択します。エクスプレッション エディタ(Expression Editor)で、次の行をコピー & ペーストし、作成(Create)をクリックします。
     rgbVPP = mag( position ) / 10;

    mag(position) は、常に、原点からパーティクルまでの距離と同じです。10 で割っていますが、この値は、設定時に、パーティクルが原点から取りうる最大距離です。

    言い換えると、このエクスプレッションにより、ランプへの V 入力は、パーティクルが原点にある場合は値が 0 になり、パーティクルが原点をずっと離れて球体の境界にある場合は値が 10 になるということを表しています。

  7. パーティクルを少しだけ大きくする場合は、

    これを行うには、次の MEL コマンドを Maya ヘルプから切り取って、それをスクリプト エディタにペーストします。

    addAttr -is true -ln "pointSize" -at long -min 1 -max 60 -dv 2 particleShape1;
    setAttr "particleShape1.pointSize" 4;
  8. スムース シェーディング(Smooth Shading)をオンにし、シーンを巻き戻して再生します。