====== MeshCollider ====== {{:vci:component:unitycomponent:meshcollider:desc.png?nolink&400|}} 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 ===== MeshCollider について ===== MeshCollider は Unity 標準のコンポーネントです。 利用することで、**起伏のある地形**といった SphereCollider などでは表現しづらかったコライダを付与することができます。 このように非常に便利な MeshCollider ですが、その代わりに**処理負荷は重くなります**。 したがって基本的には SphereCollider などを使い、MeshCollider は必要性がある箇所でのみ使うことが、快適なコンテンツを作るうえでは重要です。 したがって使用には Unity 中級者レベルの知識が求められます。 ===== 対応プロパティ ===== VCI では MeshCollider のプロパティのほとんどに対応します。 ^ プロパティ ^ 対応 ^ 説明 ^ | Convex | △ | 対応しますが、条件があります。詳細は下記[[vci:component:unity_meshcollider#convex|Convex セクション]]を参照。 | | IsTrigger | ✔ | その他のコライダと同様に[[vci:component:unity_collider#プロパティーの説明|設定できます]]。 | | Cooking Options | × | 設定に因らず、すべて ''Everything'' と見做して出力されます。 | | Material | ✔ | その他のコライダと同様に[[vci:component:unity_collider#プロパティーの説明|設定できます]]。 | | Mesh | ✔ | 対応します。メッシュコライダの判定に使用するメッシュです。 | ==== Convex ==== Convex オプションは、メッシュを凸包 (Convex) 形状に最適化するオプションです。 基本的に Unity での挙動に準ずるので、詳しくは [[#関連ページ|Unity のドキュメント]]をご覧ください。 === Convex どっちにすればいい?早見表 === | ^ 軽量な△255 以下メッシュ ^ 普通のメッシュ ^ ^ SubItem のコライダとして使いたい | **有効** | 使えません。([[#*1|*1]]) \\ メッシュを軽量化してください | ^ Rigidbody のコライダとして使いたい | **有効** | 使えません。([[#*1|*1]]) \\ メッシュを軽量化してください | ^ 動かない背景のコライダとして使いたい | 凸形状なら **有効** \\ 大抵の場合 **無効** | **無効** | === Convex オプション有効の場合 === * 他の Convex 無効の MeshCollider と衝突できます。 * 非常に軽量化したメッシュを設定する必要があります。 * **三角形面数が 255 以下**でないと、正常な結果が得られません。([[#*1|*1]]) * SubItem など Rigidbody の子として設定できます。 === Convex オプション無効の場合 === * **他の Convex 無効の MeshCollider と衝突しません**。 * 平たく言うと、背景と衝突しないので、アイテム用途では使えません。 * 自由なメッシュを設定できます。 * SubItem など **Rigidbody の子に存在することができません**。 * 地面や背景オブジェクトなど、**Transform が動かないものに使用する**必要があります。 * Lua から位置操作することも非推奨とします。 ===== Transform に対する制約 ===== MeshCollider が含まれる Transform ヒエラルキーはどんな回転やスケールでも良いわけではありません。 次の場合に正常に動作しません。 * 負のスケールの Transform の子にある場合 * スケールした Transform の子に回転した Transform が存在するなど、せん断変形してしまう場合 したがって MeshCollider を用いる Transform ヒエラルキーはスケールや回転を綺麗な値に保つのがよいでしょう。 ===== サンプル ===== [[vci:sample:loc:meshcollider|サンプルページ]] に、説明と商品と vci ファイルを記載しています。 ===== 関連ページ ===== Unity 公式ドキュメント [[https://docs.unity3d.com/ja/2021.3/Manual/class-MeshCollider.html]] ===== 注釈 ===== === *1 === △256 以上の普通のポリゴンに対して Convex ON にすると、一応動作はします。 しかしポリゴンの形状から大きくかけ離れた当たり判定になるので、期待する動作になりません。 実際に Convex 設定時、UnityEditor の Console に該当の警告ログが出ます。 また、アイテム読み込み時の負荷も大きくなるので避けた方が良いでしょう。