ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

Elliptical Motion path conundrum

COW Forums : Adobe After Effects

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
Tristan Nieto
Elliptical Motion path conundrum
on Jun 2, 2009 at 11:29:13 am

Hi all,

A quick challenge for everyone out there.

I've got some scrolling text, about 15 different lines, that I need to get through with about 4-5 lines on screen at once.

However, instead of the lines of text scrolling straight down across the page, we've got them scrolling on an elliptical path - effectively a semi-circle that swings the text in from the bottom left, up to the centre and then off to the top left.

What makes this a conundrum is that, because the path is elliptical, the speed the text travels along the Y axis is not constant, causing the lines at the top and bottom of the screen to bunch up and overlap.

The challenge is, how do I get the text to follow the same elliptical path, but keep the Y velocity constant, so the spacing between the lines doesn't change?

So far, I've tried animating the X and Y co-ordinates individually, which mangles the path too badly, and trying to being it back into a perfect circle just by adjusting the X velocity is practically impossible, (and sadly, it has to be a perfect circle, or at least damned near it, to match the curves of the background image). I've also tried some expressions, but it's far too complex for me.

Anyone know how to do it?

Thanks,
Tristan


Return to posts index

Kyle Hamrick
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 2:54:38 pm

Just off the top of my head:

Couldn't tell for sure whether you're going for a circle or an ellipse. If it's a circle, what if, instead of the motion path, you set these all to be parented to a single null? Make the null at the center of your circle, attach text, offset anchor point... voila. Repeat at appropriate intervals. You can then set up a simple rotation expression to keep the items level while they rotate around.

Let me know if you'd like more details on how to do any of this, if it works for your particular idea....



Kyle Hamrick

Editor/Motion Graphics Artist

http://www.kylehamrick.com


Return to posts index

Tristan Nieto
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 3:52:47 pm

Thanks Kyle,

Good thinking, but sadly it doesn't get around the problem. Just as with the motion path, if the text lines are separated by radians (or degrees) from a centrepoint, they still will collide at the bottom and top.

The problem is basically that one "unit" (whatever you want to measure by) around the edge of a circle will always equate to something different in x/y co-ordinates, depending on where you are. Points at the bottom and top of the circle will tend towards high values for x and low values for y, whilst at the sides this will reverse; lower x values and higher y values. In other words, as you move around the edge of a circle, your x velocity is quite low at the sides, (because you're mostly moving up and down) and high at the top (because you're mostly moving side to side).

If all that's too mathsy for people, just copy a circle mask to an object's position, then hit the button that separates the x and y keyframes, and have a look at the speed and value curves. Even though the object moves the same distance around the circle every frame, the x and y graphs give you something else entirely. What I'm looking for is a way to have a circle shaped path with the Y speed graph being totally flat.

And if all this sounds terribly confusing, join the club ;-)



Return to posts index


Kyle Hamrick
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 5:23:56 pm

Aha. Yeah, that makes sense.

...any way you can get fewer of them onscreen at once? 2 or 3 seems a lot more doable, spacing-wise. Maybe you can cheat the movement at the bottom and top to be faster, so you can get them out of each other's way a little easier?

Maybe you can position them on the circle, but animate them on/off in a different way, aside from having them revolve around it?

Obviously, without seeing your actual example, it's hard to offer anything too specific. Just throwing out suggestions.

Kyle Hamrick

Editor/Motion Graphics Artist

http://www.kylehamrick.com


Return to posts index

Roland R. Kahlenberg
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 5:31:59 pm

[Tristan Nieto] "And if all this sounds terribly confusing, join the club ;-)"

I am confused. Howzabout a QT?

RoRK

broadcastGEMs - AEPro Volume 02 (Professional Adobe After Effects Project Files - Now Available).

Adobe After Effects Training in South East Asia.


Return to posts index

david bogie
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 5:47:15 pm

I'm confused too. You lost me with "mathsy."
I deal with all velocity issues by using a null and parenting the items I need to move to the null. And for almost all text issues that require precise timing, I set each item up as a separate layer.

bogiesan






Return to posts index


Matthew Woods
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 7:23:17 pm

I might try parenting your lines to a a null which you animate along the y access at a constant rate. This gives you your constant vertical scrolling. I'd then turn off all lines but one, and animate its position along the x axis placing keyframes at the top and bottom of your curve as it scrolls up the y, and one at the apex of the curve that you set to "rove across time". I'd then adjust the easing/speed of the first and last keyframes so that your one line follows the curve. Once the one line looks good, I'd copy and paste those keyframes to your other lines and offset them so that they all repeat the same movement.

Am I making sense?

-Matt



Return to posts index

Dan Ebberts
Re: Elliptical Motion path conundrum
on Jun 2, 2009 at 8:14:25 pm

I'm not sure if this is exactly what you're looking for, but this position expression should give you a constant y velocity for a path with 2 or more keyframes:

n = thisProperty.numKeys;

if (n > 1){
t0 = thisProperty.key(1).time;
t1 = thisProperty.key(n).time;
v0 = thisProperty.key(1).value[1];
v1 = thisProperty.key(n).value[1];
y = linear(time,t0,t1,v0,v1);
[value[0],y]
}else{
value
}



Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2019 CreativeCOW.net All Rights Reserved
[TOP]