2
$\begingroup$

Actually quite an easy problem, but I seem to be unable to find any solution for it.

I want to move objects along curves while moving the camera on another curve pointing at the objects; for this, I'm using a "follow path" constraint (with another "track to" constraint for the camera for the rotation) while animating the offset. Obviously, the rotation, location and speed of the objects/camera don't match up perfectly right from the start, so I'd like to manipulate the curves they're moving along on the go, or work on segments, perfecting them, then extrude the curve and move on. However, the "follow path" constraint seems to only feature a sort of "0-100%" offset, so whenever I manipulate the curve, objects move along with it, basically making it impossible to work properly. Is there any possibility to make the "follow path" constraint use a sort of "distance" offset, where extruding the curve won't affect previous segments of the curve (making the object keep its position) - like, an actual constant offset? It would be really painful/impossible having to have a perfect curve first in order to then line up camera/objects.

I appreciate any advise on how to achieve this kind of "live-tweaking" offset function.

$\endgroup$
2
  • $\begingroup$ In a situation like this, I'd recommend not using a follow path constraint. Instead, you can vertex parent your camera to a vertex with a curve modifier. Then to animate the camera, you move your vertex object. That makes it easier to control distance along the curve (and to match up with rendering objects that use a curve modifier.) $\endgroup$
    – Nathan
    Sep 12, 2019 at 20:59
  • $\begingroup$ Thank you for your recommendation, I just gave it a try. It seems to be a bit unhandy compared to the controls of the follow path constraint, but it gets the job done. If you'd use the content of your comment as an answer, I could mark the question as answered. $\endgroup$ Sep 13, 2019 at 23:42

1 Answer 1

2
$\begingroup$

Coming to this a few years later, took me a while to figure this out, and I didn't do it exactly as Nathan indicated, but close enough, and I thought I'd explain a bit more.

The idea here is that you're going to get a mesh object (like a UV Sphere EDIT: Cube works better see below) to follow the path using the Curves modifier, like in this video: https://www.youtube.com/watch?v=oHkzyH9dpv4

You need to ensure that the mesh object uses the Curves modifier properly, I used the Z axis as the "deform axis" (EDIT: Any axis works, I now like to use Y since it's closer to the G key) Before you apply the modifier, you'll have to use Alt-G to clear the locations of both the curve and the UV sphere so that they're both at the world origin. I'm sure there's a different way of doing it to make it work, but I'm new to this, and world origin was the only way I could get it to work.

enter image description here

After that, you can use the Z location attribute to move it along the curve enter image description here

Notice that only the Z value changes under the Transform properties, so it works really similarly to the "Follow Path" offset and can be animated and keyframed.

Next, you vertex parent (NOT regular parent, it won't work) your camera to the UV Sphere (I didn't do it perfectly because I'm new to using parenting properly) but it works pretty fantastically and allows me to get all the shots I want!

Now when I extrude more camera path curves or adjust the points, the UV Sphere (and attached camera) stays right where I want it to.

EDIT: I've come back to this a few years later and wanted to add more clarity. I'll list out the steps completely here:

  1. Create bezier curve
  2. Create a mesh object, a cube works best
  3. Modify the cube by deleting all faces and creating a edge connecting two of the corner vertex points. Subdivide this edge so there's a point in the exact center of the cube. This is important for later because when you vertex parent the camera to the cube, it will select the nearest vertex, and if you don't have a vertex at the center of the cube, it will connect to one of the corners, which will create a strange offset.
  4. Add a camera to the scene
  5. Set the curve, cube, and camera to world origin by clearing position (Alt+G)
  6. Select the Camera first, then the cube and select Parent > Vertex. Since both the camera and the cube are at the same location, the vertex of the camera should perfectly overlap with the vertex you created at the center of the cube, so when you vertex parent, you shouldn't see anything visually happen. However, after this step, if you move your cube, your camera should move with it
  7. Select the cube and add a curves modifier to it. Set the bezier curve to the target object and the cube should immediately jump to be on the curve, bringing the camera with it. I like to set the Deform Axis to Y since it makes moving it simpler.
  8. To move your contraption, select the cube and move it by pressing G, then press Y to constrain the movement to the Y axis as specified by the curves modifier.
  9. You can now keyframe your camera by keyframing the Y value on the cube location.
$\endgroup$
1
  • $\begingroup$ Just wanted to say, a few months later, I had another project where I needed to do this and completely forgot what I did. Good thing I made this post so I can come back and remember. Call out to all the other people with random answers to stuff, post answers for everyone, including your future self! $\endgroup$ May 26, 2022 at 2:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .