xengineer’s diary

結果、メモ的な内容になっています。

UnityのMesh Collider

まずそもそも、Collider?コライダー?

なレベルです。

でもそっから説明すると長いので、コライダー自体は、Unityの衝突判定をしてくれるありがたい機能だ、ということで。

ちなみに、オブジェクトにコライダーをつけてても、

衝突しちまったぜ!!

って教えてくれるだけで、それによってオブジェクトが動いてくれるわけではないです。

動いてほしいときは、rigidbodyもつけないといけないそうです。

そして、今日はそのコライダの中でも古来から伝わる、Mesh古来だー!

についてです。はい。

Meshコライダーは、きっと3Dモデルといわれると、誰しも想像する網タイツ的な

もののことだと思います。

たぶん、こんな感じのこと。

f:id:xengineer:20141028123123j:plain

公式ドキュメント↓↓

Unity - Manual: Meshes


Unityでは、Meshのほかにも、Box/Sphere/Capsule/Wheelなんていうのも定義されてるけど、

きっとMeshが一番自由度が高くて、なんでも衝突判定できる、んだと思う。

その代わりすげー処理が重い、といろんなWebサイトに書いてあった。

で、Meshコライダーの何をブログに残すかというと、

convexっていう設定について。他のはたいしたことしてないからわからん。

まずは、公式ドキュメントどん。(日本語サイトをみつけました)

Unity - Unity Manual

Convex オンにした場合、MeshColliderは他のMeshColliderと衝突します。ConvexオンのMeshColliderは三角形面数の上限255に制限されています。

なにー!これをオンにしないと他の網タイツとの衝突しないのか!!

なるほど・・・ちなみに、下記youtubeを辿っていて、


Unity : How to make Simple Coin Pusher - YouTube

convexをonにしてなかったので、コインたちが↓↓こんなこと↓↓になっていました。

f:id:xengineer:20141028122407p:plain

それを、convexをonにしたら、↓↓こんなこと!!に!!

f:id:xengineer:20141028122403p:plain

やっほーーーー!

ちょっとだけドキュメントをみた。

Description

Use a convex collider from the mesh.

This means that if you have this set to true, your mesh collider wont have Holes or entrances. Convex meshes can collide with other convex colliders and non-convex meshes. Thus convex mesh colliders are suitable on rigidibodies, if you really need more detailed colliders than what the primitive colliders provide you with.

つまり、これをtrueに設定しとくと、コライダに穴とかがなくなりますよ、と。

へこんでるとこがなくなるらしい。あと、他のコライダ(convex/non convex問わず)と

衝突できるようになるらしい。

ほほー。