Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Shapekeys

Table of contents

  1. Introduction
  2. ARKit (iPhone) shapekeys
    1. Faceit
    2. Shapekeys+
    3. Testing in Blender
    4. Resources

Introduction

Shapekeys are mesh changes that work off a base, unchanged mesh. Each shapekey basically saves a new position change for each vertex. This is why the Basis shapekey is important: every other shapekey will be relative to the Basis.

If you’re working on a head, you will need to apply your mirror modifier before proceeding. You can turn on Symmetry (!= mirror modifier!) while working on shapekeys. If the symmetry looks broken, select all (A) > F3 > type Snap to symmetry. You can keep modifiers such as subdivision, but you will need an add-on to apply them and keep your shapekeys. There are various add-ons that have a function for this such as gret, Faceit and other standalone add-ons.

ARKit (iPhone) shapekeys

Faceit

I use Faceit to make iPhone ARKit tracking shapekeys. You can use it to align features on your model’s face and it will attempt to create the 52 iPhone shapekeys. They are not always great on stylised heads, and I end up remaking most of them but it takes care of the creating and naming step for me. It also keeps them in the same order throughout all my models which is helpful in Unity.

Shapekeys+

Using Shapekeys+, you get easy access to existing and extra shapekey functions. For example, to copy and mirror a shapekey, just click and hold on the Copy icon and click Copy Shape Key, Mirrored.

You can also choose where newly added shapekeys appear, and move shapekeys to the top or bottom with one button.

Testing in Blender

You can learn how iPhone tracking shapekeys work, fix mistakes and test everything all together by using the iFacialMocap add-on for Blender. You can find the tutorial here. Make sure you set the correct FaceObjectsName, and remove the HeadBone name if you don’t want the head to move in Blender (it reduces lag). If you have different parts in different objects, you can parent them to the Head object in Blender, and just set the Head’s object name to FaceObjectsName.

Resources

There are various resources to learn each ARKit shapekey: