The deform modifiers in Blender have to be the weirdest implementations I’ve ever seen. So far I’ve always avoided to use them, because they work in unpredictable ways. The Simple Deform modifier (especially the Bend option) is weird. The Lattice modifier also can result in strange deformation right after you apply it. And now I’m back at the Curve deform modifier which is the strangest of them all. Unless you apply pivots and internal rotations in a very specific way, you will not get the result that you expect. I’ve changed pivots, applied rotations in different ways and it always gets screwed up. Does anybody have a “magic formula” for how that works?
Here’s a typical result after applying the Curve modifier. It’s just one version - all the other ones are messed up as well. The spline is in the center of the bent cylinder.
Yesterday I’ve spent hours to get a pre-bend geometry rigged in some way and all the methods failed. The bones didn’t assign any weights to my model, the lattice deformed my model right after applying the modifier and the Curve modifier does the same (something like the example above). This has to be made a little bit easier. I’ve worked in Maya and 3DS Max (years ago) and never had any issues like that.
There are two different magic formulas, actually. Your choice:
Leave the origin of your curve and curve deformed object at the world origin. Never transform them. (There are actually a few kinds of safe transformations you can do, depending on the curve axis.) Should be able to adjust the mesh to the curve with this relationship. If you want to move the curve, move the controls + handles in edit mode.
Put your curve origin at the first control point. Put the origin of your mesh at its -X boundary, at the same point as your curve origin. Leave both untransformed (same as above, some are actually safe.) Parent both the curve object and the mesh object to an empty, and only ever transform that empty to move your curve object around.
Thanks for your elaborate guide. It’s obvious that the Blender foundation should invest a little time to make these modifiers easier to use. One little wrong step along the line and the whole modifier falls apart.
I tried your second option. Not sure where the -X boundary would exactly be. But when I set the pivot to the first control point of the curve and use the same pivot for the tube, the tube gets moved to the end of the curve and is flipped as well.
It looks like your lattice is scaling the base object- have you applied transforms (Ctrl A) on both the base object and the lattice? That should fix that
We want the origin at the first handle, not the last handle. They are not equivalent. For a non-cyclic curve, you can find the first handle by enabling the display of curve normals and seeing the direction of the arrows:
Saying the -X boundary also assumes you’re using the default, X deform axis for your curve modifier.
I am not sure what you’re trying to do with your lattice. It looks to me like you’re trying to use it as a curve, but then you’re double dipping on your curve. You might be trying to use it as a mesh deformer, which it is not.
It works very nicely when we don’t double dip curve + curved lattice:
My lattice, with sufficient resolution, is getting curve deformed, then my mesh is getting lattice deformed, and it’s exactly like my mesh was getting curve deformed.
If instead, we wanted to deform it from some specified, not-square shape, we might use a mesh deformer. We’d create a new mesh (not a lattice) in the base shape, then give our old mesh a mesh deform modifier targeting that new mesh and click bind:
I did a few more tries also following your instructions, but it doesn’t work. If I edit the curve and conform it to the pre-bend geometry of the object, the said object always gets deformed the moment I assign the Curve Deform modifier. There’s no way around it. I will just try to work my way around it by rotation parts of the geometry with a falloff. Not that intuitive but at least it works. Those deform modifiers are not really usable.
I’ve created a quick example scene that you can check out and try to see if you can make it work. For me it doesn’t. The half torus gets twisted as soon as the curve modifier is applied.
You are simply misunderstanding what the curve tool does. You’re thinking it somehow binds a curved shape to a similar curve. It does not do that. It curves a straight shape. It’s like saying, “This hammer is no good for driving screws!” No, it definitely is not good for that.
Here is one use of a curve modifier, where I create the shape you have in that file, by using a cylinder and your curve: Blender_CurveDeform_02.blend (114.3 KB)
If what you want to do instead is bind to a curve, then we’re talking a mesh deform modifier, and you first need a mesh deformer that is bound to that curve:
OK. I understand now. So the object deforms TO the curve at the point of assignment. But this only works well, when the original object is straight. So the Mesh Deform modifier is the better thing to go with. I’ll try that.