Unityの破壊表現 – 地球儀のオブジェクトを壊す

投稿者: | 2020-01-08

Blenderで作った地球儀のモデルを部位ごとにバラバラに壊してみます。

一つのオブジェクトになっているので、まずBlenderで複数のオブジェクトに分割していきます。
Edit Modeで切り離したい部分だけを選択します。

Pキー -> Selection で別々のオブジェクトに分割できます。

これを他の部分でもやります。

保存してUnityに持ってきました。

マテリアルがついたままインポートされています。

マテリアルは分割された個々のオブジェクト全てについています。

シーンに配置して、ヒエラルキーウィンドウでこれを右クリックして、Unpack Prefabを押します。

親オブジェクトを開くと、地球儀のオブジェクトが4つに分割されているのがわかります。

これらを全て選択して、RigidbodyとMeshコライダーを付けます。

MeshコライダーはConvexにチェックを入れます。

このままゲームを開始すると、オブジェクトは瞬時にバラバラになります。

なので、分割されたオブジェクトをジョイントでつなげます。個々のオブジェクトにFixed Jointコンポーネントを付けて、接しているオブジェクトをConnected Bodyにアタッチします。

例えば、底のオブジェクトにつけたFixed JointのConnected Bodyには、そこから縦に伸びる柄の部分のオブジェクトをドラッグアンドドロップしました。

同様に、柄のオブジェクトには外側の弓のようなオブジェクトを、弓のようなオブジェクトには真ん中の球のオブジェクトをつなげて、球のオブジェクトには柄のオブジェクトをアタッチしたので、結局全てのオブジェクトにFixed Jointを付けました。

再度、これらのオブジェクトを全て選択します。

すると、Fixed JointコンポーネントのBreak ForceやBreak Torqueの値を一括で変更できます。

これをプレイヤーにぶつかったり倒れたりしても壊れないけど、銃で撃たれると壊れる値に調節しました。

全て同じ値にするのではなく、一部だけ値を下げることで壊れやすい部分を作ったりもできます。

このようにオブジェクトを複数に分割してジョイントでつなげることで、破壊表現を作ることができました。

コメントを残す

メールアドレスが公開されることはありません。