イベントCGの表示を行いたい

イベントCGの表示を行いたいのですがどのような手法で実装するのが一般的なのでしょうか?
基本のCGと差分を数枚表示したいと考えています。
RPGツクールMZで言うところのピクチャの表示、移動、消去ができれば良いのですが…。

いくつか方法がありますがそれぞれ得意不得意があるのでお好みのものを使っていただく形が良いかと思います。

  1. 「画像を表示」アクション
    単純に画像を表示するのみであればこちらで良いのですが、アニメーションをさせたい、等であれば次の方法がおすすめです。
  2. 画像表示用のオブジェクトとアニメーションを使って表示する。
    ヴィジュアルスクリプトで遷移を制御しつつ、AnimationPlayerで作成したアニメを動かす形です。
    (ちょっとフクザツですが会話サンプルや、DLCのものですが弾幕サンプルの会話シーンはこの形式です。)
    AnimationPlayerでは画像のソースを差し替えたり表示/非表示を切り替えたり、動かしたりといったことができるのでかなり柔軟な動きをさせることができます。
「いいね!」 1

回答ありがとうございます。
DLCの弾幕サンプル見てみましたが、差分を管理するならこちらのほうが良さそうに思いましたのでこちらを参考にさせていただきつつ色々試してみたいと思います。

「いいね!」 1

DLCの弾幕サンプルを参考に設定を進めているのですがうまくいかない箇所があります。
やりたいこととしてはストーリー中のイベントAではCG_test01を表示し、イベントBではCG_test02を表示するというものになります。
以下のように設定してみたのですがCG_test01のCGを表示させるとCG_test02のCGも同時に表示されてしまう状態となっています。(逆も同様)
「指定のアクションを実行」で対象オブジェクトとしてCG_test01を指定しているのに何故CG_test02まで表示されるのかがわからずご教示いただけないでしょうか。

<設定内容>
・メニューシーン
RootNode
┗CanvasLayer
┣EventCG_Control(ゲームオブジェクト)
┗Control
┣CG_test01(ゲームオブジェクト。Visibleはオフ)
┗CG_test02(ゲームオブジェクト。Visibleはオフ)

・CG_test01、02(ゲームオブジェクト)
AnimationPlayerに表示したいCGを登録し、VSのステートのアニメーションカテゴリ名に実行したいアニメーションを指定

・EventCG_Control(ゲームオブジェクト)
VSの実行アクション「指定のアクションを実行」にてCG_test01もしくは02の該当のアクションを指定

AnimationPlayer を直接使用して、このアニメーションノード上に 2 つのアニメーションを作成し、1 つのオブジェクトでこのアニメーションノードが指定されたアニメーションを再生するように制御すれば、新たに 2 つの子オブジェクトを作成する必要はありません。

回答ありがとうございます。
確かにそれは一つのやり方だと思います。
ただ取り扱うCGの枚数がかなりの数となるので、管理のことを考えるとイベント毎にオブジェクトを分けたいところです。

あなたの要望は理解しました。AnimationPlayer の関連するすべてのアニメーションで自動再生が設定されており、その機能が以前の「表示」関連の設定を上回っているということでしょうか。

これが原因で、読み込み後に複数のオブジェクトが同時にアニメーション再生されているのでしょうか。

実行時の状態をリモートで確認したところ、メニューシーンを表示したタイミングでCG_test01、02に設定したアニメーションが再生されているようです。
CG_test01、02それぞれに何も表示しないアニメーションを追加し、それを初期ステートに設定することで表示したいCGのみを出せるようになりました。

実は、コードを使用するもう一つの方法もあります。

すべてのアニメーションを AnimatedSprite2D ノードに配置します。

グローバル変数を使ってどのアニメーションを再生するかを制御し、再生するアニメーションにはコードで play(“アニメーション名”) を使用し、frame を使ってどのフレームを表示するかを設定します。

「いいね!」 1

そういうやり方もあるのですね。
ありがとうございます!参考にします。

「いいね!」 1