Making Blendshapes (Part1 - Beginner)


This is the first part of a multi-part tutorial on blendshapes.

Some background on Blend shapes.

Well most animation programs out there come from a core that time is linear and you need to key certain values (usual XYZ coordinates) on the time line, to get an object to animate. well blendshapes also work on the same fundamentals. the only difference being that they all have their own local(component) space to work with, which is the reason why they are so widely used for facial expressions, as they can work under the hierarchy of the main object or base, giving the ability to slow down, speedup, or hold a certain expression for a given duration of frames independent of the main object. Each blendshape works from a value of 0 to 1, 0 being the shape of the base mesh or no-influence, and 1 being the target shapes or full-influence. Blendshapes work in a linear format, that is it only holds information of the start position and the end position or in computer terms that is the start and the end vector, and the smallest route between those 2 positions is a straight line, which is why 2 key frame are always linear, unless given more advanced logic like ease in- and ease out etc. but sadly Maya`s blendshape has no such thing :( and therefore there is something that is called in-between targets, which is basically like putting another key frame in between the 0 to 1 value. This value can be anything in between 0.001 to 0.999, with all floats included. This is usually the case when u need to make eyelids blinks for Bulgy Eyeballs or you need some similar kind of curvature attenuation in your blendshapes. In Maya, the object that u want to deform is called the base object while the objects that you use to deform the shape of other objects are called target objects. There can only be 1 base object for multiple target objects.

Creating Basic Objects for Blending.

For a basic trial, Take a sphere with subdiv axis and height of 8.This will be your base object. Now duplicate it and move it to the left. Here you can modify the vertices of the object, to form a different shape.

Note: You cannot add loops or delete loops or edge now on this model. You have to work with the number that you currently have.

Note: You can use many deformers like clusters and lattice to make the desired target shapes.

Below is a base object, which is a sphere with 8x8 No of CVs and to the right are four target objects that i have modeled from the sphere.


Create Blendshapes.

To create a new blendshape node, Select all the target objects that you want to use as blends, and finally select the base object. In the Animation Menu Set > Create Deformers > Blend Shape Option Box and you should see a window open like below.


Create Blendshape Options.

BlendShape Node - Give a name for the blendshape deformer node. (Default is blendShape).

Envelope - This is the nods scale factor of influence (Default is 1).

Origin - Specifies if u want to take local space values of world space values from the targets. Local Space will only respect component space value changes made to the target. All translate, rotations and scaling done to the object are ignored,widely used for making facial expression, and corrective shapes. World Space will respect all changes from the target shapes including its translate, rotations and scaling, i have never found the need to use this yet. :)

Inbetween - If in-between is checked on, all the selected targets will blend in series on the same slider, if it is checked off each of the targets will get their own individual sliders, so that each target can be blended in parallel.

BSE_series BSE_parallel

Above is the blendShape editor window, on the left is the view with inbetween turned on ie. a series style blend, and on the right is with inbetween turned off a parallel style blend.

Note : if u have multiple targets and in-between is turned on, Maya will place the inbetweens at position's divided by the no of inbetweens. ie, if u have 5 inbetweens, and inbetween option is on, then the inbetweens will be placed at 5 positions from 0 to 1 at increments of 0.2

Check-Topology - If turned on it will check with the base and target topology is a match, if a match is not found it will not add the blendshape. Turn this option off if the vertex counts between the base and the targets vary.

Delete targets - If turned on this will delete the target shapes objects from the scene after it has been added onto the base as a belendshape. After this no further edits can be made to the blendshape targets therefore it is recommended to keep this option off. After you are done with setting your desired options you can click on apply, and a new blenshape node will be created on the base object. To check the functionality of the blendshape u can check the blendshape editor by going into.

Window > Animation Editors > Blendshape Editor you should see something similiar to the window that we saw in the above image for the parallel blender mode.

Adding Blendshapes

So, if u have create some shapes and added them to the base object like shown above. But now you realize that you need more shapes, we can do the create blendshape thing again, since that creates a new node, and its best to keep a single blendshape node per base, so if u need to add more target shapes to the already existing blendshape node. we need to use the

Animation Menu Set > Edit Deformers > Blend Shape > Add OptionBox


Add Blendshape Options -

Specify node - Turn on, if u have multiple blendshapes on the same selected mesh.

BlendShape node - This is activated, if the specify node option is checked. Its a check-box to specify the blendshape Name to which u want to add the target shapes.

Existing Nodes - This is a drop down list of all available blenshapes in the scene. Selecting one will populate the blendshape node textfield above. Click Apply and these are the only options that u need to set to add new blends to an already existing blendshape node.

Adding Blendshapes as In-Between`s

Animation Menu Set > Edit Deformers > Blend Shape > Add OptionBox Sometimes when making blendshapes, the blending does not happen as desired, or is too linear, or intersects the mesh at a certain point, in this case we can use inbetweens. Inbetweens are basically getting a third intermediate target shape which will blend in series with the base and the target shape at value 1. A in-between can be placed anywhere in between 0.001 to 0.999, depending on the result required.

Add inbetween target - Turn on, to add the selected target as an inbetween shape.

Target Index - This is a little tricky, the target index is basically the number at which the blendshape is in the stack. If u do it manually u need to sit and count at what position is the blendshape thatyou want to add the in-between to. or you can use this script that i made which adds numbering to all the blendshapes in a stack it can be found here crBSEassist.

Below is what it will look like with the script.


Inbetween weight - This is a value between 0.001 to 0.999. It specifies at what position on the slider the selected target should blend in. Click Apply and scrub the slider in the blendshape editor, this should show you the in-between blended target.

Removing Blendshapes


Removing shapes from the blendshape node is nearly smiliar to adding shapes. you need to select the target shape that you want to delete, and then select the base object. and go to Animation Menu Set > Edit Deformers > Blend Shape > Remove OptionBox . Here u need to specify the blendshape node, and the target like explained above,and then click apply, the selected node will be removed. This tutorial is quite tricky to explain with images and text, that's why ill be making a screen-cast(video) in sometime, until then please give your inputs or query for the betterment of this tutorial.