LoginSignup
1
0

【blender】ジオメトリーノードを用いた爆発の表現【軽い】

Last updated at Posted at 2024-05-23

こんなかんじ
0076-0096.gif
エフェクトをつけるともっと爆発っぽくなると思います
別角度.gif
爆発というより爆散かも

利点

blenderでオブジェクトの爆散を表現する方法として、
・物理演算を使った方法
・破片をひとつひとつキーイングする方法
などがあると思いますが、物理演算は重いしキーイングはめちゃ大変です

今回の方法は物理演算より軽く、自力キーイングより楽だと思います

環境:blender3.3

作り方

オブジェクトを分割し、コレクションにまとめる

image.png
分割は自力でもいいですが、Cell Fractureアドオンがおすすめです

分割ができたら、オブジェクトの塊ごとにコレクションを作ってまとめます
image.png
(firstDが”破”、secondDが”壊”)

制御用のオブジェクトを用意する

image.png
なんでもいいです
今回はEmptyからplane axisを用意し、destroyerと名付けました

ジオメトリーノードで爆散

ジオメトリーノード用のオブジェクトを作って(なんでもいいです)そいつのジオメトリーノードタブでノードを組んでいきましょう

ノード群の全貌はこんな感じです
image.png
image.png
1枚目が全体図、2枚目がdestroy first/secondの中身です
destroy firstとsecondは全く同じものです

(Ctrl+Gでノードのグループ化を行うことができます)
参考:Blender: ノードグループ(Node Group)の使用方法

2枚目について詳しく見ていきます
image.png
Object Infoノードから先ほどつくった制御用のオブジェクト destroyer のScaleを取得し、Separate XYZノードによってベクトルを分割します

image.png
取得した値をFloat Curveノードにつっこんで、グラフをこんな感じにします
Float Curveノードは横軸が入力値、縦軸が出力値のグラフをつくります
0から1の値をとります

XYZでやることは同じなので、Y,Zも同様にやります

image.png
Float Curveノードから取得した値をMultipyでn倍(n=散逸の範囲を表すパラメータ)して、Addで1(これは固定)を足します
同様に操作したX,Y,ZをCombine XYZで再びVector化します

image.png
ここがメインの部分です
各ノードについての説明:

  • Combine XYZ:destroyerのScaleから取得した、各破片の移動量係数ベクトル
  • Position:各破片(Collection内のObject)のもともとの位置
  • Multipy:ベクトルの各要素の積をとる。アダマール積というらしい
  • Group Input:入力したCollection
  • Group Output:結果。起こる事象

各破片のワールド原点からのベクトルと、移動係数ベクトルとの要素積をとることで各破片の移動先を決定します

あとは移動先の位置をSet Positionに入れとけばOKです

爆発の中心をワールド原点から変えたい場合
image.png
Centerは爆発の中心となるオブジェクトです
例のごとくEmptyでも置いときましょう
もちろん、位置ベクトルを入れて直接指定することもできます

制御の仕方

destroyerのScaleによって制御しているので、それをキーイングすることでアニメーションをつくれます
注意点として、Float Curveノードの範囲が0から1なので、Scaleもそれに合わせる必要があります
Multipyノードの倍率で大きさを決めましょう

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

以上です
物理演算ほどリアルには動きませんが、エフェクトとかつけたらそれっぽくなるのではと思います
今回はやらなかったんですが、破片にランダムな回転をかけたりするのもいいかもしれません
意見や感想があればツイッター( https://x.com/bleibiaccount )のほうにお願いします
ありがとうございました
創造と破壊.gif

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0