Open1

Cannon.jsの導入(書き途中)

EriFuruyama@KEY4d LAB.EriFuruyama@KEY4d LAB.
  1. Three.jsの三次元ワールドに物理法則を適用する方法は複数ある。
    Three.jsのAPI「Raycaster」を使う方法もある。https://threejs.org/docs/#api/en/core/Raycaster
    これはオブジェクトとオブジェクトのインターセクトを監視するもの。これについては別途。

  2. 物理エンジンを使う理由
    tensiton、friction、pivot、bouncing、constraintsを再現するためには、外部ライブラリを使うのが手軽。
    なお、案件によっては2Dライブラリで事足りる場合もある。
    クライアントがインタラクションを起こすシーンが俯瞰のみの場合、z軸を考慮する必要がないので、
    パフォーマンスの観点から、2Dライブラリを使用することも選択肢に入れること。
    Ouigo(http://letsplay.ouigo.com/)は2Dライブラリを使用している。
    3Dモデルを使用して、高低差もあるが、衝突判定は2D。

  3. 代表的な物理エンジン
     3D
    ・Ammo.js
         Website: http://schteppe.github.io/ammo.js-demos/
         Git repository: https://github.com/kripken/ammo.js/
         Documentation: No documentation
         Direct JavaScript port of Bullet (a physics engine written in C++)
         A little heavy
         Still updated by a community
    ・Cannon.js
         Website: https://schteppe.github.io/cannon.js/
         Git repository: https://github.com/schteppe/cannon.js
         Documentation: http://schteppe.github.io/cannon.js/docs/
         Lighter than Ammo.js
         More comfortable to implement than Ammo.js
         Mostly maintained by one developer
         Hasn't been updated for many years
         There is a maintained fork
      ・Oimo.js
         Website: https://lo-th.github.io/Oimo.js/
         Git repository: https://github.com/lo-th/Oimo.js
         Documentation: http://lo-th.github.io/Oimo.js/docs.html
         Lighter than Ammo.js
         Easier to implement than Ammo.js
         Mostly maintained by one developer
         Hasn't been updated for 2 years
     2D
       。