I’ve noticed quite a lot of very strange behaviours trying to use sublevels in an UE5 Cesium project. How to reproduce:
- Create new UE5 project, enable World Composition as first thing, disabling Enable World Bounds Check.
- Add Cesium World Terrain, CesiumSunSky and DynamicPawn
Until now everything works as expected, all good.
- Create new Layer “CesiumLayer” in World Composition, with Streaming Distance disabled.
- Create new Sub-Level “Project_1”, assign it to the new generated “CesiumLayer” and save it to the disk.
Already now we have the first very strange thing happening.
In the tutorial it is mentioned that you should see a blue mesh, showing the loading distance. This is not happening.
During investigating why this is not shown, I noticed that the Lat/Long position in the Sub-Level is inverted in the CesiumGeoreference object:
This seems to be a serious bug. Shall I open an issue for this on Git?
- So I go and swap these miss aligned coords back to how they should be.
Immediately I see the blue loading distance mesh, looks good.
But this is not the only strange thing.
- I double click on the Sub-Level “Project_1” in the Levels window to make it the current level, it’s shown ad bold blue now in the Levels window list of levels.
- I add a cube into “Project_1”, it is shown correctly in the viewport, and it states “Selected Acator(s) in Project_1, Level Project_1”. All seems to be good.
- I double click the Persistent Level in the Levels window to make it the current level, and I move a bit away in the viewport. I select the CesiumGeoreference and I see the following:
If I understand everything correct, I should now be able to set the Gelocation Origin to the new position, without the “Project_1” level being moved, right?
- I press “Place Georeference Origin Here”, and it seems to not have moved the “Project_1” Level.
I see the blue loading mesh distance still where it should be. But the Cube from “Project_1” Level have moved in relation to the new Georeference Origin.
As I understand this is clearly a bug.
I know there is a way to circumvent this by adding “Cesium Globe Anchor” to the Cube (and this works correct). But using different sub-level would make our life much easier to not being forced to put this anchor on every object.
I also checked out the Cesium Sample project, there is a example of using sub-levels. It also behaves very strange and is clearly broken.
UE 5.0.3, Cesium Unreal Plugin Version 1.19.0
Any feedback would be greatly appreciated.
Greeting
Claude