Cannon.jsの導入(書き途中)
-
Three.jsの三次元ワールドに物理法則を適用する方法は複数ある。
Three.jsのAPI「Raycaster」を使う方法もある。https://threejs.org/docs/#api/en/core/Raycaster
これはオブジェクトとオブジェクトのインターセクトを監視するもの。これについては別途。 -
物理エンジンを使う理由
tensiton、friction、pivot、bouncing、constraintsを再現するためには、外部ライブラリを使うのが手軽。
なお、案件によっては2Dライブラリで事足りる場合もある。
クライアントがインタラクションを起こすシーンが俯瞰のみの場合、z軸を考慮する必要がないので、
パフォーマンスの観点から、2Dライブラリを使用することも選択肢に入れること。
Ouigo(http://letsplay.ouigo.com/)は2Dライブラリを使用している。
3Dモデルを使用して、高低差もあるが、衝突判定は2D。
-
代表的な物理エンジン
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
。