adaptive rotation based on a point

Moderators: Disciple, zlovatt

Post Reply
mihak
Posts: 5
Joined: March 23rd, 2008, 6:50 am

Hello!

I'm just working on a little project. I have an object that has animated position, and i wanted it to aim at the certain point. So here is a short amateurish expression i wrote:

Code: Select all

x1 = content("Shape 1").transform.position[0];
y1 = content("Shape 1").transform.position[1];
x2 = -120;
y2 = 130;
value + [radiansToDegrees(Math.atan2(y1-y2, x1-x2))]
x1 and y1 is the object position (i was working with a shape, but you could pickwhip anything), while x2 and y2 are the target point coordinates. And i love that the after effects has built-in protection against division by 0 :P

All suggestions or fixes are welcome.
curiousturtle
Posts: 1
Joined: April 3rd, 2008, 3:22 am
Location: Aarhus, Denmark
Contact:

Just a small tweak that I use:

Code: Select all

fromPoint=transform.position;
atPoint=thisComp.layer("Shape Layer 1").transform.position;
delta=sub(fromPoint,atPoint);
angle=Math.atan2(delta[1],delta[0]);
value+radiansToDegrees(angle)
It makes it easier just to select and pickwhip new points. The fromPoint is of course your source layer and the atPoint is where you want it to point.

I think I've seen an even easier way to do this, but I'll be blowed if I can remember it.

Cheers,
Ben
Curious Turtle Professional Video
Training | Editing |Support

www.curiousturtle.com
SpotPost
Posts: 3
Joined: May 23rd, 2008, 6:51 am

Ben I think you mean this:

Code: Select all

lookAt(position,thisComp.layer("Target_Layer").transform.position)
Pop that into the 'Orientation' of a layer, and it will keep rotating to face the target layer. It stays aligned along the Z axis, so you may want to rotate the layer by 90 degrees on Y.

Yan Masterson
Spot Post Ltd.
London.
Post Reply