sourceRectAtTime(); | After Effects Expressions
Vložit
- čas přidán 21. 07. 2024
- I created the most comprehensive intro to After Effects, ever. Join Launch Into After Effects today: www.jakeinmotion.com/launch-i...
sourceRectAtTime() is a crazy useful expression, but there isn't a great explanation of what it exactly does, or how to wrangle it to do what you want. In this tutorial I'll demystify this expression and teach everything you need to use it to your full advantage.
Feel free to ask questions or leave feedback in the comments! And if you have any ideas for other tutorials, I'm all ears!
My Skillshare Classes: bit.ly/jbskill
Explainer Camp: www.schoolofmotion.com/explai...
Instagram: bit.ly/jbinst
Dribbble: bit.ly/2tJz5Ay
Twitter: bit.ly/2tOX7ui
My amazing music package was made by Sonos Sanctus - sonosanctus.com
Dude seriously, this is super helpful. Thanks a ton for this excellent tutorial!
Not sure if i missed something...but between adding the size/2 and talking about the top and left expression your expression on the position for the rectangle completely changed
Wow, the explanation is SO GOOD and the content is still updated even 5 years after publication! Thank you very much.
This video explained the "why" behind the code so well! I rewatched it a gazillion times in the last 2 weeks and shared the link with coworkers who had similar questions. Just wanted to say thanks!!
Man, I've only whatched 10 minutes of this and I can say you save my hole life. I'll always be in debt with you. Thanks a lot!
i watched lots of video on youtube for sourcereactAtTime but buddy yours is the best....its explains everything about this expression and i loved the way you explained this..
loved it...
I’ve been trying to figure out how do get this style for my subtitles for AGES. Thank you so much.
Love your videos Jake! They are incredible and boost your learning after effect in-depth.
There is a few videos about SourceRectAtTime, but this is awesome, you explain very well the concept and how to fix some issues to deal with. Thanks for share!
Hi Jake! Just found your tutorial and it's really one of the best tuts I ever watched. On the one hand because I needed to solve exactly this problem :) , but also because it's explained so damn well! Thanks a lot! Hope for more to come! Only one thing: I did not understand the "mid"-variable-calculation.
Excited for your new channel! I've learned a lot from your Skillshare classes 👍
Jake! Your works have been an amazing inspirations for me ever since I stumbled upon your skillshare tutorials during my motion class at uni. I am so excited that you are starting this CZcams channel!! Keep it up :) and thanks for all your works!
Thank you so much!!! I'm super excited to be here 😊
Jake, you deserve more sub! you are better than anyone else here in youtube in explaining everything on your content. Looking after for ur next tutorials.
Thank you so much for incredible work you've done with this tutorial, this is very informative, there was couple moments where I lost, but need to rewatch it couple time to figure out all stuff. You're awesome. Thank you.
Welcome to CZcams Jake! Love your Skillshare classes!! I would love to watch more of these expression related videos as we don't get to see those kind of videos that much anywhere! :D
I have a loooot of expressions tutorials planned!
I can't find the words, when people put a smile while sharing knowledge... Thanks to you I've got what I was searching for
A text with anchro point always centered
A box autoresizing by the text input and at a certain distance, calculated on the size of the box from a specific point! Thanks a LOT!
Amazing tutorial, Jake! I'm hoping to create a MOGRT from this to save a ton of time! In case anyone else is having an issue when compensating for the offset path: there's a cut at 16:42 that resets the box's position to 0,0. I didn't notice this and my position wasn't at zero, so when I finished linking the position to the anchor point, my box would end up not aligned with the text. I had to go back to the beginning and retry with those position values at zero.
The way you detail the expression is very useful! You should go deep with every expression possible
Thanks so much for the great tutorial, it was really easy to follow!
I was wondering if you had multiple LAYERS of text, each with their own shape, and you wanted to keep the shapes left-aligned, how would you do that? Each different character has it's own kerning, for example, the letter "A" has a different left position to the letter "C". How would you compensate for that difference?
Jake really great tutorial. You are a great instructor ... keep up the great work!
Fantastic job Jake...really appreciate you taking the time to lay this out in such an easy-to-follow video! I did have a question that I wasn't able to solve on my end that maybe you could comment on. I like having the anchor point of the shape layer in the upper left corner...any way of changing that to different locations? Instead of having it scale from the left...it'd be nice to have one from the bottom or right side. Thanks in advance!
This was the simplest and most effective explanation on the topic, thanks!
JaKe Happy to see you started explaining on youtube
This video is very excellent
Great video. Very clear and easy to understand. I hope you start doing videos again.
Great and unique explainings tutorials... I really like your approach of making this things more understandable...
Not just copy pasting a code from video description.
Thumbs up and spot on my friend
Cheers
Great to see u here Jake hope to continue my learning here too thanks for posting here Cheers
Great tutorial. Comprehensive and conceptual. Thank you! I do have one question, is there a way to dynamically link the source of the shape layer? When i duplicate my text & shape layer the shape layer expression source remains bound to the original text layer it was created for. I want it to reference the newly duplicated text layer. Any help is appreciated.
Thanks for this really useful! If I could ask for a tip? How would you have "borders" growing together with the box/background but only on the top and bottom of it?
Thank you so much for this video. It was absolutely what I needed and tackled every problem I ran into. :)
Happy to see you on CZcams, Jake. Your Skillshare classes have been very much useful for me. Another channel added to my motion design library.
What kind of videos did you plan for the channel? I will ask for the motion design skills related than the tool(After Effects) related. Something like SoM would say, master the craft than the tool.
Thank you! Basically anything that wouldn't fit well into a Skillshare class. I have a lot of expressions explanations in the works.
Jake In Motion looking forward to them 💝
Great tutorial - about 60 seconds in I knew I was out of my depth but you kept me engaged to the end. (Maybe I'm a masochist).
For anyone struggling with the first step, make sure your paragraphing is centred and not left aligned
The anchor point will take placement based on the alignment
you are a great teacher! i could understand everything and im really bad at expressions
Hi Jake! First of all, Thanks for your awesome tutorials! I would like to ask you a question...
Do you think it is possible to create a similar dynamic text block that would be able to resize itself only in height with a fixed width ?
Where we can inject text content without caring about the line breaks. That could (eventually) be used as an Essential Graphics in Premiere.
A sort of auto-resize text box... Thanks in advance!
Duuuude.. Im working on a new promo graphics package for altitude sports (Centennial, Co) and this is literally what ive been looking for! THANK YOU!
the quality of this content is on point
This just saved me on a freelance gig. I'm not even religious but God bless you and your channel
Love this in-depth tutorial. Super useful. How ever, I’m trying to apply these to a specifically designed txt box asset, that has a certain margin on the left and a certain margin on the right, and the offset trick scales the text box up uniformly. Also animating the transform scale will squash the round corners any way around these two issues?
Aaaaaawesome! i've been trying to figure it out for a long time! Thanks!!
you are amazingly good at teaching! 10/10
Best sourceRect tut! Bravo!
Wonderful Tutorial!
I want to pay you for appreciation!
Six years later and you're still amazing... Why I ask you, WHY? Please don't anymore. And in 2030 when I've caught up to 2024 tutorials, I shall speak the same words... "Just WHY" (ps Don't ever stop! I need something to look forward to... besides Sto'Vo'Kor.)
The amazing tutorial I came accross Jake!! 🤩🤩
First of all a big thanks for the nice explanation to understand. However, I would like to ask a question as I am following this tutorial to make some responsive templates, I was wondering if I could set up a character limit for the text, I tried with substring (0,0), which actually worked, but I want to set a limit as length not height. But with the substring how I would define length and height for the typing limit.
Hope I am clear with my question with my bad English!! 🙈
Really clear and helpful tutorial - I was wondering how you made that color swatch on the side. I would find that very useful, as a work around I have a png in my project, click on it and pick the color as I need them but your way seems much more efficient. Have a great day, and useful video, thanks for putting out!!
Thank you! The color swatches are created using an invaluable script called Ray Dynamic Color from Sander Van Dijk. aescripts.com/ray-dynamic-color/
This is wonderful. Helped a lot. Thanks!
Great Tutorial Jake!
Can you able to make series of tutorials on expressions, so that we understand and use expressions in much easier way?
Absolutely, and I already have some of those planned out!
Awesome! I can't wait to see them! :)
Amazing Tutorial. You are a great teacher. But, i have a dude.
How is possible the shape layer react on the second text and choice which is more longer to self-resize?
AWESOME! again another PERFECT explanation.
u rule!
This channel is now my third favourite motion graphic tut channel
Thank you! What are your top two?
Jake In Motion mt mograph, Matt Wilson and also video copilot
Nice! I'll have to check out Matt Wilson.
You are great ! PLZ UPLOAD MORE TUT !!! I want to know about Expressions more!
Thank you!!
Really great video and good pace! In my case it is not a perfectly square rectangle, but a slightly tilted rectangle (rectangle with diagonal ends). Hence the "size" effect for the Rectangle Path 1 is not available. For my shape I only get an effect "path". How can I then address the x,y or width,height?
I tried it and it works. Thks! But because in Portuguese we caracteres like 'ç' and 'ã', height gets going up and down and messing around with the layout. I did the following adjustment to your code.
For size
s=thisComp.layer("text 1");
w=s.sourceRectAtTime().width;
[w,content("Rectangle Path 1").size[1]];
For position
s=thisComp.layer("text 1");
w=s.sourceRectAtTime().width/2;
l=s.sourceRectAtTime().left;
[w+l,content("Rectangle Path 1").position[1]];
Of course you must have a better ideia, but this one works also. My best.
This is a real godsend! Thanks Jake!
Love the 5 videos on the expression playlist, i was wondering if you made more videos on expressions and forgot to add them to the expression playlist.
Those are the only videos I've made dedicated to expressions so far. I do use expressions quite a bit in my tutorials though.
do you have a full course on AE Expressions? if not, please release one! I'd buy it in a heartbeat!
Hi, This is really helped me alot.
Awesome tutorial!
Thank you very much for great tutorial!
This is Great Help, Thanks you
Great tutorial! thank you!
Really good tutorial!
Awesome! So helpful, thank you so much!
Thanks a lot! Very interesting! But I have questions: How make auto scale text, without change invisible box? Text auto scaling, when adding letters& Thank's!
Thanks dude, this totally saved me today!!!
Man I looooove your intro!!!
🙌🙌🙌
WOW. Great tutorial! Thank you :)
Thank you so much. I'm just starting to work with expressions. Still it's rocket science to me, since I have no experience with coding at all. But thanks to your videos, I actually kind of get to understanding how they work (I guess). :)
Alright so i know this video is 2 years old, however i noticed theres a cut right at 8:36. you changed the code slightly on the position on the shape layer from just thisComp.Layer("text")/2 and changed it by copying the other expression and adding /2 on to the end of the width and height. I had trouble the first time i watched this but figured it out eventually. not sure if this is related but just in case anyone has the same problem i did.
I have the same problem and but still can't get it to work, tho. 😂😥
@@randallhernandez1644 Just copy the size expression to the position and add /2 - it is the same like it was before, but there is X axis and Y axis separately, which we need in next step
really good tutorial, still have to watch it a couple of times to get the hang of it.
This video is fantastic. Thank you.
You’re so awesome! Thank you!
This was amazingly helpfull. Thank you so much!
So So So glad I found this. Been going round in circles for months trying to fix all this.
now if only corner roundedness would work...
offset paths, begone, link size instead to padding then rounded corners work... Don't forget to set text at -1 to Ég so height can be set set at time at t-1...
Thank you for this video.
I am wondering if it is possible using expressions in After Effects to create functionality like Premiere has called "Responsive Design - Position"? I want to create a sidebar with multiple lines of text that could be 1, 2 or 3 lines as the first bullet point and then the following 2nd text bullet point below the 1st text bullet point, which could be 1, 2 or 3 lines long as well, would auto-follow with set distance between each bullet so the line spacing is more than the space between the line space of each individual text point? Is there a way to separate the y-axis of the position as that is the only variable I need to change between text bullet points?
This would be saved as a mogrt and that is why the text bullet points vary. I have been asked to create this in After Effects, save as a mogrt to be used in Premiere.
Would be really nice to have a refresh of this video? It is a great source rec at the time :)
this is the best video on this, closest ive come to understanding it!j
Hey Jake, really like the new CZcams format. You nailed it (again), in a smooth learning curve :) Thank you!
Any idea to set the rectangle height directly to the maximum height of the text (including ascenders and descenders) even without b, q, g, y... or capital letters in our text layer?
Hmm that's a tricky one. You may need to just hard code the height manually. I can't think of a way to have the box size its height to a character that isn't actually on the line of text.
Alright, thanks for your reply :)
Fabien Rousseau hey this is what I'm trying to do. I need to keep the height of the box consistent even when using (y, j, g etc) or accented letters (ä, é etc) but the box changed in height. It's also shifts position a few pixels when using certain letters. Did you find a way to do this?
Hi, I ended up with adding slider controls where I duplicated by hand the font size of the text. Then I set up the width expression to look at the sourceRectAtTime, and the height for this hardcoded values.
For multiline text, it's a bit trickier, so I added a line height control.
It's still not ideal because you have to break lines by hand, as we can't get the line count of wrapped lines in the text area. Though I'm sure it's possible to do it with further investigation, eg. looking to the sourceRectAtTime height and map this value to deduct the line amount.
You can look at the AE file here: www.dropbox.com/s/ungal7h3kbf4s01/sourceRecAtTime_Fix_Height_180517.aep?dl=0
Hope this helps!
Great work you are a great teacher, however I did have a hard time following along. I wouldn't say I am an after effects beginner but very limited in my expression javascript knowledge. I am using the latest version of adobe CC so maybe it has some things to do with the anchor points not finding each other between layers. This is my second attempt. I do suggest using less plugins and creating the FX from scratch as I got loss between them and had to figure it out myself. Thanks again.
Hey Jake Thanks many Tonnnnnnns....... your videos are just like life saviours for many MO Artists. Jake could you suggest us any particular source to learn especially about expressions from a-z. Also you pls keep on posting these valuable tutorials on expressions fundamentals and usage.
Thank you! Check out aminoplex here on CZcams.
thank you jake... I got a clear idea after going through those videos. Thanks a Ton again.
cool and deep. it seems there are not limits for expressions, or I can't see them.
Hi Jake In Motion,
I think your tutorial is great and simple, I'm trying to figure out how can I resolve this:
I have two dynamic boxes/titles that should have a relationship with each other.
The two boxes contain titles and are on top of each other on the Y-axis.
I would like an expression that makes both boxes/titles expand to the width of the longer box/title, i.e. The one with the longer text dictates the width of the titles.
I used this expression for the boxes:
title = thisComp.layer("Title").sourceRectAtTime();padding = effect("Padding")("Slider");[title.width + padding, title.height + padding];
Thank you for any help!
TNice tutorialS IS WHAT I NEEDED BRO, thank you for taking the ti and doing tNice tutorials for most of that are starting with tNice tutorials beautiful tNice tutorialng called
Happy channel launch, Jake! A question about the "mid" point; shouldn't it be: start + ( end - start )/2? Thanks for all you share and teach, brother!
Your equation sounds more correct than mine, but I tested it out and it didn't work. Somehow that equation is looking at the mid point of the layer, but in relation to the start of the comp. I'll be honest, I don't exactly know why mine works and yours doesn't, but I think it may have something to do with sourceRectAtTime possibly basing time on the layer, and not the comp. I really can't say for sure what's going on, but when it works, it works :).
Odd. All I did was add "start + " in front of your equation and it seemed to work for me. I will send you the project file, good sir. Cheers!
Here's my AE file: drive.google.com/open?id=1MyXIZKmIKbWGrNk9rKiQvT4_jEof3kvW
Love the setup, you can really tell what's going on! And that was my original approach too, but for some reason sourceRectAtTime doesn't look at those values the same way. Check out my modified version of your aep and you'll see what I mean: www.dropbox.com/s/2iy598p9hnyy1a5/Mid%20Point%20Test.aep?dl=0
If you set keyframes on the End value from 100% - 0%, the box goes away.
Thank you Jake!!! Question. What if I hit "Enter", it fails..dont?
You're the real mvp!
Thank you very much!! You safe my nerves
Hi Jake. How do you auto resize the textbox to the maximum width of two or more separate text layers?
Please explain how you create a text box that resizes over two or more lines of text when you have a long sentence (without manually adding 'enter' at the point you want the new line), I can only get this to work on 1 line of text. BTW I recently completed your Explainer Camp, awesome!
Did you ever figure this out?
Seriously amazing
This have been great Jake. Thanks for the time and effort to show us the expression.
I have a question though. I am trying to add a subtitle under the top text. And I want it to be in the same box as the toptext.
How would you do that? I am a bit of a beginner at these kinds of expressions. I tried an if-expression but then it scales from the center again and not from the left.
Did you ever find a solution?
@@alexthehamlin Are you having the same problem? I made a really ugly hack but I have later bought the plugin pins and boxes. That has been very useful.
@@jonathanaverstedt I am having the same problem, yes, and it's much more difficult than I anticipated. Just looked at the pins and boxes - looks like that could be the solution, thanks for the tip!
Thank you that was really very helpful
Is there anyway to attach the expressions to two text layers making it so either text can elongate it?
Hi, thank's for this video. Is it possible to have an expression that makes move an object at the end of a text? For example i would like to have a little line that will go to the end of a word, it will change of position at each word, du to differents lengths? So the goal should be to get the postion of the last letter of each text. Many thank's for your help.
U r amazing man! ♥
Hi Jake absolute amazing tutorial. The box works perfect with sourceRectAtTime, but now I need the another object stick on its top left corner , so that, it will move along with the corner of the master box. Some idea how can I make this? Tks a lot.
That would probably need some more expressions. I'm putting together another tutorial on how to make some more advanced graphics using sourceRectAtTime. Keep an eye out for that!
That's so much helpful..👌
Does anyone know if their is a way to fix the offset so that it remains proportionate to its desired state even when increasing the letter count, scale and position of the text? For example if creating the 'Accents' layer, you could (in theory) create a pair of brackets, from an unfilled, stroked rectangle by offsetting the start and end independently. The issue is that once I change the length of the words the offset adjusts and the brackets shift around the shape accordingly (e.g. creating an L shape rather than keeping the [ shape). Or is there a much easier way of doing this? I really want to have a template that colleagues can type into without making any changes or having to animate so need to do this cleverly. I'm just too dense to work it out! Any tips welcome. Thanks.
This is amazing and well explained but is there any way to reverse engineer this so that the text auto-scales according to the box? I am trying to make a website design transform to a mobile screen and I want to know if there is any way I can animate the text getting aligned properly inside the text box as it transforms from a wide website text box to a mobile screen. Someone, please help! I know you can use prototyping tools like Principle to get the desired output but at this point I am just so f'ing on how to get it done in Ae.