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
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
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-92311 in the post.
1 |
Component | UE - Simulation - Physics - Destruction |
---|---|
Affects Versions | 4.24.3 |
Created | Apr 22, 2020 |
---|---|
Resolved | Jul 19, 2022 |
Updated | Jul 19, 2022 |