Odd deformation using the curve modifier

So I’m doing a quick sketch of Nemo’s dad and I want to add a slight non-destructive deformation to him; letting his body follow a curve.
Using a very basic two-point curve it looks like this:


With a curve modifier using default settings it deforms like this:


Why is that? I want his body to follow the curve and his head to stay with the eyes and teeth. Changing the deformation axis doesn’t help.

I hope someone can help!


WIP render

Bonus render:



Silly!

Since you don’t want to show your blend, I can’t say what you did wrong. --Nobody can.

Any way, here is what I did right…


I made a (quick) fish from a deformed sphere. I added a Bezier curve from head to tail and hooked each end of the curve to an empty. (Use [CTRL H] in Edit mode.) In Object mode, I added a Curve modifier to the sphere/fish. I fixed the axis. Then I edited the curve again to fix its tilt (in the [N] panel) so that my fish appears untouched.

And it just worked as seen on the copy at the bottom of the snapshot. I just need to rotate and move the empty at the tail to make my fish swim… without moving. To make it move as well, I’d just parent the fish and the tail’s empty to the head’s empty so that if I launch the head’s empty on a trajectory (a curve of example), everything follows.

Edit: I just tested before to post and I wish to add that it’s not a good idea to use an empty as head’s hook. A regular object gives you better control when you animate it on a curve.

The things that I did right, I think: The fish and the curve have the same origin and since I didn’t alter them in any way in Object mode, their scales are 1x1x1 and don’t need to be applied.

So, to fix your scene, check the origins, the axes, the tilt and the scales. That’s all I can think of without actually seeing your blend.

I tried relocating the origin to the first point in the curve - it didn’t work,
but whatever! I just moved the whole mesh to have it fit properly.


WIP render

But thanks anyways!