リジッドボディ基礎8 コリジョン5 Bullet


こんにちは、篠島です。今回はBulletソルバーでのコリジョンについて見てみましょう。

 

今回のサンプルファイルです。
Bullet.zip

 

Bulletでのコリジョンでは以下の様に8種類あります。基本的なプリミティブに加え、Convex Hull、 Concave、Compound があります。

1

 

Convex Hull はオブジェクト全体を包み込むようなコリジョンジオメトリを作ります。Create Convex Hull per Set of Connected PrimitivesをONにすると、ポリゴンが繋がったオブジェクトを一つの塊としてコリジョンオブジェクトを作ってくれるので、もしオブジェクトが複数のオブジェクトの集まりで出来ているような場合は、コリジョンジオメトリが多少良くなります。

2

 

シミュレーションしてみたのが下のGIFアニメーションです。

a

 

 

ちなみに、Convex Hullで作られるコリジョンオブジェクトはSOPレベルでも確認することが出来ます。オブジェクトに Tetrahedralize SOP を繋ぎ、OutputをConvex Hullにします。そしてBatchの所でEntireかConnected Componentsを選ぶことで、RBD Object等でCreate Convex Hull per Set of Connected PrimitivesをON、OFFにした時に作られるジオメトリを確認できます。

3

 

Geometry RepresentationでConcaveを選ぶと、凹型のオブジェクトでも綺麗に形の通りにコリジョンジオメトリを作ってくれます。こんなに綺麗にコリジョンオブジェクト作れるなら常にConcave選べばいいじゃないかと思われるかもしれませんが、Concaveの計算コストはConvexよりも高いです。今回のサンプルシーンの場合は超単純なのでConcaveでも楽々処理できますが、数百以上の複雑なオブジェクトが入り組んだりしてシミュレーションが重くなってきた時はConvex Hullを選んでみましょう。

4

 

Compondモードについては次回説明します。