Back to Page References
Virtual Reality Experience
As of OptiTrack Unreal Engine 4 Plugin 1.3.0, Oculus DK2, CV1, and Gear VR HMD models are supported
This plugin is supported for the following versions of Unreal Engine, and it also requires the corresponding version of Oculus runtime as indicated in the table.
To stream the rigid body data, follow the general data streaming workflow provided from the Data Streaming page. Make sure appropriate network interface is defined and the Stream Rigid Bodies is enabled under the streaming settings.
This section includes instructions on installing and configuring the Unreal Engine plugin to receive tracking data from Motive.
C:\Program Files\Epic Games\4.11\Engine\Plugins
Note: When using the Oculus Plugin, disable the built-in Oculus Rift (or the Gear VR) and Stream VR HMD plugins under virtual reality plugins category, as they will by default have a higher priority than the OptiTrack Oculus Plugin, and if enabled, will be used in preference to it.
The OptiTrack Client Origin enables the UE4 client application to communicate with the NatNet server where Motive’s rigid body and HMD data is obtained. Using this object, the communication address and the rigid body ID for the HMD is specified. To add this object, simply drag and drop the OptiTrack Client Origin from the Modes panel into the scene.
Global Origin: Location of this client object will reconcile the global origin of Motive in Unreal Engine. In other words, the tracking data will be represented according to where this Client Origin object is placed in the scene.
Actor objects in Unreal Engine can be animated using rigid body tracking data from Motive. This can be used to animate props in the scene. To do this, you will need to create a rigid body asset in Motive, and it must be linked with the object in Unreal Engine using the User Data ID.
Integrating skeleton tracking in Unreal Engine requires a 3D retargeting process. This can be accomplished through a third party software that retargets the 3D data to produce realistic motion in a scene. For more information, contact us.
After the Client Origin object is called into the project, the HMD can be integrated into Unreal Engine. First of all, make sure the OptiTrack – Oculus Rift plugin is enabled in your project. In order to instantiate HMD object tracking in UE, you will need to input the User Data ID for the HMD, and use a Game Mode with the OptiTrackHMDPawn class defined as the default pawn class.
When integrating the HMD, make sure to follow the #HMD Tracking Setup steps and prepare your HMD object in Motive.
Once you have connected the client object and configured the script components on the assets from the scene. Play the scene, and if the properties are properly configured, the assets in the UE scene will be animated according to the position and orientation of the rigid bodies and the HMD in Motive. When playing the scene, the HMD and the assigned actor objects will be placed in respect to their location in Motive’s coordinate system disregards to their position in the UE4 editor.
Setup and optimize the motion capture volume as explained in the Getting Started guide or the Hardware Setup documentations. If you plan to install any obstacles (e.g. walls) within the capture volume, make sure they are non-reflective, and place and orient the cameras so that every corner is thoroughly captured by multiple cameras. For typical rigid body tracking, attach the rigid body markers as instructed from the Rigid Body Tracking page. However, when tracking an HMD, extra attention to placing the markers is necessary.
When attaching retroreflective markers, make sure markers are securely attached and readily captured by the cameras. For attaching the markers, we recommend using our 20 mm wide and 30 mm tall M4 threaded plastic marker bases with Acrylic adhesives, available at the webstore, to attach the markers onto the HMD.
A markered HMD will be defined as a rigid body in Motive. When placing markers, make sure the placement asymmetry is respected in the arrangement within the HMD. Also, the marker arrangements between multiple HMDs must be incongruent. For more details, read about marker placement from the Rigid Body Tracking page. Also, for tracking the HMD, two landmark markers must be placed in the following locations:
Place two markers on left and right side of the HMD, these markers will serve two additional purposes. First, they will indicate yaw of the HMD, and they will be used to align the rigid body orientation with the orientation of the actual HMD component. Thus, a line interconnecting the two markers must be parallel to the frontal plane, or the display, of the HMD. Second, these markers will be used to locate the elevation of the eyes when creating the rigid body in Motive. In summary, the two landmark markers must be carefully placed considering the following:
For HMD tracking, a modified rigid body needs to be defined in Motive. One important note here is that the rigid body orientation must closely align with the display for the best experience. To accomplish this, it is best to align both the HMD and the rigid body orientation along the global axes. This will ensure an appropriate orientation of the HMD rigid body to be exported.
Creating a rigid body this way will roughly align its orientation with the orientation of the physical HMD component as well as the global coordinate axes in Motive. This will make it easier when precisely adjusting the pivot point position and orientation later. To display the rigid body orientation axes, set the Orientation to true in the rigid body display settings.
After creating a rigid body for the HMD, select the asset in the project pane, and access the corresponding rigid body properties. Adjust the rigid body properties as the following:
Deflection setting is the tolerable distance, in millimeters, that a rigid body marker may deviate from its expected position before it is unlabeled and unassociated with the rigid body. The deflection is set to 4 mm by default. For HMD tracking applications, we recommended lowering this value to 3 or 2. This will reduce the amount of computation required for labeling, and overall latency may be reduced.
Use the level 3 tracking algorithm (or ray-based tracking). The tracking algorithm setting determines which protocol to use for solving the rigid body in Motive. This algorithm is recommended because it is less susceptible to marker occlusions and solves rigid bodies more robustly without introducing trajectory gaps. This is more suitable for tracking the HMD since even minor occlusions can acutely affect the experience.
The User Data value for each rigid body is used as an identification number to reference the rigid body in external applications. Log this value for each rigid body (including the HMD(s)) in the scene. This number will be used to associate the assets in UE4 using the plugin devices.
The minimum marker count required for the rigid body solve is set to 3 by default. To prevent the swapping of the rigid body definition, you may want to increase this value to 4. When tracking multiple HMDs, there could be limitations to a variety of unique marker arrangements that could be achieved. If this value is set to 3, a set of three markers on an HMD may be congruent to another set in a different HMD, and the rigid body definitions may be switched in Motive.
As mentioned previously, the position and orientation of the HMD rigid body pivot point need to be carefully adjusted. This section provides recommended methods and steps to accomplish this. When adjusting the pivot point, the following criteria must be achieved:
For best virtual experiences, the pivot point of the HMD rigid body, in Motive, needs to be positioned on the midpoint between two eyes, of the user when the HMD is put on. To locate this, use the side and top-center landmark markers as references. For more information on adjusting rigid body pivot points, please read through the Rigid Body Tracking page.
1. Set the pivot point over the landmark marker. Use the Set Pivot Point to Selected Marker feature to assign the pivot point to the marker. This will set the elevation of the pivot point along the eye-level.
2. Place the pivot point at the midpoint between the two markers. Enable Two Marker Distance visual aid from the perspective pane, and select the two landmark markers in Motive. This will provide a distance between two markers. Then, using this information, translate the pivot point laterally by half of the distance so that it is placed right on the midpoint between two markers.
3. Translate the pivot point along the z-axis using the translation tool. For the most accurate position, you may need to physically measure the sagittal, z-axis, distance from the landmark marker to the root of nose, and apply the measured offset.
Now that you have translated the pivot point, you need to make detailed adjustments to the orientation using the orientation transformation tool. For best results, align the two front markers along the x-axis grid and roughly center the rigid body along the z-axis grid. Then, check to make sure that each of the rigid body orientation axes is parallel to the grids lines in Motive. If there is any deviation, apply rotation to adjust the offset. If needed, transparency of the axes and the grids can be adjusted from the Application settings.
Tip: Once you have the rigid body asset for the HMD configured, you can export the asset into a TRA file for future uses. Importing the TRA file (e.g. CV1.tra) will load the rigid body (HMD) asset and make it available for use; however, the marker placement must remain unchanged in order to re-load previously created rigid bodies.