(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

メッシュに合わせてコライダーを自動作成してくれるSAColliderBuilder【Unity】【アセット】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2017.4.0f1


はじめに

UnityにはMeshに合わせてコライダーを作るMeshColliderという機能がありますが、


f:id:kan_kikuchi:20180610091734j:plain


使い勝手が良くなく、結構重かったりするので、

他のシンプルなコライダーを組み合わせてそれっぽいコライダーを作る事がよくあります。

しかし、手動でコライダーを組み合わせるのは地味に面倒です。


と、言うことで今回紹介するのがSAColliderBuilder



これを使えば、メッシュに合ったコライダーの組み合わせを自動作成してくれます!


f:id:kan_kikuchi:20180610091742j:plain


なお、本記事に出てくる椅子や女の子のアセットは以下のものを使っています。





アニメーション(ボーン構造)を持たないメッシュのコライダー生成

アニメーションを持たないメッシュのコライダー生成には

SAMeshColliderBuilderというクラスを使います。


使い方は簡単、MeshFilterまたはSkinnedMeshRendererを持つ(子でも可)オブジェクトに

SAMeshColliderBuilderをAddし、Processボタンを押すだけです。


f:id:kan_kikuchi:20180610102524j:plain


これで、オブジェクトの子にいい感じでBoxColliderが配置されます。


f:id:kan_kikuchi:20180610102532j:plain


アニメーション(ボーン構造)を持つメッシュのコライダー生成

アニメーションを持つメッシュのコライダー生成には

SABoneColliderBuilderというクラスを使います。


これまた使い方は簡単、SkinnedMeshRendererを持つ(子でも可)オブジェクトに

SABoneColliderBuilderをAddし、Shape TypeをCapsuleに変更、

さらにOptimize Rotationのチェックを外してProcessボタンを押すだけです。


f:id:kan_kikuchi:20180610103920j:plain


これで、オブジェクトの子にいい感じでCapsuleColliderが配置されます。


f:id:kan_kikuchi:20180610103930j:plain


なお、対応した各部位の子にコライダーが配置されているので、

アニメーションに合わせてコライダーも動きます。


f:id:kan_kikuchi:20180610105228g:plain


おわりに

特にアニメーションのあるオブジェクトにコライダーを設定する時に役立つアセットでした。

しかも無料なのも嬉しいですね。


なお、コライダー生成時に色々なパラメータがありますが、日本語のドキュメントがあるので安心です。


f:id:kan_kikuchi:20180610090507j:plain