お世話になっております。
レベルの一部にPCGを使用して背景マップの構築をしています。
マップに配置するオブジェクトにActorを使用する必要があり、SpawnActorノードを使用する必要があるのですが、OptionのMergePCGOnlyやNoMergingを選択するとEditorがクラッシュします。
マップはレベルインスタンスとデータレイヤーを使用しており、データレイヤー内に入っているPCGからSpawnActorを使用するとクラッシュするのを確認しています。
データレイヤーを使用しないシンプルなマップではクラッシュしませんでした。
レベルインスタンスを開いた状態でPCGを編集すればクラッシュしないことはわかっているのですが、イテレーション効率が下がってしまうため、こちらの不具合を修正していただくことは可能でしょうか。
再現手順と再現プロジェクトを添付します。
よろしくお願いいたします。
お世話になっております。
たいへん使いやすい再現プロジェクトのご提供、誠にありがとうございます。おかげさまで簡単に再現を取ることができました。
ご指摘のクラッシュは、UE5.6でも発生するようです。
ひとまず、社内のバグトラッカーに報告を行いました。Public Issueとして承認後、以下のURLで修正状況を追跡していただくことが可能になります。
確認したところ、PCGアクタが属するデータレイヤーと、PCGグラフのSpawnActorが生成するアクタのデータレイヤーに食い違いがあるとアサートクラッシュを起こすようです。
お預かりした再現プロジェクトでいえば、Spawn ActorノードのAllow Template Actor Editingにチェックを入れ、この場でData LayerをDL_Sampleに指定すれば、クラッシュを回避できます。
(「DL_Sample」レイヤーのPCGアクタが、「DL_Sample」のアクタをスポーンすれば、クラッシュしない)
ただし、PCGグラフ自身のデータレイヤーが自分から見えていない状態でSpawn Actorでデータレイヤーを決め打ちにするのは現実的ではないため、こちらはワークアラウンドにはならないことは認識しております。
なお、Spawn ActorのOptionがCollapse Actorsだとクラッシュを回避できるのは、このオプションではアクタの生成を行わずコンポーネントとして格納するため、アクタのデータレイヤーの一貫性チェックを回避できるためと思われます。
以上、取り急ぎご報告申し上げます。
ご確認ありがとうございます。
バグトラッカーのチケットに登録されているのを確認しました。
引き続きよろしくお願いいたします。
お世話になっております。
本件、次の回答まで時間を要してしまい大変申し訳ございません。
内部的には高優先度、修正目標をUE5.7に設定して修正対応が進められているのですが、修正の過程で、
「レベルエディタ上で概念的にはRead OnlyとしてリファレンスされているLevel Instance内のPCGの再生成が実行されていいのか」
という論点が生じ、理想とされる修正方法について議論が進められている状況です。
そのため、大変恐縮ではあるのですが、完全な対応までかなりお時間をいただくことになるかもしれません。
以上、よろしくお願いいたします。
お世話になっております。
お待たせしております。
本件、お伝えしたように修正まで時間を要するため、チケット管理の都合上、一旦Closeさせていただければと思います。
このような場合、修正状況に関しては、Public Issueでの追跡をお願いしております。
https://issues.unrealengine.com/issue/UE-294565
そのほかPublic Issuie側では追えないアップデートがありました場合は、こちらからチケットを再Openしてお知らせいたします。
ご不便をおかけしますが、よろしくお願いいたします。
お世話になっております。
承知しました。ご確認とご共有ありがとうございます。
お世話になっております。
ご理解誠にありがとうございます。
それでは、本件は一旦Closeとさせていただきます。
以上、よろしくお願いいたします。