LoginSignup
1
0

Blenderのパーティクルでテクスチャーのアニメーションをさせる

Last updated at Posted at 2024-05-19

質問チャットで
Blenderのパーティクルで散らしたオブジェクトで
発生時点から始まるアニメーションをさせたいという話があったので試してみたいと思います
240051902.gif

まず結論からいう単純にアニメーションテクスチャを利用する手段はない様子なので
UVスクロールによるアニメーションを利用します
また、この方法は現状Cyclesレンダーのみで利用可能です

UVスクロール

UVスクロールとは UVマッピングの座標を変更することでアニメーションをさせる方法です
連続画像のアニメーションの場合、各コマを並べておいて時間の進行と共にコマ一枚分UV座標を変更します
image.png
UV座標は画像の各辺の長さを1.0とする座標なことは注意が必要です。
今回は連続画像になるよう10コマ分の画像を並べたものを用意しました

UVスクロールのノード

まずUVスクロールの確認のノードです
image.png
UV展開の時点で1コマ分の大きさにUVを設定してもいいのですが UV自体は画像の角に合わせた状態で
計算で全コマ数の除算をすることで一コマ分の幅にしています
その次の加算で 座標を横移動させています。
上の計算の方が分かりやすいかと思うのですが
パーティクルから得られる情報の関係で計算の順序をこう変更しました
image.png

パーティクル情報からのアニメーション

Blenderのシェーダーでは パーティクル情報のノードでパーティクルが発生してからのフレーム数等の情報を取得できます
image.png
ここの 「経過時間」 がフレーム数を基準にしたパーティクルが発生してからの時間になるのですが
フレームとフレームの間の時間の間にも発生しているという計算になっているのか不要な少数値が入っているので、切り捨てで整値にしています
これは 1つ前のキャプチャの「フレーム」のラベルのノードの位置につなげます

今回のノードの全体です 最初に触れたとおりCyclesでのみ動作します
image.png

今回はパーティクルとシェーダーで実現することを考えましたが

ランダム配置をジオメトリノードで作成すればEeveeでも同様のことができるかもしれないですね。

ジオメトリノードで同様のことをやってみました

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