Skip to content

Unreal Engine project, assets, and code used in the Cesium for Unreal VR Tutorial Series

License

Notifications You must be signed in to change notification settings

spyderps05/cesium-unreal-vr-tutorial

 
 

Repository files navigation

Cesium for Unreal Logo

Cesium VR Tutorial Series

The Cesium for Unreal VR Tutorial Series covers strategies and solutions for several common challenges that come with building global-scale applications in VR using Cesium for Unreal.

This repository holds example levels and code for all the features described in the tutorial series. This series serves as a guide for recommend practices for VR application design and user ergonomics you can use in your projects. Each tutorial will describe the UX challenge, our design thinking, and the Blueprint code for each feature. New tutorials will be added in frequently so check back soon!

Cesium VR Headset

🚀 Get started with the tutorial

You will need to download the Cesium for Unreal plugin from the Unreal Engine Marketplace.

If you are new to the Cesium For Unreal plugin, check out the Quickstart tutorial.

🎮 VR Device Compatibility

We tested the inputs used in this project on Meta Quest 2, and are confident the inputs will work with Meta Quest and Rift devices using the Touch controllers. We have added reasonable corresponding inputs for other VR headsets such as the HTC Vive and Valve Index, but have not tested them. If you use any of these headsets, we'd love to get your feedback and build it into the tutorials.

If you are using a VR headset not mentioned above, please add the corresponding bindings for your controller for each input action / axis. For more information on setting up inputs, see the Unreal Engine docs. For an example of setting up inputs across different VR devices, see the VR Template project.

🗺️ Tutorial Descriptions

The features in this Unreal Engine Project are separated into individual levels with each level corresponding to a single tutorial. Each level builds upon the previous levels. If you would like to see a singular feature in action, open the level within the tutorial's corresponding folder to try it out. Open the level within the "Main" folder if you would like to see all of the features combined into one experience.

1️⃣ Tutorial 1 - Teleportation, Line Traces, and Height Correction

In the first tutorial we cover teleporting the player long distances across the world and fetching higher levels of detail on 3D Tiles from a distance. This tutorial also covers common issues in VR like moving below the surface and provides strategies to render line traces from the players hands.

The teleportation level is located at Content/CesiumVRTutorial/Teleportation/Teleportation.umap

2️⃣ Tutorial 2 - Movement

In the second tutorial we explore motion across the world while minimizing nausea and how to keep the ground below the player loaded at all times. We also cover ways to change your movement speed based on the pawn's altitude, which aids in traversing great distances quickly and easily.

The movement level is located at Content/CesiumVRTutorial/Movement/Movement.umap

3️⃣ Tutorial 3 - Vignette

In the third tutorial we explore applying a vignette over the user's view in order to reduce motion sickness. This vignette is callable from external components to activate from specific actions such as teleportation and snap rotation. The vignette component also automatically calculates an optimal vignette based on the user's movement velocity, ensuring that if the user's pawn is moving at all a vignette will be activated.

The vignette level is located at Content/CesiumVRTutorial/Vignette/Vignette.umap

4️⃣ Tutorial 4 - Build for Quest

In the Meta Quest build tutorial we cover some topics on optimization as well as Android packaging and sdk setup.

The Build For Quest level is located at Content/CesiumVRTutorial/BuildForQuest/BuildForQuest.umap

5️⃣ Tutorial 5 - Dragging the Globe

In the dragging the globe tutorial, the player can scale up to a size larger than the Earth to grab it and rotate it at any angle. While in the "Earth View" mode facilitated by an Earth Viewer component, the player can freely look towards the earth and rotate it with the thumbsticks as they please. This functionality is integrated into the main level by entering Earth View mode automatically when the player flyes above a certain altitude. The player can then leave "Earth View" and return to "Normal View" by teleporting onto the Earth's surface.

The dragging the globe level is located at Content/CesiumVRTutorial/DraggingTheGlobe/DraggingTheGlobe.umap

6️⃣ Tutorial 6 - Metadata and Dynamic UI

The player can query tilesets for metadata and have the results show up in a UI that scales according to player distance and rotates to face the player, ensuring legibility from any distance.

The metadata and dynamic UI level is located at Content/CesiumVRTutorial/DynamicUI/DynamicUI.umap

🏗️ Contribute to the repository

Please consult the ContributionGuide.md

📬 Tell Us What You Think

Have you noticed a bug or fatal error? Open an issue here.

Have any suggestions or questions? Ask them on the community forum, we would love to hear from you.

📗License

Apache 2.0. Cesium for Unreal VR Tutorials are free to use as a starter project for both commercial and non-commercial use.

About

Unreal Engine project, assets, and code used in the Cesium for Unreal VR Tutorial Series

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published