The Vicon Retarget app is installed with Evoke. You can start it in any of these ways:
- From within Evoke:
- On the Retarget menu, click Launch Setup.
- On the Retarget menu, click Launch Setup.
- From the Windows Start menu:
- Expand Vicon and then select Vicon Retarget.
- Expand Vicon and then select Vicon Retarget.
- On the desktop, double-click the Vicon Retarget shortcut.
- Evoke 1.3 works with VST 3.5 files. VST 3.4 files, as used with Evoke 1.2, are compatible.
- To benefit from the latest retargeting enhancements, update Vicon Retarget to 1.1.2 for use with Evoke 1.3 (to do this, ensure that the option to upgrade Retarget is selected during installation).
- Avoid using Evoke 1.3 with Retarget 1.0.2 or earlier as the cluster template from Evoke 1.3 will not load into these earlier versions of Retarget.
- If you created retarget files in Retarget 1.0.2 or earlier, to benefit from the improved scale estimation and cluster calibration in Evoke 1.3, recreate the retarget files in Retarget 1.1.2.
You can create retarget subjects from any suitable FBX file, using position and rotation constraints to drive target skeleton bones from the Vicon source skeleton bones. As the Vicon source skeleton is human, retargeting works best with biped targets.
Save the retarget subject files to a filename that you will be able to identify easily. Pre-installed examples are included for retargeting the Vicon source skeleton to a Vicon target skeleton.
If you created VSX files in earlier versions of Retarget and want to use them in Evoke 1.2 or later, load the VSX files into the latest version of Retarget and save them as VSR files.
Copy the relevant files
If you want to use your own retarget subject instead of using one of the supplied samples, ViconFemaleSample or ViconMaleSample, copy your FBX file to:
Select the skeleton and the FBX
- Start Evoke, and on the Retarget menu, select Launch Setup (or start Retarget in one of the other ways described in Set up character retargeting).
If the Source Skeleton is ClusterTemplate, the Retarget Setup view looks similar to this:
- In the Source Skin field, select the required skin.
- In the Target FBX field, select the required FBX file. This example shows Unreal Engine 4's default mannequin FBX, available with Unreal Engine 4.
- In the Target Root field, select the appropriate root (if you are not sure, try hips or pelvis ).
Create the target subject
Note that in the view pane, by default, the View Filters options Source Skin, Target Skin and both Skin X-Ray options are selected. As you work, you may find it easier to see the relevant details if you select or clear the appropriate options.
- Click the Create Target Subject button.
The target FBX appears in the middle of the Retarget Setup view.
- In the Target Scale field, set an appropriate value to get the size of the target skeleton to match the source skeleton.
- In the view pane, click on the target pelvis (or the root that you selected) to activate the Manipulator tool, and drag to align the target and source skeletons. Tip
Adjust the target scale so that the head and shoulders match as closely as possible, with the feet on or slightly above the floor. You may need to align the target joints then adjust scale, and repeat until you're satisfied.
Align the target joints
For best results, align the target skeleton as closely as possible to the source skeleton.
- Before you begin, review the symmetry options on the Retarget Setup tab.
- To mirror changes to a joint rotation from one side to the other (from the left side side to the right side or vice versa), select the Joint symmetry option.
- To mirror targets created on one side to the other (from the left side side to the right side or vice versa), select the Target symmetry option.
Use the Manipulator tool to roughly align the main joints, switching between different camera views as required.
To scale the Manipulator, on the numeric keypad, press + (scale up) or - (scale down).
From the top view, you can see that the target shoulders are pushed too far back. This must be corrected in the spine joints, so initially you just straighten out the arms.
- Compensate for differences in skeletal proportions by adjusting intermediate joints.
In this example, some curvature to the target spine has been added. This has the effect of moving the shoulder joints down and forward to match the source skeleton.
The target foot is also rigged quite differently to the source skeleton, which must be accounted for when the position targets are created.
- Repeat steps 2 and 3 until you are happy with the alignment of the target and source skeletons.Compensating for differences in proportion
- To achieve good hand-eye coordination in VR, you must accurately match the hand position and rotation; the head and shoulders also affect coordination to a lesser extent.
- When you align the target skeleton, try to prioritize matching the hands for best results. The feet are similarly important to aid navigation.
- For intermediate joints, the choice is often aesthetic, and you may need to experiment with a moving subject to see what looks best.
Add position targets
Position targets are used to ensure that parts of the retarget skeleton match the position of parts of the source skeleton.
- Add position targets to the ends of the body (hands, feet and head). To do this, click the bone on the target skeleton (pink), then click the equivalent bone on the source skeleton (gray) and click Add position target. The constraints are displayed on the Retarget Setup tab as a list and are also displayed graphically.
In some cases, the bones may be quite different between the source and target skeletons. Take extra care to ensure you apply position targets to the correct bones.Understanding position targets
A position target adds a constraint to the retarget solver in Evoke, so the position of the target bone relative to the source is preserved. The wireframe cube represents this offset, and by default is set to origin of the source bone. This means that Evoke tries to pose the retarget so that the cube is centered on the source bone origin.
The default offset is usually a good choice, assuming you have aligned the target skeleton well to the source skeleton. However, you can adjust the offset by changing the State X, State Y and State Z fields in the bottom-left of the Retarget Setup tab. For example, if you set the state to (0 0 0), the target bone origin is forced to match the source bone origin exactly. This can sometimes improve retarget results when the default position offset is very small, as it is easier to find the correct target joint rotation when the target position is exactly the same as the source.
- Add at least one position target to the trunk of the body. This is necessary to prevent the body 'floating' when only constrained by rotation targets. If you find that these target joints slip out of position when solving in Evoke, adding position targets on the hips and shoulders may be a good alternative.
Note that you don't need to set position targets on 'in-between' joints (eg, elbows), because usually, some differences between source and target are acceptable here. It is recommended to keep the number of position targets to a minimum. Over-constraining the solver in Evoke is counter-productive, usually resulting in persistent retarget errors and/or instability.
Add rotation targets
Rotation targets serve a similar purpose to position targets, but constrain the rotation of joints in the retarget.
- As with position constraints (see Add position targets), click on the target bone then the source bone, and then click Add rotation target.
Each rotation target is added to the target list and is also displayed graphically.
In general, add a rotation target for each bone in the target skeleton. You can use the same source bone for multiple target bones; this is necessary if the target skeleton has more bones than the source skeleton in the same body segment.
- The relative importance of rotation and position targets is determined by their respective weights. To adjust the weight of a target, in the target list, select the target and change the value in the Weight field. A higher weight makes the target more effective in constraining the retarget pose, at the expense of the other targets.Understanding rotation targets
A rotation target adds a constraint to the retarget solver in Evoke, so the rotation of the target joint relative to the source is preserved. The RGB axes centered on the joint represent this target offset, and by default is set to the rotation of the source joint. This means that Evoke tries to pose the target joint so that the RGB axes have the same rotation as the source joint. The joint state is an angle-axis value, and manually editing it is not recommended.
Remove unnecessary joints
To remove unconstrained joints on the template, in the Retarget Setup view, click Remove unnecessary joints.
This step is necessary because unconstrained joints still have to be fitted by Evoke, which increases computational load and may cause dropped frames. For example, finger or face bones don't have an equivalent on the source skeleton, so nothing needs to be constrained. They are just fixed in place in the solve when 'removed' from the retarget subject.
Save the finished setup
To save your setup, click Save As and save your retarget file to the Retargets folder, by default in: