I'm using a Clamp constraint to animate a camera along a path for a long, continuous fly-by shot with pauses and target changes along the way. I'm keyframing on the transform of the camera dolly, but every time the path is modified, particularly extended, the position of the dolly in all the previous keyframes is thrown out, requiring lengthy repositioning and re-keying to correct all the timing. I've experimented with using a Track constraint instead, and animating the Offset, but this still suffers the same issue when the path is modified.

This behaviour suggests to me that, even when keying on a transform rather than an offset, Blender is doing some math and quietly converting everything to a relative offest. When the length of the path is modified then all the previously keyed positions also change because they're relative to the length of the path rather than being, say, fixed distances from the start of the path.

Is there a way to 'lock' an object to a fixed position in a keyframe so that it doesn't move when the length of the path is extended, i.e. if object A is X units from the start of the path in keyframe Y, when segments are added to the path then object A is still X units from the start of the path in keyframe Y.

Gracious thanks for any advice, it's much appreciated and may save me from this slow descent into madness. My apologies if my description is not clear, if this question has already been solved elsewhere, but especially if I am doing something really dumb, missing a trick, or otherwise dementedly trying to stuff a round thing into a square hole.


Maybe there's another solution but here is a trick that may satisfy you:

  • Create your curve, give it the right direction, put its origin at the beginning.

enter image description here

  • Create an object (here a sphere), in Edit mode select all the vertices and assign them a vertex group, in Object mode put the object at the exact same beginning point as the curve, give it a Curve modifier with the curve as Object.

enter image description here

  • Create your camera, give it a Copy Location constraint with the sphere as Target, and the sphere's vertex group as Vertex Group.

enter image description here

  • Now when you move your sphere forwards on the right axis (here the Y axis), it follows the curve and the camera follows as well. If you extrude the curve, it won't move the camera's position.

enter image description here

  • $\begingroup$ Thank you so much, I will try this at once and report back. $\endgroup$ Oct 4 '19 at 10:56
  • $\begingroup$ Aw yiss! That worked, the existing keyframe object positions remain fixed when the curve is extended. Thank so much for your kind help, you've just saved me a ton of work and I really appreciate it. $\endgroup$ Oct 4 '19 at 11:53
  • $\begingroup$ For anyone else trying this approach there are a couple of small things to note that might save you a little fiddling time: 1) To scrub the dolly object along the curve, animate on the same object axis that is selected in the Curve modifier's Deformation Axis property, e.g. the Curve modifier defaults to X so animate on the objects X position. 2) Using an empty as the camera dolly won't work because you need a vertex group to lock the camera to in the Copy Location constraint, so you may want to uncheck the Show In Renders property of your dolly object. $\endgroup$ Oct 4 '19 at 11:54
  • $\begingroup$ I also just found this solution, which splits a dolly track up into a number of smaller curve objects, then adds a Follow Path constraint for each 'sub' curve to the dolly, and animates the Influence properties of these constraints to switch the dolly from one track to another. This may be easier in some use cases and having multiple smaller segments may make it easier to manage in terms of workflow, particularly if there is a lot of change to the path. Your mileage may vary. $\endgroup$ Oct 4 '19 at 12:12
  • 2
    $\begingroup$ Ok, interesting, I guess someone should create an easy tool for this kind of situation, like a Follow Path with an "absolute distance" option $\endgroup$
    – moonboots
    Oct 4 '19 at 12:54

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.