【Godot4.4】スプライトシートを使用したパーティクルエフェクトの作り方

GodotEngine

この記事では、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 を設定します。

例は、Speedの最大値/最小値をどちらも1.0に設定し、等速でアニメーション再生を実行しています。

※speed_min/max を異なる値にすると、パーティクルの再生速度はその範囲内でランダムになります。

例2:スプライトシートをループ再生

例1:では、最後のフレームに到達した時その状態で再生は停止しますが、ループ再生するアニメーションのスプライトシートの場合は、
CanvasItem > Material > CanvasItemMaterial > Particles Anim Loop を有効に設定します。

例はわかりやすいように途切れる形のスプライトシート画像を適用していますが、下記画像のように、最終フレームの空白の後にまた最初のフレームから再生が行われている様子が確認できます。

注意:パーティクルの各種再生スピードが速すぎたり、有効時間(life_time)が短すぎると、ループする前にパーティクルが消えてしまいます

例3:スプライトシートの画像をランダムに放出

スプライトシートに含まれる画像のどれかをランダムに放出したい場合は、
ParticleProcessMaterial > Display > Animation > Speed min/maxともに 0
ParticleProcessMaterial > Display > Animation > Offset を0以外の任意の値に設定します。

例はOffset(※)を 0 ~ 1の範囲で設定し、スプライトシート中の全画像からランダムで生成が発生するように設定を行っています。

※ここでのOffsetは、0が最初のフレーム、1が最後のフレームを表す係数で、設定値の範囲内でいずれかのフレームまで進攻した状態でパーティクルが生成されることを意味します。

コメント
コメント

例2,3 を組み合わせると、ランダムな開始位置(offset)から再生を開始(speed > 0)するループパーティクルが作成でき、不規則な粒子の表現をしたい場合におすすめです。

おわりに

以上が、スプライトシートを使用したパーティクルエフェクトを作成する基本的な方法になります。

スプライトシートの画像はアニメーションのほか、単一の粒子用画像のセットとしても扱えるため、活用することで作成できるエフェクトの幅が広がるかと思います。

GPUParticles2Dや、ParticleProcessMaterialプロパティについては以下の記事で全プロパティについてまとめているため、よろしければ併せてご参照ください。

おすすめの本①
おすすめの本➁(Godot)
GodotEngine
ひらまめ(hiramame)をフォローする

コメント

タイトルとURLをコピーしました