IKinema RunTime for VR

Creating VR rigs

Part-1: VR rig setup on avatar

Part-2: VR blueprint creation

For all our latest demo projects see here!

Proportions of avatars and players

VR solving is like live mocap solving and some scale adjustment between player (actor) and VR avatar might be needed.

There are many possible ways to calculate this scale in your game, and a possible approach is described below.

So, assuming you have set up your project as in that tutorial, it does indeed need some extra logic outside of the IKinema features. You need a way of computing a ratio which is used to scale between your players proportions and those of the avatar they are in control of. If you do not find this ratio and scale accordingly, the movements of the player wont map accurately to that of the avatar. 

There are a number of ways to do this, for example one can begin with a calibration prompt during the start of a game.

Here, the user had to enter a 'T' pose (standing straight backed, with arms parallel to the floor) and press both the left and right triggers on the controllers at the same time before the VR avatar is spawned. On this trigger, the position of the players hands (tracked by the motion controllers) are used to calculate the magnitude of the distance between them (their wingspan) in world space. The same is done for the avatar provided you have a 'T' posed skeletal mesh (import with T0 pose as reference). Then, dividing one length by the other gives you the ratio you can use to scale the player to the avatar. This ratio is passed to "Set world scale 3D" for the VROrigin.

Here is an example of the above process with a few extra things (I used a 3rd person and 1st person mesh which I turn on and off during calibration) that take place during this calibration process. The bottom left is concerned with finding the scaling ratio specifically.

The set tracking origin and reset orientation and position, followed by locking the camera to the HMD were necessary to ensure correct alignment of the camera and avatar.