Version 1.5.0 - April, 2024.
This page provides details about enhancements, deprecations, resolved issues, and known issues in the 1.5 release of ArcGIS Maps SDK for Unreal Engine.
Enhancements
This section describes new features and improvements (what's new).
OpenStreetMap 3D Buildings layer support
The OpenStreetMap (OSM) 3D Buildings scene layer hosted by Esri is now supported.
When using the Modes Panel UI, you can add the OSM 3D Buildings layer to the layers collection of your map under the Layers tab by specifying the layer type ArcGI
and the portal item URL:
https://www.arcgis.com/home/item.html?id=ca0470dbbddb4db28bad74ed39949e25
Alternatively, when using the API, you can also add the layer directly to the Layers collection of your ArcGISMap
The OSM 3D Buildings layer will work in global and local scenes when using the geographic coordinate system WGS84 and in global scenes only when using the projected coordinate system Web Mercator (Auxiliary Sphere). This layer is curated and managed by Esri, and features data from the OSM Daylight Map Distribution, which is supported by Meta (formerly Facebook) and others. It is available for you to use in your scenes and apps following the ArcGIS Online Terms of Use and with proper license and attribution.
Group layer support
With this release, support for group layers has been added. A group layer is a collection of layers organized as a group in the map. Layers within a group layer are called sublayers and can be of the same type or different types. For example, an integrated mesh scene layer and a 3D object scene layer can be organized together in a group layer.
Group layers are designed for presentation of operational layers that are related by a theme. Group layers are an important concept when building a table of contents user experience, often implemented using a tree view control to represent the hierarchical structure.
Group layers enable you to manage all the sublayers as a single layer. As a developer, you can build an experience that allows your users to interact with the sublayers as a group, controlling properties such as visibility and opacity. Property values set for a group apply to all the sublayers. For example, setting the visibility of the group layer to false will turn off all the sublayers, even if an individual visibility property value is set to true.
The group visibility mode enumeration determines how the visibility of each sublayer is managed within a group layer, with three options:
- Independent visibility: manage the visibility of each sublayer independently without affecting the visibility of other sublayers in the group.
- Inherited visibility: each sublayer inherits the visibility of its parent group layer. When the group layer is set to true, all sublayers in the group are visible; when the group layer is set to false, all sublayers in the group are hidden.
- Exclusive visibility: only one sublayer can be visible at a time within the group. Enabling the visibility of one sublayer immediately turns off the visibility of any other sublayer in that group. This allows you to switch between different sublayers within the group while ensuring that only one is visible at a time.
The opacity of the child layers is the mathematical product of the opacity of each individual child layer and the opacity of the group layer. Opacity values range from 0.0 (transparent) to 1.0 (opaque). This means that setting the opacity of the group layer to 0.0 will make all child layers transparent. Likewise when the group layer opacity is 1.0, will set the opacity of the child layers to their individual layer opacity.
The geographic extent, or full extent of a group layer is the aggregate geographic extent of its sublayers. It is derived asynchronously based on the information available from the child layers, which means the full extent can change when child layers are added or removed. The full extent geometry will have the spatial reference of the first loaded child layer.
In this release, you can work with group layers using the C++ API or Blueprints. Group layers are not currently supported in the Modes Panel UI or components.
C++ API
ArcGIS
class has been added to support group layers.Group Layer ArcGIS
enum value has been added to theGroup Layer ArcGIS
enum.Layer Type ArcGIS
enum has been added to enable the visibility mode for the group layer and all child layers.Group Visibility Mode
Blueprints
- New node
Create ArcGI
is added under ArcGIS Group Layer for adding group layers.S Group Layer - A new node
Create ArcGI
is added under ArcGIS Group Layer for getting the properties of the group layer and working with its sublayers' visibilities and opacities.S Group Layer With Properties
Deprecations
This section lists OS and framework deprecation information.
OS and framework deprecations
- Version 1.5.0 (current release) is the last version to support Visual Studio 2019. At the next release, a minimum of Visual Studio 2022 will be required.
- Version 1.5.0 (current release) is the last version to support iOS/iPadOS 15. At the next release, a minimum of iOS/iPadOS 16 will be required.
- Version 1.5.0 (current release) is the last version to support macOS Monterey (version 12). At the next release, a minimum of macOS Ventura (version 13) will be required.
Issues resolved
-
Some parts of meshes are missing when there are overlapping polygon areas with the
Replace
mesh modification type.Summary: When two overlapping mesh modifications of type
replace
are created on the elevation surface, the overlapping region is not rendered. -
Question on Esri Community: Shadowing in integrated mesh in a VR experience.
Summary: When using an ArcGISMap with integrated mesh and a basemap in a VR experience, a shadow/silhouette of the integrated mesh appears draped on the basemap and changes shape as the user pivots around the integrated mesh.
Known issues
-
A basemap that fails to load will cause all layers in the ArcGIS Map to fail to display.
Summary: If you are using a basemap that fails to load (for example, a preset basemap that requires an API Key, but no API Key is set) then the loading of the ArcGIS Map will be interrupted and it will appear blank. This also impacts the SDK samples that use a preset basemap.
Workaround: Be sure to set an API key when using one of the preset basemaps.
-
View state report propagated warning messages
Summary: When you subscribe to the error messages by using the view state report,
propagated error
messages are logged in the Output Log although it is not an error.Workaround: This issue does not impact the usage of the plugin. If you use the ArcGIS View State Logging Component in your level, you have the option to hide warnings.
-
Tile flashing
Summary: While navigating in the level, a few tiles flash occasionally.
Workaround: Disable occlusion culling by following the Unreal Engine's documentation
-
OAuth edge case issue
Summary: The authentication cannot be completed even if the sign-in is successful when there are expired sign-in pop-up windows from the previous private layer loading attempt. Using or closing an expired pop-up window causes Unreal Engine to crash.
Workaround: When the sign-in window pops up, always close the window by either signing in or closing it manually.
-
Some parts of integrated mesh scene layers flash while navigating around the area.
Summary: When elevation is enabled in the scene, some parts of the integrated mesh scene layers flash.
Workaround: Disable elevation.
-
The extent dimension values are incorrectly applied in the scene when the extent center is away from the Equator.
Summary: When you set an extent in the area away from the Equator in an ArcGIS Map with a geographic coordinate system, the shape dimension is bigger than the values set for the extension.
Workaround: No workaround available.
-
Services cannot be loaded with the item URL if non-ASCII characters are in the service URL.
Summary: When there are non-ASCII characters in the service URL, the layer cannot be loaded by using the item URL.
Workaround: Use the service URL that is encoded in UTF-8.
-
Mesh collider/Terrain occlusion issue
Summary: When using an integrated mesh layer that dips below the elevation, the terrain occlusion mechanism is not showing the elevation but the collider still exists, which in some edge cases can make objects float above the integrated mesh.
Workaround: No workaround available.
-
RGBA initializers shown in rendered basemaps
Summary: Some basemaps, when utilized with scenes, include RGBA value initiator labels (e.g. RGBA(255,12,87,0)) that don't represent actual map locations.
Workaround: No workaround available.
-
On Zoom to Layer/Elevation, the editor camera is misaligned with the horizon in Unreal Engine 5.2 and above.
Summary: After you click "Zoom to Layer" or "Zoom to Elevation" and then start and stop Play mode, the editor camera orientation is misaligned with the horizon.
Workaround: Reset the editor camera in the Pawn actor.
-
Map tiles flash in GlobalComponent and LocalComponent samples when in editor mode in Unreal Engine 5.0 and running on Apple silicon-based Mac computers.
Summary: Map data continuously flashes when moving the editor camera in editor mode when you open GlobalComponent or LocalComponent sample using Unreal Engine 5.0.
Workaround: Use Unreal Engine 5.1 and above.
-
Some parts of the mesh are missing or have bad LOD for the area with the
replace
mesh modification type.Summary: For the flattened area with a new z value where the
replace
mesh modification type is used, some parts of the mesh are missing or have had low LOD depending on the camera position.Workaround: No workaround available.
-
Changing building scene layer opacity doesn't apply in play mode.
Summary: After you change the building scene layer opacity and click play, the opacity value gets lost.
Workaround: No workaround available.
-
Setting the parent group layer opacity before the layer is loaded does not affect the child layer opacity.
Summary: Changing the group layer opacity before the layer is loaded does not affect the opacities of its child layers (for example, if a child layer initial opacity is
1.0
, setting the group layer initial opacity to0.5
does not update its child layer opacity to0.5
).Workaround: Set the layer opacity using
Set
once the layer is loaded.Opacity() Set
can be used to set a callback to update the layer.Done Loading() -
Collider offsets in rendered OSM 3D buildings.
Summary: The collision mesh is not properly aligned with the corresponding rendered OSM 3D building, which can result in inaccurate collision detection or unexpected behavior when interacting with the 3D environment.
Workaround: No workaround available.