A-frameの衝突判定

カテゴリー: blog オン 2023年7月9日

A-frameには衝突判定がないため、外部ライブラリ「aframe-physics-system」を使うというのが主流のようです。しかしA-Frame v1.3.0以降で効かなくなったようで、残念ながら動かせませんでした。そこでほかの解決策を探ってみました。

どうやら、Ammo.jsという物理演算エンジンを併用することで動かせるとのことです。
https://zenn.dev/dami/articles/1456b68cd465aa
https://github.com/n5ro/aframe-physics-system/blob/master/AmmoDriver.md

しかし、Ammo.jsを読み込んでも判定される気配がなく、海外のプルグラミング、ナレッジコミュニティ「Stack Overflow」でもどうようの課題がいくつか見つかったため、現在は効果がないようです。

最終的に、ライブラリに頼るのではなく直接javascriptを書くことで衝突判定を実現できました。https://daiyamamoto.hatenablog.com/entry/2021/05/05/114217

A-frameのカスタムコンポーネントを作成して実現しているそうなのですが、カスタムコンポーネントはドキュメントが長くて把握できていません。今後の課題です。

衝突判定は実現できたものの、移動にteleportを使用すると壁にぶつかっても通り抜けることがありました。壁に厚さを持たせていないからなのかもしれませんが、移動方法についてはどのような方法を選ぶかも課題になりそうです。