| On this page | |
| Since | 20.0 |
このSOPは、時間範囲にわたる各エージェントのモーションを表現したジオメトリを作成します。
(例えば、Crowd MotionPath Followまたは
Crowd MotionPath Transitionを使用して)このジオメトリを操作することで、エージェントのパスまたはスケルタルアニメーションを直接制御することができます。
Crowd MotionPath Evaluate SOPは、そのモーションパスのPointアトリビュートを評価することで、エージェントプリミティブにアニメーションを適用します。
SOP Crowds MotionPathツールセットの詳細は、SOPモーションパスを参照してください。
パラメータ ¶
Source Mode
入力エージェントからモーションパスを構築する方法を指定します。
Clip
入力エージェントに割り当てられているクリップをフレーム範囲にわたって評価することで、モーションパスを作成します。 そのモーションパスのポイントトランスフォームは、各タイムサンプルでのクリップのロコモーショントランスフォームから設定されます。
Simulation
入力ジオメトリをフレーム範囲にわたってクックすることで、モーションパスを作成します。 そのモーションパスのポイントトランスフォームは、各タイムサンプルでのエージェントプリミティブのトランスフォームから設定されます。 入力ジオメトリが時間依存の場合(例えば、群衆シミュレーションの出力からのジオメトリの場合)、このモードを使用してください。
Start/End/Inc
モーションパスのフレーム範囲。 各モーションパスには、そのフレーム範囲内の各サンプルのポイントが含まれます。
Transfer Attributes
入力エージェントのアトリビュートをモーションパスに転送します。
Transfer Groups
入力エージェントのグループをモーションパスに転送します。
Hide Child Agent Paths
別のエージェントに取り付けられているエージェントのモーションパスを非表示にします。 これによって、表示されるパス形状を簡略化したり、インタラクティブな選択対象をルートエージェントに限定することができます。
初期クリップをエージェントに割り当てて、その入力エージェントのクリップの割り当てを上書きします。
Number of Assignments
クリップを割り当てるエージェントグループの数。
Group
クリップを割り当てるエージェントのグループ。
Group Type
Group がポイントグループまたはプリミティブグループのどちらなのかを指定します。
Random Seed
Clip Groups が複数ある時、または、 Clip Names にクリップ名のリストが指定されている時にクリップをランダムに選択するためのシード。
Clip Groups
グループ内のエージェントに割り当てるクリップをウェイト指定でランダムに分布させることができます。
Clip Names
1つ以上のクリップ名を指定した文字列パターン。 このパターンは、match VEX関数と同じ構文に準拠しています。 Clip Groups の Weight 値は、このパターンにマッチしたクリップ間で均等に割り振られます。
Weight
クリップが選択される確率を指定します。
Initial Clip Time
有効にすると、 Group 内のすべてのエージェントの初期クリップ時間(クリップの開始時間を基準とした Clip Time Units )を設定することができます。
Clip Time Units
このドロップダウンメニューでは、 Initial Clip Time と Random Clip Offset の単位を指定します。
Seconds
クリップ時間を、クリップの開始時間を基準として秒で指定します。
Phase
クリップ時間を、正規化された周期で指定します。
0はクリップの開始、1はクリップの終了を指します。
尺が異なるクリップを扱う時は、こちらを使用する方が簡単です。
Random Clip Offset
Initial Clip Time が有効な場合、これは、最大で指定した秒数だけ、各エージェントの初期クリップ時間をランダムに前倒します。
Clip Offset Seed
Random Clip Offset が有効な場合、このシードは、クリップ時間をランダムに可変させる際に使用されます。
Clip Speed
アニメーションクリップの再生速度を調整するための乗数。
Clip Speed Mode
このドロップダウンメニューでは、クリップ速度をランダムにするのか、それとも、入力エージェントのPointアトリビュートを上書きするのか制御します。
Set Uniform
各エージェントのクリップ速度は、 Clip Speed に設定されます。
Set Varying
各エージェントのクリップ速度は、 Variance (%) と Variance Seed に応じてランダムになります。
Use Attribute
各エージェントのクリップ速度は、入力ジオメトリ上のPointアトリビュートから設定されます。
Variance (%)
Clip Speed Mode が Set Varying に設定されている場合、ここには、 Clip Speed をランダムに増減できるパーセンテージを指定します。 例えば、 Clip Speed が0.7で、 Variance が10%なら、エージェントのクリップ速度は、0.63から0.77の間のランダムな値になります。
Variance Seed
Clip Speed Mode が Set Varying に設定されている場合、このシードはクリップ速度をランダムに変化させる時に使用されます。
Clip Speed Attribute
Clip Speed Mode が Use Attribute に設定されている場合、ここには、クリップ速度を設定する浮動小数点アトリビュートの名前を指定します。
アトリビュート ¶
各モーションパスは、時間にわたるエージェントのパスを表現したポリラインで、各ポイントはタイムサンプルです。
モーションパスのアトリビュート ¶
| 名前 | クラス | タイプ | 説明 |
|---|---|---|---|
P
|
point |
vector
|
タイムサンプルでのエージェント全体の位置。 |
transform
|
point |
matrix3
|
タイムサンプルでのエージェント全体のトランスフォーム。 |
time
|
point |
float
|
タイムサンプルに呼応する時間(秒)。 |
custompose
|
point |
group
|
エージェントのポーズが これは、インバースキネマティクスやラグドールシミュレーションなどのツールで生成されたカスタムポーズを維持しつつ、アニメーションエージェントのパス(例えば、群衆シミュレーションの出力)を編集するためのものです。 |
clipnames
|
point |
string[]
|
タイムサンプルでエージェントのポーズを評価する時にブレンドされるアニメーションクリップのリスト。 |
cliptimes
|
point |
float[]
|
各アニメーションクリップを評価するクリップ時間。
これは、 |
clipweights
|
point |
float[]
|
アニメーションクリップに使用するブレンドウェイト。
これは、 |
cliploops
|
point |
int[]
|
各アニメーションクリップで発生したループの回数を追跡します。
これは、 |
rest_transform
|
point |
matrix
|
タイムサンプルでのエージェントの元の全体的なトランスフォーム。 これを使用することで、例えば、エージェントが元の経路からどれだけ逸脱したかを判断することができます。 |
レイヤアニメーションのアトリビュート ¶
以下のアトリビュートは、基本的なアニメーションブレンドモデルを拡張して、アニメーションクリップのレイヤ化とブレンドをするためのツリー構造を表現しています。 これらのアトリビュートは、レイヤアニメーションクリップのPrimitive Intrinsicsに呼応しています。
| 名前 | クラス | タイプ | 説明 |
|---|---|---|---|
cliptransformgroups
|
point |
string[]
|
各クリップに使用するトランスフォームグループの名前。 これは、スケルトン内のトランスフォームまたはチャンネルのサブセットにクリップを適用するのに使用されます。 |
cliplayerids
|
point |
int[]
|
各クリップが入力となっている( |
cliplayermodes
|
point |
int[]
|
各レイヤのブレンドモードを指定します(このリストの長さは、階層内のレイヤの数を制御します)。
有効な値は |
cliplayerweights
|
point |
float[]
|
各レイヤのブレンドウェイトを指定します。
|
cliplayerparents
|
point |
int[]
|
|
入力 ¶
Agents
モーションパスで表現させたいモーションを持つエージェントの群衆。
出力 ¶
Motion Paths
時間範囲にわたるエージェントの経路を表現したポリラインカーブ。
Agents
モーションパスで表現されているモーションを持つエージェントの群衆。
Examples ¶
このサンプルでは、SOPレベルのアニメーションに追従するエージェントをCrowd Solverに取り込む方法を説明しています。 これらのエージェントは、シミュレーションされるエージェントの回避に使用したり、ラグドールに変換することができます。
このサンプルでは、シミュレーションした群衆からモーションパスを生成し、Crowd MotionPath Editノードを使用して、特定のエージェントのモーションパスをインタラクティブに調整する方法を説明しています。
このサンプルでは、Crowd MotionPath Avoid SOPを使用して、近接エージェント間および障害物に対する回避を適用する方法、さらに、collisionignoreアトリビュートを使用して異なるエージェントグループ間のもっと複雑な回避ルールとコリジョンフィルタを構築する方法を説明しています。
このサンプルでは、ガイドカーブに追従するようにモーションパスを変形させる方法、さらには、エージェントが閉じたループを辿るようにさせたり、アトリビュートを使用して各エージェントが辿るカーブを制御するといった高度なオプションを説明しています。
このサンプルでは、Crowd MotionPath Layer SOPを使用して、エージェントの上半身にクリップをレイヤする方法を説明しています。 このクリップは、エージェントが境界オブジェクト内に入った時にアクティブになります。
このサンプルでは、Crowd MotionPath Transition SOPを使用して(Clip Transition Graphで定義された中間遷移クリップなどの)アニメーションクリップ間をブレンドする方法を説明しています。
| See also |