「出現時の実行ステート」の使い方について

以下画像の「出現時の実行ステート」の使い方を教えてください。

オブジェクト出現時に初期ステート以外のステートを実行したい場合に使用するのかと思ったのですが、どのステートを選んでも初期ステートからの開始となります。

お世話になっております。

お問い合わせいただきありがとうございます

こちらはシーン内に直接配置するオブジェクトの生成時に実行するステートを設定する機能となっております。

「初期実行ステート」を選択した場合、.vsで選択した初期実行ステートが実行されます。

(.vs内でステートを右クリックすることで初期実行ステートを設定できます)

それ以外のステートを選択した場合は選択したステートが実行されます。

.vsの実行アクション「オブジェクトを生成」等で生成したオブジェクトは該当アクションで選択したステートがオブジェクトを生成時のステートとなります。

以上が該当機能の概要となりますが、こちらでプロジェクトを作成し「出現時の実行ステート」を確認したところ設定どおりに実行され、ご報告いただいた事例が再現できませんでした。

もしシーン内に直接配置するオブジェクトのステートに変化がない場合、お手数ですが該当のプロジェクトをご共有いただけますでしょうか。

ご確認のほど何卒よろしくお願いいたします。

AGM_member_T様

お世話になっております。

ご確認ありがとうございます。

こちら、共有用のプロジェクトを作成している時に事象の発生方法が分かりました。

どうやらシーンの遷移があると事象が発生するようです。

ファイルを添付しますのでご確認ください。

よろしくお願いいたします。

testproject_20251104.zip (1.1 MB)

(左右でキャラクターを動かし、オブジェクトの近くに行くと画面上にメッセージが出るようにしています。)

■事象発生パターン

ゲームシーン0→遷移→ゲームシーン1(ここで出現時の実行ステートを設定)

■事象が発生しないパターン

ゲームシーン1(ここで出現時の実行ステートを設定)

「いいね!」 1

お世話になっております。
事例の詳細とプロジェクトをご共有いただき誠にありがとうございました。
確認させていただきます。
引き続きよろしくお願いいたします。

「いいね!」 1

お世話になっております。

ご共有いただいたプロジェクトを確認したところ、シーン遷移後に「出現時の実行ステート」が正常に動作していないことを確認できました。
バグと思われますので、開発に確認いたします。

一時的な回避策とはなりますが、以下の対応等をご検討いただけますでしょうか。

1.ステートを指定したいGameObjectのVariableSettingsにSceneIndexを追加
2.ステートを指定したいGameObjectの子にNode2Dを追加、以下スクリプトをアタッチ

extends Node2D

func _ready() → void:

AGMakerManager.game_scene_changed.connect(_on_after_change_scene)

pass

func _on_after_change_scene(current_scene: GameScene):

if current_scene.name == “GameScene”:

$“../VariableSettings”.set_value(“SceneIndex”, 1)

pass

3..vsでシーン遷移用のステートを追加して初期ステートに設定、リンク→「スイッチ・変数が変化した」でSceneIndexを参照し分岐

大変御手数おかけいたしますがご確認いただければ幸いです。

ご報告いただきありがとうございます。
引き続きよろしくお願いいたします。

AGM_member_T様
ご確認、および代替案のご提案ありがとうございます。
現在は、必要な実行ステート毎にオブジェクトを作成しておりますので一旦はこのまま進めようと思います。
が、今後必要な機能となってくるかと思いますのでご対応よろしくお願いいたします。

また、今回の事象以外にもシーン遷移後の挙動が怪しいものがいくつかありますので合わせてご確認いただけますと幸いです。
(細かい発生条件までは検証していない状況です。多分他にもあります。)

・ゲームの進行を止めるウェイトアクションが動作しない
・弾を発射する際の発射元位置がシーンによって変わる(connectorで指定)
・シーン切り替え後にDynamicWaterにプレイヤーが映ったり映らなかったりする

よろしくお願いいたします。

「いいね!」 1

ご報告いただきありがとうございます。
こちらにつきましても確認をすすめます。
引き続きよろしくお願いいたします。

「いいね!」 1

AGM_member_T様

お世話になっております。
上記に関連して、シーン遷移を挟む場合と挟まない場合で挙動が異なるものを発見したため下記手順ご確認いただけますでしょうか。
また、下記手順にてImageGaugeと合わせてHPの数字表示を試みているのですが、もっと簡単な方法があれば教えてください。

■手順
・ゲームシーンのCanvasLayer(UI)にオブジェクトAを配置
・オブジェクトAのアクションに「テキストを表示」を設定
→Playerオブジェクトの変数「HP」を表示するように設定

■結果
シーン遷移あり:HPが表示されない
シーン遷移なし:HPが表示される

testproject_20251111.zip (1.1 MB)

「いいね!」 1

お待たせいたしました、こちら本日配信の1.1.6にて修正をさせていただきました。

「いいね!」 2

Moonling様
ご対応ありがとうございます。
1.1.6確認させていただき「初期実行ステート」が変更できることを確認しました。

ただ、上記に付随してか不明ですが、BaseSettingsの「消滅後の復活条件:シーンが切り替わった」が正しく動作していないため、ご確認いただけますでしょうか。

■事象
①シーン1に下記オブジェクトを配置
※BaseSettings「消滅後の復活条件:シーンが切り替わった」を設定
・Enemy1 初期実行ステート:action1
・Enemy2 初期実行ステート:action2

②シーン1にて上記を消滅後、シーン2に切り替え

③シーン2からシーン1へ切り替え

④シーン1に配置されていた各オブジェクトのステートが以下の通りになっている
・Enemy1 AnimationPlayerのResetが再生される(ステート:action1には切り替わらない)
・Enemy2 AnimationPlayerのResetが再生される(ステート:action2には切り替わらない)

※AnimationPlayerにResetが存在しない場合はEnemy1、Enemy2共にaction1が実行される

「いいね!」 1

isa様

お世話になっております。
こちらご連絡いただき誠にありがとうございます。
手元のプロジェクトで再現ができない状態で、申し訳ございませんが詳細確認のため該当のプロジェクトを共有いただけますでしょうか。
大変御手数おかけいたしますがご確認のほど何卒よろしくお願いいたします。

AGM_member_T様

お世話になっております。
プロジェクトを添付しますのでご確認ください。

testproject_2025-11-17.zip (1.1 MB)

私の設定方法等が間違っていましたらその旨ご連絡ください。

■手順
・testオブジェクトにそれぞれ初期ステートを設定
INFO_TILE:赤四角
INFO_TILE2:緑四角
・Playerオブジェクトが上記オブジェクトに近づいたのち、離れると各オブジェクトを消滅
・画面右端まで行くとシーン2に切り替え
・シーン2で画面左端まで行くとシーン1に切り替え

■結果
・シーン1に戻ってくると、testオブジェクトが両方ともResetアニメーション(黒四角)が表示される

よろしくお願いいたします。

「いいね!」 1