【Unity】メッシュコライダーを使わずにメッシュに合わせてコライダーを(自動)生成する方法(SAColliderBuilderアセット利用)
複雑な形のゲームオブジェクトで当たり判定を行いたい場合、Mesh Colliderを使うことがあると思います。
でも、Mesh Colliderは重いのでなるべく使いたくない。
そんな時に、Mesh Colliderを使わずにMeshに合わせたColliderを生成できるとても便利なアセットがあったので紹介します。アニメーションにも連動してColliderは動きます。
それが、以下の「SAColliderBuilder」アセットを使います。
完成イメージ
※ロボットの周りに見える緑の枠がSAColliderBuilderで自動生成したColliderです。
アニメーションにも連動します。
前提
今回は以下のアセット「Robot Hero : PBR HP Polyart」で試します。
SAColliderBuilderの使い方の詳細は、以下の画像の部分にある、Tutorial_jpを参照してください。
使い方(動画で解説)
使い方(ブログで解説)
1.SAColliderBuilderとRobot Hero : PBR HP Polyartをアセットストアから入手し、Package Managerからインポート
2.HPCharacterをHierarchyに配置
2.SkinnedMeshRendererを自身または子にもつオブジェクトを選択(今回は親オブジェクトのHPCharacterを選択)
3.SABoneColliderBuilderコンポーネントを追加
※SABoneColliderBuilder:ボーン構造を持つ(アニメーションがある)メッシュに対して使用 ※今回はこっち
SAMeshColliderBuilder:ボーン構造を持たない(アニメーションがない)メッシュに対して使用
4.ゲームオブジェクトの形に合うように設定値を任意に変えて(今回はShape TypeをCapsuleに、Fit TypeをInnerに変更)、SABoneColliderBuilderコンポーネントの右下のProcessボタンを押下
5.以下の画像のように、ボーン構造に沿って、各部品の子オブジェクト(画像の黄色の枠のような感じ)にいい感じにColliderが生成される。(シーンのロボットに表示されている緑の枠)
※今回はSABoneColliderBuilderのShape TypeをCapsuleにしているので、"Capsule Collider"で生成されている。
完成
これで自分で処理の重いMesh Colliderを使わずに、Colliderを作れる。(Mesh Colliderほどのピッタリ感はありませんが、大体のゲームはこれで十分でしょう)
ディスカッション
コメント一覧
まだ、コメントがありません