/
Set up character retargeting

Set up character retargeting

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.
  • From the Windows Start menu:
    • Expand Vicon and then select Vicon Retarget.
  • On the Windows desktop:

    • Double-click the Vicon Retarget shortcut.

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 can identify easily. Pre-installed examples are included for retargeting the Vicon source skeleton to a Vicon target skeleton.

The following topics explain the procedures that are related to character retargeting in the order you are likely to use them:

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:

C:\Users\Public\Documents\Vicon\Skins

Select the skeleton and the FBX

  1. Start Evoke, and on theRetarget menu, select Launch Setup (or start Retarget in one of the other ways described in Set up character retargeting).
  2. In the Vicon Retarget window, at the top of the Retarget Setup panel, click New Subject.

  3. In the Create Retarget Subject dialog box:

    1. In the Source Skeleton section, click in the Source Skeleton field and select the required template.
    2. In the Target Properties section, click in the Target FBX field and select the required FBX file.
    3. In the Target Root field, select the appropriate root (if you are not sure, try hips or pelvis).
  4. To create the target subject, click Create.

    The target FBX appears in the middle of the view.

Set the root and scale the target subject

In the view pane, by default, the View Filters optionsSource 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 these options.

  1. Ensure you have completed the steps in Select the skeleton and the FBX, and that the target and source skeletons are displayed in the middle of the view.
  2. In the Target Properties section on the left, in the Target Scale field, set an appropriate value to get the size of the target skeleton to match the source skeleton.
  3. 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.

    (tick) 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.

  1. Before you begin, review the symmetry options in the Manipulator Controls and Retarget Setup sections on the left.
    • 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), in the Manipulator Controls section, ensure Joint Symmetry is selected.
    • To mirror constraints created on one side to the other (from the left side side to the right side or vice versa), in the Retarget Setup section, select Constraint Symmetry.

  2. Use the Manipulator tool to roughly align the main joints, switching between different camera views as required.

    (tick) Tip: 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.

  3. 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 differently from the source skeleton, which must be accounted for when the position targets are created.

  4. Repeat steps 2 and 3 until you are happy with the alignment of the target and source skeletons.

    (tick) 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 constraints

Position constraints (P Constraints) are used to ensure that parts of the retarget skeleton match the position of parts of the source skeleton.

  1. Add position constraints to the ends of the body (hands, feet and head). To do this, click the bone on the target skeleton (pink), then Ctrl+ click the equivalent bone on the source skeleton (gray), or select from the Source Joints and Target Joints lists on the right, and then in the Retarget Setup panel, in the Retarget Setup section, click Add P Constraint. The constraints are displayed in the Retarget Setup panel as a list and are also displayed graphically.

    In some cases, the bones may differ between the source and target skeletons. Take extra care to ensure you apply position constraints to the correct bones.

    (tick) Understanding position constraints: A position constraint 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.

    If you've aligned the target skeleton well to the source skeleton, the default offset is usually a good choice. However, you can adjust the offset by selecting the constraint from the list in the Retarget Setup panel and changing the Offset X, Offset Y and Offset Z fields in the bottom-left of the panel. For example, if you set the offset 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.

  2. Add at least one position constraint to the trunk of the body. This is necessary to prevent the body 'floating' when only constrained by rotation constraints. If you find that these target joints slip out of position when solving in Evoke, adding position constraints on the hips and shoulders may be a good alternative.

Note that you don't need to set position constraints on 'in-between' joints (eg, elbows), because usually, some differences between source and target are acceptable here. We recommend that you keep the number of position constraints to a minimum. Over-constraining the solver in Evoke is counter-productive, usually resulting in persistent retarget errors and/or instability.

Add rotation constraints

Rotation constraints (R Constraints) serve a similar purpose to position targets, but constrain the rotation of joints in the retarget.

  1. As with position constraints (see Add position constraints), click on the target bone then Ctrl+click the source bone (or select from the lists on the right), and then in the Retarget Setup panel, click Add R Constraint. Each rotation constraint is added to the list in the Retarget Setup panel and is also displayed graphically. In general, add a rotation constraint 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.

  2. The relative importance of rotation and position targets is determined by their respective weights. To adjust the weight of a constraint, in the list in the Retarget Setup section, select the constraint and change the value in the Weight field below. A higher weight makes the constraint more effective in constraining the retarget pose, at the expense of the other targets.

    (tick) Understanding rotation constraints: A rotation constraint 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 panel, 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:

  • On the File menu, click Save As and save your retarget file to the Retargets folder, by default in:C:\Users\Public\Documents\Vicon\Retargets

Related content


© Copyright Vicon Motion Systems. All rights reserved.

Vicon trademarks