Version: 2017.4
Hinge Joint
Rigidbody

Mesh Collider

Mesh Colliderメッシュのアセット からそのメッシュにもとづくコライダーを生成します。複雑なメッシュの場合、プリミティブを使用するよりも遥かに正確に衝突検出できます。Convex がオンとなっているメッシュコライダーは、他のメッシュコライダーと衝突することができます。

プロパティー

Property Function
Convex Tick the checkbox to enable Convex. If enabled, this Mesh Collider collides with other Mesh Colliders. Convex Mesh Colliders are limited to 255 triangles.
Is Trigger If enabled, Unity uses this Collider for triggering events, and the physics engine ignores it.
Cooking Options Enable or disable the Mesh cooking options that affect how the physics engine processes Meshes.
None Disable all of the Cooking Options listed below.
Everything Enable all of the Cooking Options listed below.
Inflate Convex Mesh Allow the physics engine to increase the volume of the input Mesh, to generate a valid convex mesh.
Cook for Faster Simulation Make the physics engine cook Meshes for faster simulation. When enabled, this runs some extra steps to guarantee the resulting Mesh is optimal for run-time performance. This affects the performance of the physics queries and contacts generation. When this setting is disabled, the physics engine uses a faster cooking time instead, and produces results as fast as possible. Consequently, the cooked Mesh Collider might not be optimal.
Enable Mesh Cleaning Make the physics engine clean Meshes. When enabled, the cooking process tries to eliminate degenerate triangles of the Mesh, as well as other geometrical artifacts. This results in a Mesh that is better suited for use in collision detection and tends to produce more accurate hit points.
Weld Colocated Vertices Make the physics engine remove equal vertices in the Meshes. When enabled, the physics engine combines the vertices that have the same position. This is important for the collision feedback that happens at run time.
Material Reference to the Physics Material that determines how this Collider interacts with others.
Mesh Reference to the Mesh to use for collisions.

説明

メッシュコライダーは、ゲームオブジェクトにアタッチされた メッシュ から、コライダーの形状を作成し、コライダーの位置とスケールを正しく設定するために、同じくアタッチされた Transform を読み込みます。この方法の利点は、コライダーの形状をオブジェクトの表示されているメッシュの形状とまったく同じにできるため、より精密で正しい衝突判定ができる事です。しかし、その精密さによって、プリミティブのコライダー (スフィア、ボックス、カプセル) による衝突判定よりも、処理オーバーヘッドが高くなるので、メッシュコライダーは控えめに使った方がよいでしょう。

衝突メッシュの面は一方通行です。つまり、オブジェクトは一方向から通り抜けできますが、他方向からは衝突します。

メッシュの調整

メッシュの調整は、通常のメッシュを物理エンジンで使用できるメッシュに変更します。調整によって、Physics.Raycast などの物理クエリを空間検索する構造と、接触生成をサポートする構造を構築します。Unity は、すべてのメッシュを衝突検出で使用する前に調整します。これは、インポート時 (Import Settings > Model > Generate Colliders)、またはランタイムに行われます。

ランタイムにメッシュを生成する場合 (例えばプロシージャルなサーフェスの場合)、Cooking Options を利用するとメッシュをより短時間で作成するのに便利です。Cooking Options で生成結果を速くするように設定し、続くクリーニング処理を無効にします。欠点は、縮退三角形や位置を等しくする頂点を避ける必要がありますが、その分、メッシュ調整の時間は短縮されます。

Enable Mesh CleaningWeld Colocated Vertices を無効にする場合、それらのアルゴリズムが除外するようなデータを使用しないように気を付ける必要があります。Weld Colocated Vertices が無効になっている場合は、同じ位置をもつ頂点がないことを確認します。Enable Mesh Cleaning が有効な場合は、面積がゼロに近い小さい三角形、細い三角形、面積が無限大に近い巨大な三角形でないことを確認します。

注意Cooking Options をデフォルト設定以外の値に設定する場合は、isReadable の値が true のメッシュを使用する必要があります。

制限

メッシュコライダーには、いくつかの制限があります。

  • 凸状ではない ( Convex が有効になっていない) メッシュコライダーはリジッドボディがアタッチされていないゲームオブジェクト上でのみサポートされています。リジッドボディとメッシュコライダーを組み合わせて使いたいときは、プロパティーにある Convex にチェックを入れる必要があります。
  • 以下のような場合では、メッシュコライダーが適切に作用するために、 メッシュの Import SettingsRead/Write Enabled チェックボックスを有効にする必要があります。
    • 負の数での拡大/縮小 (例えば (–1, 1, 1))
    • シアートランスフォーム (例えば、回転したメッシュが拡大/縮小した親のトランスフォームを持つとき)

最適化のヒント: メッシュがメッシュコライダーだけに使用される場合は、物理システムに必要でないため、Import SettingsNormals を無効にできます。


  • 2018–06–07 編集レビュー を行って修正されたページ

  • Mesh Cooking Options は 2017.3 で追加NewIn20173

  • バージョン 2018.1 の更新機能

Hinge Joint
Rigidbody