Description

Edit: Please investigate for not only root component changes, but native component hierarchy changes in general and whether those hierarchy changes apply to actor instances saved as part of maps.

Original:
When introducing a different root component in C++, map placed actor instances that were already saved do not have a correct component hierarchy. The repro steps describe a simple scenario where a new root component is introduced above the previous one.

I attached a repro project in which a map was saved with an already placed actor, and afterward the C++ constructor was updated to introduce a new root component. The map placed actors don't have a correct hierarchy, while new ones do.

Also see related UDN of user reporting the problem.

Steps to Reproduce

I attached a project in which the repro steps have been completed up to the last steps. I recommend starting from that project.

Steps to repro in UE 5.1.0+:

  • Create a C++ actor class AReproBaseActor that defines no root component
  • Create a C++ subclass of it, AReproStaticMeshActor that creates a StaticMeshComponent as root component
  • Create a BP of AReproStaticMeshActor, BP_ReproStaticMeshActor, that sets the mesh comp's static mesh to Cube
  • Create a map Map1 and place a BP_ReproStaticMeshActor on it
  • Modify the constructor of AReproBaseActor to create a USceneComponent and set it as root component
  • Modify the constructor of AReproStaticMeshActor so the existing static mesh component uses the new scene component as parent
    In the attached project the steps have been followed up to here.
  • Open the editor again, notice that the BP_ReproStaticMeshActor that's already placed has the scene component and static mesh component as siblings instead of the mesh comp attached under the scene comp.
  • If you place a new BP_ReproStaticMeshActor, it does have the scene component as parent of the static mesh component

Expected:

  • Even for the BP_ReproStaticMeshActor that's already placed, the scene component should be the parent of the static mesh component

Have Comments or More Details?

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

6
Login to Vote

Fixed
ComponentUE - Gameplay
Affects Versions5.1
Target Fix5.3
Fix Commit24406120
Main Commit24406120
CreatedJan 4, 2023
ResolvedFeb 24, 2023
UpdatedApr 29, 2023