BlenderとUnityでメッシュ破壊表現(Cell Fractureアドオン)

f:id:peroon:20151216185530p:plain

  • Blender 2.7.6(Mac), 2.78c(Windows)で確認
  • Cell FractureアドオンをONにする http://mm-tech.co.jp/Blender/CellFracture.html
  • オブジェクトモードでオブジェクトを選択し、ツールシェルフ(左側)に追加されたCell Fractureボタンを押す

f:id:peroon:20151216185516p:plain

  • ノイズが0なので1などにして、OKで実行
  • 「第2レイヤー」に分割されたメッシュが置かれているので確認

f:id:peroon:20171022012928p:plain

  • fbxまたはblendでUnityにインポート
  • 破片にRigidbody, Mesh Colliderをつけて、床に落としてみて確認
  • 分割前のメッシュを表示→弾などが当たった時に分割されたメッシュを生成して分割前メッシュを削除することで破壊表現ができる
  • 切り口はUVテクスチャを参照していないのでテクスチャを設定し、UVもそれっぽい位置においてあげる必要がある

f:id:peroon:20171022014740p:plain

  • 割れる数はSource Limitで制限することができる

f:id:peroon:20171022015115p:plain

切り口のUV設定

  • 25個に分割されたとして、それぞれを選択・Editモード・切れ目を選択・UV編集で位置調整
  • これを分割数だけ繰り返す。1破片に1分ほどかかる
  • UV設定の動画↓

www.youtube.com

Unityでの設定

  • Rigidbody, Mesh Collider(Convex=ON)を破片に設定する
  • 本当はConvexじゃないが、メッシュを包む凸で包んでくれる

f:id:peroon:20171022030035p:plain

  • (しかし地面に落とすとめり込んでから跳ねる・・・)
  • 破壊後1秒後くらいにRigidbodyを削除すれば物理挙動が消えるので跳ねるのは抑えられる
  • 破片になるとObject数が増えるしMesh Colliderは重いので早めにオフにする必要がある