Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions Puppet Pin to Puppet Pin Parenting

  • Puppet Pin to Puppet Pin Parenting

    Posted by Drew Shields on March 28, 2018 at 3:16 pm

    Hello all!

    I’m trying to make one puppet pin follow the movement of another.

    Normally if I was doing this with objects I would just parent one to the other, but when I alt+click the position stopwatch by the puppet pin and pickwhip it to the position of another puppet pin the parented pin snaps to the location of the new pin.

    I’d like the parented pin to behave like a parented object, responding to the movement of its parent while maintaining its original position relative to it’s parent.

    Any help is appreciated,

    Drew

    Drew Shields replied 8 years, 3 months ago 3 Members · 3 Replies
  • 3 Replies
  • Dan Ebberts

    March 28, 2018 at 4:58 pm

    You need a reference point. If you’re keyframing the parent pin, you can probably use its position at time 0 as the reference:

    parentPin = effect(“Puppet”).arap.mesh(“Mesh 1”).deform(“Puppet Pin 1”).position;
    delta = parentPin.valueAtTime(0) – valueAtTime(0);
    parentPin – delta

    Dan

  • Steve Bentley

    March 28, 2018 at 7:07 pm

    Have you seen this?
    https://rainboxprod.coop/en/tools/duik/
    If you are working with puppet tools this free script/interface makes it a dream.
    It’s doing exactly what Dan is suggesting but looking after all the under the hood expressions for you. You could code it yourself with expressions but this fine gentleman has done it for you.
    And you get a really good IK that just makes puppeting easy – and gives you nulls to stand in for your puppet points that you CAN link with just the parent tool.
    As for learning curve, by the time you watch the three tutorials you will be up and running.

    It feels like cheating!

  • Drew Shields

    March 29, 2018 at 3:26 pm

    Thanks everybody!

    Dan, your information was especially helpful. I modified the expression slightly to reference another layer in the comp.

    I’m using this for facial motion capture, where one set of pins/points effects the movement of another. The tutorials I’ve seen online so far require the two sets of facial tracking points to be exactly on top of one another. This line of code will allow me to have a normal human face effect a face with cartoonish proportions!

    Take care,

    Drew

    parentPin = thisComp.layer("Shape Layer 2").effect("Puppet").arap.mesh("Mesh 1").deform("Puppet Pin 1").position;
    delta = parentPin.valueAtTime(0) - valueAtTime(0);
    parentPin - delta

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy