Use the Puppet tools to quickly add natural motion to raster images and vector graphics, including still images, shapes, and text characters.
Puppet tools overview and resources
Though the Puppet tools work within an effect (the Puppet effect), you don’t apply the effect using the Effect menu or the Effects & Presets panel. Use the Puppet tools in the Tools panel to directly apply and work with the effect in the Layer panel or Composition panel.
The Puppet effect works by deforming part of an image according to the positions of pins that you place and move. These pins define what parts of the image should move, what parts should remain rigid, and what parts should be in front when parts overlap.
Each Puppet tool is used to place and modify a specific type of pin:
Puppet Overlap tool
Use this tool to place Overlap pins, which indicate which parts of an image should appear in front of others when distortion causes parts of the image to overlap one another.
Puppet Starch tool
Use this tool to place Starch pins, which stiffen parts of the image so that they are distorted less.
When you place the first pin, the area within an outline is automatically divided into a mesh of triangles. An outline is only visible when the Puppet effect has been applied and a Puppet tool pointer is over the area that the outline defines. (See How the Puppet effect creates outlines.) Each part of the mesh is also associated with the pixels of the image, so the pixels move with the mesh.
To show the mesh, select Show in the Tools panel.
When you move one or more Deform pins, the mesh changes shape to accommodate this movement, while keeping the overall mesh as rigid as possible. The result is that a movement in one part of the image causes natural, life-like movement in other parts of the image.
For example, if you place Deform pins in a person’s feet and hands and then move one of the hands to make it wave, the motion in the attached arm is large, but the motion in the waist is small, just as in the real world.
If a single animated Deform pin is selected, its Position keyframes are visible in the Composition panel and Layer panel as a motion path. You can work with these motion paths as you work with other motion paths, including setting keyframes to rove across time. (See Smooth motion with roving keyframes.)
You can have multiple meshes on one layer. Having multiple meshes on one layer is useful for deforming several parts of an image individually—such as text characters—as well as for deforming multiple instances of the same part of an image, each with a different deformation.
The original, undistorted mesh is calculated at the current frame at the time at which you apply the effect. The mesh does not change to accommodate motion in a layer based on motion footage, nor does the mesh update if you replace a layer’s source footage item.
Don’t animate the position or scale of a continuously rasterized layer with layer transformations if you are also animating the layer with the Puppet tools. The render order for continuously rasterized layers—such as shape layers and text layers—is different from the render order for raster layers. You can precompose the shape layer and use the Puppet tools on the precomposition layer, or you can use the Puppet tools to transform the shapes within the layer. (See Render order and collapsing transformations and Continuously rasterize a layer containing vector graphics.)
The motion created by the Puppet tools is sampled by motion blur if motion blur is enabled for the layer and the composition, though the number of samples used is half of the value specified by the Samples Per Frame value. (See Motion blur.)
You can use expressions to link the positions of Deform pins to motion tracking data, audio amplitude keyframes, or any other properties.
Aharon Rabinowitz provides a tutorial on the Creative COW website that shows a creative way to use the Puppet tools with a particle generator to simulate airflow over a car.
Eran Stern provides a video tutorial on the Creative COW website that shows how to duplicate an object using the Puppet Pin tool.
Robert Powers provides a video tutorial on the Slippery Rock NYC website that demonstrates the use of parenting and the Puppet tools to animate a character.
Dave Scotland provides a video tutorial on the CG Swot website that demonstrates how to create a looping character animation using the Puppet tools.
Kert Gartner provides a video tutorial on the VFX Haiku website that shows how to add organic motion to images using the wiggle expression method on Puppet pins.
Daniel Gies provides a detailed series of video tutorials in which he demonstrates the use of inverse kinematics and the Puppet tools to rig and animate a character.
Manually animate an image with the Puppet tools
The stopwatch switch is automatically set for the Position property of a Deform pin as soon as the pin is created. Therefore, a keyframe is set or modified each time that you change the position of a Deform pin. This auto-keyframing is unlike most properties in After Effects, for which you must explicitly set the stopwatch switch by adding a keyframe or an expression to animate each property. The auto-animation of Deform pins makes it convenient to add them and animate them in the Composition panel or Layer panel, without manipulating the properties in the Timeline panel.
Click any nontransparent pixel of a raster layer to apply the Puppet effect and create a mesh for the outline created by auto-tracing the alpha channel of a layer.
Click within a closed path on a vector layer to apply the Puppet effect and create a mesh for the outline defined by that path.
Click within a closed, unlocked mask to apply the Puppet effect and create a mesh for the outline defined by the mask path.
Click outside all closed paths on a vector layer to apply the Puppet effect without creating a mesh. Outlines are created for paths on the layer, though an outline is only visible when a Puppet tool pointer is over the area that the outline defines. Place the pointer over the area enclosed by a path to see the outline in which a mesh will be created if you click that point. (See How the Puppet effect creates outlines.) Click within an outline to create a mesh.
If an image is too complex for the Puppet effect to generate a mesh with the current Triangle value, a “Mesh Generation Failed” message appears in the Info panel. Increase the Triangle value in the Tools panel and try again.
Use as few pins as possible to achieve your desired result. The natural deformation provided by the Puppet effect can be lost if you over-constrain the image. Just add pins to the parts of the figure that you know that you want to control. For example, when animating a person waving, add a pin to each foot to hold them to the ground, and add a pin to the waving hand.
You can modify the motion paths of the Deform pins using the same techniques that you use to modify any other motion paths.
After Effects no longer draws the tinted fill for the original layer region when hovering using the Puppet Pin tool.
Record animation by sketching motion with the Puppet Pin tool
You can sketch the motion path of one or more Deform pins in real time—or at a speed that you specify—much as you can sketch the motion path of a layer using Motion Sketch.
If your composition contains audio, you can sketch motion in time with the audio.
Before you begin recording motion, you may want to configure settings for recording. To open the Puppet Record Options dialog box, click Record Options in the Tools panel.
The ratio of the speed of the recorded motion to speed of playback. If Speed is 100%, the motion is played back at the speed at which it was recorded. If Speed is greater than 100%, the motion plays back slower than it was recorded.
Set this value higher to remove more extraneous keyframes from the motion path as it’s drawn. Creating fewer keyframes makes motion smoother.
Use Draft Deformation
The distorted outline that is shown during recording does not take Starch pins into account. This option can improve performance for a complex mesh.
This procedure assumes that you have already placed Deform pins in the object to animate. For information on placing Deform pins, see Manually animate an image with the Puppet tools.
- In the Composition panel or Layer panel, hold the Ctrl (Windows) or Command (Mac OS) key to activate the Puppet Sketch tool. Ctrl-drag (Windows) or Command-drag (Mac OS) the pins to animate.
Recording of motion begins when you click to begin the drag. Recording ends when you release the mouse button.
The color of the outline for the mesh for which motion is being sketched is the same as the color of the pin (yellow). Reference outlines, for other meshes on the same layer, match the label color of the layer.
You can modify the motion paths of the Deform pins using the same techniques that you use to modify any other motion paths. The motion path for a pin is shown only if it is the only pin selected.
Try creating several duplicate meshes and sketching motion for each mesh. When you have multiple meshes in the same instance of the Puppet effect, you can sketch motion for one mesh while seeing the reference outlines of the others, allowing you to follow their movements, either roughly or precisely.
How the Puppet effect creates outlines
When a Puppet mesh is created, its boundaries are determined by an outline, which can be defined by any of the following types of closed paths:
If a layer has no unlocked masks, shapes, or text characters on it when you apply the Puppet effect, it uses Auto-trace to create paths from the alpha channel. These paths are only used by the Puppet effect in the determination of outlines and do not appear as masks on the layer. If the layer is a raster layer with no alpha channel, the result is a single rectangular path around the bounds of the layer. For a complex image, or to configure Auto-trace settings, use Auto-trace before using the Puppet tools. (See Create a mask from channel values with Auto-trace.)
A text character that consists of multiple disjoint closed paths (such as the letter i) is treated as multiple separate paths.
The stroke of a shape or text character is not used in the determination of outlines; only the path is used. To encompass a stroke within a mesh created from such items, increase the Expansion value. The default value of 3 pixels for Expansion encompasses a stroke that extends 3 pixels or less from its path.
Apply paint strokes to a layer using the Brush tool with the Paint On Transparent option. Painting with this option selected creates a raster layer with only the paint strokes, defined by an alpha channel. You can then use the Puppet tools to animate the paint strokes. Do not use a mask on the layer.
If multiple masks, shapes, or characters overlap on the same layer, an outline is created from the union of the overlapping shapes, overlapping characters, or overlapping masks. If a mask overlaps a text character or shape, outlines are created for the entire character or shape, for the portion of the character or shape that is inside the mask, and for the mask itself.
To distort multiple disjoint characters or shapes as one object, surround the individual objects with a mask (with mask mode set to None), and use the mask path as the outline with which to create the mesh. You can delete the mask after you have created the mesh.
If the Puppet effect has already been applied to a layer, outlines appear with a yellow highlight as you move a Puppet tool pointer over them. You can choose the outline in which to place an initial pin to create a mesh. A mesh is created each time that you click within an outline with a Puppet tool.
If the Puppet effect has not already been applied to a layer, outlines for that layer have not yet been calculated. When you click, the Puppet effect calculates outlines and determines whether you have clicked within an outline. If so, it creates a mesh defined by the outline in which you clicked. Otherwise, you can move the pointer around in the layer to select the outline in which to place a pin and create a mesh. Moving the pointer around in the layer is useful for seeing the outlines of various objects and choosing which outlines to use to create a mesh.
Work with Puppet pins and the distortion mesh
- To show the mesh for the Puppet effect, select Show in the options section of the Tools panel.
- To select or move a pin, click or drag it with the Move tool . To activate the Move tool, place the pointer on a pin while either the Selection tool or the corresponding Puppet tool is active.
- To select multiple pins, Shift-click them, or use the marquee-selection tool to drag a marquee-selection box around them. To activate the marquee-selection tool, place the pointer for a Puppet tool outside all meshes and outlines or hold the Alt (Windows) or Option (Mac OS) key.
- To select all pins of one kind (Deform, Starch, or Overlap), select one pin of that kind and press Ctrl+A (Windows) or Command+A (Mac OS).
- To delete selected pins, press the Delete key. If the pin has multiple keyframes, and only the keyframe at the current time is selected, pressing Delete deletes only that keyframe; pressing Delete again deletes the pin.
- To reset Deform pins to their original locations at the current time, click Reset for the Puppet effect in the Timeline panel or Effect Controls panel. To remove all pins and meshes from an instance of the Puppet effect, click Reset again.
Sometimes, you want to animate an image from an initial position, through an intermediate position, and back to the initial position. Rather than manually dragging the pins back to their initial positions at the end of the animation, place the current-time indicator at the end time and click Reset. Only the keyframes at the current time are reset.
- To increase or decrease the number of triangles used in a mesh, modify the Triangle value in the options section of the Tools panel or in the Timeline panel. Modifying the Triangle value sets the value for a selected mesh or, if no mesh is selected, sets the value for meshes created later.
A higher number of triangles gives smoother results but takes longer to render. Small objects, like text characters, usually distort well with only 50 triangles, whereas a large figure may require 500. The number of triangles used may not match the Triangle value exactly; this value is a target only.
- To expand the mesh beyond the original outline, increase the Expansion property in the options section of the Tools panel or in the Timeline panel. Modifying the Expansion property sets the value for a selected mesh or, if no mesh is selected, sets the value for meshes created later. Expanding the mesh is useful for encompassing a stroke.
- To duplicate an object using Puppet Pin tool, click within the original outline. Clicking within the original outline creates a new mesh, with its own copy of the pixels from within the original outline. You can also duplicate a Mesh group in the Timeline panel to achieve the same result, which is sometimes easier than clicking within the original outline without clicking the mesh to create a pin.
Puppet Overlap controls
When you are distorting one part of an image, you may want to control which parts of the image appear in front of other parts. For example, you may want to keep an arm in front of the face as you make the arm wave. Use the Puppet Overlap tool to apply Overlap pins to the parts of an object for which you want to control apparent depth.
You apply Puppet Overlap pins to the original outline, not to the deformed image.
The apparent proximity to the viewer. The influence of Overlap pins is cumulative, meaning that the In Front values are added together for places on the mesh where extents overlap. You can use negative In Front values to cancel out the influence of another Overlap pin at a specific location.
An area of the mesh that is not influenced by Overlap pins has an implicit In Front value of 0. The default value for a new Overlap pin is 50.
When animating the In Front value, you should usually use Hold keyframes. You do not usually want to interpolate gradually from an element being in front to an element being in back.
How far from the Overlap pin its influence extends. The influence ends abruptly; it does not decrease gradually with distance from the pin. Extent is indicated visually by a fill in the affected parts of the mesh. The fill is dark if In Front is negative; the fill is light if In Front is positive.
Puppet Starch controls
When you are distorting one part of an image, you may want to prevent other parts from being distorted. For example, you may want to preserve the rigidity of an arm as you move a hand to make it wave. Use the Puppet Starch tool to apply Starch pins to the part of an object that you want to keep rigid.
You apply Puppet Starch pins to the original outline, not to the deformed image.
The strength of the stiffening agent. The influence of Starch pins is cumulative, meaning that the Amount values are added together for places on the mesh where extents overlap. You can use negative Amount values to cancel out the influence of another Starch pin at a specific location.
If you notice image tearing near a Deform pin, use a Starch pin with a very small Amount value (less than 0.1) near the Deform pin. Small Amount values are good for maintaining image integrity without introducing much rigidity.
How far from the Starch pin its influence extends. The influence ends abruptly; it does not decrease gradually with distance from the pin. Extent is indicated visually by a pale fill in the affected parts of the mesh.
In addition to animating still images, you can use the Puppet effect on a layer with motion footage as its source. For example, you could distort the contents of the entire composition frame to match the motion of an object within the frame. In this case, consider creating a mesh for the entire layer, using the layer boundaries as the outline, and using the Puppet Starch tool around the edges to prevent the edges of the layer from distorting.