Skip to content

Unreal Engine

Unreal Engine is a software tool for creating video games and real-time interactive 3D graphics. Created by Epic Games, Unreal has cross-platform support for Windows, Mac and Linux, and can also be used to create applications for iOS and Android, games consoles like Playstation, Xbox and Nintendo Switch, and a range of mixed reality devices including HTC Vive, Oculus and HoloLens2. Programming in Unreal uses the C++ programming language, but Unreal also provide a node-based visual scripting system called Blueprint.

Personal Experience

The first game engine I learnt was Unity. Unity was an attractive option because it had a large indie developer community, good documentation, and it was free to download and use for non-commercial projects. By contrast Unreal Engine was originally available under a subscription model aimed more at professional games companies. This changed in 2015 when Epic made UE4 free to download and use for non-commercial projects in order to comptete with Unity. Over time growing popularity of UE4 amongst architects and engineering firms has led to considerable investment in plugins tailored for visualisation and simulation of the built-environment. While Unity is still my first choice for creative projects, in large part due to my familiarity with C# and the higher bar for programming in C++, Unreal's built-in Blueprint scripting system has become increasingly powerful, and I now use it readily.

Tools & Software Integrations

N/A

The Unreal Marketplace provides access to a range of free and paid content, assets and plugins.

  • ArchViz Explorer by Karl Detroit. This plugin is designed for showcasing large-scale architectural projects. It provides an Orbital camera with zoom and rotation and support for mobile touch controls. It also includes UI elements like interactive lists, 3D labels, 3D volumes, a compass and customisable point of interest actors. Other features are widget animations, a media gallery and a 360° panorama viewer. Documentation is available here.
  • Cesium for Unreal by Cesium. This plugin enables visualisation in Unreal using a full-scale, high-accuracy virtual globe using the WGS84 coordinate reference system. Unreal actors and components can be georeferenced and global geographic content including terrain, imagery, 3D buildings, and photogrammetry can be integrated, primarily via the Cesium Ion cloud-based content management system. Documentation and user guides are available here.
  • VaRest by Vladimir Alyamkin. This plugin enables REST server communications easier in Unreal by providing access to external APIs via blueprints. The project is maintained on GitHub with documentation available here.

Resources

N/A

Notes and Troubleshooting

Creating an application with Cesium for Unreal

  1. Launch Unreal Engine and create a new project.
  2. Select 'Game' as the project category.
  3. Select 'Blank' as the template.
  4. Select 'No Starter Content' in the project settings.
  5. Select a location and name for the project.
  6. Click 'Create Project'.
  7. If the level contains any objects delete them from the 'World Outliner' to start with an empty level.
  8. Save the empty level by clicking File > Save Current and providing a name e.g. 'Cesium'.
  9. To ensure the new level opens automatically when Unreal is restarted select Edit > Project Settings and search for 'default', the set the new level as the 'Editor Startup Map' and the 'Game Default Map'.
  10. Activate the Cesium for Unreal plugin by navigating to Edit > Plugins and searching for 'Cesium' in the search bar.
  11. Ensure the 'Enabled' checkbox for the plugin is ticked.
  12. Click 'Restart Now' to ensure the plugin is ready to use.
  13. Open the Cesium panel by clicking the Cesium icon in the toolbar at the top of the screen.
  14. Click 'Connect' in the Cesium panel.
  15. Sign in to Cesium Ion using your account credentials.
  16. Click 'Allow' to grant access to Unreal.
  17. Open the Cesium panel by clicking the 'Cesium' button in the toolbar.
  18. From the 'Quick Add' window click on 'Cesium World Terrain + Bing Maps Aerial imagery' or one of the other world terrain options.
  19. Set up lighting in the scene by selecting Edit > Project Settings.
  20. Search for 'luminance' and make sure the option 'Extend default luminance range in Auto Exposure settings' is ticked.
  21. You may need to restart Unreal Engine after enabling this option.
  22. Back in the Cesium panel click the '+' symbol next to 'Cesium SunSky' to add light.
  23. Check tha all Cesium for Unreal content is available by selecting the 'Content Browser', clicking the 'View Options' button in the bottom right and ensuring that 'Show Engine Content' and 'Show Plugin Content' options are both checked. You can then find the 'Cesium for Unreal Content' if required.
  24. From the Cesium panel add a 'Dynamic Pawn' which will enable the user to view and navigate the level at run-time.
  25. To ensure that it will be controlled properly by the mouse and keyboard, select the 'DynamicPawn' in the Unreal 'World Outliner'. Scroll down the details panel or search for 'Pawn' and check that the value for 'Auto Possess Player' is set to 'Player 0' in the dropdown.

Enable Source Control with GitHub in Unreal

  1. Ensure you have downloaded and configured GitHub, GitLFS and GitHub Desktop. You will also need a GitHub account.
  2. Create a new project in Unreal.
  3. Click 'Source Control' in the toolbar at the top of the screen.
  4. Select 'Connect to Source Control'.
  5. Select 'Git' as the provider.
  6. Check that the following boxes are ticked:
    • Add a .gitignore file.
    • Add a basic README.md file.
    • Add a .gitattributes file to enable GitLFS.
    • Make the initial Git Commit.
  7. Click 'Initialize project with Git'.
  8. Wait a few moments and tick 'Accept Settings'.
  9. Version control with Git is now working locally. To set up the remote synchronisation with GitHub open GitHub Desktop.
  10. Select File > Add local repository.
  11. Click 'Choose'.
  12. Navigate to the folder containing your project and click 'Select'.
  13. Click 'Add repository'.
  14. Click 'Initialize Git LFS'.
  15. Click 'Publish repository'.
  16. Ensure the check box 'Keep this code private' is ticked if you want your code to be private.
  17. Wait a few seconds and select View > View on GitHub to check that the remote repository has been created. You may need to sign in to GitHub.
  18. You can now commit changes from within Unreal and then push changes to the remote repository on GitHub from GitHub Desktop.

Source: https://youtu.be/FXMTHrLWFKQ