SpaceClaim・Algoryx Momentumモデル
サンプル
基底ルール
Structure
Visible(可視)とInvisible(不可視)でコンポーネントを分ける
StructureのルートにRigidBody単位でVisibleコンポーネントを並べる
InvisibleコライダをVisibleコンポーネントに含まない
ホイールなど似た属性のコンポーネントはサブコンポーネントにまとめる
Invisibleコライダ
Hidden_Collidersにコンポーネントをまとめるリーフコンポーネントの名前にプリフィックス
Collider_をつけるソリッドの名前にプリフィックス
Collider_をつける
Hiddenコンポーネントにシミュレーションに使わないコンポーネントをまとめるシミュレーションで参照が必要な箇所は座標系オブジェクトを配置する
例えば、モデル原点、重心、ジョイント接続位置、観測する位置姿勢
オブジェクトの名前は AGX の ObserverFrame に従う
root
|- Hidden # Component
|- ... # Component
|- Hidden_Colliders # Component
|- <COLLIDER_COMPONENT_GROUP_NAME> # Component
|- ... # Component
|- <RIGIDBODY_COMPONENT_GROUP_NAME> # Component
|- ... # Component
|- <RIGIDBODY_COMPONENT_NAME> # Component
|- ... # Component
<RIGIDBODY_COMPONENT_NAME> # Component
|- ... # Component
|- <LEAF_RIGIDBODY_COMPONENT_NAME> # Component
|- <SOLID_NAME> # Solid
Collider_<COLLIDER_COMPONENT_NAME> # Component
|- ... # Component
|- Collider_<LEAF_COLLIDER_COMPONENT_NAME> # Component
|- Collider_<SOLID_NAME> # Solid
Simulation Structure(Group by Rigid Bodies)
Ignoreグループに使わない、無効にしているRigidBodyをまとめるRB_IgnoreRigidBodyにRigidBodyとしてまとめる必要がないリーフコンポーネントをまとめるRigidBodyの名前にプリフィックス
RB_をつける( オブジェクトの命名ガイドライン )RigidBodyに関連する
<LEAF_RIGIDBODY_COMPONENT_NAME>コンポーネントとCollider_<LEAF_COLLIDER_COMPONENT_NAME>を含める
root
|- Ignore # RigidBody Group
|- RB_Ignore # RigidBody
|- ... # RigidBody
|- <RIGIDBODY_GROUP_NAME> # RigidBody Group
|- ... # RigidBody
|- RB_<RIGIDBODY_NAME> # RigidBody
RB_<RIGIDBODY> # RigidBody
|- <LEAF_RIGIDBODY_COMPONENT_NAME> # Component
|- <SOLID_NAME> # Solid
|- Collider_<LEAF_COLLIDER_COMPONENT_NAME> # Component
|- Collider_<SOLID_NAME> # Solid
ボディ(ソリッド、サーフェス)
ソリッド単位で色を割り当てる
Momentumは1つのソリッドに複数の色を扱えない
ボディは全てソリッドにする
サーフェスでは適切な体積が得られず、自動質量慣性テンソル計算に影響する
AGXでサーフェス衝突も扱えるが、安定な衝突応答を得られない可能性がある
agxファイルへのエクスポート
エクスポート時の設定
Structureの
Hidden、Hidden_CollidersコンポーネントをOFF(Invisible)にするSimulation Structureの
IgnoreグループをOFF(RigidBody Disable)にする
付録: 方針
SpaceClaimで使う機能を限定したい(操作量、学習量、説明量を減らしたい)
Structureの構造を一目でわかるようにしたい(VisibleとInvisibleの存在確認)
VisibleコンポーネントとInvisibleコンポーネントを分けるか、混ぜるかの議論
方針に沿った「分ける」を選定
# 分ける
|- Hidden_Collider
|- Collider_Head
|- Collider_Solid
|- Head
|- Solid
# 混ぜる
|- Head
|- Solid
|- Collider_Head
|- Collider_Solid
分ける
Good
Invisibleコンポーネントを探しやすい
agxファイルエクスポート時にまとめたInvisibleコンポーネントをOFFにすればいい
Structureをクリーン(後付のコライダの削除)にしやすい
Bad
パーツの移動が面倒。対となるVisible、Invisibleコンポーネントについてそれぞれ移動が必要。
対となるVisibleコンポーネントとInvisibleコンポーネントをまとめたファイル分割ができない
Object orientedではない
VisibleコンポーネントとInvisibleコンポーネントの構造が重複する
Visible衝突のON/OFFをStructureから見分けられない
混ぜる
Good
VisibleとInvisibleコンポーネントがセットなっていてわかりやすい
セット単位で移動しやすい
セット単位でファイルの分割ができる
Bad
Invisibleコンポーネントを探しにくい。サブコンポーネントを辿る必要がある。
agxファイルエクスポート時にInvisibleコンポーネントを探してOFFにする作業が必要。Structureツリーを辿るかレイヤー機能を使う必要がある。
Structureをクリーン(後付のコライダの削除)が面倒