The problem is in the function with signature "ULevelStreaming* GetLevelStreaming(FString SafeLevelName, UWorld& World)" within LevelSequenceActorSpawner.cpp at line 30. The problem is with the SafeLevelName value is constructed:
SafeLevelName = TEXT("/") + SafeLevelName;
Currently this value does not take the the PIE instance name into consideration. At line 35, you then compare SafeLevelName to a string that does include the PIE instance name. Lets say I used a sub level named TestLevel. In this case, the following will occur:
1.) Line 30 SafeLevelName = "/TestLevel"
2.) Line 35 LevelStreaming->GetWorldAssetPackageName() will return something like "/Game/Maps/UEDPIE_1_TestLevel"
Therefore, the statement EndsWith(SafeLevelName, ESearchCase::IgnoreCase) will always fail since SafeLevelName emits the pie instance name (in this example it was UEDPIE_1).
Line 30 needs adjusted to append the pie instance name to make the statement at line 35 work as expected.
This was reported and tested in 4.22.3 (CL-7053642). This was reproduced in 4.23 (CL-8386587) and Main 4.24 (CL-9141524)
Results: LogMovieScene: Warning: Can't find sublevel 'XXXX' to spawn 'XXXX' into
where XXXX is replaced with the name of the sublevel and actor you chose.
Expected: The warning should not print, as the sub level is currently loaded.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-80902 in the post.
3 |
Component | UE - Anim - Sequencer |
---|---|
Affects Versions | 4.23, 4.24, 4.22.3 |
Target Fix | 4.25 |
Created | Sep 26, 2019 |
---|---|
Resolved | Oct 3, 2019 |
Updated | Feb 11, 2020 |