On this page |
Crowdオブジェクトのオプションのクリップトランジショングラフを使用すれば、ステートとアニメーションクリップ間のトランジションを制御することができます。 そこには、お互いにトランジション可能なクリップに関する情報、それらのクリップ内でトランジションを発生させる箇所に関する情報が備わっています。 これをCrowd Transition DOPで使用することで、現行アニメーションクリップ内の適切な箇所までステートトランジションを遅らせたり、次のクリップへ滑らかにブレンドさせることができます。 さらに、そのクリップトランジショングラフは、このビヘイビアに対してクリップ毎に制御することができます(これは、トランジションの Input State パラメータに複数のステートを指定した場合や、どれかの入力ステートに対して Randomize Clips を有効にした場合に役立ちます)。
Test Simulation: Crowd Transition SOPを使用することで、群衆シミュレーションをセットアップする前に、特定のクリップ間のトランジションを簡単にプレビューすることができます。
クリップトランジショングラフジオメトリ内の各ポイントはアニメーションクリップを表現し、各2点ポリゴンはクリップ間の(一方向の)トランジションを表現します。 ステートトランジション中に、入出力ステートのアニメーションクリップに相当するポイントが直接接続されていない場合、Crowd Transition DOPは、それらの2つのクリップ間の最短パスを使用します。
アトリビュート
名前 | クラス | タイプ | 説明 |
---|---|---|---|
clipname
|
Point | String |
アニメーションクリップの名前を指定します。 |
agentname
|
Point | String |
この文字列は、エージェントの |
blend_durations
|
Primitive | Float Array |
トランジション領域毎に、その領域で始まるトランジションの期間(秒)を指定します。 |
sync_points
|
Primitive | Vector2 Array |
トランジション領域毎に、その2つのアニメーションクリップで似たポーズを持つクリップ時間(秒)のペアを指定します。 |
transition_regions
|
Primitive | Vector2 Array |
最初のアニメーションクリップに対して、トランジションを起こすことができるクリップ時間の範囲(秒)を指定します。 |
パラメータ
Units
時間パラメータの単位を指定します。ここには、フレーム(Houdini FPS)またはサンプル(クリップのサンプルレート)を指定することができます。
Compute Transition Graph
エージェントのアニメーションクリップに対してトランジショングラフを自動的に構築します。 各クリップのペアに関しては、これは、エージェントのポースが似ている連続フレームのグループを検索します。
Tolerance
エージェントのポーズがどの程度似ているのかを判定するための許容値を指定します。
Blend Frames
アニメーションクリップ間のトランジションの長さを指定します。
Transform Group
ポーズのペアを比較する時、その比較をエージェントのリグの特定のグループのトランスフォーム(例えば、下半身)に制限することができます。
Filters
トランジションポイントを検索するクリップのペアを制限します。 通常のパターンマッチング構文(match VEX関数で使用する構文と同じ)を使用することで、ソースクリップとターゲットクリップを複数指定することができます。
例えば、sit_to_stand
クリップからsit
クリップまでのトランジションを除外し、stand_1
とstand_2
のクリップまでのトランジションだけを検索するには、 Clip A にsit_to_stand
、 Clip B にstand_*
を設定します。
Extra Transitions
アニメーションクリップのペア間でセットアップする追加トランジションの数。
Clip A
トランジション(遷移)元のアニメーションクリップの名前。
Clip B
トランジション(遷移)先のアニメーションクリップの名前。
Initialize from Computed Transition Regions
Compute Transition Graph が有効な時に計算された値をTransition Regionsパラメータに設定します。 これを使用することで、その計算されたトランジション領域を手動で編集することができます。
Transition Regions
トランジション(遷移)が起こり得るクリップ内の領域の数。
Sync Frame A
ポーズが Clip B の Sync Frame B に似ている Clip A のフレームを指定します。
Transition Region
トランジション(遷移)を開始できるフレーム範囲を指定します。通常では、 Sync Frame A の範囲を含めてください。
Sync Frame B
ポーズが Clip A の Sync Frame A に似ている Clip B のフレームを指定します。
Blend Frames
クリップ間のトランジション(遷移)の長さを指定します。
Examples
The following examples include this node.
Stadium Crowd Example Example for Crowd Solver dynamics node
スタジアムのセットアップを説明した群衆サンプル。
このセットアップは、スタジアムの群衆を作成します。 回転するcheer_bboxオブジェクトをエージェントの境界ボックスとして使用しています。 エージェントがそのオブジェクトの中に入ると、座っている状態から応援している状態へ推移します。 数秒後には、応援している群衆がまた座っている状態に戻ります。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
Tip
群衆の一部だけをもっと高速にプレビューしたいのであれば、/obj/crowdsource/switch_all_subsectionにSwitchノードがあります。 そのスイッチを0に設定すると、すべてのエージェントが表示され、1に設定すると、一部のみが表示されます。
ClipTransitionGraph Example for Crowd Transition dynamics node
このサンプルでは、クリップトランジショングラフを使用することで、ステートのトランジションに対してトランジションクリップを用意する方法を説明しています。
CrowdTriggers Example for Crowd Trigger dynamics node
このサンプルでは、Crowd Trigger DOP用のビルトインのトリガータイプの使い方を説明しています。
See also |