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公式リファレンス#
対応バージョン#
UniVCI v0.39.1~