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

パーティクル サンプラ(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)ウィンドウの左側に置きます。
  3. 中マウス ボタンをクリックして、シェーディング ノードにドラッグします。

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

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

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

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

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

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

  1. エミッタを作成します。
  2. アトリビュート エディタ(Attribute Editor)を表示して、アトリビュート > アトリビュートの追加(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. アトリビュートの追加ウィンドウでパーティクル タブをクリックします。
  5. userScalar1PP アトリビュートを particleShape に追加します。
  6. 次のランタイム エクスプレッションで、このアトリビュートに値を指定(ダイナミクス計算の前または後に)します。
     userScalar1PP = mag(position);
    ヒント:この例ではエフェクトを得るためにエクスプレッション(式)を使用していますが、ランプを使用して userScalar1PP をアニメートすることができます。
  7. パーティクル アトリビュート エディタの particleCloud1 タブを選択します。
  8. ノイズ アトリビュートの隣にあるマップ ボタンをクリックします。
  9. レンダー ノードの作成 ウィンドウで、ユーティリティ タブを選択します。パーティクル ユーティリティ(Particle Utilities)の下で、パーティクル サンプラ(Particle Sampler Info) ボタンをクリックします。

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

    パーティクル サンプラ ノードの User Scalar1 PP がシェーダのノイズにコネクトされます。

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

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

例 2

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

  1. userScalar1PP アトリビュートを particleShape に追加します。
  2. 次の行をエクスプレッションの最終行として追加します。
     userScalar1PP = myNoise;
  3. パーティクル アトリビュート エディタの particleCloud1 タブを選択します。
  4. ノイズ アトリビュートの隣にあるマップ ボタンをクリックします。
  5. レンダー ノードの作成 ウィンドウで、ユーティリティ タブを選択します。パーティクル ユーティリティの下にある、パーティクル サンプラ ボタンをクリックします。
  6. コネクション エディタ左側から右側への場合)の左のカラムで UserScalar1 PP を選択し、右のカラムでノイズを選択します。閉じるボタンをクリックします。

    これで、パーティクル サンプラノードは userScalar1 PP を取得します。この userScalar1 PP は必要に応じて myNoise の値を取得します。これはエクスプレッションで行い、単に myNoiseuserDefined1PP にコネクトしないでください。