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 を設定してメッシュをより短時間で作成し、追加のデータクリーニング処理を無効にすると便利です。欠点は、縮退三角形でなく、かつ、位置を共有する頂点を持たない三角形を生成する必要があることです。ただし、メッシュ調整の時間は短縮されます。

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

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

制限

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

Mesh Colliders that do not have Convex enabled are only supported on GameObjects without a Rigidbody component. To apply a Mesh Collider to a Rigidbody component, tick the Convex checkbox.

For a Mesh Collider to work properly, the Mesh must be read/write enabled in any of these circumstances:

  • The Mesh Collider’s transform has negative scaling (for example, (–1, 1, 1)).
  • The Mesh Collider’s transform is skewed or sheared (for example, when a rotated transform has a scaled parent transform).
  • The Mesh Collider’s Cooking Options flags are set to any value other than the default.

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


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

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

  • Mesh Cooking Options は 2017.3 で追加NewIn20173

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

  • Updated limitations relating to read/write enabled setting in 2018.3

Hinge Joint
Rigidbody