Cesium for Unreal v2.0 Preview Release

Hello Cesium for Unreal developers!

We’re excited to announce our upcoming release of Cesium for Unreal v2.0. This major version comes with significant improvements to existing systems in the plugin, as well as some new enhancements. The preview release of v2.0 is available on Github, so feel free to download the binaries and try it out now!

Note: Please make a backup of your project before upgrading to Cesium for Unreal v2.0. We have done our best to add backwards compatibility for older projects, but there may be some breaking changes that we are unable to prevent.

What’s new in v2.0:

  • Added CesiumOriginShiftComponent , which can be used to shift the georeference origin as a pawn moves around the world.
  • Added CesiumFlyToComponent , which gives pawns the ability to smoothly fly between places on the globe. (This has been migrated out of the GlobeAwareDefaultPawn class.)
  • Added the ability to translate, rotate, and scale the entire globe using the CesiumGeoreference as a parent for other Actors.
  • Added the ability to specify the globe-relative rotation of globe anchors in an East-South-Up coordinate system.
  • Added support for EXT_mesh_features and EXT_structural_metadata , for both metadata picking and styling.
    • Note: As a result of this change, EXT_feature_metadata is no longer supported .
  • Added CesiumTileExcluder , an interface for excluding tiles from a 3D Tileset based on custom user-defined logic. This can be implemented in C++ or in Blueprints.
  • Added CesiumSubLevelComponent . Sub-levels now work by creating Level Instance Actors and attaching this component to them.
    • Note: Support has been removed for the old sub-level system, which was based on the deprecated World Composition system. Old levels with sub-levels will automatically convert to the new system when they are loaded in the Editor.

The full changelog can be found on Github. We are also working on an upgrade guide to explain these changes in more depth. Read more to understand the new API and learn how to replace outdated code or Blueprints.

Please give us feedback on the changes and report any bugs you see on the forum. Thank you for using Cesium for Unreal!

1 Like

Hi,
I have problem with Package Project Cesium2.0 in UE5.3


I found this change in Engine.ini

# EXT_feature_metadata -> EXT_structural_metadata changes

# Deprecate the old type enum. Unfortunately, there's no way to redirect it to a CesiumMetadataValueType struct.
+EnumRedirects=(OldName="ECesiumMetadataTrueType", NewName="ECesiumMetadataTrueType_DEPRECATED", ValueChanges=
    (("None","None_DEPRECATED"),("Int8","Int8_DEPRECATED"),("Uint8","Uint8_DEPRECATED"),("Int16","Int16_DEPRECATED"),("Uint16","Uint16_DEPRECATED"),("Int32","Int32_DEPRECATED"),("Uint32","Uint32_DEPRECATED"),("Int64","Int64_DEPRECATED"),("Uint64","Uint64_DEPRECATED"),("Float32","Float32_DEPRECATED"),("Float64","Float64_DEPRECATED"),("Boolean","Boolean_DEPRECATED"),("Enum","Enum_DEPRECATED"),("String","String_DEPRECATED"),("Array","Array_DEPRECATED")))

But I dont know, how to set these changes correctly.

I use this realase:
https://github.com/CesiumGS/cesium-unreal/releases/download/v2.0.0-preview1/CesiumForUnreal-53-v2.0.0-preview1.zip

Any advice on how to compile the project with the new version of Cesium2.0?

My full log:
log.zip (10.5 KB)

In engine.ini put that all on one line.

+EnumRedirects=(OldName="ECesiumMetadataTrueType", NewName="ECesiumMetadataTrueType_DEPRECATED", ValueChanges=(("None","None_DEPRECATED"),("Int8","Int8_DEPRECATED"),("Uint8","Uint8_DEPRECATED"),("Int16","Int16_DEPRECATED"),("Uint16","Uint16_DEPRECATED"),("Int32","Int32_DEPRECATED"),("Uint32","Uint32_DEPRECATED"),("Int64","Int64_DEPRECATED"),("Uint64","Uint64_DEPRECATED"),("Float32","Float32_DEPRECATED"),("Float64","Float64_DEPRECATED"),("Boolean","Boolean_DEPRECATED"),("Enum","Enum_DEPRECATED"),("String","String_DEPRECATED"),("Array","Array_DEPRECATED")))
1 Like

Thx! Now all work fine.

Seems that doesn’t compile for Android.

Hm seems like the atmosphere no longer works, and that frustum culling occurs (or half the globe fails to load), and the globe loads blocky upon startup:

Before Play In Editor:

After BeginPlay:

The atmosphere has also completely broken:

And when ‘Flying Down’, tiles don’t load in time despite Frustum Culling off, and Force no Holes on:

This is broken behaviour compared to previous version 1.31.1 for 5.3.0 which used to look like this:


Ah and in 1.31.1, I can tell that the tile loading is similarly poor, but it is masked by having the blue atmosphere over the top. So, perhaps only the atmosphere is broken

Perhaps the atmosphere default values just don’t carry across?

You’ll need to provide us with more details about how to reproduce these problems. The atmosphere appears to be working fine in v2.0 preview 1 for us.

I simply overrode the plugin v1.31.1 from the Engine Plugins folder with v2.0 by moving the new v2.0 preview files to the Project → Plugins folder

  1. Do you have this problem in the Cesium for Unreal Samples project as well, or only in your own project?
  2. Are there any messages in the Output Log that might provide a hint about what’s going wrong?
  3. Have you tried replacing the v1.31.1 version in Engine/Plugins/Marketplace/CesiumForUnreal with the v2.0 preview? That might be more successful than effectively having two copies of the plugin: one installed as an Engine plugin, and one in the project.

In short, we can’t fix a problem that we can’t reproduce. So we need your help to reproduce it, and just reiterating that it’s broken won’t do that. Because it doesn’t happen for us, it’s most likely something specific to your project or system, but it’s impossible for us to guess what since we know nothing about either. Alternatively, because Cesium for Unreal is open source, you’re welcome to debug it yourself and let us know what we did wrong! :grin:

I got this problem simply by switching the plugin version for a project where a Cesium SunSky was already in the Scene. However, upon deleting the SunSky, and then adding a new one, the problem resolved.

Anything unusual about your use of the Cesium SunSky in that project? I ask because the Cesium for Unreal Samples project also has several levels that already include a Cesium SunSky, and they seem to still work after upgrading to v2.0. At least they do on my own system. It might be worth trying it on yours, if you haven’t already.

I noticed a random message in cesium2.0. Sometimes I get this message in the console:


How to register globalanchor? Where can I read about it?

You should be able to safely ignore that message. It was fixed in this PR, which will be included in the next version:

1 Like

This is great! The updated features will be very useful for a project pitch im currently creating in the coming weeks. No rush, but is there an approximate timeframe you think it will be on the marketplace and out of preview?

We released the official version of v2.0.0 yesterday. It’s already available from our Releases page:

We’ve also sent it off to Epic to publish on the Unreal Marketplace, so hopefully it won’t be more than a day or two before it lands there, too.

1 Like

That’s great to hear, thanks!
Is there an updated guide yet showing how to use the sub level components?
We are using an RPG system called ESRPG, we hope to have its items, quests and dialogue contained and loaded within the sub level component when the player comes close to the level area. Is this possible to do with the updated sub level components?
And it looks like its still the 1.31.2 version on the store, hopefully they accept the update on the store soon!

We have updated the Building Global Scenes with Georeferenced Sublevels tutorial for the Cesium for Unreal v2.0 changes. Additionally, if you were using sub-levels with older versions of Cesium for Unreal, you can check out the upgrade guide here.

1 Like

We’re having an error compiling 2.0.0 on UE 5.3 Oculus Branch - we posted here Error compiling 2.0.0 on UE 5.3 Oculus Branch @Kevin_Ring or anyone seeing this - can you take a look please?