既定値では、[ターゲット探査](Find Target)は指定されたターゲットにパーティクルを送信します。パーティクルがターゲットに到達すると、そのパーティクルは別のイベントへのリダイレクトに適格になります。パーティクルがターゲットに向かって移動する際、特定の速度またはタイム フレームを使用するように指示できます。パーティクルが目指すターゲット上の位置を指定することもできます。
また、単純な接近テストにも[ターゲット探査](Find Target)を使用できます。パーティクルがターゲットから特定の距離内に入ると、次のイベントにリダイレクト可能になります。
[ターゲット探査](Find Target)アイコン
パーティクル ビュー内で[ターゲット探査](Find Target)テストをパーティクル システムに追加すると、球形の[ターゲット探査](Find Target)アイコンまたはヘルパーがシーン内のワールド座標の原点(0,0,0)に表示されます。このアイコンをターゲットとして使用することも、シーン内の 1 つ以上のメッシュ オブジェクトをターゲットとして使用することもできます。[修正](Modify)パネルに[ターゲット探査](Find Target)のパラメータを表示するには、このアイコンを選択します。アイコンを削除すると、テストも削除されます。
注: [作成](Create)パネルから[ターゲット探査](Find Target)を追加した場合、パーティクル図では各テストに個別のイベントが作成されます。
ヒント: パーティクル ループ内で、すべてのパーティクルがそれぞれの開始位置で終了するため、生成されるアニメーションのシームレスな反復が可能になります。Script オペレータと[ターゲット探査](Find Target)を使用すると、パーティクル フローでパーティクル ループを作成できます。ループの開始時に、Script オペレータはすべてのパーティクル位置を読み取って MXS Vector チャネルに書き込みます。このため、ループの最後で、[ターゲット探査](Find Target)テストを[時間別コントロール](Control by Time)に、[タイミング](Timing)を[絶対値時間](Absolute Time)に、[時間](Time)をループの最後に設定します。また、[ターゲット](Target)領域内で[ポイント](Point)を[スクリプト ベクター別](By Script Vector)に設定します。パーティクル フローは、パーティクルを以前にキャッシュされた位置に導きます。これは、指定されたフレームで行われます。
[スクリプト オペレータ](Script Operator)オペレータの例
次に示すのは、[ターゲット](Target)領域 [オブジェクト](Object) [スクリプトの値別](By Script Integer)オプションがアクティブな場合に使用できる Script オペレータの例です。パーティクルの速度に応じてターゲット オブジェクトが割り当てられます。フレームごとの速度が 1 単位より小さい場合、パーティクルは最初のターゲット(インデックス 0) に割り当てられます。フレームごとの速度が 10 単位より大きい場合、パーティクルは 3 番目のターゲット(インデックス 2)に割り当てられます。その他パーティクルは、すべて 2 番目のターゲット(インデックス 1)に割り当てられます。
on ChannelsUsed pCont do
(
pCont.useTime = true
pCont.useSpeed = true
pCont.useInteger = true
)
on Init pCont do
(
)
on Proceed pCont do
(
count = pCont.NumParticles()
slowSpeed = 1/160.0
fastSpeed = 10/160.0
for i in 1 to count do
(
pCont.particleIndex = i
if length(pCont.particleSpeed) < slowSpeed then pCont.particleInteger = 0
else (
if (length(pCont.particleSpeed) > fastSpeed) then pCont.particleInteger = 2
else pCont.particleInteger = 1
)
)
)
on Release pCont do
(
)
インタフェース
ユーザ インタフェースは、[パーティクル ビュー](Particle View)ダイアログ ボックスの右側のパラメータ パネルに表示されます。
- コントロール別のドロップダウン リスト
- パラメータ パネルの一番上のドロップダウン リストでは、速度と加速を指定するか、所要時間を指定することで、パーティクルをターゲットに送信するかどうかを選択できます。また、[コントロールなし](No Control)を選択すると、パーティクルのターゲットからの距離をテストできます。
[次イベントへの距離条件](Test True If Distance To)領域
以下の設定を使用すると、[ターゲット探査](Find Target)テストの測定対象、および測定する距離を選択できます。[ターゲット基点](Target Pivot)または[ターゲット ポイント](Target Point)を選択し、[より少ない](Is Less Than)で距離を設定します。
- より少ない
- パーティクルがターゲット基点またはターゲット ポイントからこの距離よりも近くにある場合、テストは真を返し、次のイベントへのリダイレクトに適格になります。測定は、シーンの単位で行われます。
注: [より少ない](Is Less Than)の値を 0 (ゼロ)に設定すると、パーティクルのテストが真を返すことはほとんどありません。たとえば、蜂が花の周囲を飛び回るだけで、花に止まることがないアニメーションなどで望ましい動作です。この場合、[加速制限](Accel Limit)に小さい値を使用すると、蜂が花に近付きすぎないようにできます。
[速度別コントロール](Control By Speed)領域
以下の設定を使用すると、[速度別コントロール](Control By Speed)または[時間別コントロール](Control By Time)を使用する際に速度および加速パラメータを指定できます。この領域は、[速度別コントロール](Control By Speed)を使用する場合にのみ使用できます。
- クルーズ スピードを使用
- このチェック ボックスにチェックマークが付いている場合、パーティクルの速度および速度の変動を明示的にコントロールできます。チェックマークをはずすと、パーティクルの速度は[加速制限](Accel Limit)に基づいて自動的に計算されます。既定値ではチェックマークが付いています。
- 速度
- パーティクルの速度。単位は、シーン単位/秒です。既定値は 300.0 です。
- 変動
- [速度](Speed)値がランダムに変動する量です。既定値は 0.0 です。
各パーティクルの実速度を得るために、システムは[変動](Variation)値に -1.0 ~ 1.0 の間のランダムな数字を掛け合わせ、その結果を[速度](Speed)設定のパーセンテージとして適用します。たとえば、[速度](Speed)が 200 で、[変動](Variation)が 10 の場合、各パーティクルの実速度は 190 ~ 210 の範囲でランダムに変動します。
- 加速制限
- 加速制限を設定します。この値は、パーティクルの慣性および速度に影響を及ぼします。既定値は 1000.0 です。
加速制限の既定値は、[速度](Speed)の既定値 300.0 に基づいています。[速度](Speed)値を変更する場合、それに合わせて[加速制限](Accel Limit)値も変更することをお勧めします。
ヒント: モーションをスムーズにするには[加速制限](Accel Limit)の値を低くします。パーティクルを小さなターゲットに命中させるときのように、非常に高い精度が必要とされる場合は、高い値に設定します。この設定をアニメート([同期](Sync)
[イベント期間](Event Duration)を使用)することで、求める結果に応じて適切な値を指定できます。
- イーズ イン %
- パーティクルがターゲット ポイントに近付いたときに減速するレートをコントロールします。
最終的な速度の計算式は、「(100% - イーズ イン) × 速度」になります。このため、[イーズ イン](Ease In)の値が 100% の場合、パーティクルはターゲットに速度 0 で接近します。[イーズ イン](Ease In)の値が 0% の場合は、パーティクルはターゲットに近付いても減速しません。中間値の場合、速度はターゲット ポイントまでの距離に基づいて、初期速度(スピード一定)と最終速度間の線形補間として計算されます。パーティクルがイベントに入ると、ターゲット ポイントまで距離が計算され、後で補間に使用されます。既定値は 0.0 です。
- 同期
- [速度](Speed)、[変動](Variation)、および[加速制限](Accel Limit)をアニメートする際に使用するタイム フレームを選択します。
- [絶対値時間](Absolute Time) パラメータに設定された任意のキーが、設定対象の実際のフレームで適用されます。
- [パーティクル エージ](Particle Age) パラメータに設定された任意のキーが、各パーティクルが存在する対応するフレームで適用されます。
- [イベント期間](Event Duration) パラメータに設定された任意のキーが、各パーティクルがイベントに最初に入ったときから、パーティクルに適用されます。
[時間別コントロール](Control By Time)領域
ターゲットに到達するまでのパーティクルの所要時間を指定できます。この領域は、[速度別コントロール](Control By Speed)を使用する場合にのみ使用できます。
- タイミング
- [時間](Time)および[変動](Variation)値の定義で指定されたタイミングを適用する方法を決定します。指定可能なオプションは、次のとおりです。
- [絶対値時間](Absolute Time) システムの時間全体が参照されます。各パーティクルは、[時間](Time)で指定されたフレーム番号でターゲットに到達します。
- [パーティクル エージ](Particle Age) パーティクルの発生時からの経過時間が参照されます。各パーティクルは、[時間](Time)で指定された値にエージが達するときにターゲットに到達します。
- [イベント時間](Event Duration) パーティクルが現在のイベントに入ってからの経過時間が参照されます。各パーティクルは、[時間](Time)で指定されたフレーム数になったときにターゲットに到達します。
- 時間
- ターゲットに到達するまでのパーティクルの所要フレーム数です。既定値は 60 です。
- 変動
- [時間](Time)がランダムに変動可能な量をフレーム数で指定します。既定値は 5 です。
スポーンされた各パーティクルがターゲットに到達するまでの実時間を得るために、システムは[変動](Variation)値に -1.0 ~ 1.0 の間のランダムな数を掛け合わせ、その結果を[時間](Time)値に加算します。たとえば、[時間](Time)が 60 で、[変動](Variation)が 20 の場合、各パーティクルがターゲットに達するまでの時間は 40 ~ 80 フレームの範囲になります。
- サブフレーム サンプリング
- このチェック ボックスにチェックマークが付いている場合、比較的粗いフレーム解像度を使用する代わりに、より高いサブフレーム解像度を使用して(つまり、各フレームを通じて)パーティクルのタイミングを設定できるため、パーティクルが「噴き出す」のを避けることができます。既定値ではチェックマークが付いています。
「噴き出し」は、連続するストリームではなく、パーティクルのクラスタを発生させる効果です。この効果は、エミッタをアニメートするときに特に顕著に現れます。
- ドッキング スピードを使用
- ターゲットへの到達時のパーティクルの速度を指定します。
パーティクルは、特定の方向から、特定の速度でターゲットに到達することが必要な場合があります。[ドッキング スピードを使用](Use Docking Speed)がオフの場合、パーティクルが、最小の加速かつ最短距離でターゲットに到達するパスを計算します。[ドッキング スピードを使用](Use Docking Speed)にチェックマークが付いている場合、[速度](Speed)および[変動](Variation)パラメータを使用して、パーティクルがターゲットに到達する際の最終速度が計算されます。このため、「滑らかな着陸」を実現する場合は[速度](Speed)を 0.0 に設定します。既定値ではチェックマークが付いていません。
- 速度
- パーティクルがターゲットに到達するときの速度(シーン単位/秒)です。既定値は 100.0 です。
- 変動
- [速度](Speed)値がランダムに変動する量です。既定値は 0.0 です。
[ターゲット](Target)領域
既定値では、[ターゲット探査](Find Target)テストは独自のターゲット アイコンを使用しますが、以下のコントロールを使用して他のシーン オブジェクトをターゲットとして指定することも可能です。
- [アイコン](Icon)(既定値) [ターゲット探査](Find Target)アイコンがターゲットとして使用されます。
[ターゲット探査](Find Target)テストは、それぞれ独自のターゲット アイコンを保持します。ドッキング タイプを[平行](Parallel)、[球状](Spherical)、または[円柱状](Cylindrical)に設定する場合、独自のターゲット アイコンをターゲットとして使用しない場合でも、パーティクルの動作はその影響を受けます。
- [メッシュ オブジェクト](Mesh Objects)1 つ以上のシーン メッシュ オブジェクトがターゲットとして使用されます。 これを選択すると、リストおよびリスト管理ボタンが使用可能になります。
複数のターゲットを指定する場合、各パーティクルは[オブジェクト](Object)ドロップダウン リストで選択したターゲットを使用します。
- リスト
- ターゲットとして使用されるメッシュ オブジェクトが表示されます。3 つ以上のターゲット オブジェクトを適用する場合、リストの右側にスクロール バーが表示されます。
- 追加
- このボタンをクリックして、シーン内でメッシュ オブジェクトを選択すると、ターゲットとしてリストに追加されます。
- リスト別
- このボタンをクリックし、[ターゲット オブジェクトを選択](Select Target Objects)ダイアログ ボックスを使用して、1 つ以上のメッシュ オブジェクトをリストに追加します。オブジェクトはシーン内にあらかじめ存在する必要があります。ダイアログ ボックスには適格なオブジェクトのみが表示されます。
- 削除
- リストからターゲット オブジェクトを削除する場合、最初にターゲット オブジェクトをハイライト表示してから、このボタンをクリックします。オブジェクトは、削除された後もシーン内に残ります。
- 同期
- [アニメートされたシェイプ](Animated Shape)または[アニメート ターゲットに追従](Follow Target Animation)を使用してパーティクルをアニメートされたオブジェクトに送信する際に、使用するタイム フレームを選択します。
- [絶対値時間](Absolute Time) ターゲットから生成されたアニメーションは、すぐにパーティクルに適用されます。
- [パーティクル エージ](Particle Age) ターゲットから生成されたアニメーションは、各パーティクルが存在する対応するフレームで、パーティクルに適用されます。
- [イベント期間](Event Duration) ターゲットから生成されたアニメーションは、各パーティクルが最初にイベントに入ったときからパーティクルに適用されます。
- アニメートされたシェイプ
- このチェック ボックスにチェックマークが付いている場合、スケール、モーフィング、またはモディファイヤを使用してフォームがアニメートされるオブジェクトのサーフェスが、パーティクルのターゲットになります。この場合、インテグレーション ステップごとに目標が更新されるため、より多くの計算処理が必要になります。
- アニメート ターゲットに追従
- このチェック ボックスにチェックマークが付いている場合、パーティクルが移動する(位置がアニメートされる)ターゲットに追従します。この場合、インテグレーション ステップごとに目標が更新されるため、より多くの計算処理が必要になります。
- ポイント
- パーティクルが到達するターゲット上のポイントを指定できます。
- オブジェクト
- 複数のメッシュ ターゲットの中から、どれを選択するかを指定できます。このオプションは、複数のオブジェクトがターゲットになっている場合にのみ使用できます。
- [ランダム](Random)パーティクルごとに、ターゲット オブジェクトがランダムに選択されます。
- [一番近い基点](Closest Pivot) パーティクルごとに、パーティクルに最も近い基点を保持するオブジェクトをターゲットとして選択します。
- [一番近いサーフェス](Closest Surface) パーティクルごとに、パーティクルに最も近いサーフェスを保持するオブジェクトをターゲットとして選択します。
- [最小偏差](Least Deviation) パーティクルごとに、到達するために現在方向の変更(または再操縦)が最小限で済むオブジェクトをターゲットとして選択します。
- [スクリプトの値別](By Script Integer) パーティクルごとに、ターゲットのオブジェクトの選択が、インデックスを設定する Script オペレータにより定義されます。このインデックスは、ターゲット リスト内でのターゲット オブジェクトのエントリ位置に対応します。Script Operator オペレータの例を参照してください。
- ターゲット オブジェクトをロック
- このチェック ボックスにチェックマークが付いている場合、各パーティクルのターゲット オブジェクトが、パーティクルがイベントに入るときに 1 度計算されます。このため、パーティクルはターゲット オブジェクトに「ロック」されます。チェックマークをはずすと、ターゲット オブジェクトはパーティクルごとに繰り返し再計算されます。複数のターゲット オブジェクトが指定されている場合にだけ有効です。
たとえば、パーティクルのターゲットに最も近いサーフェスを設定した場合、ターゲットのアニメーションやパーティクルの移動によって、最も近いサーフェスは絶えず変化します。このため、パーティクルは状況に応じてターゲット オブジェクトを変化させることになります。
注: [ターゲット探査](Find Target)テストでターゲット オブジェクトが設定されるたびに、そのオブジェクト上の特定のポイントがターゲットとして「ロック」されます。このポイントを変更できるのは、ターゲット オブジェクトを変更するときだけです。したがって、ターゲット オブジェクトが 1 つだけある場合、そのターゲット オブジェクトに対して常に一定のポイントがターゲット ポイントになります。つまり、ターゲット オブジェクトまたはそのサーフェスがアニメートされている場合、[アニメート ターゲットに追従](Follow Target Animation)または[アニメートされたシェイプ](Animated Shape)にチェックマークを付けると、ターゲット ポイントの絶対座標は変化する可能性があります。
注: [ターゲット オブジェクトをロック](Lock On Target Object)にチェックマークが付いていない場合、フレームごとに各パーティクルの最適なターゲット ポイントを再計算する必要があるため、計算量が多くなります。
[ドッキング方向](Docking Direction)領域
- タイプ
- パーティクルがターゲットに接近する方向を指定できます。
- [指定なし](None Specified) ドッキングに関する制限はありません。パーティクルは、割り当てられたパラメータおよび現在のアトリビュートに基づいて最も効率的な方法でターゲットに到達できます。
- [アイコンの矢印に沿う](Along Icon Arrow) 最終的な方向は、[ターゲット探査](Find Target)アイコンの矢印と同じになります。
注: このオプションを使用すると、[ターゲット探査](Find Target)アイコンに矢印が表示されて、パーティクルがドッキングに使用する方向が示されます。アイコンの方向を再設定することで、ドッキング方向を変更できます。この設定は、メッシュ オブジェクトをターゲットに使用している場合でも有効です。
- [球形アイコン](Icon Spherical) 最終的な方向は、オペレータ アイコンの中心に向かう方向になります。
注: このオプションを使用すると、[ターゲット探査](Find Target)アイコンに矢印が表示されて、パーティクルがドッキングに使用する方向が示されます。アイコンの方向を再設定することで、ドッキング方向を変更できます。この設定は、メッシュ オブジェクトをターゲットに使用している場合でも有効です。
- [円柱形アイコン](Icon Cylindrical) 最終的な方向は、アイコンの矢印に直線的に向かう方向になります。このため、矢印を円柱の主軸とする円柱形フィールドが形成されます。
注: このオプションを使用すると、[ターゲット探査](Find Target)アイコンに矢印が表示されて、パーティクルがドッキングに使用する方向が示されます。アイコンの方向を再設定することで、ドッキング方向を変更できます。この設定は、メッシュ オブジェクトをターゲットに使用している場合でも有効です。
- [サーフェス法線](Surface Normals) 各パーティクルは、このポイントでサーフェスに対して垂直の方向に進み、ターゲット ポイントに到達します。
注: このオプションを使用すると、[ターゲット探査](Find Target)アイコンに矢印が表示されて、パーティクルがドッキングにサーフェス法線を使用することが示されます。実際に使用される方向は、ターゲットのサーフェスに応じて変化します。この設定は、メッシュ オブジェクトをターゲットに使用している場合でも有効です。
- 距離
- パーティクルがドッキング操作を開始するターゲットからの距離です。これには、ドッキング方向と、[時間別コントロール](Control By Time)を使用する場合はドッキング速度も含まれます。
- アイコン サイズ
- [ターゲット探査](Find Target)アイコンの大きさを設定します。アイコンをターゲットとして使用する場合、これはパーティクルの動作に影響を及ぼします。
- 調整カラー
- このチェック ボックスにチェックマークが付いている場合、[ターゲット探査](Find Target)アイコンは、ローカルの[表示](Display)オペレータにより定義されたテストが存在するなら、そのテストを含むイベントのカラーを使用します。これは、[表示](Display)オペレータがオフの場合でも適用されます。チェックマークが付いていない場合、[ターゲット探査](Find Target)アイコンは、[ユーザ インタフェースをカスタマイズ](Customize User Interface) [カラー](Colors) [パーティクル フロー](Particle Flow)で定義された既定値の[テスト ギズモ](Test Gizmos)カラーを使用します。既定値ではチェックマークが付いています。
[調整カラー](Color Coordinated)にチェックマークを付けると、イベント内のパーティクルにはアイコンと同じ色が使用されるため、[ターゲット探査](Find Target)アイコンを見分けるのが容易になります。
[独自性](Uniqueness)領域
[独自性](Uniqueness)の設定を使用して、[ランダム](Random)オプションと[変動](Variation)オプションのランダム化を有効にできます。
- シード
- ランダム化の値を指定します。
- 新規
- ランダム化する式を使用して新規シードを計算します。