Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Expressions Parenting position properties of puppet points while retaining relative positioning (similar to the way layer parenting works)

  • Parenting position properties of puppet points while retaining relative positioning (similar to the way layer parenting works)

    Posted by Alex Ezorsky on November 5, 2012 at 6:09 pm

    I have motion tracked myself dancing. I have a different null layer for each point (head, neck, shoulder, elbow etc.)

    I have a layer that is an image of a horse in a human looking position. It is puppet tooled with the same points on its body as the points I tracked on mine. I want him to dance like me.

    I could just alt-click the position properties of each puppet point and parent them to the position properties of the nulls, but that will make the points exist exactly where the points were on me. But the horse has slightly different proportions than I do. For example a horses ankle is way up high.

    I want the puppet points to move relative to the nulls but retain the ability to change that relative position the same way you can when parenting a layer to another layer (but cannot when parenting a property).

    I feel like the solution is on the tip of my tongue but can’t get it.

    Thanks

    Dan Ebberts replied 13 years, 9 months ago 3 Members · 2 Replies
  • 2 Replies
  • Darby Edelen

    November 5, 2012 at 6:34 pm

    I think this should work. There may be some cases I haven’t considered but give it a shot and let me know how it goes:


    l = thisComp.layer("Null 3");
    p = l.fromComp(toComp(value), inPoint);
    l.toComp(p);

    This would be applied to the puppet pin position. The variable ‘l’ should point to the null object that should be associated with that pin.

    Darby Edelen

  • Dan Ebberts

    November 5, 2012 at 6:38 pm

    Something like this should work:

    p = thisComp.layer(“Null 1”).transform.position;
    value + p – p.valueAtTime(0)

    Or, if the null is parented, like this:

    n = thisComp.layer(“Null 1”);
    value + n.toComp([0,0,0]) – n.toComp([0,0,0],0)

    In either case, nothing will happened unless the null has been animated.

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