0
$\begingroup$

I'm trying to repeat a mesh around a path to make a necklace. It fails when I apply the curve modifier, because the mesh doesn't repeat around the curve.

Here's what I did:

  1. I created a bezier circle and added a shrinkwrap modifier. I set the shrinkwrap to "Project" and the direction to "Negative". This works fine: enter image description here

  2. I added a torus shape and created an array modifier. I set the fit type to "fit curve" and select the curve.

  3. Then I added curve modifier to the torus shape and selected the curve. But instead of the mesh following the curve, it follows a different path: enter image description here

It should be following the curve.

I tried applying the shrinkwrap modifier, but this just gets an error message ("Applied modifier only changed CV points") and it corrupts the shape of the curve.

How do I fix this? Or is there a better way to repeat a mesh (the ring) around another mesh (the body)?

EDIT: As requested, here's an image of the mesh with the origin visible: enter image description here

$\endgroup$
3
  • $\begingroup$ Could you add a screenshot of the ring mesh without any modifiers and with the origin visible? $\endgroup$
    – HISEROD
    Feb 3 at 17:53
  • $\begingroup$ as HISEROD mentioned this is very probably an issue with the origin of the mesh you are trying to fit to the curve. $\endgroup$
    – BK.
    Feb 3 at 17:56
  • $\begingroup$ I've added an image with the ring mesh. It has the same origin as the bezier circle. $\endgroup$
    – Sensplus
    Feb 3 at 21:05
1
$\begingroup$

Shrinkwrap modifier generates from curve tmp mesh. What you can see on your second image is original shape of your curve (shape without shrink-wrap modifier) I guess. It means your Curve modifier used by Torus still follows the original curve shape. What you see on your first image with shrinkwrap is actually a mesh :)

You have to convert curve to mesh (to get desired shape) than convert mesh back to curve. Ensure if origins of Curve and Torus are at the same location.

Error message is probably referring to my first note - circle is still constructed from four points therefor applying modifier can't result in a shape presented by modifier that operates on mesh level. ... just my theory :)

$\endgroup$
1
  • $\begingroup$ Thank you, this works great! But I'm not sure why I need to do this? Why isn't the curve's mesh what is displayed on screen? $\endgroup$
    – Sensplus
    Feb 3 at 20:57
0
$\begingroup$

try, apply all transforms in curve, and in shrinkwrap modifier use nearest surface, and apply shrinkwrap

$\endgroup$
0
$\begingroup$

When you use modifiers on a curve, there are two different things you could be modifying: the mesh, which is ultimately generated by the curve modifier, from its geometry settings; or the spline itself, which is used for things like curve modifiers, follow path constraints, etc. The default settings for curve modifiers set them to do the first, affect the mesh rather than the spline.

Some modifiers can only affect the mesh. But the shrinkwrap modifier, which you're using, can affect the curve instead. How do you make it do that? By clicking on the button to the right of the modifier's name, the button with the tooltip "apply on splines". (For some reason, this button is in a different place in your screenshot than it is for mine.)

Once you hit that button, the shrinkwrap will stop directly affecting the curve's ultimate mesh, which you don't care about, and affect the control points and handles instead. One of the things this might mean is that because the position of the first control point moves relative to the origin, that your curve-modified mesh is no longer in the correct position. The best setup for a curve modified mesh doing this is, origin of curve at its first control; curve and modified mesh object with exact same world-space transform; both curve and object parented to the same object, for control purposes (like an empty.) Set up like that, you won't get problems from the difference between the origin of the curve and its modified position. (An alternative is to use both a shrinkwrap constraint and a shrinkwrap modifier on the curve, which will prevent the first control from moving off of the curve's origin.)

$\endgroup$

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.