質問チャットで
Blenderのパーティクルで散らしたオブジェクトで
発生時点から始まるアニメーションをさせたいという話があったので試してみたいと思います
まず結論からいう単純にアニメーションテクスチャを利用する手段はない様子なので
UVスクロールによるアニメーションを利用します
また、この方法は現状Cyclesレンダーのみで利用可能です
UVスクロール
UVスクロールとは UVマッピングの座標を変更することでアニメーションをさせる方法です
連続画像のアニメーションの場合、各コマを並べておいて時間の進行と共にコマ一枚分UV座標を変更します
UV座標は画像の各辺の長さを1.0とする座標なことは注意が必要です。
今回は連続画像になるよう10コマ分の画像を並べたものを用意しました
UVスクロールのノード
まずUVスクロールの確認のノードです
UV展開の時点で1コマ分の大きさにUVを設定してもいいのですが UV自体は画像の角に合わせた状態で
計算で全コマ数の除算をすることで一コマ分の幅にしています
その次の加算で 座標を横移動させています。
上の計算の方が分かりやすいかと思うのですが
パーティクルから得られる情報の関係で計算の順序をこう変更しました
パーティクル情報からのアニメーション
Blenderのシェーダーでは パーティクル情報のノードでパーティクルが発生してからのフレーム数等の情報を取得できます
ここの 「経過時間」 がフレーム数を基準にしたパーティクルが発生してからの時間になるのですが
フレームとフレームの間の時間の間にも発生しているという計算になっているのか不要な少数値が入っているので、切り捨てで整値にしています
これは 1つ前のキャプチャの「フレーム」のラベルのノードの位置につなげます
今回のノードの全体です 最初に触れたとおりCyclesでのみ動作します
今回はパーティクルとシェーダーで実現することを考えましたが
ランダム配置をジオメトリノードで作成すればEeveeでも同様のことができるかもしれないですね。
ジオメトリノードで同様のことをやってみました