Cameras and timewarps

I’m working on a transition between 2 shots with the intention that they should look like a continuous camera move. Each shot involves live action and CG elements so I have tracked cameras. The plan is to use a middle camera to smooth out the movement from camera 1 to camera 2.

Each shot is comped at normal speed but in the edit there are variable timewarps applied to each. My output will be a single render which takes this into account. I think I need to somehow translate each timewarp into camera 1 and 2 by compressing the animation curve. This is the bit that I figured yet, although I have a bit of time while I set up all of the projections.

Any thoughts gratefully received.

Could you render the entire sequence including your camera 1 to camera 2 via a 3rd virtual camera at the original frame rate and then apply the timewarps to your render?

Trying to match a tracked camera move to a time warp could prove tricky. If the adjusted camera track is slightly off from the curve of your timewarp then the track won’t stick. If someone has a technique for this though I’d love to hear it.

This makes loads of sense, thanks @AdamArcher. I was getting carried away with build process without being pragmatic. Let’s see if the client goes for it :crossed_fingers:

Unfortunately timewarping the render won’t do it. I need to share my camera back to CG.

I believe the right approach will be to use an expression so the timewarp curve drives the duration of the camera curve but I’m not sure of the expression that will do this.

Once again, your views are appreciated.

Ah! The old eval function! This is covered in some depth here:

But blink and you’ll miss the expression itself, so here’s a post with one that should work:

Good luck! It’s quite satisfying once you get it to work!


Thats the one!

1 Like

That solution worked a treat on the first shot and camera - the retimed wireframe lined up to the retimed plate.

When I try the same steps on the second shot I get the message ‘Expression: channel expression loop.’ I’ve tried all that I can think of and it comes up every time.

Can anyone shed light on this and what might be causing it?

Make sure that “Camera” is changed to the name of the untimewarped camera for that clip

There’s also an issue depending on what version you’re using, that you can’t overwrite an expression. You need to clear the original expressions first before entering a new one.

I find the best way is to duplicate the untimewarped camera and add the exppresssion into that new duplicate

I’ve started a new project, clean action and timewarp, tried the same expression “eval (Default , timewarp78.Timing)” and still getting the same message ‘Expression: channel expression loop’

Is “Default” the name of your camera tracked camera?

If there’s an expression loop, it sounds like you’re typing the name of the camera into it’s own channel.

The expression should be typed into a new camera and reference the original camera.

Hey @leovfx it’s possible but the expression was working for me earlier so I certainly hope not! I’ve been through reboots and new setups and it is working now so thanks everyone for your invaluable help.

I have had this and it is very frustrating. Works on one and then suddenly doesn’t.

The problem is a reoccurring bug when using the eval expression on a 3D camera.

An expression exists on a parent or a child. This can be overcome with repeat attempts.