データ タイプ

パーティクル フローの Advanced Data Manipulation ツールセットでは、さまざまなデータ タイプを使用します。以下にその包括的なリストと、各タイプのサブオペレータ入力コネクタの図を示します。

[ブール演算](Boolean): 青

[複合](Complex): シアン

[等しい](Equal): 緑

[整数](Integer): 藍色

[行列](Matrix): 栗色

[オブジェクト](Object): オレンジ

[ペア](Pair): ピンク

[クォータニオン](Quaternion): 黄

[実数](Real): 赤

[時間](Time): 緑青

[ベクトル](Vector): 紫

カラーはデータ ビューの入力コネクタと出力コネクタで使用されます。また、場合によっては、標準のインタフェースで値を指定する代わりに追加の入力を有効にするボタンでもカラーが使用されます。

ほとんどのデータ タイプはその名前のとおりの機能です。その他の点について、以下で説明します。

[ペア](Pair)および[複合](Complex)データ タイプ

一部のサブオペレータは、[ベクトル](Vector)、[整数](Integer)、または[時間](Time)の形式に適合しないデータを生成することがあります。そのため、次の 2 つの新しい「人工的な」タイプが追加されました。

[ペア](Pair) = { [ベクトル](Vector) + [整数](Integer) }

[複合](Complex) = { [ベクトル](Vector) + [整数](Integer) + [時間](Time) }(従来の複素数とは異なります)

ここでは、[ペア](Pair)および[複合](Complex)タイプを使用する状況について説明します。

[オブジェクト](Object)サブオペレータ: [ポイント位置](Point Position)オプション

入力の 1 つが[ペア](Pair)タイプ = { [ベクトル](Vector) + [整数](Integer) }になります。この場合の[ベクトル](Vector)入力はオブジェクトのローカル座標内の位置を表し、[整数](Integer)入力は[オブジェクトを選択](Select Object)サブオペレータで定義されているオブジェクトのインデックスを表します。[オブジェクト](Object)サブオペレータは複数のオブジェクトを一度に処理できるため、オブジェクト インデックスが必要になります。処理する参照オブジェクトが 1 つの場合、[整数](Integer)値は 0 に設定する必要があります。また、データ ビューのインデックスは 0 ベース(0 から始まる)という点に注意してください。これは、インデックスが 1 ベースである MAXScript とは異なる点です。したがって、[オブジェクトを選択](Select Object)サブオペレータで定義された複数の参照オブジェクトがある場合、インデックスは 0、1、2.... となります。

[ジオメトリ](Geometry)サブオペレータ: [最も近いポイント](Closest Point)オプション

出力は[ペア](Pair)タイプ = { [ベクトル](Vector) + [整数](Integer) }になります。この[整数](Integer)はオブジェクト インデックスと面インデックスを 1 つずつ含む合成インデックスを表し、[ベクトル](Vector)はローカル面座標内の位置を表します。最も近いポイントが計算されるときに、オペレータは[オブジェクトを選択](Select Object)サブオペレータで定義したすべての参照オブジェクトを検索し、最も近い面と、この面のサーフェス上の最も近いポイントを見つけ出します。ローカル面座標では、ベース ベクトルとして面のエッジを使用します。

[ジオメトリ](Geometry)サブオペレータ: [衝突ポイント](Collision Point)オプション

出力は[複合](Complex)タイプ = { [ベクトル](Vector) + [整数](Integer) + [時間](Time) }です。この[整数](Integer)と[ベクトル](Vector)は、上記のインスタンスで説明した内容と同じ意味を表し、[時間](Time)は衝突の時間を表します。

[ジオメトリ](Geometry)サブオペレータ: [面の面積](Face Area)および[面選択](Face Selection)オプション

このオプションを使用して、オブジェクトの面の面積(または面の選択状態)を計算できます。また、このオプションは、合成インデックスを 1 つのインデックス(オブジェクト インデックス + 面インデックス)として指定するのに十分のように見えますが、サブオペレータには[ペア](Pair)タイプの入力が含まれています。これは、1 つの出力として[ペア](Pair)を含む[最も近いポイント](Closest Point)オプションからのワイヤリングを単純化するために実行されます。オブジェクト インデックス + 面インデックスが異なる方法で作成された場合、[変換](Convert)サブオペレータを使用して、[ペア](Pair)タイプを作成し、[ペア](Pair)タイプの他のコンポーネントとしてゼロ ベクトルを使用できます。

[ジオメトリ](Geometry)サブオペレータ: [ポイントのカラー](Point Color)、[ポイント カラー グラデーション](Point Color Gradient)、[ポイント自己照明](Point Self-Illumination)、[ポイント マッピング](Point Mapping)、[ポイント マッピング グラデーション](Point Mapping Gradient)、[ポイント マテリアル インデックス](Point Material Index)、[ポイント法線](Point Normal)、[ポイントの不透明度](Point Opacity)、[ポイント位置](Point Position)、[ポイントのソフト選択](Point Soft Selection)、[ポイント速度](Point Speed)オプション

入力の 1 つが[ペア](Pair)タイプ = { [ベクトル](Vector) + [整数](Integer) }になります。この[ベクトル](Vector)と[整数](Integer)は、[最も近いポイント](Closest Point)オプションでの内容と同じ意味です。

[ジオメトリ](Geometry)サブオペレータ: [ランダム サーフェス ポイント](Random Surface Point)オプション

出力は[ペア](Pair)タイプです。[最も近いポイント](Closest Point)オプションでの内容と同じ意味です。

[ジオメトリ](Geometry)サブオペレータ: [ランダム ボリューム ポイント](Random Volume Point)オプション

出力は[ペア](Pair)タイプ = { [ベクトル](Vector) + [整数](Integer) }になります。この[ベクトル](Vector)はワールド座標の位置を表し、[整数](Integer)はボリューム スペースとして使用されるオブジェクトのインデックスです。

[等しい](Equal)データ タイプ

[等しい](Equal)データ タイプを生成するサブオペレータは、[パラメータ](Parameter)サブオペレータのみです。[パラメータ](Parameter)サブオペレータは、特に複数のサブオペレータに同じパラメータ値を設定する(またはユーザに設定させる)場合に便利です。この一般的なパラメータは後からインタフェースでエクスポーズされることがよくあります。

簡単な例を挙げると、パーティクルをオブジェクトのサーフェス上にランダムに配置する[データ オペレータ](Data Operator)を作成し、ランダムな初期速度を設定するとします。位置には[ジオメトリ](Geometry)サブオペレータ([ランダム サーフェス ポイント](Random Surface Point))を使用し、[ベクトル](Vector)サブオペレータを使用して方向がランダムに広がるように[偏差](Deviation)を 360 度に設定した速度を定義します。

この両方のサブオペレータに、[ランダム シード](Random Seed)パラメータがあります。そのため、必然的に、[ランダム シード](Random Seed)パラメータをエクスポーズしてユーザがカオス設定で再生できるようにします。ただし、インタフェースに 2 つの[ランダム シード](Random Seed)パラメータがあるのは不自然です。この場合は、[ジオメトリ](Geometry)サブオペレータと[ベクトル](Vector)サブオペレータの両方の[シード](Seed)パラメータを、[独自性のシード](Uniqueness Seed)タイプの 1 つの[パラメータ](Parameter)サブオペレータにワイヤリングできます。これで、[パラメータ](Parameter)サブオペレータの[ランダム シード](Random Seed)をエクスポーズできます。

[等しい](Equal)データ タイプには、[実数](Real)、[整数](Integer)、[時間](Time)、[同期](Sync)、および[シード](Seed)サブタイプがあります。それぞれ異なる緑のシェーディングを使用します。[パラメータ](Parameter)サブオペレータには、[角度](Angle)、[浮動小数](Float)、[パーセント](Percent)、[ワールド](World) (すべて[実数](Real)タイプ)、[整数](Integer)、[時間](Time)、[アニメーション同期](Animation Sync) ([同期](Sync)として)および[独自性シード](Uniqueness Seed) ([シード](Seed)として)の出力タイプがあります。[角度](Angle)、[浮動小数](Float)、[パーセント](Percent)、および[ワールド](World)は、UI でユーザに表示される場合と異なります。これらはすべて[実数](Real)として表示されます。[パラメータ](Parameter)出力は一致する E 入力(通常は非常に明白です)にのみワイヤリングできます。サブオペレータの[ランダム シード](Random Seed)をリンクする場合、[パラメータ](Parameter)サブオペレータにも、[独自性シード](Uniqueness Seed)タイプが必要です。

[パラメータ](Parameter)サブオペレータにリンクするのではなく、標準の 3ds Max スクリプト ワイヤリング テクニックを使用し、サブオペレータのパラメータをスクリプト ワイヤリングすることで、[パラメータ](Parameter)サブオペレータを使用しないで処理することもできます。ただし、スクリプト ワイヤリングの設定には時間がかかり、ビジュアル参照は[パラメータ](Parameter)サブオペレータより劣ります。また、保存/ロードおよびクローンの問題が生じる傾向にあります。

合成インデックス

2 つ以上の整数値を 1 つの値にパッキングする必要がある場合があります。たとえば、整数は合成インデックス(オブジェクト インデックスと面/頂点インデックス)として使用する場合です。[変換](Convert)サブオペレータを使用して、a)整数データから合成インデックスを作成するか、b)合成インデックスからオブジェクト インデックスまたは面/頂点インデックスを分割できます。合成インデックスは新しいデータ タイプではありません。これは、1 つの整数データ チャネルに詳細情報をパッキングするためのデータ タイプです。