Implementing an EventHit node in a Geometry Collection Actor and printing the Names of the returned values, it wrongly returns the reference to this Actor (self) on the Other actor object reference, as well as the Geometry Collection Component of this Actor on the Other Comp Primitive Component Object Reference.
Example: BP1 is a BP that inherits from Geometry Collection Actor and is marked Static; during simulation BP1 is hit by BP2 (also Geometry Collection Actor) that is marked Dynamic and was originally set above it.
In EventHit of BP1, Other will return BP1 instead of BP2.
The licensee mentions that the issue lies in ChaosGameplayEventDispatcher.cpp, whenever (line 423) bSwapOrder is true,
UPrimitiveComponent* const Comp1 = Scene.GetOwningComponent<UPrimitiveComponent>(PhysicsProxy1);
should be
UPrimitiveComponent* const Comp1 = Scene.GetOwningComponent<UPrimitiveComponent>(PhysicsProxy0);
Open up ReproMap3 attached to the case. Verify the logs:
LogBlueprintUserMessages: [GC_Cube2_Blueprint1_C_1] GC_Cube2_Blueprint1.GeometryCollectionComponent0 hit GC_Cube2_Blueprint1.GeometryCollectionComponent0
Should be GC_Cube2_Blueprint2.GeometryCollectionComponent0 hit GC_Cube2_Blueprint1.GeometryCollectionComponent0
Call Stack for context, non-fatal:
> UnrealEditor-ChaosSolverEngine.dll!UChaosGameplayEventDispatcher::HandleCollisionEvents(const Chaos::FCollisionEventData & Event) Line 379 C++
UnrealEditor-Chaos.dll!Chaos::TEventContainer<Chaos::FCollisionEventData>::DispatchConsumerData() Line 338 C++
UnrealEditor-Chaos.dll!Chaos::FEventManager::DispatchEvents() Line 97 C++
UnrealEditor-PhysicsCore.dll!??$?RVFPBDRigidsSolver@Chaos@@@<lambda_1>@?EB@??EndFrame@FChaosScene@@QEAAXXZ@QEBA?A_PAEAVFPBDRigidsSolver@Chaos@@@Z(Chaos::FPBDRigidsSolver & Concrete) Line 562 C++
[Inline Frame] UnrealEditor-PhysicsCore.dll!Chaos::FPhysicsSolverBase::CastHelper(const FChaosScene::EndFrame::__l65::<lambda_1> &) Line 313 C++
UnrealEditor-PhysicsCore.dll!FChaosScene::EndFrame() Line 554 C++
[Inline Frame] UnrealEditor-Engine.dll!Invoke(void(UWorld::*)()) Line 66 C++
[Inline Frame] UnrealEditor-Engine.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(UWorld::*)() &) Line 309 C++
UnrealEditor-Engine.dll!V::TBaseUObjectMethodDelegateInstance::ExecuteIfSafe() Line 667 C++
[Inline Frame] UnrealEditor-Engine.dll!TDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfBound() Line 570 C++
[Inline Frame] UnrealEditor-Engine.dll!FSimpleDelegateGraphTask::DoTask(ENamedThreads::Type) Line 1580 C++
UnrealEditor-Engine.dll!TGraphTask<FSimpleDelegateGraphTask>::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & NewTasks, ENamedThreads::Type CurrentThread, bool bDeleteOnCompletion) Line 1235 C++
[Inline Frame] UnrealEditor-Core.dll!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & CurrentThread, ENamedThreads::Type) Line 840 C++
UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread(int QueueIndex, bool bAllowStall) Line 760 C++
UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit(int QueueIndex) Line 651 C++
[Inline Frame] UnrealEditor-Core.dll!FTaskGraphCompatibilityImplementation::ProcessThreadUntilRequestReturn(ENamedThreads::Type) Line 2068 C++
UnrealEditor-Core.dll!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete(const TArray<TRefCountPtr<FGraphEvent>,TSizedInlineAllocator<4,32,TSizedDefaultAllocator<32>>> & Tasks, ENamedThreads::Type CurrentThreadIfKnown) Line 2122 C++
UnrealEditor-Engine.dll!FTickTaskSequencer::ReleaseTickGroup(ETickingGroup WorldTickGroup, bool bBlockTillComplete) Line 556 C++
UnrealEditor-Engine.dll!FTickTaskManager::RunTickGroup(ETickingGroup Group, bool bBlockTillComplete) Line 1583 C++
Check ChaosGameplayEventDispatcher.cpp line 448
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-224753 in the post.
0 |
Component | UE - Simulation - Physics - Solver |
---|---|
Affects Versions | 5.4.4 |
Target Fix | 5.6 |
Fix Commit | 36532584 |
---|
Created | Sep 18, 2024 |
---|---|
Resolved | Sep 24, 2024 |
Updated | Oct 1, 2024 |