On this page | |
Since | 13.0 |
RBD Packed Object DOPは、DOPシミュレーション内に単一のDOPオブジェクトを作成します。 このノードは、指定したSOP Pathからジオメトリを受け取り、トランスフォームと単一ポイントを持つ各プリミティブを使ってRBDオブジェクトを表現します。 このRBDオブジェクトには、例えばパックプリミティブ、球、円柱といったプリミティブを格納します。 各パックプリミティブにはリジッドボディ用の衝突ジオメトリが備わっていて、そのプリミティブのポイント上のアトリビュートを使用して、向き、質量、Velocityなどの情報を記録します。
その結果のDOPオブジェクトは、RBD Fractured Object DOPまたはRBD Point Object DOPよりも非常に効率的な方法で、膨大な数のオブジェクトを表現します。 現在のところ、このオブジェクト表現は、Bullet Solverにのみ対応しています。
Note
Houdini13では、RBD Packed Objectsは布や流体などの他のソルバと相互作用することができません。
Pointアトリビュート ¶
Bullet Solverは、各パックオブジェクトの一部のプロパティを記録するために、いくつかのPointアトリビュートを使用します。
名前 | タイプ | 説明 |
---|---|---|
active
|
Integer |
オブジェクトがシミュレーションで他のオブジェクトに反応可能かどうか指定します。 デフォルトのアクティブ状態は、 Initial Object Type パラメータで設定します。 |
age
|
Float |
オブジェクトの年齢(秒)。 |
animated
|
Integer |
オブジェクトのトランスフォームを各タイムステップでそのSOPジオメトリから更新するかどうか指定します。
このアトリビュートは、 |
bounce
|
Float |
オブジェクトの弾性。 |
bullet_add_impact
|
Integer |
有効にすると、シミュレーション中に起きたImpactが Impacts または Feedback のデータに記録されます。 このオプションを有効にすると、シミュレーション時間とメモリ使用量が増えます。 |
bullet_ignore
|
Integer |
Bulletソルバでオブジェクトを完全に無視させるかどうか指定します。 |
bullet_angular_sleep_threshold
|
Float |
オブジェクトの角速度に対するsleepの閾値。しばらくの間にオブジェクトの角速度が、この閾値より小さい時には、オブジェクトが動いていないと見なされます。 |
bullet_linear_sleep_threshold
|
Float |
Tオブジェクトの線形Velocityに対するsleepの閾値。しばらくの間にオブジェクトの線形速度が、この閾値より小さい時には、オブジェクトが動いていないと見なされます。 |
bullet_want_deactivate
|
Integer |
オブジェクトが再び動くまで、動いていないオブジェクトのシミュレーションを無効にします。 線形Velocityと角速度の閾値を使用して、オブジェクトが動いていないかどうか判断します。 Display Geometry チェックボックスをオフにすると、ガイドジオメトリのカラーが Color から Deactivated Color に変わることが確認できます。 |
computecom
|
Integer |
オブジェクトの質量の中心をオブジェクトのコリジョンシェイプから自動的に計算するかどうか指定します。 デフォルト値は、 Compute Center of Mass パラメータで設定します。 |
computemass
|
Integer |
オブジェクトの質量をオブジェクトのコリジョンシェイプと密度から自動的に計算するかどうか指定します。 デフォルト値は、 Compute Mass パラメータで設定します。 |
creationtime
|
Float |
オブジェクトが作成されたシミュレーション時間を記録します。 |
dead
|
Integer |
オブジェクトを次の計算で削除するかどうか指定します。POP Killノードを使えば、このアトリビュートを生成することができます。 |
deforming
|
Integer |
オブジェクトのコリジョンシェイプを各タイムステップでそのSOPジオメトリから再構築するかどうか指定します。デフォルト値は、 Initial Object Type パラメータで設定します。 |
density
|
Float |
オブジェクトの質量は、そのボリュームとその密度を乗算した値です。 デフォルト値は、 Density パラメータで設定します。 |
friction
|
Float |
オブジェクトの摩擦係数。0の値は、オブジェクトに摩擦がないことを意味します。 デフォルト値は、 Friction パラメータで設定します。 |
inertialtensorstiffness
|
Float |
オブジェクトの慣性テンソルに適用するスケール係数。値が高いほど、オブジェクトにスピンがかかりにくくなり、値が低いほど、スピンしやすくなります。 デフォルト値は、 Rotational Stiffness パラメータで設定します。 |
inheritvelocity
|
Integer |
ゼロでない場合、ソースのSOPジオメトリの |
life
|
Float |
オブジェクトの最大寿命(秒)。
|
mass
|
Float |
オブジェクトの質量。 |
name
|
String |
オブジェクトの固有の名前。この値は、このオブジェクトに取り付けるべき拘束を識別するために、Constraint Networksで使われます。 |
orient
|
Quaternion |
|
P
|
Vector |
オブジェクトの質量の中心の現在の位置。 |
pscale
|
Float |
|
pivot
|
Vector |
向きの適用先となるピボットポイント。 |
restxform
|
Matrix |
パックプリミティブの初期トランスフォーム。
パックプリミティブの現在のトランスフォームは、このトランスフォームと ポジショントランスフォーム (シミュレーションで適用されたトランスフォーム)の組み合わせで決まります。
このポジショントランスフォームは、 |
scale
|
Vector |
Bulletソルバは、コリジョンジオメトリとオブジェクトの慣性テンソルを自動的に更新して、このスケールを反映します。 Note
Note 自動フィットするコリジョンシェイプ(つまり、 Geometry Representation が Box, Capsule, Cylinder, Sphere, Plane の時)に対して動的なスケールは対応していません。
そのような場合では、 |
v
|
Vector |
オブジェクトの線形Velocity。初期Velocityは、 Velocity パラメータで設定します。 |
w
|
Vector |
オブジェクトの角速度(ラジアン/秒)。初期角速度は、 Angular Velocity パラメータで設定します。 |
コリジョンシェイプ系アトリビュート ¶
以下のアトリビュートを使えば、各オブジェクトのコリジョンシェイプをカスタマイズすることができます。
名前 | タイプ | 説明 |
---|---|---|
bullet_adjust_geometry
|
Integer |
Collision Padding がオブジェクトの影響サイズを広げないように、衝突ジオメトリを収縮させます。 これは、初期段階で密接にパックされたコリジョンシェイプが相互貫通しないようにして、さらに Collision Padding で発生したオブジェクト間の隙間を除去することで、シミュレーションのパフォーマンスを上げることができます。 |
bullet_autofit
|
Integer |
Geometry Representation が Box, Capsule, Cylinder, Sphere, Plane の時に、オブジェクトのジオメトリの境界を使用して、コリジョンシェイプを計算するかどうか指定します。 |
bullet_collision_margin
|
Float |
Bulletエンジンが衝突検出の信頼性とパフォーマンスを改良するために使用するPadding(余白)距離。この値は、シーンの大きさに依存してスケールする必要があります。 このPaddingは、コリジョンシェイプのサイズを広げるので、コリジョンシェイプが大きくならないように Shrink Collision Geometry を有効にすることを推奨します。 このオプションは、 Concave(凹) または Plane のジオメトリ表現には対応していません。 |
bullet_color
|
Vector |
形状のガイドジオメトリのカラーを指定します。 |
bullet_deactivated_color
|
Vector |
オブジェクトが動いていなくてソルバによって非活動化された場合のその形状のガイドジオメトリのカラーを指定します。 |
bullet_georep
|
String |
オブジェクトの表現に使用されるコリジョンシェイプ。
指定可能な値は、 |
bullet_groupconnected
|
Integer |
Geometry Representation が Convex Hull の時に、ソルバがジオメトリ内の繋がったプリミティブの各セットに対して別々に凸ハルコリジョンシェイプを含んだ複合形状を作成するかどうか指定します。 |
bullet_length
|
Float |
Capsule または Cylinder のコリジョンシェイプのY方向の長さ。 AutoFit が有効であれば、この値は、オブジェクトのジオメトリから自動的に計算されます。 |
bullet_primR
|
Vector |
Bulletワールドでの Box, Capsule, Cylinder, Plane のコリジョンシェイプの向き。 AutoFit が有効であれば、この値は、オブジェクトのジオメトリから自動的に計算されます。 |
bullet_primS
|
Vector |
Box のコリジョンシェイプのサイズ。 AutoFit が有効であれば、この値は、オブジェクトのジオメトリから自動的に計算されます。 |
bullet_primT
|
Vector |
Bulletワールドでの Box, Sphere, Capsule, Cylinder, Plane のコリジョンシェイプの位置。 AutoFit が有効であれば、この値は、オブジェクトのジオメトリから自動的に計算されます。 |
bullet_radius
|
Float |
Sphere, Capsule, Cylinder のコリジョンシェイプの半径。 AutoFit が有効であれば、この値は、オブジェクトのジオメトリから自動的に計算されます。 |
bullet_shrink_amount
|
Float |
Shrink Collision Geometry によるサイズ変更の量を指定します。 |
コリジョン系アトリビュート ¶
以下のアトリビュートを使用すれば、オブジェクトのコリジョン関連の挙動を設定することができます。
名前 | タイプ | 説明 |
---|---|---|
activationignore
|
String |
オブジェクトが非アクティブになっていて、プラスの |
activationxformgroup
|
String |
エージェントに対して、 |
collisiongroup
|
String |
このオブジェクトが属する衝突グループの名前を指定します。
これを |
collisionignore
|
String |
オブジェクトは、このパターンに一致するオブジェクトと衝突しません。
このパターンには、DOPオブジェクトの名前、DOPオブジェクトのID、DOPグループ、RBD Packed Objectのパックプリミティブの
|
min_activation_impulse
|
Float |
オブジェクトを非アクティブからアクティブに切り替えさせる衝突の最小Impulse。衝突が起きた瞬間にアクティブ化が起きます。
|
stickycollisionignore
|
String |
このパターンに合致したオブジェクトとの衝突に関しては、Sticky Collisionsは起きません。
このパターンには、 |
minstickycollisionimpulse
|
Float |
オブジェクトを他のオブジェクトに引っ付かせる衝突の最小Impulse。
この2個のオブジェクト間の拘束は、衝突が起きた瞬間に生成されます。
|
maxstickycollisionobjects
|
Integer |
このオブジェクトが引っ付くことが可能な他のオブジェクトの最大の数。 この値が0以下なら、この制限は無効になり、このオブジェクトは他のオブジェクトに無制限で引っ付くことが可能になります。 |
numstickycollisionobjects
|
Integer |
このオブジェクトが引っ付いた他のオブジェクトの数(この上限は |
maxstickycollisionpoints
|
Integer |
このオブジェクトを他のオブジェクトに引っ付けるために使用可能なアンカーポイント(拘束)の最大の数。 拘束は、2個のオブジェクト間の接触点に追加されます。 デフォルト値は1で、オブジェクトの各ペア間に単一の拘束を作成することが許容されます。 |
速度制限系アトリビュート ¶
以下のアトリビュートを使用すれば、指定したオブジェクトの線形速度または角速度を制限することができます。 この制限は、フォースと拘束が適用された後(ですが、位置の更新前)のサブステップ毎に実行されるので、これはオブジェクトの速度に対して制限を厳しくします。 アトリビュート値がマイナスならば、この制限は実行されません。 アニメーションまたは変形するStaticオブジェクトに関しては、この速度制限は、衝突計算時に使用されるVelocityに影響を与えます。 POP Speed Limitノードを使えば、このアトリビュートを生成することができます。
名前 | タイプ | 説明 |
---|---|---|
speedmin
|
Float |
オブジェクトが移動可能な最低速度(ユニット/秒)。これは静止オブジェクトに影響を与えません。 |
speedmax
|
Float |
オブジェクトが移動可能な最高速度(ユニット/秒)。 |
spinmin
|
Float |
オブジェクトが回転可能な最低速度(ラジアン/秒)。これは回転しないオブジェクトに影響を与えません。 |
spinmax
|
Float |
オブジェクトが回転可能な最高速度(ラジアン/秒)。 |
以下のリストのアトリビュートを使用することで、拘束と衝突を計算した時のオブジェクトの線形速度または角速度の 変化 を制限することができます。 これは、外部フォースから起因するオブジェクトのVelocityの変化に影響を与えず、拘束が計算されて位置が更新された後のフレーム毎に実行されます。 これは、非常に速い線形速度または角速度を生成する衝突を抑えるのに役立ちます。 値がマイナスの場合は、クランプ(制限)は実行されません。
Note
最善の結果を得るには、線形加速度と角速度の両方を同時にクランプすることを推奨します。
最大加速度を非常に低い値に設定することで、地面でオブジェクトが静止するような状況でジッターが発生することができます。 そのような低い値では、接触拘束は、重力による加速度に抵抗できるほど十分にそのオブジェクトのVelocityを変更することはできません。
名前 | タイプ | 説明 |
---|---|---|
accelmax
|
Float |
拘束を強制させることで引き起こされるオブジェクトの速度の変化を制限します。 |
angaccelmax
|
Float |
拘束を強制させることで引き起こされるオブジェクトの角速度の変化を制限します。 |
フォース系アトリビュート ¶
以下のアトリビュートを使用すれば、フォースを特定のオブジェクトに適用することができます。 POP ForceやPOP Dragなどのノードを使用すれば、それらのフォースを生成することができます。
名前 | タイプ | 説明 |
---|---|---|
airresist
|
Float |
ターゲットVelocity( |
drag
|
Float |
オブジェクトが |
dragexp
|
Float |
Drag Exponent が高いほど、 |
force
|
Vector |
オブジェクトの質量の中心に適用されるフォースを指定します。 |
spinresist
|
Float |
ターゲット角速度( |
targetv
|
Vector |
オブジェクトのターゲットVelocityを指定します。これは、 |
targetw
|
Vector |
オブジェクトのターゲット角速度を指定します。これは、 |
torque
|
Vector |
オブジェクトに適用されるTorque(回転モーメント)を指定します。 |
エージェント系アトリビュート ¶
エージェントプリミティブに関しては、エージェントのCollisionレイヤー内に取り付けられている最低でも1個のシェイプを持ったリグのトランスフォーム毎にリジッドボディが作成されます。
エージェントのリジッドボディそれぞれを変化させることが可能なプロパティには、配列アトリビュートを使用します。そのアトリビュート名の接尾辞は_agent
になっています。
これらの配列のインデックスには、エージェントのリグのトランスフォームインデックスを使用しています。
以下の配列アトリビュートが必須です:
-
bullet_autofit_valid_agent
-
bullet_length_agent
-
bullet_primR_agent
-
bullet_primS_agent
-
bullet_primT_agent
-
bullet_radius_agent
-
bullet_sleeping_agent
-
deactivation_time_agent
-
mass_agent
-
orient_agent
-
pivot_agent
-
trans_agent
-
v_agent
-
w_agent
以下の配列アトリビュートは任意であり、値を変化させる必要がある時に、通常のPointアトリビュートの代わりに使用することができます。
-
active_agent
-
activationignore_agent
-
activationxformgroup_agent
-
bounce_agent
-
bullet_color_agent
-
bullet_deactivated_color_agent
-
collisiongroup_agent
-
collisionignore_agent
-
density_agent
-
force_agent
-
friction_agent
-
inertialtensorstiffness_agent
-
maxstickycollisionobjects_agent
-
maxstickycollisionpoints_agent
-
min_activation_impulse_agent
-
minstickycollisionimpulse_agent
-
numstickycollisionobjects_agent
-
stickycollisionignore_agent
-
torque_agent
さらに以下に載せているアトリビュートは、エージェントプリミティブに使用することができます。
名前 | タイプ | 説明 |
---|---|---|
bullet_updateagentxform
|
Integer |
ソルバがルートリジッドボディの動きに基づいてエージェントの全体のトランスフォーム(例えば、 |
予約済みのソルバ系アトリビュート ¶
以下は、ソルバで内部的に維持されているアトリビュートのリストです。 これらのアトリビュートは、あなた自身で修正しないでください。
名前 | クラス | タイプ | 説明 |
---|---|---|---|
bullet_autofit_valid
|
Point | Integer |
AutoFit が有効な時、この値は、ソルバが既に |
bullet_sleeping
|
Point | Integer |
ソルバによってオブジェクトがスリープ状態になっているかどうかを追跡します。 これは、オブジェクトとその隣接/拘束オブジェクトの速度が一定時間に Linear Threshold と Angular Threshold を下回った後に起こります。 Note 手動でオブジェクトを目覚めさせる時、そのオブジェクトがすぐにスリープに戻らないように |
deactivation_time
|
Point | Float |
オブジェクトの速度が Linear Threshold または Angular Threshold を下回った時間の量。 ソルバは、この値を使用して、しばらくの間に非アクティブになったオブジェクトのシミュレーションを無効にします。 |
found_overlap
|
Point | Integer |
ソルバがはじめてオブジェクトを見る時、ソルバは、そのオブジェクトがシミュレーションの初期段階で他のオブジェクトと重なっているかどうかチェックし、オブジェクトのペアが引き離されないようにします。 この値は、ソルバが前のフレームのオブジェクトに対して、このプロセスを実行したかどうかを判断するために、ソルバで使用されます。 |
id
|
Point | Integer |
オブジェクトの固有の識別子。この値は、シミュレーションへ追加または削除されたオブジェクトを識別するために、ソルバで使用されます。 |
nextid
|
Detail | Integer |
追加される次の新しいオブジェクトへソルバが割り当てる |
パラメータ ¶
Creation Frame Specifies Simulation Frame
作成フレームが、グローバルのHoudiniフレーム($F
)またはシミュレーション固有のフレーム($SF
)のどちらを参照するか決めます。
後者は、DOP Networkレベルのオフセット時間とスケール時間の影響を受けます。
Creation Frame
オブジェクトが作成されるフレーム番号。 現行フレーム番号がこのパラメータの値と同じ時にだけオブジェクトが作成されます。 つまり、DOP Networkは、指定したフレームでのタイムステップを評価しなければならないことを意味します。そうしないとオブジェクトが作成されません。
例えば、この値を3.5に設定すれば、必ずDOP Networkがフレーム3.5
でタイムステップを持つように、DOP Networkの Timestep パラメータを1/(2*$FPS)
に変更しなければなりません。
Initial Object Type
オブジェクトの初期状態を指定します。active
, animated
, deforming
Pointアトリビュートを使用することでオブジェクト毎にそれらの値を変化させることができます。
アニメーションまたは変形するオブジェクトに対しては、name
Pointアトリビュートを使用して SOP Path から一致するポイントを見つけます。
Create Active Objects
オブジェクトはシミュレーションされ、シミュレーション内の他のオブジェクトに反応します。
Create Static Objects
オブジェクトは動かず、シミュレーション内の他のオブジェクトに反応しません。
Create Animated Static Objects
オブジェクトのトランスフォームは、 SOP Path からタイムステップ毎に更新されますが、そのオブジェクトはシミュレーション内の他のオブジェクトに反応しません。
Create Deforming Static Objects
オブジェクトのコリジョンシェイプは、 SOP Path からタイムステップ毎に再構築されますが、そのオブジェクトはシミュレーション内の他のオブジェクトに反応しません。
Create Deforming Active Objects
オブジェクトはシミュレーションされ、シミュレーション内の他のオブジェクトに反応します。そのコリジョンシェイプも SOP Path からタイムステップ毎に再構築されます。
Geometry Source
オブジェクトのジオメトリのソースを指定します。
SOP
SOP Path パラメータに指定されたSOPを使用します。
First Context Geometry
DOPネットワークの1番目の入力に接続されているSOPを使用します。
Second Context Geometry
DOPネットワークの2番目の入力に接続されているSOPを使用します。
Third Context Geometry
DOPネットワークの3番目の入力に接続されているSOPを使用します。
Fourth Context Geometry
DOPネットワークの4番目の入力に接続されているSOPを使用します。
SOP Path
このオブジェクトのジオメトリとなるSOP(または、表示SOPを使用する場合にはObject)のパス。
Overwrite Attributes from SOP
有効な時、 SOP Path からフレーム毎に更新されるPointアトリビュートのリストを指定します。name
Pointアトリビュートを使用することでSOPジオメトリから一致するポイントを見つけます。
Use Object Transform
選択したSOPを含んだオブジェクトのトランスフォームをジオメトリに適用します。 これはジオメトリの初期位置をオブジェクトトランスフォームで定義する場合に役に立ちます。
Display Geometry
ジオメトリをビューポートに表示するかどうか制御します。シミュレーションが変わっても、そのシミュレーションをリセットしません。
Simulation Geometry
オブジェクトのジオメトリがビューポートに表示されます。
Render Geometry
Render SOP Path パラメータで指定したジオメトリがシミュレーションジオメトリに合致するようにトランスフォームされて、ビューポートに表示されます。 これは、シミュレーションジオメトリ用の低解像度シェイプを使用した時に、そのシミュレーションの結果を可視化するのに役立ちます。
Render SOP Path
Display Geometry を Render Geometry に設定した時に使用するSOPジオメトリを指定します。
Initial State ¶
Position
オブジェクトのワールド空間での初期位置。
Rotation
オブジェクトの初期の向き。これはRX/RY/RZ書式です。
Velocity
オブジェクトの初期Velocity。
Angular Velocity
オブジェクトの初期角速度。これは、回転軸と回転レートを乗算したものです。 回転速度の単位は度/秒なので、360の乗数はオブジェクトを1秒に1回転させます。
Inherit Velocity from Point Velocity
有効にすると、ソースジオメトリのv
とw
のPointアトリビュートがオブジェクトの初期Velocityを上書きします。
Bullet Data ¶
Show Guide Geometry
有効にすると、 Collision Padding を含むオブジェクトの衝突形状の可視化が表示されます。これは衝突検出の問題をデバッグするのに役に立ちますが、通常ではオブジェクトのジオメトリだけの表示よりも遅いです。
Color
ガイドジオメトリのカラー。
Deactivated Color
オブジェクトが移動せず、Bullet Solverによって非活動化された時のガイドジオメトリのカラー。
Geometry Representation
オブジェクトを表現するためにBulletエンジンで使用される形状。 Show Guide Geometry パラメータを使えば、この衝突形状を可視化することができます。
Convex Hull
オブジェクトのデフォルトの形状。Bullet SolverはジオメトリポイントのConvex(凸)ハルから衝突形状を作成します。
Concave
Bullet Solverは、ジオメトリをポリゴンに変換し、それらの三角形からConcave(凹)衝突形状を作成します。 この形状は、トーラスや中空管などのConcave(凹)オブジェクトをシミュレーションする時に役に立ちます。 しかし、必要な時にだけConcave(凹)表現を使用するようにしてください。その理由は、 Convex Hull 表現の方が通常ではパフォーマンスが良いからです。
Box
オブジェクトの境界ボックス。
Capsule
オブジェクトの境界カプセル。
Cylinder
オブジェクトの境界円柱。
Compound
Bulletプリミティブ(ボックス、球、円柱を含む)で構成された複雑な形状を作成します。Bake ODE SOPを使用する必要があります。
Sphere
オブジェクトの境界球。
Plane
静的な地面。
Create Convex Hull Per Set Of Connected Primitives
有効にすると、 Geometry Representation が Convex Hull の時、Bullet Solverは、ジオメトリ内の繋がったプリミティブのセット毎に 別々のConvex Hull衝突形状を含んだ複合形状を作成します。
AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry
有効にすると、 Position , Rotation , Box Size , Radius , Length の値の代わりに、オブジェクトのGeometryサブデータが解析されます。
Geometry Representation が Box , Capsule , Cylinder , Sphere , Plane のどれかに設定されている時、ジオメトリ境界を使用して、形状を作成します。
Position
Bullet空間でのオブジェクト形状の位置。 このパラメータは、 Geometry Representation が Box , Sphere , Capsule , Cylinder , Plane のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Rotation
Bullet空間でのオブジェクト形状の向き。 このパラメータは、 Geometry Representation が Box , Capsule , Cylinder , Plane のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Box Size
オブジェクト形状の半分の大きさ。 このパラメータは、 Geometry Representation が Box に設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Radius
球形状の半径。 このパラメータは、 Geometry Representation が Sphere , Capsule , Cylinder のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Length
Y方向でのカプセルまたは円柱の長さ。 このパラメータは、 Geometry Representation が Capsule 、 Cylinder のどれかに設定されている時、 且つ、 AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry が無効の時に利用可能です。
Collision Padding
形状間の隙間埋め距離。このパラメータは、衝突検出の信頼性とパフォーマンスを改善するためにBulletエンジンで使用されます。 シーンのスケールに応じて、この値をスケールする必要があります。このパラメータは、衝突形状のサイズを大きくするので、衝突形状が大きくならないように Shrink Collision Geometry を有効にすることを推奨します。
このパラメータは、 Geometry Representation が Plane に設定されている時は利用不可です。
Shrink Collision Geometry
有効にすると、 Collision Padding がオブジェクトの有効サイズを大きくしないように、衝突ジオメトリが収縮されます。
このパラメータは、初期の段階で密接に詰め込まれた衝突形状がお互いに貫通しないようにシミュレーションのパフォーマンスを改善することができます。 また、 Collision Padding で引き起こされたオブジェクト間の隙間を除去します。
Geometry Representation が Box , Capsule , Cylinder , Compound , Sphere のどれかに設定されている時、 各プリミティブの半径/長さが、 Shrink Amount によって小さくなります。
Geometry Representation が Convex Hull に設定されている時、ジオメトリ表現の各ポリゴンが、 Shrink Amount によって内側に収縮します。
このパラメータは、 Geometry Representation が Concave 、 Plane のどれかに設定されている時は利用不可です。
Shrink Amount
Shrink Collision Geometry によるサイズ変更の度合い。 デフォルトでは、この値は、 Collision Padding と同じなので、 衝突形状を収縮したサイズ( Collision Padding を含む)は、オブジェクトのジオメトリと同じサイズになります。
このパラメータは、 Geometry Representation が Concave 、 Plane のどれかに設定されている時は利用不可です。
Add Impact Data
有効な時、シミュレーション時に発生するImpactが Impacts または Feedback のデータ内で並べ替えられます。 このオプションを有効にすると、シミュレーション時間とメモリ使用量が増える場合があります。
Impacts と Feedback のデータは、DOPオブジェクト上にサブデータとして追加されます。 タイムステップ内で少なくとも1つのImpactが存在すれば、Detailsビュー内でそれらのデータを確認することができます。
Feedback データは、実質的には Impacts データと同じですが、別々のソルバで計算されている複数のオブジェクト間でDOPネットワーク内の相互の作用が存在する時に使用されます。 例えば、RBDオブジェクトとFLIP流体オブジェクトを相互に作用させる場合、DOPネットワークは、その相互作用を解決するために複数のフィードバックループを実行し、 Feedback データを使用して、ソルバ間で Impacts データを渡します。
Enable Sleeping
有効にすると、オブジェクトが再び動くまで、移動しないオブジェクトのシミュレーションを無効にします。 オブジェクトが移動していないかどうか判断するには、線形速度と回転速度の閾値が使われます。 Display Geometry チェックボックスをオフにすれば、Guide Geometryのカラーが Color から Deactivated Color に変化することが確認できます。
Linear Threshold
オブジェクトの線形速度の停止と見なす閾値。オブジェクトの線形速度が、時間周期に対して、この閾値よりも小さければ、オブジェクトが停止していると見なされます。
Angular Threshold
オブジェクトの回転速度の停止と見なす閾値。オブジェクトの回転速度が、時間周期に対して、この閾値よりも小さければ、オブジェクトが停止していると見なされます。
Allow Initial Overlap
ソルバが初回でオブジェクトを見た時に、そのオブジェクトが初期段階でシミュレーション内の他のオブジェクトと重なっていないかどうかをチェックし、 そのようなオブジェクト同士が強制的に離されてしまわないようにします。 これが無効になっている場合、初期段階で重なっているオブジェクトは、干渉が解決されるように引き離されます。
Tip
初期段階で重なっているオブジェクト間の干渉をVelocityを加えずに解決するには、Bullet solverの Split Impulse を有効にして、 Penetration Threshold を0に設定してください。
Min Activation Impulse
オブジェクトを非アクティブからアクティブに切り替えさせる衝突の最小Impulse。
衝突が起きた瞬間にアクティブ化が起きます。
activationignore
アトリビュートを使用することで、オブジェクトが特定のオブジェクトからの衝突によってアクティブにならないようにすることができます。
Physical ¶
Compute Center of Mass
オブジェクトの質量の中心を、次のフレームの計算時のコリジョンシェイプから自動的に計算させるかどうか指定します。
Inherit Pivot from Point Position
質量の中心をプリミティブの初期ポイント位置に設定します。
Pivot
オブジェクトの質量の中心を指定します。
Compute Mass
質量をオブジェクトのボリューム表現と接着されたサブオブジェクトから自動的に計算するかどうか決めます。
Density
オブジェクトの質量は、そのボリュームとその密度を乗算した値です。これは、 Compute Mass がオンになっている場合にのみ使われます。
Mass
オブジェクトの絶対質量。これは、 Compute Mass がオフになっている場合にのみ使われます。
Rotational Stiffness
オブジェクトがかすった時、そのオブジェクトにはスピンがかかることが多いです。 そのスピンの度合いは、オブジェクトの形や質量の分布( つまり 慣性テンソル )に依存します。 Rotational Stiffness は、それに適用されるスケール係数です。 値が高いほど、オブジェクトにスピンがかかりにくくなり、値が低いほど、スピンしやすくなります。
Bounce
オブジェクトの弾力性を指定します。 Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。
Bounce Forward
オブジェクトの接線方向の弾力性。Bounce Forwardが1.0の2つのオブジェクトが衝突すると、それらの接線方向の動きは、摩擦からの影響のみを受けます。 Bounce Forwardが0.0の2つのオブジェクトが衝突すると、それらの接線方向の動きは、一致します。
Friction
オブジェクトの摩擦係数を指定します。 0の値は、摩擦なしを意味します。
これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。
Dynamic Friction Scale
滑るオブジェクトは、静止しているオブジェクトよりも摩擦係数が低いです。このパラメータは、2つのオブジェクトに関連したスケール係数です。 これは摩擦係数ではなくて、0から1の間のスケールです。
1の値は、動摩擦と静摩擦が同じになることを意味します。0の値は、静摩擦を越えると、オブジェクトが摩擦なしで作用することを意味します。
Temperature
Temperatureはオブジェクトの温度をマークします。このパラメータは、燃料の着火ポイントまたは浮力計算のためにガスシミュレーションで使用します。
これは現実世界の温度スケールとは直接関係しないので、環境温度は通常では0と見なされます。
出力 ¶
First
このノードで作成されたRBD Objectが単一出力を通して送り出されます。
ローカル変数 ¶
ST
ノードが評価されるシミュレーション時間です。
この値は、変数Tで表現される現在のHoudiniの時間と同じではなく、DOP Networkの Offset Time と Scale Time のパラメータの設定に依存しています。
STは、シミュレーションの開始時間がゼロになるようになっています。
つまり、シミュレーションの最初のタイムステップをテストする時は、$T == 0
や$FF == 1
を使うのではなくて、$ST == 0
のようなテストを使うのがベストです。
SF
ノードが評価されるシミュレーションフレーム(正確には、シミュレーションタイムステップ番号)。
この値は、変数Fで表現される現在のHoudiniのフレーム番号と同じではなく、DOP Networkパラメータの設定に依存しています。 代わりに、この値は、シミュレーション時間(ST)をシミュレーションタイムステップサイズ(TIMESTEP)で割算した値と同じです。
TIMESTEP
シミュレーションタイムステップのサイズ。 この値は、1秒あたりのユニットで表現した値をスケールするのに役に立ちますが、タイムステップ毎に適用されます。
SFPS
TIMESTEPの逆数。 シミュレーション時間の1秒あたりのタイムステップ数です。
SNOBJ
シミュレーション内のオブジェクトの数。 Empty Object DOPなどのオブジェクトを作成するノードでは、SNOBJは、オブジェクトが評価される度に値が増えます。
固有のオブジェクト名を確保する良い方法は、object_$SNOBJ
のようなエクスプレッションを使うことです。
NOBJ
このタイムステップ間で現行ノードで評価されるオブジェクトの数。 この値は、多くのノードがシミュレーション内のオブジェクトすべてを処理しないので、SNOBJとは異なります。
NOBJは、ノードが各オブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJ
ノードで処理される特定のオブジェクトのインデックス。 この値は、指定したタイムステップで常にゼロからNOBJ-1まで実行されます。 この値は、OBJIDやOBJNAMEなどのシミュレーション内の現行オブジェクトを識別せず、現在の処理順でのオブジェクトの順番を識別します。
この値は、オブジェクト毎に乱数を生成するのに役に立ちます。他には、処理別にオブジェクトを2,3のグループに分けるのに役に立ちます。 この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
OBJID
処理されているオブジェクトの固有ID。 すべてのオブジェクトは、すべての時間のシミュレーション内のオブジェクトすべてで固有な整数値が割り当てられています。たとえオブジェクトが削除されても、そのIDは決して再利用されません。 オブジェクトIDは、オブジェクト毎に別々の処理をさせたい場面(例えば、オブジェクト毎に固有の乱数を生成したい)で非常に役に立ちます。
この値は、dopfieldエクスプレッション関数を使って、オブジェクトの情報を検索するのにベストな方法です。
OBJIDは、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
ALLOBJIDS
この文字列には、現行ノードで処理されているオブジェクトすべての固有のオブジェクトIDをスペース区切りにしたリストが含まれています。
ALLOBJNAMES
この文字列には、現行ノードで処理されているオブジェクトすべての名前をスペース区切りにしたリストが含まれています。
OBJCT
現行オブジェクトが作成された時のシミュレーション時間(変数STを参照)。
そのため、オブジェクトが現在のタイムステップで作成されたかどうかチェックするには、$ST == $OBJCT
のエクスプレッションが常に使われます。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJCF
現行オブジェクトが作成された時のシミュレーションフレーム(変数SFを参照)。
この値は、OBJCT変数にdopsttoframeエクスプレッションを使ったものと等価です。この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJNAME
処理されているオブジェクトの名前を含んだ文字列値。
オブジェクト名は、シミュレーション内で固有であることが保証されていません。 しかし、オブジェクト名が固有になるように注意して名前を付けていれば、オブジェクトの識別は、オブジェクトIDよりも、オブジェクト名を指定するほうが簡単です。
オブジェクト名は、同じ名前を持つオブジェクトの数を仮想グループとして扱うこともできます。
“myobject”という名前のオブジェクトが20個あれば、DOPのActivationフィールドにstrcmp($OBJNAME, "myobject") == 0
を指定すると、DOPがその20個のオブジェクトのみを操作します。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら空っぽの文字列を返します。
DOPNET
現在のDOP Networkのフルパスを含んだ文字列値。 この値は、ノードを含むDOP Networkのパスを知りたりDOPサブネットのデジタルアセットで非常に役に立ちます。
Note
ほとんどのダイナミクスノードには、そのノードのパラメータと同じ名前のローカル変数があります。 例えば、Position DOPでは、以下のエクスプレッションを記述することができます:
$tx + 0.1
これはオブジェクトをタイムステップ毎にX軸方向に0.1単位分移動させます。
Examples ¶
ActivateObjects Example for RBD Packed Object dynamics node
このサンプルでは、RBD Packed Objectの“active” Pointアトリビュートを修正して、オブジェクトをStaticからActiveに変更する方法を説明しています。
AnimatedObjects Example for RBD Packed Object dynamics node
このサンプルでは、RBD Packed Objectのアニメーションパックプリミティブを使用して、 後にシミュレーションのアクティブオブジェクトへ推移させる方法を説明しています。
DeleteObjects Example for RBD Packed Object dynamics node
このサンプルでは、シミュレーションから境界ボックス外のオブジェクトを削除する方法を説明しています。
EmittingObjects Example for RBD Packed Object dynamics node
このサンプルでは、SOP Solverを使って、新しいRBDオブジェクトを作成して、それを既存のRBD Packed Objectに追加する方法を説明しています。
ScalingRBDs Example for RBD Packed Object dynamics node
このサンプルでは、シミュレーション中にRBDオブジェクトのスケールを変更する方法を説明しています。
SpeedLimit Example for RBD Packed Object dynamics node
このサンプルでは、シミュレーションの特定のオブジェクトの速度を制限する方法を説明しています。
See also |