3 Replies Latest reply on Sep 25, 2014 8:05 PM by A. Cobb

# Light layer = 3d, null layer = 2d. What to do ?

Hi all, I'm trying to compose a distant rocket launching into the sky in the background of a mountain shot that I have. It's handheld footage so it's a little shakey, so I created a null layer and motion tracked the footage with the null as the target. Then, I created a light layer (I eventually want to use this for a smoke trail in particular) that I want to have keyframed so it goes from the mountaintop -> up to the sky, then parent it to the null layer. With a 2d object, this method works perfectly.

Problem is I *think* the z-space introduced by the light layer since it's a 3d object doesn't allow it to parent the way I want it to to the null's x-positioning, and I'm getting a light that goes from the mountaintop to the sky but does not mimic the null layers tracking positioning. Instead it goes from mountaintop -> sky while shifting side to side.

How should I be approaching this? My brain is starting to melt. I think a light layer is necessary because all the other 2d layers I've tried don't allow particular to leave trails. I'm assuming I need some sort of expression that'll allow the 3d light to parent to a position in 2d space? I don't know. My brain is fried now after fiddling with this for hours, very frustrating -_-

• ###### 1. Re: Light layer = 3d, null layer = 2d. What to do ?

If you're going to use Particular anyway, discard the 3D light and use particular.  You'll save yourself a lot of problems.

• ###### 2. Re: Light layer = 3d, null layer = 2d. What to do ?

Particular allows you to use a light to control an emitter, which is probably why the OP is using one.

• ###### 3. Re: Light layer = 3d, null layer = 2d. What to do ?

If you can position a null or a hidden solid in 3D space to approximate the plane on which the rocket is moving, you can use expressions to project the position of the null out and onto the plane.  Use a position expression on your light that goes something like this:

N = thisComp.layer("Null 1");

plane = thisComp.layer("Solid 1");

plane.toWorld(plane.fromCompToSurface(N.position, time))

Substitute the name of your null for "Null 1", and the name of the null or solid that represents the 3D plane on which you want the light to move for "Solid 1". This expression assumes the tracked null isn't parented to anything.  If it is, you'll need to transform the null's position to comp space before transforming from comp to surface.

ETA: Thinking about what you are doing more, you are probably tracking the background, not the rocket, which means you really want to have your 3D camera pivoting to mimic the camera shake, so you can make your rocket move naturally within the scene.  The same idea applies, but instead of trying to set up a plane for the rocket's path, you'll want to set up a plane at the simulated distance of the scene element you are tracking, then auto-orient the 3D camera either to that object, if it is at the center of the view, or to a child object placed at the center of view.