Description

The relative location of a Blueprint's Components behaves differently in the level depending on whether the Component was added directly to the Blueprint or it was inherited from a parent code class. If the Blueprint has been attached to another Actor in the level, moving the Blueprint causes a Component that was added directly to the Blueprint to reset its relative location to be the same as the location of the Blueprint. Components that have been inherited from a parent code class retain their relative location in relation to the Blueprint.

This only occurs if the Blueprint has been attached to another Actor in the World Outliner. If this has not been done, then both Components retain their relative location in relation to the Blueprint.

REGRESSION:
No.

Steps to Reproduce
  1. Create a new Basic Code project.
  2. Add a new Actor code class to the project.
  3. Add a Scene Component to the new code class and set it as the root component.
  4. Add a Static Mesh Component to the code class.
  5. Create a Blueprint that derives from the code class.
  6. Add another Static Mesh Component to the Blueprint (it should have two Static Mesh Components; one from the parent code class and one added directly to the Blueprint).
  7. Apply a static mesh to each Static Mesh Component so that they are visually distinguishable from each other.
  8. Place an instance of the Blueprint into the level.
  9. Select each of the Static Mesh Components and move them to different locations in the level.
  10. In the World Outliner, drag the Blueprint onto another Actor in the level (eg. the Floor).
  11. Select the Blueprint in the World Outliner and then move it in the level.

RESULT:
The Static Mesh Component that was added directly to the Blueprint resets its relative position to be at the location of the Blueprint. The Static Mesh Component inherited from the parent code class retains its relative position in relation to the Blueprint.

EXPECTED:
Both of the Static Mesh Components retain their relative position in relation to the Blueprint.

Update: The last step will yield a repro whether you drag the new parent actor (eg. the Floor) or the BP Actor that you created. Depending on which is used, the origin that the component gets reset to will change.

Have Comments or More Details?

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

4
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.18.34.19.24.22
CreatedOct 15, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021