Deform mesh along curve

Hi, I have an object which I would like to deform based on the path of a bezier curve. I have looked up the documentation and found the sort of thing I wanted (http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Curves/Editing/Advanced) but despite my attempts it wasn’t working. I tried both methods, both of which produced the same result which wasn’t what I wanted (it was severely deformed). I have tried applying the rotation, location and scale but they didn’t make a difference. I have attached my .blend file for you to see. How do I fix my issue and what am I doing wrong?

Below are before and after shots of me trying to assign the mesh to my curve



and here is my .blend file: Grass Blade.blend (483 KB)

Thanks in advance.

Hi, I think your object should have segmentation possible to bend

Attachments



That didn’t seem to work. I tried adding more segments and a sub surf modifier and they both came back with the same result as before.

pioptr is right, you need more segements, and a couple other things.

  1. Make 2 sets of loop cuts with 4-6 loops on the top and bottom segments (ctril-r, scroll wheel)
  2. Select the bezier curve, and hit ctrl-a ‘scale’, and ctrl-a ‘rotation’ (apply the scale and rotation)
  3. Tab into edit mode and move one of the bezier curve handles, as it is now it is a perfect lin.
  4. Selected the blade and Add a curve modifier to the blade, and move it above the subsurf. change the deformation axis to ‘z’. move the grass blade up in object mode on z a little bit so it fits within the bezier curve.
  5. turn on smooth shading (tools panel ‘t’)

Bézier curve you have there has unapplied scale and rotation. The radius is also changed.

Would be best to set up the object and curve so that they make sense from the start.



Both the mesh object and curve have default transformations. Rotation is (xyz) 0,0,0 and the scale is (xyz) 1,1,1.

Object origins are in the same place for both the mesh object and the curve that deforms it. Mesh object has its origin at the base where it starts to be deformed, and the curve starts from its origin.

Now when you add curve deform modifier to the mesh object, it’s quite clear which axis you need to specify on it. In the screenshot first object is set to deform on X (1) because both the mesh and the curve are in +X direction relative to their origins. Second has deform set to Z (2). You could also parent the mesh object to its curve if you need to move the whole assembly around.

And yeah, the mesh object needs segments to deform like PiotrPL said.

Thank you all! I have done all this and it is all behaving as expected. Hopefully if the situation arises again I will know what to do. Applying rotation and scale on the curve helped, then just aligning the origins completed the task. Thanks again for the help.