パーティクル フローでの高度なデータ操作ツールの使用は、非常に複雑な場合があります。機能がわかれば、いっそう有効に活用できます。このチュートリアルでは、ティーポットなどの 3D オブジェクトでパーティクルの方向をコントロールできるオペレータの作成方法を実演します。
スキル レベル: 中級
所要時間: 1 時間
新しいオペレータを作成するには、任意の[データ](Data)オペレータ(データ アイコン、データ オペレータ、データ テスト、データ アイコン テスト)を使用できます。

[データ アイコン 001](Data Icon 001)ロールアウトがパーティクル ビューに表示されます。

[データ](Data)オペレータのユーザ インタフェースであるデータ ビューが開きます。データ ビューの機能はパーティクル ビューとよく似ています。
この演習の最初の部分では、3 つの数値でパーティクルの速度を定義する簡単なオペレータを作成します。パーティクルのプロパティの作成と変更は、データ ビューで異なるサブオペレータをワイヤリングすることにより行います。この例では、[スカラー](Scalar)サブオペレータを使用します。
既定ではダイナミック名機能が有効なので、新しいサブオペレータは最も重要な設定を名前として想定します。この場合、[値](Value)の設定は 1.0 です。[スカラー](Scalar)サブオペレータにはもっと意味のある名前を設定します。

次に、初期値を定義します。

[速度 X](Speed X)ロールアウトにパラメータが表示されます。
[値](Value)スピナーを右クリックして 0.0 に設定し、[速度値として使用](Use As Speed Value)をオンにします。[単位](Units Per)の設定は[秒](Second)のままにします。

[値](Value)を 200.0 に設定し、[速度値として使用](Use As Speed Value)をオンにします。 次に、[スカラー](Scalar)サブオペレータによって作成されたデータをパーティクルの速度データ チャネルにワイヤリングします。

[出力スタンダード](Output Standard)サブオペレータの目的は、[データ](Data)オペレータ内で計算されたデータを取得し、パーティクル フロー システムが使用できる情報に変換することです。したがって、入力は 1 つだけであり、出力はパーティクル ビューのコンテキストにおいてのみ意味があります。このサブオペレータはベクトル形式で位置データを出力するように設定されるので、その既定のダイナミック名は「位置ベクトル」(Position Vector)です。

サブオペレータのダイナミック名が「速度ベクトル」(Speed Vector)になります。

マウス ボタンを放すと、リンクした 2 つのサブオペレータの間に[変換](Convert)サブオペレータが自動的に表示されます。これは、異なってはいても互換性のあるデータ タイプの 2 つのコネクタをワイヤリングするときの、データ ビューにおける標準的な動作です。

入力と出力のダイナミック名およびカラー コーディングにより、新しいサブオペレータが実数(スカラー)データとベクトル値を変換するように自動的に設定されることがわかります。

これで操作は終了しました。簡単なオペレータを作成しました。

カスタム オペレータで指定したように、パーティクルが上に向かって(Z の正方向に)移動します。
パーティクルは速度の変更を反映します。
パーティクルが、Y 軸方向の速度の変更を反映して水平に移動します。
次に、速度ベクトルをオペレータ アイコンの方向にリンクすることで、オペレータをさらに複雑にします。これは、[データ アイコン](Data Icon)オペレータを追加したときにワールド座標に追加された小さい正方形です。

アイコンが矢印に変わり、方向がわかりやすくなります。
[アイコン](Icon)サブオペレータを使用して、アイコンの変換行列を要求できます。

サブオペレータをクリックした後、[アイコン プロパティ](Icon Property)ドロップダウン リストから[アイコンの TM](Icon TM)を選択します。TM は変換行列(Transformation Matrix)の頭文字です。

[関数](Function)サブオペレータを使用して、アイコン行列で速度ベクトルを乗算します。
[タイプ](Type)を[行列](Matrix)に設定します。また、[関数](Function)を[ベクトル変換](Vector Transform)に設定します。 
[変換](Convert)サブオペレータ(実数 --> ベクトル)と[出力スタンダード](Output Standard)サブオペレータ(速度ベクトル)の間のワイヤをクリックしてハイライト表示してから、[delete] キーを押して除去します。
[アイコン](Icon)サブオペレータの出力を、[関数](Function)サブオペレータの M2 入力にワイヤリングします。同じ色のコネクタをワイヤリングすることに注意してください。

アイコンの向きがパーティクルの方向をコントロールするようになります。

アイコンを回転すると、それに従ってパーティクル ストリームの方向が変わります。
参照オブジェクトの向きを使用してパーティクルの方向を簡単に設定できます。

ティーポットの名前がボタンとサブオペレータに表示されます。

取得するオブジェクト プロパティを指定できます。


X 軸および Y 軸を中心にティーポットを回転すると、パーティクル ストリームに対してアイコンを回転した場合と同じ効果があります。

[データ](Data)オペレータを作成した後は、それを標準オペレータとして保存できます。最初に、最も重要なパラメータをエクスポーズします。この場合は、ベクトル コンポーネント、つまり[スカラー](Scalar)サブオペレータの値の設定と、[オブジェクトを選択](Select Object)サブオペレータのボタンです。
[エクスポーズ パラメータ](Expose Parameters)ダイアログが開き、エクスポーズするパラメータを収集して識別できます。基本的に、それを使用してオペレータ UI を作成します。
左側のリストのエントリが[値 -> X:]に変更されます。新しいラベルが右側のリストに表示されます。

さらに重要なことは、追加したパラメータがパーティクル ビューの新しい[パラメータ](Parameters)ロールアウトに表示されます。これにはエクスポーズされたパラメータが表示され、オペレータを使用する誰でも使用できます。

[速度 Y](Speed Y)
[値](Value)および[速度 Z](Speed Z)
[値](Value)に対しても同じようにして、それぞれ「Y:」および「Z:」とラベルを設定します。
[オブジェクト](Object)を追加し、「参照オブジェクト:」(Reference Object:)というラベルを設定します。[追加](Add)をクリックする前に、[グループ ボックス](Group Box)を選択して、[幅](Width)を最大の 95 に設定し、ロールアウトのボタンとラベルに十分なスペースがあるようにします。 
4 つのパラメータすべてが[パラメータ](Parameters)ロールアウトに表示されます。

次に、[データ](Data)オペレータをプリセットとして保存します。
[データ オペレータ プリセット保存](Save Data Operator Preset)ダイアログが開きます。
[プリセット/オペレータ名](Preset/Operator Name)フィールドに、「Speed Gen」のような名前を入力します。
このフィールドの右側にある[名前を付けて保存](Save As)を[オペレータ/テスト](Operator/Test)に設定します。
[プリセット/オペレータの説明](Preset/Operator Description)フィールドに、「Speed Gen controls particle speed by numeric values」のような説明を入力します。

プリセットが保存されたことを示すメッセージが表示されます。
コンテナに新しいオペレータが表示されます。コンテナ内のオペレータの名前の後には既定のサフィックスであるアスタリスク(*)が付いており、カスタム オペレータであることを示します。


ティーポットの向きによってパーティクル ストリームの方向がコントロールされます。

パーティクル フローの Advanced Data Manipulation ツール セットにより、独自のパーティクル フロー ツールを作成できます。