Control Rig

What's That?

The ARKit Control Rig is a bone rig that can be used to control the 52 ARKit shape keys with much more flexibility and artistic control. The Control Rig is connected to all Target Shapes via complex Drivers and you can immediately start to animate the face by either keyframe animation or recorded performance capture files.

Rain_all
Animate the ARKit Expressions with the Control Rig

Generate Control Rig

The Control Rig is created based on the Faceit Landmarks. The Drivers that connect the bones to the shape keys are generated automatically on time of creation. You can always reconnect them later.

Rain_all
Generate and Connect the Control Rig by the click of a button.

Options (Generate)

  1. Slider Ranges:
  2. Apply Scale:
    • If you choose to apply the scale on time of creation, the Transforms on the Control Rig will be clean. Scale: (1, 1, 1)
    • WARNING: The Slider Ranges will be adapted to the size of your scene. This can lead to weird bone ranges, but doesn't effect functionality.

Control Rig Settings

Both the target objects and the target shape keys are stored on the control rig, once generated. This is especially useful if you are animating multiple control rigs in one scene or if you are using linking workflows.

  • The target objects are populated based on the objects list in the Setup panel.
  • The target shapes are populated from the ARKit target shapes list. Eventual custom controllers are populated automatically.

Both lists can be altered manually. If you can't see the target shapes or target objects panel, it might well be that you have to perform a control rig update. The operator Load to Control Rig will clear the current settings and attempt to load the scene settings. Respectively, the Load to Scene operator attempts to populate the scene settings.

Rain_all
The target shapes and target objects are stored on the control rig object.

Connect / Disconnect

You can connect and disconnect the Control Rig quickly and non-destructively! Both the animation on your shape keys and the animation on the Control Rig will be preserved.

Controller Ranges

You can change the range of motion for all controller bones at any point. To use the full range of motion you will have to extend the default slider range for the Target Shapes!

Rain_all

Bake shape keys to Control Rig

Rain_all
Options for baking a Shape Key Action to the Control Rig.

Options (shape keys to Control Rig)

  1. Source Action:
    • Choose a Source Shape Key Action. Note that it should be an action that contains the ARKit values, otherwise it won't work obviously.
  2. Target Action:
    • Choose to create a new Control Rig Action or bake the action into the active Control Rig Action.
    • When you choose New Action, you will be asked to enter a name for the new action. By default this will be the source actions name plus '_control_rig' suffix.
    • When you choose to bake into the Active Action, you can choose to overwrite the old animation values or combine old and new (combine means overwriting only the new actions frame range).
  3. Resample Keyframes:
    • Resampling will add a keyframe on each frame on the timeline (depending on the chosen framerate). The old frames will be overwritten.
    • Note that you can loose details in your animation, if you recorded at a 100fps and your scene is only set to 24 fps.
    • Resampling can be really useful on sparsely keyframed or hand-keyed motions, because no detail will be lost after baking!
  4. Compensate Amplify Values:
    • The Amplify values that are currently specified will effect the baked animation immediately.
    • If this is enabled the amplify values will be inverted during bake, resulting in a one to one bake, even though amplify values are set to non-default values.

Animation Layers

Checkout the amazing Add-on by Tal Hershko, for an easy to use Animation Layers system

Rain_all
Animate on top a performance capture clip with an additive animation layer.

Bake Control Rig to shape keys

Rain_all
Options for baking a Control Rig Action to shape keys.

Options (Control Rig to shape keys)

  1. Fast/Slow Method:
    • Two methods stand available for the baking operation.
    • FAST will basically just retarget the fcurves of the chosen Source Action to the shape keys driven by the Control Rig. This is really fast, but it can't bake additional animation layers
    • SLOW will go through the timeline and bake the driver values on each frame into a Shape Key action. This method is slow, but it won't miss anything! You can even bake a whole stack of animation layers.
  2. Source Action:
    • Choose a Source Action for the Control Rig. Usually just the currently active Action.
  3. Target Action:
    • Choose to create a new Shape Key Action or bake the action into the active Action.
    • When you choose a New Action, you will be asked to enter the name of the new action and wether to overwrite it if it already exists. The name defaults to the source actions name minus the '_control_rig' suffix, in case it exists.
    • When you choose to bake into the Active Action, you can choose to overwrite the old animation values or combine old and new (combine means overwriting only the new actions frame range).
  4. Resample Keyframes:
    • Resampling will add a keyframe on each frame on the timeline (depending on the chosen framerate). The old frames will be overwritten.
    • This changes the framerate of the resulting animation and can lead to data loss with sub-frames.
  5. Bake Amplify Values:
    • Whether to bake the currently set Amplify Values into the Shape Key action or not.

Amplify Expressions

The Amplify list is a flexible and powerful way to edit your control rig animations! You can amplify animation values on the fly and during playback. They are also animatable, so you can even amplify individual frame ranges.

Tip

Extend the maximum slider range of your shape keys to amplify the expressions beyond the default range of motion [0,1]!

Rain_all
Quickly amplify any Control Rig Slider Value to edit your animations!

Custom Controllers

You can add any number of custom controllers to animate extra shapes, that you want to have available in the rig. For the Custom Controller setup is limited to simple sliders.

Rain_all
Quickly add Custom Controllers for any kind of Shape Key on all registered Objects.

Warning

Any existing drivers on the shape keys will be removed, as soon as they are targeted by a custom slider bone!

Options

  1. Target:
    • Choose the target Shape Key for the new Custom Slider/Controller.
    • You can choose from all shape keys on all registered Objects.
    • If you choose a Shape that is already driven by a Controller or by other properties, the old Driver will be removed.
  2. Region:
  3. Range:

Linking is a very useful tool, that allows to use content from other .blend files without altering the original data. In the context of character animation it can be used to separate the rigging process from the animation process. Read more here

linking
Animate multiple characters in one scene by linking from the original files.

Best Practice

  • Create a character collection (eg. CH_your_characters_name)
  • Add all animated objects the control rig that you want to link and anything else that you need to animate to this collection. Sub collections, like GEOMETRY, RIG, etc. are no problem.
  • Make sure that the control rig is connected to the shape keys and that it's updated to the latest version.
  • In a new scene, go to File > Link > Select the rigging .blend file > Collections > Character Collection.
  • After linking, all objects are frozen. To make the armature editable, you need to create so called overwrites.
  • Click on one of the linked objects and go to Objects > Relations > Make Library Overwrite... Your can now start animating!
  • Note that updates, or other changes to the rig have to be made in the original file (the so called library).

Tip

This is just best practice advice. You can use any linking/appending workflow that works for you.

linking
linking
linking
Link character collection, make library override, activate the control rig, start animating.

Updating

Other Utilities / Experimental

Hook to Rig

Select a bone in a second armature object and hit Set Child Of to quickly add a child of constraint to the Faceit Control Rig.

Rain_all

Show Ranges

You can draw the range of motion for all sliders in the 3D view.

Clear Ranges

For now the Ranges won't be cleared automatically! You should always use the Clear Ranges button before opening another scene/blend-file, otherwise you will have to restart Blender to get rid of them.

Rain_all