特定条件を満たした State Tree Property Ref の Get Property Reference を呼び出すとクラッシュします。

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

タイトル名のクラッシュについて、UE5.5.4 と UE5.6.1 の StackOBot にて、再現手順記載の内容を行う事で再現しましたのでレポートを添付いたします。(UE5.6.1 の StackOBot {プロジェクト名 StackOBot2})

タイトルの"特定条件"についてですが、一文に纏めますと「Linked Asset で呼び出した State Tree 内の Subtree 内のタスク内にて、State Tree Property Ref の Get Property Reference を呼び出すとクラッシュ」となります。

そのため、Subtree を通さず Root 直下での実行とするとクラッシュは再現できません。

以下の環境においても同様にクラッシュを確認済みとなります。

・Pawn&AIController の State Tree

・Run Env Query を使用 (Env Asset 内が ROOT のみの場合はクラッシュせず、何らかの条件を追加する事でクラッシュします)

クラッシュ回避に関する何らかの情報がありましたら、ご教示頂けますと幸いです。

宜しくお願い致します。

再現手順
​1.任意の場所に Actor を作成します。(名前を BP_Actor とします)

2.BP_Actor に ​State Tree Component を置き、State Tree を作成&設定します。(名前を ST_Main とします)

[Image Removed]

3.ST_Main の Root の次に Linked Asset Type の State を配置します。

4.​Linked Asset に State Tree を作成&設定します。(名前を ST_Sub とします)

[Image Removed]

5.ST_Sub の Root の次に Linked Type の State を配置します。(名前を Linked とします)

6.Root 以外の領域にて、​Subtree Type の State を配置します。(名前を Subtree とします)

7.Subtree の次に State を配置します。(名前を Crash とします)​

8.​State Tree Task Blueprint Base 継承の Task を作成します。(名前を STT_Crash とします)​

9.State Tree Property Ref の Get Property Reference ​を呼び出すだけの内容にします (添付画像参照)

[Image Removed]

10.​Crash State に STT_Crash を追加し、任意の Parameters を設定して保存します。

11.任意のレベル上に ​BP_Actor に配置して Play を行うとクラッシュします。

[Image Removed]

問題を再現することができたので、UE-315554 StateTree : Crash when executing GetPropertyRef in SubTree linked via Linked Asset としてバグ登録いたしました。数営業日後にUnreal Engine Issuesに公開されるはずです。

修正まではご調査いただいた通りLinkされたSubtreeとLinkedAssetの組み合わせで問題が発生するので、Subtreeを使わずにインラインで展開するような構造にしていただくか、アセットを分離しなくても良いのであればLinkedAssetを使わずにアセットをまとめていただけますでしょうか。

ありがとうございます。

バグトラッカーが公開されたので共有し、本チケットをクローズさせていただき​たいと思います。

https://issues.unrealengine.com/issue/UE-315554

ご確認ありがとうございます。承知致しました。

修正完了までは、以下いずれかの暫定対処の形で進めさせて頂きます。

・Linked Asset で呼び出さない構造 (直接呼び出すか、StateTree を差し替える)

・Subtree を使わない構造 (Root 直下に全て展開)