Advanced Data Manipulation クイック スタートチュートリアル

パーティクル フローでの高度なデータ操作ツールの使用は、非常に複雑な場合があります。機能がわかれば、いっそう有効に活用できます。このチュートリアルでは、ティーポットなどの 3D オブジェクトでパーティクルの方向をコントロールできるオペレータの作成方法を実演します。

スキル レベル: 中級

所要時間: 1 時間

このチュートリアルの準備

パート 1: [データ](Data)オペレータを作成する

新しいオペレータを作成するには、任意の[データ](Data)オペレータ(データ アイコン、データ オペレータ、データ テスト、データ アイコン テスト)を使用できます。

  1. 3ds Max を起動またはリセットしてから、既定のパーティクル フロー システムを作成します。キーボードの 6 を押して、パーティクル ビューを開きます。
  2. [パーティクル ビュー](Particle View)コンテナから、[データ アイコン](Data Icon)オペレータをドラッグしてイベント 001 の[速度](Speed)オペレータの上にドロップします。マウス ボタンを放すと、[速度](Speed)オペレータが[データ アイコン](Data Icon)オペレータに置き換わります。
  3. [データ アイコン 001](Data Icon 001)オペレータをクリックします。

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

  4. ロールアウトの上部にある[データ フロー編集](Edit Data Flow)ボタンをクリックします。

    [データ](Data)オペレータのユーザ インタフェースであるデータ ビューが開きます。データ ビューの機能はパーティクル ビューとよく似ています。

    この演習の最初の部分では、3 つの数値でパーティクルの速度を定義する簡単なオペレータを作成します。パーティクルのプロパティの作成と変更は、データ ビューで異なるサブオペレータをワイヤリングすることにより行います。この例では、[スカラー](Scalar)サブオペレータを使用します。

  5. [データ ビュー](Data View)コンテナから、3 つの[スカラー](Scalar)サブオペレータ(ベクトル コンポーネントごとに 1 つ)をドラッグして、メイン ウィンドウにドロップします。

    既定ではダイナミック名機能が有効なので、新しいサブオペレータは最も重要な設定を名前として想定します。この場合、[値](Value)の設定は 1.0 です。[スカラー](Scalar)サブオペレータにはもっと意味のある名前を設定します。

  6. サブオペレータを順に右クリックして、[速度 X](Speed X)、[速度 Y](Speed Y)[速度 Z](Speed Z)に名前変更します。


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

  7. [速度 X](Speed X)サブオペレータをクリックします。


    [速度 X](Speed X)ロールアウトにパラメータが表示されます。

  8. [値](Value)スピナーを右クリックして 0.0 に設定し、[速度値として使用](Use As Speed Value)をオンにします。[単位](Units Per)の設定は[秒](Second)のままにします。



  9. [速度 Y](Speed Y)サブオペレータについても同じようにします。
  10. [速度 Z](Speed Z) [値](Value)を 200.0 に設定し、[速度値として使用](Use As Speed Value)をオンにします。

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

  11. [出力スタンダード](Output Standard)サブオペレータをデータ ビューの[スカラー](Scalar)サブオペレータの下にドラッグします。


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

  12. [出力スタンダード](Output Standard)サブオペレータをクリックし、そのロールアウトで[速度](Speed)を選択して、ドロップダウン リストから[ベクトル](Vector)を選択します。


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

  13. [データ ビュー](Data View)ウィンドウで、[速度 X](Speed X)サブオペレータの出力コネクタから[出力スタンダード](Output Standard)サブオペレータの入力コネクタにドラッグします。


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



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

  14. [速度 Y](Speed Y)サブオペレータの出力を、[変換](Convert)サブオペレータの 2 番目の入力(R2)にワイヤリングします。同様に、[速度 Z](Speed Z)を[変換](Convert)サブオペレータの R3 にワイヤリングします。


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

  15. タイム スライダをスクラブするか、アニメーションを再生します。必要に応じてダイアログを移動し、ビューポートがはっきり見えるようにします。


    カスタム オペレータで指定したように、パーティクルが上に向かって(Z の正方向に)移動します。

  16. データ ビューで、[速度 Z](Speed Z)サブオペレータをハイライト表示して、異なる値を設定し、タイム スライダをスクラブします。

    パーティクルは速度の変更を反映します。

  17. [速度 Y](Speed Y)サブオペレータをハイライト表示して、正の値を指定し、タイム スライダをスクラブします。

    パーティクルが、Y 軸方向の速度の変更を反映して水平に移動します。

パーティクルの動作をコントロールするアイコンの使用

次に、速度ベクトルをオペレータ アイコンの方向にリンクすることで、オペレータをさらに複雑にします。これは、[データ アイコン](Data Icon)オペレータを追加したときにワールド座標に追加された小さい正方形です。

  1. パーティクル ビューで、必要に応じて[データ アイコン](Data Icon)オペレータをハイライト表示してから、ロールアウトの[オペレータ アイコン](Operator Icon)領域で[タイプ](Type)を[矢印](Arrow)に設定します。


    アイコンが矢印に変わり、方向がわかりやすくなります。

    [アイコン](Icon)サブオペレータを使用して、アイコンの変換行列を要求できます。

  2. データ ビューで、[アイコン](Icon)サブオペレータをコンテナからスケマティク ウィンドウの空いている領域にドラッグします。


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



    [関数](Function)サブオペレータを使用して、アイコン行列で速度ベクトルを乗算します。

  4. ウィンドウの空いている部分に[関数](Function)サブオペレータを追加します。
  5. [関数](Function)サブオペレータをクリックし、[2 番目のオペランド](Second Operand) [タイプ](Type)を[行列](Matrix)に設定します。また、[関数](Function)を[ベクトル変換](Vector Transform)に設定します。


  6. [変換](Convert)サブオペレータ(実数 --> ベクトル)と[出力スタンダード](Output Standard)サブオペレータ(速度ベクトル)の間のワイヤをクリックしてハイライト表示してから、[delete] キーを押して除去します。

  7. [変換](Convert)サブオペレータの出力を、[関数](Function)サブオペレータの V1 入力にワイヤリングします。
  8. [アイコン](Icon)サブオペレータの出力を、[関数](Function)サブオペレータの M2 入力にワイヤリングします。同じ色のコネクタをワイヤリングすることに注意してください。

  9. [関数](Function)サブオペレータの出力を、[出力スタンダード](Output Standard)サブオペレータの入力にワイヤリングします。


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

  10. X 軸および Y 軸を中心にアイコンを回転します。


    アイコンを回転すると、それに従ってパーティクル ストリームの方向が変わります。

参照オブジェクトでのアイコンの置換

参照オブジェクトの向きを使用してパーティクルの方向を簡単に設定できます。

  1. シーンにティーポットを追加します。
  2. [アイコン](Icon)サブオペレータをクリックし、[delete] キーを押して削除します。
  3. [オブジェクトを選択](Select Object)サブオペレータを空いている領域に追加します。


  4. [単一のオブジェクト](Single Object)ボタン(最初は[なし](None)と表示されています)をクリックし、ビューポートでティーポットをクリックします。

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

  5. 次に、[オブジェクト](Object)サブオペレータを追加します。


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

  6. [オブジェクト](Object)サブオペレータをハイライト表示した後、[オブジェクト プロパティ](Object Property)ドロップダウンから[オブジェクトの TM](Object TM)を選択します。


  7. [オブジェクトを選択](Select Object)サブオペレータを[オブジェクト](Object)サブオペレータに接続し、[オブジェクト](Object)サブオペレータを[関数](Function)サブオペレータの M2 入力に接続します。


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



パート 2: [データ](Data)オペレータを標準オペレータとして保存する

[データ](Data)オペレータを作成した後は、それを標準オペレータとして保存できます。最初に、最も重要なパラメータをエクスポーズします。この場合は、ベクトル コンポーネント、つまり[スカラー](Scalar)サブオペレータの値の設定と、[オブジェクトを選択](Select Object)サブオペレータのボタンです。

  1. パーティクル ビューで、[データ アイコン](Data Icon)オペレータがハイライト表示されていることを確認します。ロールアウトで、[パラメータをエクスポーズ](Expose Parameters)ボタンをクリックします。

    [エクスポーズ パラメータ](Expose Parameters)ダイアログが開き、エクスポーズするパラメータを収集して識別できます。基本的に、それを使用してオペレータ UI を作成します。

  2. 左側のリストで、[速度 X](Speed X)の下の[値](Value)エントリをハイライト表示します。リストの下の[ラベル](Label)フィールドに「X:」と入力し、[追加](Add)ボタンをクリックします。

    左側のリストのエントリが[値 -> X:]に変更されます。新しいラベルが右側のリストに表示されます。



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



  3. [速度 Y](Speed Y) [値](Value)および[速度 Z](Speed Z) [値](Value)に対しても同じようにして、それぞれ「Y:」および「Z:」とラベルを設定します。

  4. また、[Teapot01] [オブジェクト](Object)を追加し、「参照オブジェクト:」(Reference Object:)というラベルを設定します。[追加](Add)をクリックする前に、[グループ ボックス](Group Box)を選択して、[幅](Width)を最大の 95 に設定し、ロールアウトのボタンとラベルに十分なスペースがあるようにします。


  5. [エクスポーズ パラメータ](Expose Parameters)ダイアログで、[閉じる](Close)ボタンをクリックします。

    4 つのパラメータすべてが[パラメータ](Parameters)ロールアウトに表示されます。



    次に、[データ](Data)オペレータをプリセットとして保存します。

  6. パーティクル ビューの[コントロール](Control)ロールアウトで、[プリセットを保存](Save Preset)ボタンをクリックします。

    [データ オペレータ プリセット保存](Save Data Operator Preset)ダイアログが開きます。

  7. [プリセット/オペレータ名](Preset/Operator Name)フィールドに、「Speed Gen」のような名前を入力します。

  8. このフィールドの右側にある[名前を付けて保存](Save As)を[オペレータ/テスト](Operator/Test)に設定します。

  9. [プリセット/オペレータの説明](Preset/Operator Description)フィールドに、「Speed Gen controls particle speed by numeric values」のような説明を入力します。

  10. [プリセット/オペレータ アイコン](Preset/Operator Icon)領域で、適当なアイコンを選択します。


  11. [OK]ボタンをクリックします。

    プリセットが保存されたことを示すメッセージが表示されます。

  12. オペレータを[パーティクル ビュー](Particle View)コンテナに表示するには、3ds Max を終了して再起動する必要があります。すぐに実行します。
  13. PF ソース オブジェクトとティーポットを追加します。6 キーを押して、パーティクル ビューに入ります。

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



  14. [Speed Gen]オペレータを、Event 001 の既定の[速度](Speed)オペレータの上にドラッグします。


  15. [Speed Gen 001]オペレータをクリックした後、パーティクル ビューのロールアウトで、[参照オブジェクト](Reference Object)ボタンをクリックし、ビューポートでティーポットをクリックします。
  16. ティーポットを回転して、タイム スライダをドラッグします。

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



概要

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