MeshCollider#

MeshCollider について#

MeshCollider は Unity 標準のコンポーネントです。 利用することで、起伏のある地形といった SphereCollider などでは表現しづらかったコライダを付与できます。

このように非常に便利な MeshCollider ですが、その代わりに処理負荷は重くなります。 したがって基本的には SphereCollider などを使い、MeshCollider は必要性がある箇所でのみ使うことが、快適なコンテンツを作るうえでは重要です。

したがって使用には Unity 中級者レベルの知識が求められます。

対応プロパティー#

VCI では MeshCollider のプロパティーのほとんどに対応します。

プロパティ

対応

説明

Convex

対応しますが、条件があります。詳細は下記を参照。

IsTrigger

その他のコライダと同様に設定できます。

Cooking Options

×

設定に因らず、すべて ''Everything'' と見做して出力されます。

Material

その他のコライダと同様に設定できます。

Mesh

対応します。メッシュコライダの判定に使用するメッシュです。

Convex#

Convex オプションは、メッシュを凸包 (Convex) 形状に最適化するオプションです。 基本的に Unity での挙動に準ずるので、詳しくは Unity のドキュメントをご覧ください。

Convex どっちにすればいい?早見表#

軽量な△255
以下メッシュ

普通のメッシュ

SubItem のコライダとして使いたい

有効

使えません。[1]
メッシュを軽量化してください

Rigidbody のコライダとして使いたい

有効

使えません。[1]
メッシュを軽量化してください

動かない背景のコライダとして使いたい

凸形状なら 有効
大抵の場合 無効

無効

Convex オプション有効の場合#

  • 他の Convex 無効の MeshCollider と衝突できます。

  • 非常に軽量化したメッシュを設定する必要があります。

    • 三角形面数が 255 以下でないと、正常な結果が得られません。[1]

  • SubItem など Rigidbody の子として設定できます。

Convex オプション無効の場合#

  • 他の Convex 無効の MeshCollider と衝突しません

    • 平たく言うと、背景と衝突しないので、アイテム用途では使えません。

  • 自由なメッシュを設定できます。

  • SubItem など Rigidbody の子に存在することができません

    • 地面や背景オブジェクトなど、Transform が動かないものに使用する必要があります。

    • Lua から位置操作することも非推奨とします。

Transform に対する制約#

MeshCollider が含まれる Transform ヒエラルキーはどんな回転やスケールでも良いわけではありません。 次の場合に正常に動作しません。

  • 負のスケールの Transform の子にある場合

  • スケールした Transform の子に回転した Transform が存在するなど、せん断変形してしまう場合

したがって MeshCollider を用いる Transform ヒエラルキーはスケールや回転を綺麗な値に保つのがよいでしょう。

サンプル#

メッシュコライダーテスト背景 [VirtualCast] に、説明と商品と vci ファイルを記載しています。

Unity公式リファレンス#

Mesh Collider コンポーネントリファレンス - Unity マニュアル

対応バージョン#

UniVCI v0.39.1~