パーポーフルート公式ブログ
【開発】【iOS】Bullet - strange collision of TriangleMesh

2011/02/13
テーマ: 開発 / iOS / 2011 / すべて


しばらくブログを更新しない間に SIO2 が v1.4 -> v2.0 になったりしているようです。 今日は Bullet の不具合?回避のネタです。

TriangleMesh の道路だと引っくり返る

SIO2 ゲームエンジンは物理エンジンとして Bullet を使っています。 で、Vehicle を TriangleMesh 製の道路上で走らせてみたところ、Triangle の境界で急に車体がひっくり返ってしまい、ゲームにならない!ということがあって困っていました。

で、調べたところ、こんなスレがありました。 http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=3052

そこに載っている NotifyOnCollision 関数を定義して、

gContactAddedCallback = NotifyOnCollision;

を初期化時に実行するようにしたところ、解決。

gContactAddedCallback というのは bullet で定義されているシンボルで、以下の extern 宣言をすれば参照できます。

extern ContactAddedCallback  gContactAddedCallback;

2011/02/13
テーマ: 開発 / iOS / 2011 / すべて