This is a regression from 4.27. This is happening because of the change to typed elements. UEditorEngine::PostUndo, when combined with the typed element changes causes the selection set to reorder itself on undo/redo of the nested, selected component.

The typed element changes usually grab the last selected element in the selection set. Prior to the selection set changes, we had special logic which only dealt with actors and components, and prioritized the selected component set over the selected actor set.

We probably need to do some combination of the following:

  • ensure ordreing of the selection correctly goes in order of hierarchy of the selected elements (i.e. actors are listed in the selection set first, components last)
  • We add an additional function to the viewport interactions to get the gizmo rotation, which can allow the customization from the level viewport to handle splitting off component, actor edge cases (or update the exsting gizmo location function to provide a full transform)
  • Fix up the editor mode manager to no longer be the entry point for the local coordinate space, and have this route through the viewport interaction
Steps to Reproduce
  1. Create a new blueprint with a skeletal mesh component with a bone not at the origin.
  2. Create a cube static mesh component and attach it to the skeletal mesh component.
  3. Attach the static mesh to the non-root bone socket.
  4. In the editor viewport (not the blueprint editor viewport) select the mesh and translate, rotate, or scale it in local space (not world space)
  5. Undo the change

Expected -> the gizmo is offset and rotated to accurately reflect local space of the static mesh
Actual -> the gizmo uses world space of the root bone, but draws at the correct offset position.

Alternatively, you can get into the same state by redoing some change.

Have Comments or More Details?

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

Login to Vote

Fix Commit18431233
Main Commit18435794
Release Commit18431233
CreatedOct 18, 2021
ResolvedDec 10, 2021
UpdatedJan 22, 2024