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

 
 
 

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

注:

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

カラー ランプを使用する

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

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

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

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

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

    ランプ位置ランプ速度、またはランプ加速度は、ランプだけから入力を受け付けることができます。各フレームではランプ(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 値は編集しないでください。編集した場合、不正確な結果になることがあります。

    カラー ボックスのカラーがそのコンポーネント値を表すアトリビュートは、RGB PP および白熱光 PP (Incandescence PP)だけです。同等のカラーを持たないその他のアトリビュートについては、カラー エディタを使用して、カラーを直接クリックせずに、R、G、B ボックスに値を入力すると、値を編集できます。

    たとえば、ランプで対応するポイントの R、G、B 値を 100、0、0 に設定して、ライフスパンのあるポイントのランプ加速度(Ramp Acceleration)を(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 値は編集しないでください。編集した場合、不正な値をアトリビュートに適用することになります。

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

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

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

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

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

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

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

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

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

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

  3. 既存のランプを使用する場合は、マッピング先(Map To)メニューからそれを選択します。
  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)を表示します。RGB PP の右で、<-arrayMapper1.outColorPP を右ボタン クリックし、ポップアップ メニューでランプの編集(Edit Ramp)を選択します。

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

  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)を表示します。RGB PP の右側にある空白で、右マウス ボタンをクリックし、ランプの作成(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 ヘルプから切り取って、それをスクリプト エディタ(Script Editor)にペーストします。

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