Moving ball along curve

Hi,

I’m having a little problem with a project I’m working on (attachment).
I wan’t to roll a ball from one end of the curve to the other, and back (and this in a loop).
I managed it to go from one side to the other but it doesn’t follow the curve…it flew instead of roll.

Can someone please help me?

Thx alot!

Attachments


If you don’t need it to physically roll along the curve, then why not:

a) Duplicate the curve, but scale it so it fits ‘inside’ the other curve by a distance of r, where r is the radius of the ball.
b) Make the ball follow the inner curve by adding a Curve modifier to the ball, specifying the inner curve as the object to follow).

If you want the ball to actually roll (i.e. rotate about its axis in direct relation to the distance it has travelled along the curve)… then I have no idea, without doing a lot of experimentation :smiley:

Firstly, you might want to have a look at Philippe Roubal’s Animated Car Tutorial. It’s probably more than you need, but has some good suggestions.

Partly based on that, here is one way to do what you want.

In addition to a ball and a curve (not a curvepath), we need a ‘helper’ mesh object:



You might think of it a a crude representation of the ‘footprint’ of the ball.

This footprint has the curve as a modifier, and an IPO for its position along the curve:



The ball has a ChildOf constraint to the footprint:


It is important that this be parented to the mesh, not the object, otherwise the ball won’t see the curve modifier. I just made a single vertex group consisting of the whole footprint, and used that in the constraint. As an alternative to a constraint you could probably use vertex parenting.

If we run the animation now, the ball should slide smoothly along the curve.

The final step is to make it roll, which requires a driven IPO. We should have one full rotation each time the footprint moves along the curve by the circumference of the ball:



You should now have a rolling ball. I had to flip the sign of my rotation to get the right result, but that may depend on the details of the footprint mesh.

Best wishes,
Matthew