Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Stretchy/Bouncy Connection?

  • Stretchy/Bouncy Connection?

    Posted by Matt Hall on December 14, 2006 at 7:50 pm

    I’m looking for a method to link two layers together. I have a head and a thought bubble layer. I want the thought bubble to follow the head, but to lag behind in time, sort of like it is attached by an invisible stretchy wire. This is easy enough if you keyframe it, but I want to automate it so I only have to animate the head layer. Any suggestions?

    ……………………..
    Matt Hall
    Hallway Media, LLC
    http://www.hallway-media.com

    Matt Hall replied 19 years, 4 months ago 2 Members · 4 Replies
  • 4 Replies
  • Mylenium

    December 14, 2006 at 9:55 pm

    Use an expression with valueAtTime().

    head=thisComp.layer(“Head”);
    delay=0.1; // delay in seconds
    offset_X=100; //offset from head in pixels
    offset_Y=100;

    X=head.position.valueAtTime(time-delay)[0]+offset_X;
    Y=head.position.valueAtTime(time-delay)[1]+offset_Y;

    [X,Y]

    Mylenium

    [Pour Myl

  • Matt Hall

    December 15, 2006 at 5:19 pm

    Thanks! Exactly what I needed. I had accomplished this before using a much more complicated precomping/time strecthing method, and this is so much cleaner.

    Now to push my luck…
    Is there a way to add on to this expression to give the child layer some bounciness? So when it stops it wobbles a bit instead of coming to total stop?

    many thanks,
    matt

    ……………………..
    Matt Hall
    Hallway Media, LLC
    http://www.hallway-media.com

  • Mylenium

    December 15, 2006 at 8:48 pm

    Assuming you are only halting once, I’d hand-keyframe it. You can use this modified expression – it will respect all hand animation and still follow your head.


    head=thisComp.layer(“Head”);
    delay=0.1; // delay in seconds
    offset_X=100; //offset from head in pixels
    offset_Y=100;

    X=position[0]+head.position.valueAtTime(time-delay)[0]+offset_X;
    Y=position[1]+head.position.valueAtTime(time-delay)[1]+offset_Y;

    [X,Y]

    Mylenium

    [Pour Myl

  • Matt Hall

    December 15, 2006 at 9:52 pm

    Thanks!

    ……………………..
    Matt Hall
    Hallway Media, LLC
    http://www.hallway-media.com

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