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 moves, what parts remain rigid, and what parts are 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.
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.
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.
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.
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.
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.
- 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.
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.
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.
The Puppet tools and Puppet effect in After Effects use an enhanced puppet engine called the Advanced Puppet Tool, and the old engine is called the Legacy puppet engine. In After Effects 15.1 and later, the Advanced puppet engine is the default engine for your projects. Projects saved in earlier versions of After Effects use the legacy Puppet engine by default. To access the Advanced Puppet Tools, click the Pin icon in the Toolbar and the Puppet group is displayed in the Timeline panel.
At the core, the advanced puppet engine use similar concept as the legacy puppet engine, the differences being:
- New pin behaviors and pin types
- Smoother and customizable deformations
- Enhanced density
Refer to the table below to understand the key differences between the Legacy and Advanced puppet engines:
|Legacy puppet engine||Advanced puppet engine|
|Triangle control: Specifies the highest number of triangles allowed for a mesh. Legacy Puppet Tool uses smart triangle placement in the mesh with a higher density of triangles to achieve better results.||Density control replaces the Triangle control. Density controls the layout, size, and amount of triangles automatically calculated within a mesh. With higher density, the maximum and minimum triangle sizes reduce, you can add more triangles between pins, and the maximum number of triangles allowed have increased. Lower the density, the triangle size increases and creates a sparse mesh.|
|Starch pins are under the Stiffness group.||Starch pin are under the Deform group and the Stiffness group is discontinued.|
|Starch pins have Extent control to manipulate the extent to which the pin impacts the puppet.||Starch pins do not have Extent control, but can impact the stiffness in the region between Starch pins and other pins. The Advanced puppet engine interprets the Starch pins as Position pins.|
|You can't convert Starch pins into any other form of pins.||You can convert Starch pins into Position pins with the Pin Type property.|
|No option of Mesh Rotation Refinement.||Mesh Rotation Refinement, specifies the maximum amount any position or starch pin rotates to minimize deformation. Higher the value, higher is the amount of rotation (flexible deformation), and lower the value, lower is the amount of rotation (stiff deformation).|
You can use the Puppet Engine control to choose between the Advanced puppet engine and the Legacy puppet engine. To choose, in the Timeline panel, click the drop-down menu next to Puppet engine, and select the engine. You can switch between the two engines but After Effects recommends that you avoid switching after you place or animate pins for the following reasons:
- As the two engines interpret pins differently, switching could change the deformation.
- Starch pins are different in Advanced puppet engine and so the Legacy puppet engine treats advanced starch pins, as normal position pins, and the Advanced puppet engine ignores legacy starch pins.
The Advanced Puppet Tool offers the following types of pins to animate your puppets. To apply these pins, select the pin type in the Puppet Tool menu in the toolbar.
- Puppet Position Pin Tool: The pins you place with this tool can only control the position of the pin. These pins display as yellow circles in the UI.
- Puppet Starch Pin Tool: These pins display as red circles in the UI.
- Puppet Overlap Pin Tool: These pins display as blue circles in the UI.
- Advanced Pins: Enables you to control the position, scale, and rotation of the pin. This allows significant control over how the Puppet effect mesh deforms around that pin. The mesh can create noticeable shearing if you do not animate all three properties. For example, you can use an advanced pin to animate the head of a character to move to the side and look downwards. However, if you do not animate the rotation manually, the head continues to point in the same direction and create a stretched appearance. These pins display as blue-green circles in the UI.
- Bend Pins: These pins automatically calculate their location from the surrounding pins, similar to starch pins, while allowing you to control of the scale and rotation of the pin. You can use the bend pins to create the appearance of the chest of the character breathing, or of a wagging tail. Another case can be where you scale or rotate a part of the mesh but have the position of the pin automatically move with the rest of the puppet. These pins display as orange-brown circles in the UI.
When you select bend pins or advanced pins in the Puppet Tool panel, it displays a rotation and scale control - larger, outer circle with a single square handle.
Use the following steps to change the rotation and scale controls:
- You can switch the existing pin types between Position and Starch.
- The Puppet Starch tool has a different icon, and is second in the list of Puppet tools in the Toolbar panel.
- Path Point and Handle Size options in Preferences > General affect pin size. Also when you hover the mouse over the pins, they increase in size.
- The Puppet effect ignores masks set to None, or any mask used by an effect as a mask reference (effect properties > Compositing Options > Mask Reference), when calculating the mesh outline.