特定条件のChildActorComponentをコピペーストするとクラッシュします

いつもお世話になっております。

Actorが持つChildActorComponentに特定のChildActorClassを指定し、コピーペーストを行うとクラッシュが発生します。

確認できているのは、C++でCreateDefaultSubobject()やSetDefaultSubobjectClass()等でコンポーネントの作成を行うClassの様で、これをChildActorClassに設定したChildActorComponentをコピーペーストすることでクラッシュが発生しています。

ChildActor自体は使用している数は少ないのですが、コピーペーストは比較的よく行うオペレーションのため修正を頂けないでしょうか。

■再現手順

  1. Actorを継承したBPを作成します。
  2. Add ComponentでChild Actorを追加します。
  3. 2.で作成したコンポーネントのChildActor ClassにEmitter等を指定します。
  4. 2.のコンポーネントをコピーペーストします。
  5. クラッシュします。

※UE 4.21でも同じ様にクラッシュが発生しているようです。

■コールスタック
UE4Editor_CoreUObject!FObjectInstancingGraph::GetInstancedSubobject()
UE4Editor_CoreUObject!FObjectInstancingGraph::InstancePropertyValue()
UE4Editor_CoreUObject!UObjectPropertyBase::InstanceSubobjects()
UE4Editor_CoreUObject!UStruct::InstanceSubobjectTemplates()
UE4Editor_UnrealEd!ImportObjectProperties()
UE4Editor_UnrealEd!ImportObjectProperties()
UE4Editor_UnrealEd!ImportProperties()
UE4Editor_UnrealEd!ImportObjectProperties()
UE4Editor_UnrealEd!ImportObjectProperties()
UE4Editor_UnrealEd!FCustomizableTextObjectFactory::ProcessBuffer()
UE4Editor_UnrealEd!FComponentObjectTextFactory::Get()
UE4Editor_UnrealEd!FComponentEditorUtils::CanPasteComponents()
UE4Editor_Kismet!SSCSEditor::CanPasteNodes()
UE4Editor_Kismet!?Execute@?$TBaseSPMethodDelegateInstance@$00VSSCSEditor@@$0A@$$A6A_NXZ$$V@@UEBA_NXZ()
UE4Editor_Slate!FUICommandList::ConditionalProcessCommandBindings()
UE4Editor_Slate!FUICommandList::ProcessCommandBindings()
UE4Editor_Kismet!SSCSEditor::OnKeyDown()
UE4Editor_Slate!::operator()()
UE4Editor_Slate!FEventRouter::Route >()
UE4Editor_Slate!FEventRouter::RouteAlongFocusPath,FKeyEvent>()
UE4Editor_Slate!FSlateApplication::ProcessKeyDownEvent()
UE4Editor_Slate!FSlateApplication::OnKeyDown()
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage()
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage()
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage()
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc()
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages()
UE4Editor!FEngineLoop::Tick()
UE4Editor!GuardedMain()
UE4Editor!GuardedMainWrapper()
UE4Editor!WinMain()
UE4Editor!__scrt_common_main_seh()
kernel32
ntdll

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

お世話になっております。
ご指摘及び詳細な情報を頂きありがとうございます。この問題を再現することができましたのでUE-66481としてバグレポートを作成しました。こちら修正や進展がありましたらお伝えしたいと思います。ご不便おかけしますが、回避方法としましてDuplicate(Ctrl+W)をご利用頂ければと思います。
よろしくお願いします。

ご返答並びにバグ登録ありがとうございます。

ご提案いただいたDuplicate(Ctrl+W)を使用してコピーする方法を試していたのですが、一点不具合の様な挙動がございましたのでご報告致します。

ComponentのCooking → Is Editor Onlyが有効な状態でDuplicateするとコンポーネントが消えた様な状態となります。
その状態でBPをコンパイルするとコピー元のコンポーネントの子階層に複製されたコンポーネントが配置された状態となるようです。
※Copy Pasteでは発生せずDuplicateのみで発生しています。

■Copy & Paste時

262354-copypaste.png

■Duplicate時

262355-duplicate.png

こちら別のスレッドとして投稿した方がよろしいでしょうか。

ご連絡ありがとうございます。こちらの問題はUE-66487として登録しました。お手数ですが、複製前に一度IsEditorOnlyを外して頂くか、コンパイル後に手動でTreeの再設定を行って頂ければと思います。
よろしくお願いします。

ご返答ありがとうございます。
Treeの再設定では座標等に問題が出る事が有るようでしたので、一時的にIsEditorOnlyを外して複製を行うように致します。

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