I am trying to create a swim cycle animation for a fish by adding a curve modifier to the fish then moving the curve through the fish. As you can see at first the fish is roughly centered on the origin enter image description here

but then when I move the curve the fish ends up about a meter behind the origin enter image description here

I think this is a result of the fish trying to move at a constant speed along the longer curved path but do not know how to fix it by locking the movement of the fish, changing the speed, or doing it in another, better way.

  • $\begingroup$ make sure you apply all Object transforms with CTRL+a on both the Mesh and the Curve. $\endgroup$ – rob Feb 25 '19 at 11:44

Maybe your problem is that you didn't put the curve origin at its beginning point?

About the speed, you can change it as much as you want if you create some new keyframes for the curve and play with their position or with the curve handles in the Graph Editor.

Another simple way to do what you want is tu use a Lattice modifier:

  • Create a Lattice object.
  • Stay in Object mode, give it the size and proportion you need, of course it needs to be bigger than your fish.
  • In the Properties panel > Data, give your lattice some edge loops in the U axis (or in the V axis, depending on its orientation). You can even reduce the V and W values to 1.
  • In Edit mode, deform your lattice, use the Proportional Editing option to make it smooth.
  • Select your fish, give it a Lattice modifier, choose the lattice as Object.
  • Move your fish or move your lattice to make the fish bend.

enter image description here


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.