3Dツール(Blender)からUnityへのモデルの読み込みと、リジッドボディに制御を任せる際の注意点をまとめる(Unity3.5)。
モデリング時の前提
座標軸のYとZの違いは自動的に補正されるので、違いは気にせず見た目通りに作成すればよい。
ただし、前後が逆になるため、Unityに読み込んだ時に奥に向かせたい方向を、Blenderで正面からモデリングすると分かりやすい。
Blenderで正面からモデリングしておく。
読み込み方
Unityにインポートする際は、作成したblendファイルと、使用したテクスチャを一緒にドラッグ&ドロップする。
リジッドボディに制御を任せる際の注意点
アニメーションするオブジェクトにリジッドボディを付加しても、リジッドボディで制御されない。アニメーションが不要な場合はアニメーションコンポーネントを削除する。アニメーションが必要な場合は、メッシュをリジッドボディの制御用のゲームオブジェクトの下に配置して、制御とモデルを切り分ける。
また、最初の設定では、Mesh Collider同士はぶつからない。ぶつかるようにする場合は、Mesh Colliderコンポーネントの「Convex」パラメータにチェックを入れる。
アニメーションが不要な場合のセットアップ
- モデルをUnityにインポートする。
- プロジェクトビューに追加されたモデルをクリックして選択する。
- 「Generate Colliders」にチェックを入れて、「Mesh Collider」をモデルに最初から含むようにする。
- インスペクタの「Animations」内の「Generation」パラメータを「Don't Import」にして、「Apply」ボタンを押す。
- モデルをシーンに追加する。
以上で、モデルにアニメが含まれなくなる。
アニメーションを削除するには、モデルをシーンに追加した後に、モデルのインスペクタから「Animation」コンポーネントをRemoveしてもよい。
アニメーションを使う場合のセットアップ
- モデルをUnityにインポートする。
- シーンにキャラクタの親オブジェクトとして、空のゲームオブジェクトを追加する。
- 追加した親オブジェクトに、リジッドボディ(Rigidbody)コンポーネントを追加する。
- 当たり判定を付けるために、プロジェクトビューのモデルを開き、自動的に作成されるMesh Collider(図ではCube)をドラッグし、親オブジェクトにドロップする。
- モデルと姿勢を合わせるために、親オブジェクトの「Rotation」の「X」を「270」にする。
- 親オブジェクトを選択して、インスペクタの「Mesh Collider」欄の「Convex」にチェックを入れて、他のMesh Colliderとの判定を有効にする。跳ね返り係数などが必要な場合は、Physic Materialを作成して、Mesh Colliderの「Material」欄に設定する。
- プロジェクトビューからモデルをドラッグし、親オブジェクトにドロップする。
- Hierarchyビューから追加したモデルをクリックして、座標と回転を全て0にする。
アニメさせる時は、当たり判定や挙動と、モデルのGameObjectを分けて実装する。動作の制御は親のGameObject、モデルの制御は子のGameObjectとして設計するとよい。