物理学
はじめに
Studioには、シーン内のロバストでダイナミックなインタラクションを処理するための物理システムが組み込まれています。コライダーの追加
メモ
- コライダーはある構成ではネストできるが、他の構成ではネストできない。 例えば、ダイナミック・コライダーの中にスタティック・コライダーがあったり、2つのダイナミック・コライダーが入れ子になっていたりすると、誤動作する可能性がある。
- 有効なコライダーシェイプでもあるジオメトリコンポーネントがない限り、手動でシェイプを指定する必要があります。 例えば、正四面体プリミティブに対応するコライダーがない。
- 複雑なモデルのGLTFモデルコライダー生成は、パフォーマンスに影響を与える可能性があります。
例
次の例は、実行時にコライダーをエンティティに追加する方法を示しています。
ecs.Collider.set(world, component.eid, {
shape: ecs.ColliderShape.Sphere,
radius,
mass: 1,
eventOnly: false,
lockXAxis: false,
lockYAxis: false,
lockZAxis: false,
friction: 0.5,
restitution: 0.5,
linearDamping: 0,
angularDamping: 0,
rollingFriction: 0.1,
spinningFriction: 0.1,
})
関数一覧
物理コライダーがあれば、どんなエンティティにも直接力(リニアと角度)を加えることができます。 これらの力は、一定の間隔で行われる次の物理シミュレーションの更新で適用される。 この関数は、力の方向と大きさを定義する3Dベクトルを受け付ける。
速度
リニア
ecs.physics.setLinearVelocity(world, component.eid, forceX, forceY, forceZ)
力とトルク
フォース
ecs.physics.applyForce(world, component.eid, forceX, forceY, forceZ)