SourceRectAtTime() Expression- Adobe After Effects tutorial

The new sourceRectAtTime() can get you the width and height of text and shape layers. It’s new but it’s good. If you have Ae CC 2014.2 (aka 13.2.0.0) then you can enjoy this. If you don’t have that option open and you want to make solids resize to text you should check out an older tutorial on this site.

 

This tutorial also talks for a long time about expressions in general, so if you’re not into that… get out now!

 

This is the expression we wrote on the size:
s=thisComp.layer(“Hello people”);
x=s.sourceRectAtTime(time-s.inPoint,true).width;
y=s.sourceRectAtTime(time-s.inPoint,true).height;
[x,y]

 

This is the expression we wrote on the position:
content(“Rectangle 1”).content(“Rectangle Path 1”).size/2

 

If you have any questions just let me know in the comments.

 

Download this project file:

This file ONLY works in After Effects 13.2 and newer.

Download DirectDownload Via GumRoad
ecabrams
evan.abrams@gmail.com

6 Comments

  • Robert

    21.02.2016 at 02:02 Reply

    I added a wiggle to the anaitmor that was doing 3D position. The mode was Add and I keyed Min 0 at start and finish and then keyed -15 in the middle and it gave and nice little one bounce effect.Not Inertial but not bad!

  • Ze'ev Gilad

    07.12.2016 at 17:08 Reply

    This is great, but is there a way to set the anchor point to the absolute center or corner of the region? It seems to have 0,0 at the bottom of the first row of text, whose height is arbitrary based on font and size.

    • ecabrams

      07.12.2016 at 17:15 Reply

      Hey Ze’ev. First, the anchor point is certainly not “arbitrary”. The anchor point for text is based on the paragraph settings and located at the baseline in keeping with the paragraph settings. You could use the sourceRectAtTime to relocate that anchor point into the middle centre of a layer if you wanted. You would simply need to move it to the average of the height and width right?

      • Ze'ev

        09.03.2017 at 15:41 Reply

        By “arbitrary” I mean that I don’t see a way to get its value through expressions. [0,0] seems to be at the center of the baseline of the first line of text. Which would change based on the font size of the first line. I need to vertically center blocks of text that have different font sizes.

        So not sure what you mean by “use the sourceRectAtTime to relocate that anchor point” … I can offset it from 0,0 — but I don’t know where 0,0 is relative to the bounding box.

        Or maybe I’m missing something.

  • Bardot

    07.07.2017 at 10:23 Reply

    Thank you so much for this! Big time saver!
    But I am trying to add a little chat bubble “tail”. I cannot add it to the rect,
    If I add a shape it won’t align to the bottom of the rect while the rect changes its size.
    I cannot seem to connect the “tail” to move with the bottom line of the rect.
    Or is it possible to add that shape directly to the shape of the rect?
    Tips are welcome and appreciated, as I am not very good in expressions, more the keyframe kind of girl 😉

    • Bardot

      07.07.2017 at 10:40 Reply

      thisComp.layer(“BOX”).content(“Rectangle 1”).content(“Rectangle Path 1”).size

      fowls ot, But in both directions. x and y scale. But I only want to move it up and down, aligning to the bottom of the rectangular and .

Post a Comment