Description

From user:
"We have ran into an issue with soft object pointer fixup/remapping with the World Partition converter.

If you have a sublevel that contains a level script and an actor that is hard referenced by that level script and then also have a soft object pointer to that actor the soft object pointer will be incorrectly remapped. I have reproduced this in stock 5.0.2 and have a sample project attached. Simply open the project and convert the "ConvertMe" map in place and then check the soft object pointer properties on the actors in the map.

The reason this happens is because the converter adds a partial path remapping for "Sublevel" to "ConvertMe" but then doesn't make an exception for this general remapping for actors retained in the level. This means that when fixing up soft object pointers we will incorrect change the pointer from "Sublevel" to "ConvertMe"- even though the actor was actually kept in the "Sublevel" map.

I had made a quick and dirty change locally to fix this- when an actor is added to the LevelScriptActorReferences array I also add a soft object path remapping that just remaps it back to itself:

  1. RemapSoftObjectPaths.Add(FSoftObjectPath(Actor).ToString(), FSoftObjectPath(Actor).ToString());

This isn't the cleanest fix but it's the smallest mod. This causes the fix up code to see there is an exact fix up for this actor path (thus not doing the general fix up) but the results of the fix up is that the path just remaps back to itself (so there is no change)."

Have Comments or More Details?

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

0
Login to Vote

Fixed
Fix Commit21089460
Main Commit21089460
CreatedJul 1, 2022
ResolvedJul 14, 2022
UpdatedAug 12, 2022