[変化量](Amount Change)を使用すると、新しいパーティクルをスポーンさせたり、既存のパーティクルを削除して、パーティクル数を変更できます。パーティクルをスポーンさせるときに、スポーンのプロパティと詳細を、[新たに出力](Output New)サブオペレータで作成したカスタム チャネルに記録することができます。また、パーティクルをスポーンさせるときに、整数の入力値によって、新しいパーティクルの数が決定されます。
手順
[変化量](Amount Change)は、Advanced Data Manipulation ツールキットの最も複雑なサブオペレータの 1 つです。[変化量](Amount Change)サブオペレータの動作の理解を助けるために、簡単なスポーンの例を提供しています。
[変化量](Amount Change)サブオペレータを使用するには、他のサブオペレータに関する知識が必要です。この例の目的は、[変化量](Amount Change)サブオペレータを使用する最も簡単な方法を説明することです。
注: このシーンでは、標準の[速度](Speed)オペレータで定義したように、オリジナル(親)パーティクルが PF ソース アイコンの矢印に沿って移動します。一方、スポーンしたパーティクルはさまざまな方向に移動します。
含まれているファイル
SimpleSpawn.max
を開きます。
例: [変化量](Amount Change)サブオペレータを使用するには
- [変化量](Amount Change)サブオペレータを追加します。[タイプ:](Type:)を[スポーン](Spawn)のままにし、[加算で整数を使用](Integer As Additive)を選択します。次に、その入力を、[出力タイプ](Output Type:)が[整数](Integer)に設定された[スカラー](Scalar)サブオペレータにワイヤリングします。
[スカラー](Scalar)サブオペレータの整数値は、発生プロセスの強度を制御します。
- [データ タイプ:](Data Type:)が[ブール演算](Boolean)に設定された[新たに出力](Output New)サブオペレータを追加して、カスタム チャネルを作成し、発生を記録します。
- [新たに出力](Output New) [実行順序](Execution Order) を 1 に設定します。これにより、[変化量](Amount Change) [実行順序](Execution Order) が 2 に自動的に設定されるので、[変化量](Amount Change)が実行される前にカスタム チャネルが作成されます。
- [変化量](Amount Change)サブオペレータ [データへのスポーン記録](Record Spawning To Data)領域で、[現在のスポーンです](Is Current Spawn)をオンにします。[なし](None)ボタンをクリックし、[新たに出力](Output New)サブオペレータを選択します。
これにより、スポーンしたデータがカスタム チャネルに記録されます。
- スポーンしたプロセスを確認するには、スポーンしたパーティクルの速度を変更し(速度ベクトル = [25, 0,0]、[発散](Divergence) = 180)、[速度として使用](Use As Speed)をオンにします。
ここで[発散](Divergence)とともに使用される[ベクトル](Vector)サブオペレータは、個々のスポーン パーティクルを互いに、および親から切り離します。
-
(データ テストに必要です)オリジナル パーティクルからスポーンしたパーティクルをフィルタするには、[出力テスト](Output Test)サブオペレータを追加します。[出力テスト](Output Test)はカスタム チャネルからデータを要求する必要があります。そのために、新しい[カスタム入力](Input Custom)サブオペレータが作成されます。
現在のフォームでは、この例は通常のスポーン テストのサブセットです。このサブセットから、カスタムのスポーン プロセスを構築することができます。たとえば、[スカラー](Scalar)サブオペレータを使用して発生への加算量を定義する代わりに、親の位置に基づいて発生数を計算する独自のスケマティクを作成できます。別の実験方法は、[ベクトル](Vector)サブオペレータ(スポーンするパーティクルの速度を定義します)に変更を加えることです。
この例では、発生プロセスの最小要件を示しています。[変化量](Amount Change)サブオペレータだけでは不十分です。したがって、この説明の目的は、活用できるいくつかの基本と背景情報を提供することです。基礎を作成してその動作を確認(発生が表示されます)したら、修正または構築が容易になります。
インタフェース
- Type
- タイプは、[変化量](Amount Change)がパーティクルを作成する(スポーンさせる)、または削除するかどうかを指定します。[タイプ](Type)が[削除](Delete)に設定されている場合、使用できるコントロールは、[Falseで削除](False To Delete)/[Trueで削除](True To Delete)および[実行順序](Execution Order)だけです。既定では、[スポーン](Spawn)です。
- 量を整数とする(Integer As Amount)、加算で整数を使用(Integer As Additive)
- [変化量](Amount Change)サブオペレータの整数データ入力は、スポーンするパーティクルの数を定義します。このオプションを使用して、読み込まれるデータが次のいずれになるかを指定します。
- 量: 入力整数値は、親を置き換えるパーティクルの数を定義します。つまり、親およびスポーンした分裂を含むパーティクルの総数を定義します。入力値 0 は親パーティクルが削除されたことを表します。入力値 1 はパーティクルがスポーンしないことを表します。
- 加算: 入力整数値は、スポーンするパーティクルの数を定義します。入力値 0 はパーティクルがスポーンしないことを表します。入力値 1 は親パーティクルごとに子が 1 つ作成されることを表します。
- Falseで削除(False To Delete)、Trueで削除(True To Delete)
- [タイプ](Type)が[削除](Delete)に設定されている場合にのみ使用できます。これは、[削除](Delete)オプションの唯一の機能であり、サブオペレータの入力タイプをブール演算に設定します。読み込まれるデータが選択したオプションの値(False = 0、True = 1)と同じ場合、イベントのパーティクルが削除されます。
- [パーティクル エージをリセット]
- オンにすると、イベントのパーティクルがエージを 0 にリセットします。
- [イベント中新規]として発生(Spawns As New In Event)
- すべてのパーティクルが標準の「イベント中新規」のデータ チャネルを持ちます。このチャネルは、パーティクルが発生または異なるイベントからの転送によってイベントに入ったことを示します。多くのオペレータは「イベント中新規」のデータを使用して、パーティクルのいくつのプロパティ データを初期化します。このオプションを使用すると、新たにスポーンしたパーティクルにこのデータ チャネルを付けるかどうかが選択できます。オンにすると、スポーンしたパーティクルが新規だと見なされるので、他のオペレータによって、いくつかのデータ初期化がトリガされます。オフにすると、スポーンしたパーティクルが新規だと見なされず、これらのデータは親パーティクルから継承されます。
[優先および実行順序](Priority And Execution Order)領域
「優先および実行順序」を参照してください。
[データへのスポーン記録](Record Spawning To Data)領域
これらのコントロールを使用すると、発生プロパティと詳細をカスタム チャネルに記録することができます。[新たに出力](Output New)サブオペレータを使用して、カスタム チャネルを事前に作成する必要があります。カスタム チャネルのデータは、[変化量](Amount Change)の実行時に更新されます。したがって、これらのデータを取得するために、[変化量](Amount Change)サブオペレータの[実行順序](Execution Order)の値よりも高く設定された[実行順序](Execution Order)の値を使用するデータ ストリームのカスタム チャネル(通常、[カスタム入力](Input Custom)サブオペレータを使用します)からデータを要求する必要があります。
これらのコントロールを使用するには、オンにしてボタンをクリックし、[データ チャネル選択](Select Data Channel)ダイアログを使用して、チャネルを指定します。
- 現在の親です(Is Current Parent)
- パーティクルがパーティクルをスポーンさせたかどうかを示すブール演算データです。
- 現在のスポーンです(Is Current Spawn)
- パーティクルが最近のスポーンかどうかを示すブール演算データです。
- 親 ID(Parent ID)
- パーティクルの親の発生 ID を持つ整数データです。この ID 情報は、他のパーティクルからデータを取得する整数チャネルを受け入れることができる[カスタム入力](Input Custom)サブオペレータで使用できます([パーティクル ID は I2](Use I2 As Particle IDs)オプション)。パーティクルが[変化量](Amount Change)サブオペレータによる発生の結果ではない場合、データ読み込みは -1 です。また、いくつかの[変化量](Amount Change)サブオペレータ間で同じデータ チャネルを使用することができます。
- 最後のスポーン ID(Last Spawn ID)
- 最後のスポーン パーティクルの発生 ID を持つ整数データです。このデータは、少なくとも一度親だったパーティクルに対してのみ有効であり、現在のインテグレーション ステップでは必要ありませんが、グローバルで必要です。
- 最初のスポーン ID(First Spawn ID)
- グローバル シーンの最初のスポーン パーティクルの発生 ID を持つ整数データです。このパーティクルは、親パーティクルのスポーンのうち最も古いパーティクルです。繰り返しますが、データは、少なくとも一度親だったパーティクルに対してのみ有効です。このデータ チャネルは、[合計スポーン数](Total Spawn Count)チャネル(下記を参照してください)が定義されている場合にのみ使用できます。
- 現在の最初のスポーン ID(Current First Spawn ID)
- 現在のインテグレーション ステップの最初のスポーン パーティクルの発生 ID を持つ整数データです。
- 古い/前の兄弟 ID(Older/Previous Sibling ID)
- 前のスポーン/シブリング パーティクルの発生 ID を持つ整数データです。これらのデータを使用して、兄弟発生のチェーンを作成することができます。このデータ チャネルは、[合計スポーン数](Total Spawn Count)チャネルおよび[最後のスポーン ID](Last Spawn ID)チャネルが定義されている場合にのみ使用できます。データはインテグレーション ステップを通じて継続します。したがって、いつかのインテグレーション ステップ中にパーティクルに発生がある場合、親パーティクルに対して兄弟発生のフル チェーンを確立できます。
- 現在のスポーン数(Current Spawn Count)
- 現在のインテグレーション ステップ中に親パーティクルごとにスポーンするパーティクルの数を示す整数データです。
- 合計スポーン数(Total Spawn Count)
- 親パーティクルに対するパーティクルの合計発生数を示す整数データです。
- 現在のスポーン順序(Current Spawn Order)
- 現在のインテグレーション ステップでの発生順序を示す 0 から N-1 の整数データです。N は、現在のインテグレーション ステップの親パーティクルに対する発生数です。このデータを使用して、スペース内のパーティクルの位置を調整できます。たとえば、パーティクルを、前のインテグレーション ステップでの最後のスポーン パーティクルの位置から親の現在位置まで広げ、標準の[スポーン](Spawn)オペレータに類似した配置を作成します。