どうも、破壊神(@muro_ganmin)です。
blenderにはcell fractureという破壊シミュレーションの為にオブジェクトを分割してくれるアドオンがあります。
ちょっと前まではバージョン2.8には入っていなかったのですが、今はデフォルトで入っています。
編集メニューのBlender設定から、

アドオンと進み、Object:Cell Fractureにチェックを入れると使えるようになります。



目次
blender 2.8 cell fractureでオブジェクトを破壊する手順
空中からオブジェクトを床に落とすだけでも破壊できるが、何かをぶつけた方が色々と応用が利きそうだと思ったので、そういう手順で。。。
以下、簡単な破壊シミュレーションの手順です。↓
- 破壊するオブジェクトを細分化。
- cell fractureでオブジェクトを分割。
- 分割したオブジェクト全てにリジッドボディ(アクティブ)を追加。
- 破壊の為にぶつけるオブジェクトを追加。
- ぶつかるようにキーフレームを打つ。
- ぶつけるオブジェクトにリジッドボディ(パッシブ)の追加。
- 分割されてない元のオブジェクトと分割されたオブジェクトの表示、非表示の切り替え。
- 床が欲しければプレーンを追加して、それにもリジッドボディ(パッシブ)の追加。

破壊するオブジェクトの設定
今回は簡単に誰でもできるように最初からあるCubeでやっていく。

Cubeを左クリックで選択した状態で編集モードに入ります。(Tabキーを押しても切り替えられます)

Cubeを全選択した状態で(aキーで全選択、aキー素早く2回で選択解除できます)、ビュー上を右クリック、細分化。

コレを2、3回やってメッシュを細かくしておく。(細分化しないとCell Fractureを実行時に細かく分割できなかった)

オブジェクトモードに戻り、キューブを選択状態でオブジェクトからクイックエフェクト、Cell Fractureを選択します。

そうすると設定項目が出てきます。

色々設定するところがあって混乱するのだが、とりあえず、Source Limit(分割の上限みたいなモノで0だと無制限、1だと分割されない)とノイズ(0だと均一に分割されてしまう)の値を設定する。
今回はSource Limitを500、ノイズを1とした。

OKを押し、しばらくすると分割されたオブジェクトが出てくる。

選択された状態のまま、物理演算のタブからリジッドボディを追加し、

タイプをアクティブ、力学処理にある非アクティブ化にチェック、更に開始時に非アクティブ化にチェックする。(非アクティブ化にチェックを入れたのは、アニメーション開始時には動いて欲しくなく、何かに当たってから、動いて欲しい為です。)


設定が終わったら、分割されたオブジェクトを全部選択したまま、オブジェクト、リジッドボディと進み、アクティブからコピーを押します。

これで分割したオブジェクト全てにリジットボディが追加されたことになります。
破壊の元となるオブジェクトの設定
今回はuv球を追加から出して、ぶつけたいと思います。

テキトーでいいのだが、Cubeの真上に移動して、選択したまま、Iキーを押すと今の位置でキーフレームを打てます。
移動は選択してgキーでできます。gキーを押した後x,y,zのどれかを押せば、それぞれの軸に沿って移動することもできる。またキーフレームを打つ時は自分が何フレーム目にいるか確認。(今回は1フレーム目)
フレーム間の移動はタイムラインエディターの上の数字上をクリックもしくは平行ドラッグすることで移動できるし、現在のフレームに任意の数字を打ち込む、もしくはこれも平行ドラッグで移動することができる。キーボード←、→でもフレーム間の移動ができます。
今度は20フレーム目に移動し(これも別にテキトーでいいが)、丁度uv球とCubeがぶつかる位置にuv球を移動しIキーを押し、キーフレームを打っておくことにします。

そして、このuv球にも物理演算タブからリジッドボディを選び、タイプをパッシブ、アニメにチェック(キーフレーム打ってるので)を入れます。

一応、これで破壊のシミュレーションはできました。
スペースキーを押してアニメーションを再生すると以下のように破壊シミュレーションが確認できます。

しかし、これでは破壊が起きる前から分割されたつなぎ目が見えていたり、破壊された後も元のオブジェクトが残っていたりします。
なので、これらの表示、非表示を切り替えていこうと思います。
元のオブジェクト(分割されていない)に違うマテリアルを設定し、表示非表示の切り替え
おそらく、元のオブジェクトと分割されたオブジェクトのマテリアルはリンクされたような状態になっていると思うので、元のオブジェクトを選択して、マテリアルタブに移動、+ボタン新規で違うマテリアルにし、

最初にあったマテリアルは-で消しておく。(元のオブジェクトと分割されたオブジェクトの表示、非表示のタイミングが違う為)

右上にあるFilterというところからビューポートで無効、レンダーで無効というカメラとディスプレイのようなアイコンを有効にし出しておく。

これらのアイコンをクリックすることで表示非表示を切り替えられ、なおかつ、右クリックを押せばキーフレームも打つことができる。
1フレームに移動し、Cubeの「ビューポートで無効」、「レンダーで無効」のアイコンを表示状態で右クリック、それぞれにキーフレームを挿入しておく、

同じく破壊が起きる一つ手前のフレーム(確認すると5フレームから破壊が始まっているので4フレーム目に)同じようにそれぞれキーフレームを挿入。
そして、5フレーム目から元のオブジェクトが消えるように「ビューポートで無効」、「レンダーで無効」のアイコンを左クリックで表示しないようにして、右クリックでそれぞれ、キーフレームを挿入する。

これで元のオブジェクトが破壊された後見えなくなった。

破壊される前のつなぎ目を消す
まだ破壊される前のつなぎ目が残っているのでこれを解消していく。
破壊されたオブジェクト一個、一個に上記のやり方で表示、非表示を切り替えるわけにもいかないので、今回は透明になるマテリアルを追加してシェーダーミックスにキーフレームを打つことで表示、非表示を切り替えていくことにします。
分割されたどれか一つのオブジェクトを選択しShadingを押します。

ノードの編集画面になるので追加というところから画像テクスチャ、

放射、透過BSDF、シェーダーミックス(2つ)を出して、

元からあったプリンシブルBSDFにこんな感じでつなげます。↓

マテリアルタブのブレンドモードをアルファブレンドにし、シェーダーミックスの係数を1にすることでオブジェクトが見えなくなります。
係数の部分を右クリックするとこの値にもキーフレームを挿入することができるので1フレーム目で係数1にしてキーフレームの挿入、4フレーム目で同じく1にしてキーフレームの挿入、5フレーム目で0にしてキーフレームの挿入。

これでつなぎ目は見えなくなると思います。

ほとんど同じやり方で作ったモノ↓
blender2.8のcell fractureいい感じです。☺️#b3d #blender #Blender3D pic.twitter.com/uVMzc7TPbE
— ganmin (@muro_ganmin) 2019年7月23日
氷割り一段。#b3d #blender #Blender3D pic.twitter.com/fQJM9VreS5
— ganmin (@muro_ganmin) 2019年7月25日
blender2.8 cell fractureの破壊力。#b3d #blender #Blender3D pic.twitter.com/PZSz8OJUqd
— ganmin (@muro_ganmin) 2019年7月25日
まとめ
破壊されたオブジェクトが下に落ちていくのが嫌であれば、床となる平面を追加、リジッドボディ(パッシブ)を追加することで平面の上に破壊された破片がとどまるかと思います。
今回のオブジェクトを表示、非表示させるやり方等は、多分、もっとスマートで簡単なやり方があるのではないかと思うがちょっと分からなかったのでこういうやり方をとってみた。
最初、Collectionにまとめて表示、非表示できるかと思ったのだがどうもできない。。。
ホントは出来るのかもしれない。。。
今後、分かれば追記していくだろう。

