計算ノードを操作する

 
 
 

[Math]カテゴリのほとんどのノードは非常に単純です。ほぼすべてのノードで、スカラや 3D ベクトル(カラーは除く)などほとんどのデータ タイプがサポートされています(「ICE でカラーを操作する」を参照)。ただし、一部の計算ノードについては、詳しい説明が必要です。

値を乗算する

[Multiply]ノードを使用する

[Multiply]ノードは、さまざまなデータ タイプを乗算する目的で使用できます。このノードでは複数の入力を受け入れますが、同じデータ タイプでなければなりません。また、出力は、常に入力と同じデータ タイプの値になります。たとえば、複数の整数の積は整数になり、スカラの積はスカラになります。

[Multiply]ノードは、ベクトル同士を n 次元で乗算する目的で使用することもできます。この場合、乗算処理はコンポーネントごとに行われるため、不均一なスケーリングに便利です。このような処理を目的として、[Dot Product]および[Cross Product]という個別のノードが用意されています。

[Multiply by Scalar]を使用して振幅をコントロールする

[Multiply by Scalar]ノードは、非常に便利です。振幅のようなスライダが必要な場所で使用できます。[Multiply by Scalar]は、ほぼすべてのデータ タイプ(スカラや 3D ベクトルを含む)を乗算するのに使用できます。

ウェイト マップ値をスカラで乗算します。

マトリクスによりベクトルを乗算する

[Multiply Vector by Matrix]ノードでは、通常の方法で、nxn マトリクスによるベクトルの n 次元の乗算を実行できます。乗算処理は、ベクトルが、左側が行ベクトルで右側が行列であるかのように実行されます。

[Multiply Vector by Matrix]ノードは、3D ベクトルを 4 x 4 マトリクスで乗算したり、4D ベクトルを3 x 3 マトリクスで乗算する目的で使用することもできます。このような場合は、同次座標を前提とした特別な乗算規則が使用されます。「ジオメトリ クエリを使用する」を参照してください。

値のランダマイズと乱流の追加

[Random Value]ノードと[Turbulence]ノードは、ランダマイズされた変化を値に生成するのに使用できます。

  • [Random Value]は独立した値を生成します。

  • [Turbulence]は、スムーズに変化する 3D のコヒーレント ノイズ パターンを生成します。

Random Value(値のランダマイズ)

[Random Value]ノードは、平均値、変位、および分配タイプに基づいて、擬似ランダム値を生成します。このノードは、スカラ、ベクトル、マトリクスなど、さまざまなデータ タイプの値を生成できます。詳細については、「Random Value(値のランダマイズ)」(「ICE リファレンス」)を参照してください。

生成された数のシーケンスは、次の 3 つの要素に依存します。

  • 速度。2 つの[Random Value]ノードでさまざまなランダム値のセットを生成する必要がある場合は、これらをさまざまなシード値に割り当てます。

  • ID。さまざまなパーティクルがさまざまな値に割り当てられるようにする必要がある場合は、[Get Data]ノードを使用して、パーティクルの ID を取得し、それを[ID]ポートに接続します。コンポーネントの他のタイプでは、それらのインデックスを[ID]ポートに接続できます(「ID とインデックスを操作する」を参照)。

  • 時間による変化。これが True の場合は、異なる値がすべてのフレームで生成されます。

必要に応じて、他の属性を[ID]ポートに接続できます。たとえば、パーティクルの存在時間を[ID]ポートに接続した場合は([Round]ノードはスカラから整数に変換されるために自動的に追加されます)、同じ存在時間のすべてのパーティクルが同じ値に割り当てられます。

[Random Value]ノードに加えて、さまざまな方法でランダマイズしたり、特定のものをランダマイズするために特別に設計された多くのコンパウンドが用意されています。たとえば、[Randomize Vector by Cone]は、円錐または球シェイプのベクトルを、ボックス配分する代わりに均等に配分します。また、[Randomize Value by Range]を使用して、平均および変位の代わりに最小値および最大値を指定できます。Preset Manager のクイック フィルタ ボックスに「rand」と入力して、さまざまなランダマイズ コンパウンドを検索することができます。

乱流と乱流化

[Turbulence]ノードは、空間および時間(オプション)で継続的に変化するコヒーレント ノイズ パターンを作成します。独立した値の生成に ID を使用する代わりに、エレメントの位置を使用します。値の範囲は、1.0~-1.0 です。

 

この図は、乱流ノイズ パターンを示します。[Turbulence]ノードは、Y のポイント位置を設定するのに使用されます。

[Space Frequency]が X と Z にそれぞれ設定されており、長く薄い波紋になっています。

 

[Turbulence]ノードのほかに、特殊な状況で作業できるいくつかの[Turbulize]コンパウンドが用意されています。これらのコンパウンドはすべて、Preset Manager のクイック フィルタ ボックスに「turb」と入力して検索することができます。

F カーブ

[FCurve]ノードを使用すると、プロファイル カーブを使用して入力(X 軸)に基づいて値(Y 軸)を出力することができます。入力ポートを[Current Frame]または[Current Time]ノードで使用している場合以外は、X 軸は必ずしも現在のフレームや時間に対応している必要はありません。

コンパウンドの F カーブ コントロールを展開するには、[Fcurve]ノードを完全に展開し、[Expose]入力アイコンを[プロファイル]パラメータにドラッグします。

統計

[Math]/[Statistics]サブカテゴリのノードは、データ セットの個々の値に対してではなく、データ セット全体に対して機能します。たとえば、セット内のパーティクルの平均存在時間を取得することができます。

ほとんどの統計ノードは、コンポーネント単位からオブジェクト単位に変化します。

[ArcTan]と[ArcTan 2]

[Math]/[Trigonometry]サブカテゴリの ATAN 関数には 2 つのバリエーションがあります。

  • [ArcTan]は、1 つの入力を受け入れ、範囲(–90、90)に結果を戻します。

  • [ArcTan 2]は 2 つの入力、X と Y を受け入れ、Y/X の ATAN を計算します。結果は、(-180、180)の範囲で返します。このノードは、X および Y の記号を使用して、対応するクワドラントに結果を戻します。たとえば、X = 1 および Y = 1 は 45 度を戻しますが、X = -1 および Y = -1 は -135 度を戻します。

値を比較する

[Compare]ノードには、[Equal To]、[Not Equal To]、[Less Than]など、いくつかの異なるプリセットが用意されています。値が別の値よりも大きいか小さいかを決定するために、次のような条件が使用されます。

  • 整数およびスカラでは、標準の比較が使用されます。

  • ベクトルは、長さに基づいて比較されます。

  • 行列は、行列式に基づいて比較されます。

  • カラーは、アルファの輝度に基づいて比較されます。