この記事でのバージョン
Unity 2017.4.0f1
はじめに
UnityにはMeshに合わせてコライダーを作るMeshColliderという機能がありますが、
使い勝手が良くなく、結構重かったりするので、
他のシンプルなコライダーを組み合わせてそれっぽいコライダーを作る事がよくあります。
しかし、手動でコライダーを組み合わせるのは地味に面倒です。
と、言うことで今回紹介するのがSAColliderBuilder。
SAColliderBuilder | Tools | Unity Asset Store |
これを使えば、メッシュに合ったコライダーの組み合わせを自動作成してくれます!
今回紹介するSAColliderBuilderは無料ですが、
有料ならもっと正確なコライダーを自動作成するアセットもあったります。
なお、本記事に出てくる椅子や女の子のアセットは以下のものを使っています。
Home Bedroom and Bathroom Pack | 3D Interior | Unity Asset Store |
Aoi Character Pack | 3D Characters | Unity Asset Store |
アニメーション(ボーン構造)を持たないメッシュのコライダー生成
アニメーションを持たないメッシュのコライダー生成には
SAMeshColliderBuilderというクラスを使います。
使い方は簡単、MeshFilterまたはSkinnedMeshRendererを持つ(子でも可)オブジェクトに
SAMeshColliderBuilderをAddし、Processボタンを押すだけです。
これで、オブジェクトの子にいい感じでBoxColliderが配置されます。
アニメーション(ボーン構造)を持つメッシュのコライダー生成
アニメーションを持つメッシュのコライダー生成には
SABoneColliderBuilderというクラスを使います。
これまた使い方は簡単、SkinnedMeshRendererを持つ(子でも可)オブジェクトに
SABoneColliderBuilderをAddし、Shape TypeをCapsuleに変更、
さらにOptimize Rotationのチェックを外して、Processボタンを押すだけです。
これで、オブジェクトの子にいい感じでCapsuleColliderが配置されます。
なお、対応した各部位の子にコライダーが配置されているので、
アニメーションに合わせてコライダーも動きます。
おわりに
特にアニメーションのあるオブジェクトにコライダーを設定する時に役立つアセットでした。
しかも無料なのも嬉しいですね。
SAColliderBuilder | Tools | Unity Asset Store |
また、コライダー生成時に色々なパラメータがありますが、日本語のドキュメントがあるので安心です。
なお、このアセットでもオブジェクトによっては上手くコライダーが作成されない事があるので、
そんな時は以下の記事のような感じで手動でやると良いかも知れません。