---
title: "Unreal Engine with MapTiler real-world 3D content | Unreal"
description: "Use MapTiler maps in Unreal with Cesium plugin."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Unreal Engine with MapTiler real-world 3D content

This step-by-step tutorial will teach you how to use MapTiler maps in Unreal application. To do this, we will use the [Cesium plugin for Unreal](https://cesium.com/platform/cesium-for-unreal/), allowing us to create digital worlds from real-world content in 3D. Now, MapTiler basemaps can be easily used in the plugin, via [MapTiler](https://www.maptiler.com/cloud/) or [MapTiler Server](https://www.maptiler.com/server/) for on-premise and offline use-cases.

[**Unreal Engine**](https://www.unrealengine.com/)(UE) is a complete suite of game development, simulation, and other real-time application creation tools. It is built by developers for developers. Whatever your vision, bring it to life with this real-time 3D creation tool.

## Installation and setting up

1.  Install Unreal Engine version 5.3. [Download Unreal Engine](https://www.unrealengine.com/en-US/download)
    
2.  Install the Cesium for Unreal plugin. [Unreal marketplace Cesium plugin](https://www.unrealengine.com/marketplace/en-US/product/87b0d05800a545d49bf858ef3458c4f7)
    

## Create a new Unreal project

1.  Open a new project in Unreal Engine. Launch Unreal Engine and create a new project. Select **Game** as the New Project Category and **Blank** as the Template. For a simple setup, uncheck **Starter Content**.
    
2.  Turn on the Cesium plugin. Once the project is fully loaded, activate the Cesium for Unreal plugin. Open the Plugins window (Edit ➡ Plugins) and search for “Cesium” in the search bar at the top of the Plugins window. Make sure that the checkbox next to the plugin is checked. You may need to restart Unreal Engine after enabling the plugin.
    
    ![Unreal turn on the Cesium for Unreal plugin](https://docs.maptiler.com/unreal/cesium/get-started/img/cesium-for-unreal-plugin.jpeg)
    
    Note
    
    After restarting the Editor with the Cesium for Unreal plugin activated for the first time, you may see an error related to the **Water Body Collision profile**. Click the **Add entry to DefaultEngine.ini** link to fix it.
    
3.  Create a new level (File ➡ New Level). When prompted, select “Empty Level” to make sure there are no objects in the level.
    
4.  Disable the World Bounds Checks. This option is found in World Settings (Window ➡ World Settings), in the World ➡ Advanced category.
    
    ![Unreal disable the World Bounds Checks](https://docs.maptiler.com/unreal/cesium/get-started/img/disable-world-bounds-checks.jpg)
    
    Note
    
    With **Enable World Bounds Checks ON**, Unreal Engine will attempt to fly a Pawn that is far from the origin back toward the origin. In most Cesium applications, being far from the origin is completely normal, and this automatic behavior prevents the Pawn from going where the user wants it to go.
    
5.  Open the **Cesium** panel by clicking Window ➡ Cesium.
    
6.  Add some lighting so you’ll be able to see the tilesets you add in later steps. Cesium for Unreal comes with a pre-made, globe-aware sun and atmosphere system called [CesiumSunSky](https://cesium.com/learn/unreal/unreal-geospatially-accurate-sun/).
    
    In the Quick Add Basic Actors section of the panel, find **Cesium SunSky** and click the button to add it to the level. You should see a sky-like gradient appear in the viewport.
    
    ![Unreal add Cesium SunSky](https://docs.maptiler.com/unreal/cesium/get-started/img/add-cesium-sky.jpg)
    
7.  Click the **Save the current level to disk** button in the top-left corner of the Editor, or press `Ctrl+S`. Give your level a name (for example MapTilerMap). You may also want to set your new level as the project’s default map. This will make sure that your level will automatically open when you restart the project or package and run your application. In the Edit ➡ Project Settings window left sidebar, click on **Maps & Modes**, then look for the Default Maps section. Change both the **Editor Startup Map** and the **Game Default Map** to your new level.
    
    ![Unreal change default maps](https://docs.maptiler.com/unreal/cesium/get-started/img/change-default-maps.jpg)
    

## Add global real-world 3D terrain to your level

1.  Add a blank 3D Tiles tileset.
    
    ![Unreal add a blank 3D Tiles tileset](https://docs.maptiler.com/unreal/cesium/get-started/img/add-blank-3d-tiles.jpg)
    
2.  Change the source from Cesium Ion to ‘**From URL**’.
    
    ![Change Cesium tileset source to From URL](https://docs.maptiler.com/unreal/cesium/get-started/img/cesium-3d-tiles-source-from-url.jpg)
    
3.  Insert the MapTiler 3D terrain tileset URL in the URL field. The tiles contain real-world elevation data encoded into vector TIN polygons in format for the Cesium JavaScript library. The URL should be `https://api.maptiler.com/tiles/terrain-quantized-mesh-v2/tiles.json?key=YOUR_MAPTILER_API_KEY_HERE` (or just copy the URL from your 3D terrain in the [Maptiler Cloud](https://cloud.maptiler.com/tiles/terrain-quantized-mesh-v2/)). Replace `YOUR_MAPTILER_API_KEY_HERE` with [your own API key](https://cloud.maptiler.com/account/keys/). Make sure to [secure the key](https://docs.maptiler.com/guides/developer/credentials/api-key/#secure-key) before you publish it.
    
    ![Copy the MapTiler terrain URL](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-terrain-cesium.jpg)
    
4.  Add a new component in Cesium3DTileset. Add a new Web Map Tile Service Raster WMTS (`CesiumWebMapTileServiceRasterOverlay`).
    
    ![Unreal add new Cesium WMTS raster tile service](https://docs.maptiler.com/unreal/cesium/get-started/img/cesium-wmts-raster-tile-service.jpg)
    
5.  Get the URL of the (WMTS) Web map tile service of your MapTiler maps. Go to the [MapTiler maps](https://cloud.maptiler.com/maps/), and select one of the standard maps (high-quality basemaps like Planet, Ocean, High-Res Imagery) or your custom maps (Try the [MapTiler Map Designer](https://www.maptiler.com/cloud/customize/)). The URL should be `https://api.maptiler.com/maps/YOUR_MAP_ID_HERE/{TileMatrix}/{TileCol}/{TileRow}.jpg?key=YOUR_MAPTILER_API_KEY_HERE` or open the WMTS Capabilities.
    
    ![Open WMTS capabilities](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-wmts-capabilities.jpg)
    
    In the Capabilities XML look for the **ResourceURL** within Content ➡ Layer. And copy the URL value of the `template` attribute.
    
    ![WMTS capabilities ResourceURL](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-wmts-resource-url.webp)
    
6.  Configure the `CesiumWebMapTileServiceRasterOverlay`. Add the WMTS URL obtained in the previous step into the URL field and check the box for ‘**Use Web Mercator Projection**’.
    
    ![Unreal configure CesiumWebMapTileServiceRasterOverlay url and mercator](https://docs.maptiler.com/unreal/cesium/get-started/img/cesium-wmts-service-url-mercator.jpg)
    
    Note
    
    The process is replicable with MapTiler Server with [Download Terrain 3D - Cesium quantized mesh of the entire planet](https://www.maptiler.com/on-prem-datasets/dataset/terrain-quantized-mesh/) and then for the overlay, any map that is on your [MapTiler Server](https://www.maptiler.com/server/).
    

## Set the initial view localization coordinates

1.  Select the **CesiumGeoreference** actor in the **Outliner**. This actor determines where in the world your level is set. The level’s current latitude, longitude, and height can be changed with this actor.
    
2.  In the **Details** panel, look for the **Origin Latitude**, **Origin Longitude**, and **Origin Height** variables under the Cesium category. Change these variables to the coordinates of your favorite city or use these coordinates to travel to Lake Louise, Canada.
    
    ```text
    Origin Latitude = 51.395879
    Origin Longitude = -116.261587
    Origin Height = 3000.0
    ```
    
    ![Unreal CesiumGeoreference change origin latitude and longitude](https://docs.maptiler.com/unreal/cesium/get-started/img/cesium-georeference-change-origin-lat-lon.jpg)
    
3.  Press the **Play** button, you’ll notice that the default camera speed is very slow, and not adjustable. Given the scale that real-world data can be, you’ll need a different Pawn to efficiently navigate the level during play.
    
4.  Add a **Dynamic Pawn** using the Cesium panel.
    
    ![Unreal add a Cesium dynamic pawn](https://docs.maptiler.com/unreal/cesium/get-started/img/add-dynamic-pawn.jpg)
    
    Cesium’s **DynamicPawn** actor extends the built-in pawn class by making it globe-aware. The DynamicPawn also adds important movement functionality, such as the ability to adjust movement speed with the mouse wheel and the ability to fly between global locations along a curved path.
    

## Explore your level

1.  You’re ready to test out your level! Press the **Play** button at the top toolbar. Like the viewport controls, you can use the W, A, S, and D keyboard keys and the mouse to fly around. Use the mouse scroll wheel to change your speed. You’ve created your first project with Cesium for Unreal. Feel free to explore the world!

### Examples

![Real-world 3D MapTiler maps in Unreal](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-unreal-cesium.webp) [MapTiler High resolution Imagery map](https://cloud.maptiler.com/maps/satellite-v4/)

![Real-world 3D globe MapTiler maps in Unreal](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-unreal-globe.webp) [MapTiler Global Satellite map](https://cloud.maptiler.com/maps/satellite-v4/)

![Custom MapTiler old maps in Unreal](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-unreal-custom-old-maps.webp) [UK Great Britain, 1900s](https://cloud.maptiler.com/tiles/uk-osgb1888/)

![Real-world 3D MapTiler outdoor maps in Unreal](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-unreal-outdoor.webp) [MapTiler Outdoor map](https://cloud.maptiler.com/maps/outdoor-v4/)

![Real-world 3D MapTiler bathymetry maps in Unreal](https://docs.maptiler.com/unreal/cesium/get-started/img/maptiler-unreal-bathymetry-map.webp) [MapTiler ocean seafloor and bathymetry map](https://cloud.maptiler.com/maps/ocean-v4/)

## Summary

-   MapTiler basemaps can be easily used in Unreal adding a WMTS map, via [MapTiler](https://www.maptiler.com/cloud/) or [MapTiler Server](https://www.maptiler.com/server/) for on-premise and offline use-cases.
    
-   Create high-fidelity 3D geospatial visualization and simulation capabilities within the Unreal Engine environment using the [MapTiler 3D terrain](https://cloud.maptiler.com/tiles/terrain-quantized-mesh-v2/) service.
    
-   Add your custom maps to Unreal. Whether they are: maps created with the [MapTiler Map Designer](https://www.maptiler.com/cloud/customize/), self-hosted maps & images for use in on-prem/local Cesium-based applications for Unreal or create your tiled service with [MapTiler Engine](https://www.maptiler.com/engine/).
    

## Learn more

Check out the [Cesium for Unreal tutorials](https://cesium.com/learn/unreal/)
