user10856: Trying to make following character's body wiggle a bit, using the puppet tool:

The face and arms are on separate layers as they will need to move independently. When the body moves via the puppet pins, the face and arms stay in their original positions. How can I 'attach' them to their assigned positions on the body? 

user4426: The puppet pin tool is designed to let you wiggle the limbs around on a single layer.  You place pins at the points where the joints meet, and at the ends of the limbs, then move the pins around using keyframes.  AE warps the image to make it look as though you've animated the whole image... Not always brilliantly..
If you have the limbs on different layers, you need to look at using a character rig instead of the puppet tool.
http://lesterbanks.com/2011/03/rigging-multi-layered-characters-in-after-effects/

user1950: If you put a puppet pin at the point where the arms attach, then you can tie the position of the arm layer to the position of the puppet pin using an expression. This will attach the layer to the puppet pin, allowing you to move the pin and the layer it is on and have the arm follow.
It's easy to do, with no knowledge of scripting really required.

So say your body layer is called "Body" and it has a puppet pin called "L_Shoulder", which is on the body at the point where you want to attach the left arm. The left arm layer should have its anchor point at the point that you want it to pivot on, which coresponds to the L_Shoulder on the body layer.

Here's what you do:

First, make the arm layer a child of the body.
Now apply an expression to its position property (hit alt/opt and click on the stopwatch). 

The expression we want is this:
thisComp.layer("Body").effect("Puppet").arap.mesh("Mesh 1").deform("L_Shoulder").position

This looks very difficult to type, but fortunately we don't have to. Next to the expression editor text box is a pickwhip, that we can use to select properties and values. After you alt/option-click the stopwatch, drag the pickwhip to the position property of the puppet pin, and it will fill it all in for you.

Because the puppet pin positions are relative to the layer this works well. As the arm is a parent of the child, setting its position relative to the body layer is exactly what you want.
If the arm is not a child of the body it gets much more complicated: you have to use the toComp method of the body layer to get the relative position of the pin to the composition space, and then you have to apply expressions to link the other transformation properties of the body layer, but it can be done.

10856: <p>Trying to make following character's body wiggle a bit, using the <strong>puppet tool</strong>:</p>

<p><img src="https://i.stack.imgur.com/HTdIg.png" alt="enter image description here"></p>

<p>The face and arms are on separate layers as they will need to move independently. When the body moves via the puppet pins, the face and arms stay in their original positions. <strong>How can I 'attach' them to their assigned positions on the body?</strong> </p>
 4426: <p>The puppet pin tool is designed to let you wiggle the limbs around on a single layer.  You place pins at the points where the joints meet, and at the ends of the limbs, then move the pins around using keyframes.  AE warps the image to make it look as though you've animated the whole image... Not always brilliantly..</p>

<p>If you have the limbs on different layers, you need to look at using a character rig instead of the puppet tool.</p>

<p><a href="http://lesterbanks.com/2011/03/rigging-multi-layered-characters-in-after-effects/" rel="nofollow">http://lesterbanks.com/2011/03/rigging-multi-layered-characters-in-after-effects/</a></p>
 1950: <p>If you put a puppet pin at the point where the arms attach, then you can tie the position of the arm layer to the position of the puppet pin using an expression. This will attach the layer to the puppet pin, allowing you to move the pin and the layer it is on and have the arm follow.</p>

<p>It's easy to do, with no knowledge of scripting really required.</p>

<p><img src="https://i.stack.imgur.com/QgB9y.png" alt="enter image description here"></p>

<p>So say your body layer is called <code>"Body"</code> and it has a puppet pin called <code>"L_Shoulder"</code>, which is on the body at the point where you want to attach the left arm. The left arm layer should have its anchor point at the point that you want it to pivot on, which coresponds to the <code>L_Shoulder</code> on the body layer.</p>

<p><img src="https://i.stack.imgur.com/g81hW.png" alt="enter image description here"></p>

<p>Here's what you do:</p>

<ul>
<li>First, make the arm layer a child of the body.</li>
<li>Now apply an expression to its position property (hit <kbd>alt/opt</kbd> and click on the stopwatch). </li>
</ul>

<p>The expression we want is this:</p>

<pre class="lang-js prettyprint-override"><code>thisComp.layer("Body").effect("Puppet").arap.mesh("Mesh 1").deform("L_Shoulder").position
</code></pre>

<p>This looks very difficult to type, but fortunately we don't have to. Next to the expression editor text box is a pickwhip, that we can use to select properties and values. After you <kbd>alt/option</kbd>-click the stopwatch, drag the pickwhip to the position property of the puppet pin, and it will fill it all in for you.</p>

<p><img src="https://i.stack.imgur.com/j88bh.png" alt="pickwhip"></p>

<p>Because the puppet pin positions are relative to the layer this works well. As the arm is a parent of the child, setting its position relative to the body layer is exactly what you want.</p>

<p>If the arm is not a child of the body it gets much more complicated: you have to use the <code>toComp</code> method of the body layer to get the relative position of the pin to the composition space, and then you have to apply expressions to link the other transformation properties of the body layer, but it can be done.</p>
