パーティクル サンプラ ノード アトリビュートを設定する
 
 
 

パーティクル サンプラ(Particle Sampler Info)ノードのアトリビュートは、以前のバージョンのパーティクル カラー マッパ、透明度マッパ、白熱光マッパ、存在時間マッパのすべての機能を提供します。詳細については、パーティクル サンプラ ノードを参照してください。

パーティクル サンプラ ノード アトリビュートを設定するには

  1. particleShape を選択して、アトリビュート エディタを表示します。particleSamplerInfo のタブをクリックします。

    particleShape のアトリビュート エディタ(Attribute Editor)には、関連付けられた各パーティクル サンプラ ノードのタブが含まれています。アトリビュート エディタの 2 つのセクション、共通読み取り専用アトリビュート(Common Read-Only attributes)読み取り専用スカラー アトリビュート(詳細)(More Read-Only Scalar Attributes)には、このノードがデフォルトで認識しているアトリビュートがリストされています。また、ユーザ定義のアトリビュートを使用することもできます。

  2. アトリビュートを設定することができます。

パーティクル サンプラ(Particle Sampler Info) ノードの再利用

多くの場合、新しいパーティクル サンプラ(Particle Sampler Info)ノードを作成する必要があるのは、初めて特定のシェーディング ノードのアトリビュートをマップするときに限られます。後で別のアトリビュートをマップするときには、既存のパーティクル サンプラ ノードを使用することができます。

パーティクル サンプラ ノードを再使用することによって、ノードの散乱状態を避けられます。しかし、別の目的のために別のアトリビュート設定が必要な場合は、複数のパーティクル サンプラ ノードを使用することができます。

パーティクル サンプラ ノードを再利用するには

  1. ウィンドウ > レンダリング エディタ > ハイパーシェード(Window > Rendering Editors > Hypershade)を選択します。
  2. ハイパーシェード(Hypershade)Maya の下のユーティリティ(Utilities)、そしてパーティクル サンプラを選択します。
  3. ノードのコネクションを作成するには、ハイパーシェードの作業領域(Work Area)で以下のいずれかを実行します。
    • 中マウス ボタンでノードをクリックして、シェーディング ノードにドラッグします。
    • ノードを中マウス ボタンでクリックし、ポップアップ メニューから、リスト表示される項目へのコネクト、デフォルト(Default)その他(Other)のいずれかを選択します。

      デフォルトその他を選択すると、コネクション エディタ(Connection Editor)に希望のコネクションを作成するよう表示されます。

    ヒント:

    どのパーティクル サンプラ ノードがどのシェーダに付属するのかわからないときには、シェーダを選択し、グラフ(Graph) | アップ(Up)下流コネクション(Downstream Connections)を使用して、関連付けられたユーティリティ(Utility)ノードを表示します。

ユーザ定義アトリビュートの追加

これらのアトリビュートのどれかを使用するには、同じ名前とタイプのアトリビュートを particleShape に追加する必要があります。

任意の名前のアトリビュートを追加して、それをパーティクル サンプラ ノードで使用することはできません。ただし、ユーザ定義アトリビュートのどれかの値を、エクスプレッションを使用して、パーティクル サンプラ ノードが認識するアトリビュートに指定することはできます。

ユーザ定義アトリビュートを追加するには

  1. エミッタを作成します。
  2. アトリビュート エディタを表示して、アトリビュート > アトリビュートの追加(Attributes > Add Attributes)を選択します。
  3. アトリビュートの追加(Add attribute)ウィンドウでパーティクル(Particle)タブをクリックします。
  4. リストをスクロールして、userScalar#PP または userVector#PP アトリビュートを選択します。追加(Add)ボタンをクリックします。

例 1

たとえば、パーティクルが原点から離れるほどノイズが増えるようにしたいとします。このためには、シェーダのノイズをパーティクルの位置ベクトルの mag 関数としてアニメートします。

  1. エミッタを作成します。
  2. パーティクル シェイプを選択し、パーティクルのレンダー タイプ(Particle Render Type)クラウド(s/w)(Cloud(s/w))に設定します。
  3. アトリビュート エディタを表示して、アトリビュート > アトリビュートの追加(Attributes > Add Attributes)を選択します。
  4. アトリビュートの追加ウィンドウでパーティクル(Particle) タブをクリックします。
  5. userScalar1PP アトリビュートを particleShape に追加します。
  6. 次のランタイム エクスプレッションで、このアトリビュートに値を指定(ダイナミクス計算の前または後に)します。
     userScalar1PP = mag(position);
    
    ヒント:

    この例ではエフェクトを得るためにエクスプレッション(式)を使用していますが、ランプを使用してユーザ定義スカラー 1 PP(User Scalar 1PP)をアニメートすることができます。

  7. パーティクル アトリビュート エディタの particleCloud1 タブを選択します。
  8. ノイズ アトリビュートの隣にあるマップ ボタンをクリックします。

    レンダー ノードの作成(Create Render Node)ウィンドウが表示されます。

  9. レンダー ノードの作成(Create Render Node)ウィンドウで Maya の下のユーティリティ(Utilities)をクリックします。
  10. 右パネルで をクリックします。

    コネクション エディタ(Connection Editor)が表示されます。

  11. コネクション エディタ左側から右側への場合)の左のカラムで userScalar1 PP を選択し、右のカラムでノイズを選択します。閉じるボタンをクリックします。

    パーティクル サンプラ ノードのユーザ定義スカラー 1 PP(User Scalar 1 PP)がシェーダのノイズにコネクトされます。

    パーティクル サンプラノードはユーザ定義スカラー 1 PP(User Scalar 1 PP)の値を取得して、それをノイズに渡します。この例では、エクスプレッションを使用してユーザ定義スカラー 1 PP(User Scalar 1 PP)に値を指定しましたが、ランプを使用して値を指定することもできます。

  12. ライトを追加して、シーンを再生します。ウィンドウ > レンダリング エディタ > レンダー ビュー(Window > Rendering Editors > Render View)を選択して、レンダーをテストします。

例 2

たとえば、myNoise というアトリビュート(すでにエクスプレッションが書き込まれているか、またはランプにコネクトされている)がすでにあって、この値をパーティクル サンプラ ノードに渡したいとします。この場合には次のようにします。

  1. ユーザ定義スカラー 1 PP(User Scalar 1 PP)アトリビュートを particleShape に追加します。
  2. 次の行をエクスプレッションの最終行として追加します。
     userScalar1PP = myNoise;
    
  3. パーティクル アトリビュート エディタの particleCloud1 タブを選択します。
  4. ノイズ アトリビュートの隣にあるマップ ボタンをクリックします。

    レンダー ノードの作成(Create Render Node)ウィンドウが表示されます。

  5. レンダー ノードの作成(Create Render Node)ウィンドウで Maya の下のユーティリティ(Utilities)をクリックします。
  6. 右パネルで をクリックします。

    コネクション エディタ(Connection Editor)が表示されます。

  7. コネクション エディタ左側から右側への場合)の左のカラムで UserScalar1 PP を選択し、右のカラムでノイズを選択します。閉じるボタンをクリックします。

    これで、パーティクル サンプラノードはユーザ定義スカラー 1 PP(User Scalar 1 PP)を取得します。このユーザ定義スカラー 1 PP は必要に応じて myNoise の値を取得します。エクスプレッションを使って実行してください。myNoiseuserScalar1PPuserVector1PP のようなユーザ定義アトリビュートのいずれかに単純にコネクトしないでください。