transVRse 2.0

transVRse is an interactive development plugin for Unreal Engine 4 that provides a series of assets and tools designed to facilitate cinematography-focused work by allowing developers to set up camera locations, behaviors, and settings within Unreal Engine 4’s VR Preview Play Mode.

Unreal Engine 4’s Simulate and Selected Viewport Play Modes offer developers a Keep Simulation Changes function that causes changes made to actors during play to persist into the Unreal Engine Editor after play has ended. Unfortunately, at the current moment, Unreal Engine 4 has no equivalent function for its VR Preview Play Mode. As a result, any actions a developer may wish to perform that may have been made easier by an ability to manipulate actors within the VR Preview must be done manually through the Editor Viewport if those changes are to be permanent.  For example, determining the best position for a camera so that it frames a moving actor correctly at runtime must be performed in either the Simulate or Selected Viewport Play Mode so that the simulation changes may be kept.

Within the realm of virtual cinematography, the ability to easily set and alter the behaviors of cameras in VR while the subject to be captured is exhibiting its runtime behaviors is one that has traditionally been absent. This is especially unfortunate because manipulation of a camera in 3D spaces such as Unreal Engine 4’s Editor Viewport is relatively cumbersome with a keyboard and mouse, often to the point of being impractical for runtime editing. When this task is expanded to involve managing multiple cameras, this impracticality is expanded even further. 

However, the transVRse plugin offers a solution. With minimal manual setup in the Unreal Engine Editor, transVRse allows developers to customize the behaviors of its custom cameras while in Unreal Engine 4’s VR Preview Play Mode and to save those changes, allowing them to persist after play has ended.

Workflow Comparison

The video above offers an example of how the process of setting up cameras for recording is streamlined by the transVRse Plugin. In it, we see the same task performed with and without transVRse. The task involves setting up three cameras to follow an actor as it travels through an existing 3D environment. Each camera sports its own set of restricted axes for translation and rotation as well as its own render target to view the camera output.

Not only is the time taken to complete the task far shorter when using transVRse, the only things a developer needs to know before starting the setup are the controls for the transVRse player pawn, where they want the cameras, and how they want the cameras to behave. In the manual example, not only would a developer need to know the desired positions, orientations, and behaviors for the cameras—they would also need to know exactly how to set up the functions required to generate those behaviors. Therefore, in addition to improved ease and speed of implementation, transVRse also offers a considerably lower required expertise.

 

VR Cinematography

transVRse’s custom assets are specially designed for setting up transVRse Cameras for recording. 

Custom Cameras

transVRse Cameras can be spawned and set up in the editor or at runtime, each with a small screen serving as a viewfinder, each with the ability to track a selected actor, moving and rotating only along selected axes, each capable of having runtime changes saved (including actor tracking information).

The Tablet

The transVRse Tablet features the ability to switch between the views of each transVRse Camera, offering the ability to change settings such as Depth of Field and Field of View. It also includes a list of all existing transVRse Cameras in the level, each with a checkbox for selection and deselection of transVRse Cameras whose runtime changes should be saved.

Custom Pawn

The transVRse Pawn offers features to help with placing and monitoring transVRse Cameras by allowing a developer to move anywhere in 3D space with no collisions, by allowing gaze-based interaction with other transVRse assets (eg. teleport the transVRse Tablet to your position, spawn new transVRse Cameras ), and the ability to enable or disable post processes for the player camera without affecting the view of other transVRse Cameras within a transVRse Post Process Volume Replacement.

 

In the video above, you can see the transVRse Pawn moving between two of transVRse’s custom Post Process Volume Actors both affected and unaffected by the post processes. Note that the transVRse Camera is still affected by the post processes even though the transVRse Pawn is not.

 

Custom Post Process Volumes

transVRse also includes functions that can replace existing Post Process Volumes with custom transVRse equivalents that allow for the functionality mentioned in the transVRse Pawn section above. It also includes functions that can replace instances of selected Post Process Materials with new transVRse equivalents that exclude transVRse actors from the effects of the Post Process.

 

VR Game Controls

 

In addition to developer-facing tools, transVRse also offers VR gameplay for built games. Many of the same VR controls used during development also feel very much at home in standalone games. 

In addition, assets like the transVRse Pads allow developers to easily set up discrete targets for navigation. A developer just has to place pads at points A and B, select how they want a player to move between those points (eg. instant teleportation, fade-to-black teleportation, navmesh movement, etc.), and move on to the next task.

Easy Setup & Documentation

Setting up a new plugin in an existing Unreal Engine 4 project can be quite the task. That’s why transVRse includes a step-by-step walkthrough to guide developers through the process.

We’ve worked hard to make transVRse as easy to use as possible. However, we know that working with someone else’s code can be a struggle even at the best of times. That’s why transVRse comes packaged with a series of walkthroughs that explain what different parts of the plugin do. If something’s not working the way a developer expects, or if a developer needs to tweak something to make transVRse work better in their project, those walkthroughs may be able to help point them in the right direction.

 

Project Team

Project Management: Arnav Jhala

Lead Design and Development:

V 2.0 — Jackson Bostian

V 1.0 — Lt. Paul Thiolet

Programmers:

V 2.0 — Joseph Dasilva

V 1.0 — Lt. Tanguy Kurzenne; Lt. Pierre-Yves Manduit; Matthew Maclaurin