2

I'm trying to animate a null to follow an ellipse path. The path is rotated in 3D space. When I copy the path to the position of the null, it copies and the null is animated around the path but the 3D orientation setting on the shape layer is ignored and the null's keyframes are setup to point directly at the camera as if it was in 2D mode:

Broken null

In this screenshot, the red keyframe track is the position data pasted to the null and the white circle is a stroke of the path. Rotating the null doesn't do anything, of course, because it's the keyframes that are off.

I'm pretty new to this so I get the feeling I'm not describing the problem very well or there's a simple solution I haven't figured out yet. Any guidance would be greatly appreciated. Thank you!

1

The shape layer's path is in layer space. In other words the coordinates are relative to the layer, regardless of where the layer is in composition space. The contents of a layer are always at 0 on the z axis relative to that layer. So when you apply that path as the motion path to a layer in composition space, it will always move on the X/Y plane, at 0 on the z Axis. To make the null layer use the same coordinate space as the shape layer, you can simply make it a child of the shape layer. Then the coordinates will be relative to its parent. If this is not possible, you could use the toWorld() layer space transform in an expression, thus:

thisComp.layer("shape Layer").toWorld(value);

and apply that to the position. What that does is take the position value and find out where that would be in the layer "shape layer", then give the value of where that is in comp coordinates.

There's a little gotcha, in that paths on shape layers are measured in comp space. Before copying the path to the null, you might want to set the anchor point of the shape layer to the center of the content, using ctrlalthome. Otherwise you can subtract its position from the value of the copied path:

thisComp.layer("Shape Layer 1").toWorld(value-thisComp.layer("Shape Layer 1").transform.position)
| improve this answer | |
  • This will never not break my brain – tomh Sep 17 at 15:08
  • Ha! If you think that's hard, try understanding Quaternions in Blender. They literally involve 4-dimensional hyperspheres! – stib Sep 18 at 0:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.