Description

Destructible mesh's location will not be updated when added to sequencer directly from content browser, unless two different locations are keyed on the transform track of the mesh.

We found the bug causing the problem in destructiblecomponent.cpp, line 182:

if(!PRootActor || PRootActor->getScene()) //either root chunk is null meaning fractured (so there's a scene), or the root has a scene
{
ApexDestructibleActor->setGlobalPose(GlobalPose); //this assumes ignores bTeleport and treats it like it's true
}else
{
PRootActor->setGlobalPose(PxTransform(GlobalPose)); //we're not in a scene yet, so place the root actor in this new position
}

When asset dragged from content browser and actor spawned in sequencer, the ApexDestructibleActor will never get scene root,  so will always be placed at 0,0,0

Steps to Reproduce

1.In UE4 editor, create an apex destructible mesh asset
2.Open an level sequence in the sequencer editor
3.Drag the destructible mesh asset directly to the sequencer editor and create a transform track automatically
4.Add a new key on the transform track at like 60th frame and move the destructible mesh actor in the viewport
5.Play in editor
6.Type "show bounds" console command
7.Just found the bounds of the destructible mesh stay at location 0,0,0 while the mesh is moving

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-92311 in the post.

1
Login to Vote

Won't Fix
CreatedApr 22, 2020
ResolvedJul 19, 2022
UpdatedJul 19, 2022