Crash when ApplyPhysicalAnimationProfileBelow node and UPhysicalAnimationComponent :: UpdateTargetActors by UPhysicalAnimationComponent :: OnTeleport run in the same frame. Because RuntimeInstanceData is 0 even though DriveData is 1 or more. Therefore, user can avoid the problem by including the check process of RuntimeInstanceData in this code.
void UPhysicalAnimationComponent::UpdateTargetActors(ETeleportType TeleportType)
{
...
#if WITH_PHYSX
FPhysicsCommand::ExecuteWrite(SkeletalMeshComponent, [&]()
{
TArray<FTransform> LocalTransforms = SkeletalMeshComponent->GetBoneSpaceTransforms();
for (int32 DataIdx = 0; DataIdx < DriveData.Num(); ++DataIdx)
{
const FPhysicalAnimationData& PhysAnimData = DriveData[DataIdx];
FPhysicalAnimationInstanceData& InstanceData = RuntimeInstanceData[DataIdx];
As far as I know, this only happens in multiplayer.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-92443 in the post.
| 4 |
| Component | UE - Simulation - Physics |
|---|---|
| Affects Versions | 4.24, 4.25 |
| Target Fix | 4.27 |
| Created | Apr 24, 2020 |
|---|---|
| Resolved | Nov 19, 2020 |
| Updated | Nov 23, 2020 |