skip to Main Content
Sections on this page:

Modifying Stickman, part 3:
Rigging limb joints for body rotation

In this video we will modify Stickman’s structure rig to give him the ability to make a full body turn. This, of course, is an illusion, but it is easily pulled off by keeping the construction of the puppet simple and manipulating the joint positions and body scale. This can be done with complex puppets as well, but requires careful puppet design and the use of expressions and vector animation (like the foot animation from the previous video) to pull off a convincing turn.

Important: If you completed the Modifying Stickman, part 2: Time remapping foot animation you can use that file instead of the work files offered below. Save a backup before proceeding with this tutorial, then save a copy of your finished work as it will be built upon in the following tutorials. Alternatively, you can download the work files available on each tutorial page. The After Effects files were created in version 16 (After Effects 2019).

Duik Bassel Stickman tutorial T001a-S2

Modifying Stickman, part 3: Rigging limb joints for body rotation

Downloadable work files: This 299 KB zip file contains the Adobe Illustrator file Stickman 3.0 and the Adobe After Effects (v. 16) File Stickman MS3. The After Effects file is rigged up to the point where I stopped in the last tutorial.

Modify Stickman 3 (299 KB zip) Project Files

Video content:
  • 00:00 Introduction
  • 00:47 Getting the file ready
  • 02:00 Building the joint nulls
  • 03:11 Placing & Parenting the joint nulls
  • 05:41 Creating the sliders
  • 07:37 Coding the arm joints
  • 12:05 Coding the leg joints
  • 13:43 Closing
  • 14:09 Credits

Code from the video

The code below is provided as a reference, and was copied directly from the video After Effects file. Expression fields that contained only a pick whip connection are not included.

Right arm joint null expression

Notice the only difference between the two am joint null expressions is the negative sign on the 108.5 joint range value on the left arm.

S=Math.abs(thisComp.layer("Body Turn").effect("X Arm Movement")("Slider"));
P=linear(S,0,100,0,108.5);
P

Left arm joint null expression modification

If you didn’t want to zero your position properties using Duik or building your own zero null, you could modify the above expression to do what you need no matter what the starting position of the target layer. You would do this by using the value expression. By creating a variable, such as SP=value in the example below, After Effects will place the starting values of the property, meaning the values that were in the property field(s) before you started writing the expression, in the variable. The expression value will return a number or array, depending on the property.

Do note, that if the starting values get changed somehow, the expression will start using the new values. This new variable is then added to the value produce by the linear expression.

SP=value; //Starting Position
S=Math.abs(thisComp.layer("Body Turn").effect("X Arm Movement")("Slider"));
P=linear(S,0,100,0,108.5)+SP;
P

Left arm joint null expression

S=Math.abs(thisComp.layer("Body Turn").effect("X Arm Movement")("Slider"));
P=linear(S,0,100,0,-108.5;
P

Right leg joint null expression

Notice the only difference between the two leg joint null expressions is the negative sign on the 56 joint range value on the left leg.

S=Math.abs(thisComp.layer("Body Turn").effect("X Leg Movement")("Slider"));
P=linear(S,0,100,0,56;
P

Left leg joint null expression

S=Math.abs(thisComp.layer("Body Turn").effect("X Leg Movement")("Slider"));
P=linear(S,0,100,0,-56);
P
Back To Top