Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

Steam版

デバイス

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:component:unity_meshcollider

MeshCollider

使用するには下記の環境が必要です。

  • UniVCI v0.39.1 以降

MeshCollider について

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

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

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

対応プロパティ

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

プロパティ 対応 説明
Convex 対応しますが、条件があります。詳細は下記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 ヒエラルキーはスケールや回転を綺麗な値に保つのがよいでしょう。

サンプル

サンプルページ に、説明と商品と vci ファイルを記載しています。

関連ページ

注釈

*1

△256 以上の普通のポリゴンに対して Convex ON にすると、一応動作はします。 しかしポリゴンの形状から大きくかけ離れた当たり判定になるので、期待する動作になりません。 実際に Convex 設定時、UnityEditor の Console に該当の警告ログが出ます。

また、アイテム読み込み時の負荷も大きくなるので避けた方が良いでしょう。

vci/component/unity_meshcollider.txt · 最終更新: 2023/03/01 12:19 by pastatto

ページ用ツール