Since | 15.5 |
Crowd Stateは現在のagent stateを定義します。 デフォルトでは、エージェントがこのステート(状態)で再生しているクリップアニメーションにそのノード/ステート名が使われます。 クリップ名は上書きすることができ、ステート間でアニメーションクリップを共有することが可能です。 また、ノードは使用するクリップのアニメーションパラメータも設定します(クリップのリタイミングはこれらの値に基づきます)。
パラメータ ¶
State Name
このCrowd Stateの名前。例えば、walking
やattacking
です。
デフォルト($OS
)では、ノード名をステート名として使用します。この値は、例えば、読み出し元に現行ステートを表示したり、リストからステートを選択させる時に使用されます。
RBD Ragdoll
このステートでエージェント(“ラグドール”)をシミュレーションするかどうかを指定します。
Ignore
Bullet Solverは、このエージェントを無視し、RBDオブジェクトがこのエージェントと衝突しません。
Animated Static
Bullet Solverは、このエージェントをアニメーションするStaticオブジェクトとして扱います。 つまり、このエージェントはリジッドボディに影響を与える(例えば、他のオブジェクトがエージェントから跳ね返る)のに対し、シミュレーションされるオブジェクトは、このエージェントに影響を与えません。
Active
Bullet Solverは、このエージェントをアクティブRBDオブジェクト(“ラグドール”)としてシミュレーションします。 以下の Partial Ragdoll コントロールを使用することで、キャラクタの一部だけをシミュレーションし、キャラクタの残りの部分をアニメーションクリップに追従させることができます。
Stiffness ¶
Enable Stiffness
Stiffness(剛性)は、ソルバがジョイントを現在の向きから(アニメーションまたはシミュレーションした)“ターゲット”の向きに動かそうとした時に特定の抵抗を追加します。
Group
硬くさせるジョイントを指定した名前の付いたトランスフォームグループ。
Agent Transform Group SOPを使用することで、エージェントセットアップネットワーク内にジョイントグループを作成することができます。
Stiffness Value
これを“Constant”にすると、このステートの間はStiffness(剛性)は一定です。“Ramp”を選択することで、エージェントがこのステートにいる期間に基づいたランプに応じて値を変化させることができます。
Stiffness
Stiffness Value が“Constant”の時、現在のジョイントの回転の変化に対する抵抗を指定します。
0.2
(デフォルト)から0.5
の間の値は、“硬いけれども硬すぎない”ものとして扱われます。1
以上の値は非常に硬くなります。
Time Range
Stiffness Value が“Ramp”の時、開始と終了の時間(秒)は、このランプの開始と終了に相当します。
例えば、0.0
と5.0
を設定すると、このランプは、エージェントがこのステートになった時の最初の5秒間に対するStiffness(剛性)を制御することができます。
この範囲外では、このランプは、最初と最後の値を延長します。
Stiffness Scale
Stiffness Value が“Ramp”の時、これは、 Stiffness Ramp の値に対するスケールです。
Stiffness Ramp
エージェントがこのステートになっている時に各ポイントにこのStiffness(剛性)を設定します。 Houdiniは、エージェントがこのステートにいる期間を知ることができないので、 Time Range をセットアップして、その範囲内でのStiffness(剛性)を定義しておく必要があります。 この範囲外では、このランプは、最初と最後の値を延長します。
Constraint Force Mixing
この値を上げると、拘束のモーターコンポーネントがより柔らかくなります。 プラスの小さい値ほど、シミュレーションの安定性を良くすることができます。
Partial Ragdoll ¶
Enable Partial Ragdoll
エージェントの一部のジョイントをシミュレーション(ラグドール化)できるようにすると同時に、他のジョイントをアニメーションクリップに追従させます。 例えば、下半身をwalkingクリップでアニメーションさせ、上半身をラグドール化させて、シミュレーションオブジェクトからの衝突に反応させることができます。
Active Group
シミュレーション(ラグドール化)させたいジョイントを指定した名前の付いたトランスフォームグループ。
(このグループにないジョイントは、パラメータの下部で設定可能なアニメーションクリップに追従します。)
Agent Transform Group SOPを使用することで、エージェントセットアップネットワーク内にジョイントグループを作成することができます。
Motors ¶
Enable Motor
ある程度の労力を費やしてジョイントをアニメーションクリップに追従させて、さらにそれらのジョイントをシミュレーションして、そのシミュレーションされたフォースが、このMotor Effect(運動作用)を変更したり圧倒させることができます。
Group
クリップによって(部分的に)アニメーションさせるジョイントを指定した名前の付いたトランスフォームグループ。
Agent Transform Group SOPを使用することで、エージェントセットアップネットワーク内にジョイントグループを作成することができます。
Strength Value
これを“Constant”にすると、このステートの間はStiffness(剛性)は一定です。“Ramp”を選択することで、エージェントがこのステートにいる期間に基づいたランプに応じて値を変化させることができます。
Motor Strength
ジョイントをクリップに追従させるのに費やす労力。デフォルト値の10は、重力を圧倒するのに十分ですが、さらに衝突によって、このモーター(運動)を圧倒させることができます。 この値を増減させることで、あなたが求めているMotor Effect(運動作用)になるように試行錯誤することができます。
Time Range
Strength Value が“Ramp”の時、開始と終了の時間(秒)は、このランプの開始と終了に相当します。
例えば、0.0
と5.0
を設定すると、このランプは、エージェントがこのステートになった時の最初の5秒間に対するMotor Strength(運動力)を制御することができます。
この範囲外では、このランプは、最初と最後の値を延長します。
Strength Scale
Strength Value が“Ramp”の時、これは、 Strength Ramp の値に対するスケールです。
Strength Ramp
エージェントがこのステートになっている時に各ポイントにこのMotor Strength(運動力)を設定します。 Houdiniは、エージェントがこのステートにいる期間を知ることができないので、 Time Range をセットアップして、その範囲内でのMotor Strength(運動力)を定義しておく必要があります。 この範囲外では、このランプは、最初と最後の値を延長します。
Correction Time
ソルバが(例えば衝突の後の)ターゲットのジョイント回転との乖離の訂正にかける早さまたは遅さ(秒)。 値が低いほど、エージェントは衝撃から早く“回復”するのに対し、値が高いほど、衝撃がエージェントに長く影響を与えます。
Constraint Force Mixing
この値を上げると、拘束のモーターコンポーネントがより柔らかくなります。 プラスの小さい値ほど、シミュレーションの安定性を良くすることができます。
Animation Clip Controls ¶
ラグドールに関しては、これらのコントロールは、 Partial Ragdoll または Motors が有効な時でも利用可能であり、ジョイントのアニメーションを制御するアニメーションクリップを設定することができます。
Clips ¶
Clip Assignment
エージェントがステートに入った時に、特定のクリップ(または無作為のクリップ)をそのエージェントに割り当てるべきかどうかを指定します。
これは、シミュレーションの頭( Set Initial Clip Name が有効な場合)、または、新しいステートへのトランジションが発生した時に実行されます。
何もクリップを割り当てなかった場合、エージェントがこのステートに入ってもそのエージェントの現行クリップが維持されます。
Crowd Transition DOPを使ってクリップを明示的に変更することもできます。
Clip Name
そのステートで再生するアニメーションクリップの名前。
Random Seed
ランダムにクリップを選択する時に使用するシード。
Clip Groups
カスタム分布のクリップのグループの数。
Clip Names
1つ以上のクリップ名を指定した文字列パターン。 このパターンは、match VEX関数と同じ構文に準拠しています。 グループの Weight 値は、その一致したクリップ間で均等に分割されます。
Weight
クリップを選択する度合いを指定します。
Set Initial Clip Name
Clip Assignment パラメータを使って、エージェントの初期クリップをオーバーライドするかどうかを指定します。
Set Initial Clip Time
Initial Clip Time と Random Clip Offset のパラメータを使って、エージェントの初期クリップ時間をオーバーライドするかどうかを指定します。
Initial Clip Time
このステート内のすべてのエージェントの初期クリップ時間(秒)を調整します。
Randomize Clip Time
各エージェントの初期クリップ時間をランダムに調整します。
Random Clip Offset
最大で指定した秒数だけ、各エージェントの初期クリップ時間をランダムに前倒します。
Random Seed
クリップ時間をランダムに可変させる際に使用するシード値。
Apply Locomotion Orientation
ロコモーションクリップに対して、 Set Initial Clip Time が有効な時に、そのクリップのロコモーションデータに応じてエージェントの向きも変更するべきかどうかを指定します。
Clip Playback ¶
Type
Clip Speed Multiplier
アニメーションクリップの再生速度を調整するための乗数を指定します。
Locomotion Speed Multiplier
ロコモーションクリップに対して、アニメーションクリップのロコモーションチャンネルの再生速度を調整するための乗数を指定します。
Randomize Clip Speed
エージェント毎に Clip Speed Multiplier と Locomotion Speed Multiplier をランダムに調整します。 VEXpressionsを使用して、それらのSpeed Multiplierを調整することもできます。
Variance (%)
Clip Speed Multiplier がランダムに増減できる割合を指定します。 例えば、 Clip Speed Multiplier が0.7、 Variance が10%なら、エージェントのクリップ速度乗数は、0.63から0.77の間のランダム値になります。
Random Seed
クリップ速度をランダムに変化させる時に使用するシード。
Last Frame Matches First Frame
ロコモーションクリップがループするための一般的はワークフローは、最初のフレームのポーズに一致するようにクリップの最後に余分なフレームを追加することです。
クリップの最後のフレームは、Crowd Solverで使用され、最後のポーズから初期のポーズに戻す時に正しいロコモーションを決定します。
最後のフレームは、連続した2フレーム間で同じポーズにならないように、またはエージェントが突然後ろにジャンプしないようにクリップ時間を進めた時にスキップされます。
Enable Looping
クリップのループ範囲の最後に到達した後にクリップの再生を停止するかどうかを指定します。
これは、Clip Propertiesを使用してクリップ毎に上書きすることができます。
Retime Clip to Match Particle Speed
Gait Speed とパーティクルのVelocityに基づいて、クリップの再生速度を調整します。
Gait Speed
インプレースアニメーション(その場歩き)でエージェントが移動する速さを指定します。これは、 Retime Clip to Match Particle Speed が有効な時に使用されます。
Allowed Variance (%)
Retime Clip to Match Particle Speed が有効な時にクリップの時間を調整する大きさを指定します。
Limit Particle Speed to Gait Speed Range
Gait Speed と Allowed Variance で指定した範囲内にパーティクル速度を強制的に落とします。
See also |