Skip to content

モードについて

モードとは

a3jsのオブジェクト(ObjectA3)は、setMode()で「モード」を 切り替えることで、位置・回転・拡大率をどう制御するかを変更でき ます。第2引数にはモードごとのオプションを渡せます。

js
obj.setMode('SimplePhysics',{rigidBody:'fixed'});

モードは大きく2つのグループに分かれます。

プログラムで動きを決めるモードsetPosition()などで指定した 通りに(またはそれを加工して)動きます。

物理エンジンで動きを決めるモード — 重力や衝突などの物理演算で 動きます。

物理演算の基本

a3jsの物理演算にはRapierという物理エンジンを 使っています。物理系のモードを使う前に、必ず物理エンジンの 初期化が必要です。

js
await a3.initPhysics();

知っておくと役立つポイントをまとめます。

  • 物理演算の世界(物理ワールド)は Sceneごとに独立しています。重力はデフォルトで 下向き9.81m/s²です。
  • 物理系のモードのオブジェクトをsetPosition()で動かすことは できません。位置を強制的に変更するにはsetPositionNow()などの Nowがついたメソッドを使います(詳しくは 移動・回転・拡大縮小について)。
  • 衝突を検知して処理を書くこともできます(詳しくは 当たり判定)。
  • 車の物理シミュレーションには専用の CarControlクラスがあります。
  • コライダー(衝突判定の形状)の様子は scene.setPhysicsDebugMode(true);で可視化できます。