This section describes several common issues and solutions that affect projects that use the Vicon VR for Unity plugin.
For further help or guidance using the plugin with your projects, contact Vicon Support.
On this page:
Trouble building projects
Unity projects that use the Vicon VR for Unity plugin can only be built as Windows 64-bit applications.
To set your Unity project to build as a 64-bit application, go to Edit > Build Settings and ensure the Architecture drop-down is set to Intel 64-bit (rather than Intel 32-bit).
Character meshes being culled from certain angles
When you use full-body characters with VR, Unity may automatically cull the mesh from certain angles.
To fix this, go to the Inspector, locate the Skinned Mesh Renderer component, and select Update When Offscreen.
This option is resource-intensive, so do not use it for more than one character.
Latency issues
Are you using Tracker?
Tracker is suitable for capturing full datasets, but to accommodate these datasets, it uses port 801 for the datastream. For a lower latency option, try Evoke or Shogun, both of which are designed to work with the low latency port 804.
Is the WiFi connection unreliable?
There are 2 main solutions to counteract the effects of an unreliable WiFi connection.
If possible, set up a multi-route connection in your project. This connects two servers to create redundancy in the network. The client can then use whichever frame arrives first from either connection.
Multi-route connection is useful for latency-critical applications such as VR. It is the recommended solution for very busy WiFi environments or when routers/access points experience interference. It ensures a robust and low latency stream of Vicon data to the client application.
See the documentation on multi-route connection.
If you can't set up mult-route connection in your project, you can also improve latency issues by selecting Use Pre Fetch in your ViconDataStreamClient component.
See the documentation on using Pre Fetch in the ViconDataStreamClient Script documentation.
Are you using an outdated version of Evoke?
By default, the Vicon Datastream Client uses Lightweight Segment Data to reduce latency (if it is available on the server). This is reported in the Console window.
If you are using a version of Evoke earlier than 1.1, the server doesn't support Lightweight Segment Data, and automatically uses non Lightweight Segment Data, which results in a significant increase in latency.
To resolve this, update your set-up to use Evoke version 1.1 or later.
Distorted mesh in Unity
If your mesh is working properly in the Vicon software but looks distorted when the plugin streams it to Unity, there could be issues with retargeting due to mismatched skeletons.
In Shogun version 1.7, Vicon changed the default solve skeleton to be more in line with industry practice.
This means that if you try and use old mocap footage with an updated skeleton in Unity, or new mocap footage with an outdated skeleton in Unity, the Unity mesh will be distorted.
The meshes included in the plugin use the outdated skeleton.
There are two options to resolve this issue:
- Use the same solve skeleton in both your capture and in Unity - we recommend using the latest version of Shogun to capture your data, and creating new meshes for use in Unity which use the new solve skeleton.
- Set up a retarget in Post between the two skeleton versions - retarget the mocap skeleton to the version of the skeleton you are using in your Unity meshes.
For example, if you want to record new footage in the latest version of Shogun, but don't want to make new meshes for use in Unity, set up a retarget to apply the mocap data to the old skeleton setup.