この記事では、Godot4.4のスプライトシートを使用したパーティクルエフェクトの作り方について、基本的な設定方法と最小限の構成例をまとめています。
ノードの準備とスプライトシートの設定
GPUParticles2Dノードを追加します

追加したGPUParticles2Dのインスペクターで、Textureに使用するスプライトシート画像を、ProcessMaterialにParticleProcessMaterialを追加します。

この時点では、以下のようにスプライトシートがそのままパーティクルとして生成されている状態で表示が確認できます。

スプライトシートの設定を行っていきます。
GPUParticles2Dインスペクター:CanvasItem > Material で、新規CanvasItemMaterialを追加します。

追加したCanvasItemMaterialのプロパティを展開し、
① Particles Animation を有効(True)に
➁ Particles Anim H/V Frames プロパティをスプライトシートに対応したフレーム数で設定します

この時点では、フレームの1枚目の画像が、パーティクルとして生成されることを確認できます。

ここまでで、GPUParticles2Dでスプライトシートを取り扱うための準備は完了です。
ここからはパーティクルの設定を行ってスプライトシートテクスチャの画像を使用していきます。
パーティクルアニメーションの設定例
ここからは、スプライトシート画像の使用方法(パーティクルアニメーション設定)について、パターンごとにまとめていきます。
例1:スプライトシートを順に再生
スプライトシートの画像をアニメーションのように順に再生させたい場合は、
ParticleProcessMaterial > Display > Animation > Speed を設定します。
例2:スプライトシートをループ再生
例1:では、最後のフレームに到達した時その状態で再生は停止しますが、ループ再生するアニメーションのスプライトシートの場合は、
CanvasItem > Material > CanvasItemMaterial > Particles Anim Loop を有効に設定します。
注意:パーティクルの各種再生スピードが速すぎたり、有効時間(life_time)が短すぎると、ループする前にパーティクルが消えてしまいます
例3:スプライトシートの画像をランダムに放出
スプライトシートに含まれる画像のどれかをランダムに放出したい場合は、
ParticleProcessMaterial > Display > Animation > Speed をmin/maxともに 0 、
ParticleProcessMaterial > Display > Animation > Offset を0以外の任意の値に設定します。

例2,3 を組み合わせると、ランダムな開始位置(offset)から再生を開始(speed > 0)するループパーティクルが作成でき、不規則な粒子の表現をしたい場合におすすめです。
おわりに
以上が、スプライトシートを使用したパーティクルエフェクトを作成する基本的な方法になります。
スプライトシートの画像はアニメーションのほか、単一の粒子用画像のセットとしても扱えるため、活用することで作成できるエフェクトの幅が広がるかと思います。
GPUParticles2Dや、ParticleProcessMaterialプロパティについては以下の記事で全プロパティについてまとめているため、よろしければ併せてご参照ください。
コメント