Chain & Curve Modifier?

I created a chain in 2.53 Beta r31626 and it looks correct.

Next I tried to create another chain in a different .blend file, but when I transform curve verts the chain gets really weird. I have been trying to solve this all day. As far as I can see, all settings in both files are exactly the same, but something I can’t find must be different.

I noticed that the good curve in edit mode is orange and the bad one is black. Maybe that’s the key, but I don’t have any idea what it might mean. Do you?

d2

Attachments



Do you have the .blend to share? Are they both 3D curves? I only ask, because I don’t see the normals on the second curve, but they could just be turned off.

The main chain object is a torus. I thought you can use any mesh or curve object for the main object. The curve is a 3D Bezier Path.

Handles and normals are now turned on. Handles are set for Free Align, but they don’t show. I wonder why not?

As far as I can tell, this file was created exactly the same in every way as the good file.

d2

Attachments


Chain_253Beta_Problem.blend (699 KB)

Did you ever had the curve modifier on? If not why not give it a try. But first activate the axis button through Object>Draw Panel>Axis on the curve. Then change the settings to fix the problem.

One of the things that I saw is that you had fit to curve selected in the array modifier, which fit length or fixed count selected instead, worked much better. There will still be a bit of distortion due to the curve, and I haven’t worked with them in this way to discover the nuances of curves and all. I know Jonathan Williamson has a tutorial about curves with chains that may cover something (or a lot of things I missed).

I created 50 chains yesterday and today and most of them were OK, but a few got weird when adjusting the Chain_Curve control points. I saved one of the good .blend files. When I closed then reopened the file, the chain shape was bad.

I am being very careful how I create the chains and feel that something is going on with Blender, not me. Very strange.

The orange lines are just the connecting lines between CPs, but there are still no handles even though FreeAlign Handles is selected in the Curve pop-up menu and turned on in N panel/Curve Displays/Overlays/Handles . Do you have any idea why the handles aren’t there?

d2

Apply scale to the curve object. Any object that will be animated (and that is what your are doing with the modifier) has to start from a “zeroed” position.

As to the handles, do not use nurbs curves if you want full handles for control. At least not for now.

Attachments

Chain_253Beta_fixed.blend (417 KB)

I must be doing something wrong, because I don’t get consistent results. Sometimes the chain is good, but more often than not, it is bad. How about taking a close look at my detailed steps below then tell me what I’m doing wrong.

-(Top View) Add torus

 -Ctrl+A: Apply Scale to the mesh object.

 (Try with AND without the above step)

 -(F6) Minor Segments:4, Major Segments:10

 -Rename: Chain

-(Top View) Add empty

 -Rename: Chain_Offset

-(Top View) Add curve Bezier

 (As to the handles, do not use nurbs curves if you want full handles for control. At least not for now [08-06-10].)

 -Ctrl+A: Apply Scale to the curve object.

 (Any object that will be animated (and that is what your are doing with the modifier) has to start from a "zeroed" position.)

[2.49 Manual] Apply Scale/Rotation - This command applies the scale and rotation. The object data (mesh vertices/curve points/etc.) is modified so that the scale is 1 and the object isn’t rotated at all.

 -Tab Edit

 -V

 -G/X/Ctrl transform so 1st CP on left side is at 3D cursor

-(Object Mode) Rename: Chain_Curve

-Select chain

 -Create Array modifier

 -Relative Offset: 0.6

(At this point, a Bend Modifier can be added to Chain, but for more options continue to do the following steps)

 -Fit type: Fit Curve

 -Curve: Chain_Curve

 -Object Offset: Chain_Offset

 -Activate

 -Select Chain_Offset

 -R/X/90

-Select Chain

 -Create Curve modifier

 -Curve Object: Chain_Curve

-Select Chain_Curve

 -S/X transform to create more chain links

-Select Chain

 -Ctrl+2

 -Set Smooth

-Select Chain_Offset/Chain_Curve/Chain then Ctrl+P to make Chain parent

(Try with AND without making parent)

-Select Chain

-S: 0.1 if parent is created

(Select Chain_Curve then enter Edit mode to Scale either all verts or selected edge loops as desired)

(Select Chain_Curve, Tab Edit then transform CPs as desired. Use Ctrl+T to twist the selected CPs to twist the chain. You can also subdivide Chain_Curve to give you even more control over the position and twisting of the chain.)

d2

I have been scaling Chain_Curve in Object mode, I thought that is how it was done in every video I watched. Just now tried scaling in Edit mode and it works perfectly. Now the chain shape adjusts however I want with nothing weird happening. I don’t even have to Apply Scale to the curve. Whatever works!!

d2

Problem solved!!

-(Top View) Add torus

-(F6) Minor Segments:4, Major Segments:10

-Rename: Chain

-(Top View) Add empty

-Rename: Chain_Offset

-(Top View) Add curve Bezier

(As to the handles, do not use nurbs curves if you want full handles for control. At least not for now [08-06-10].)

-Ctrl+A: Apply Scale to the curve object (Don’t do, doesn’t seem necessary)

(Any object that will be animated (and that is what your are doing with the modifier) has to start from a “zeroed” position.)

[2.49 Manual] Apply Scale/Rotation - This command applies the scale and rotation. The object data (mesh vertices/curve points/etc.) is modified so that the scale is 1 and the object isn’t rotated at all.]

-Tab Edit

-V

-G/X/Ctrl transform so 1st CP on left side is at 3D cursor

-(Object Mode) Rename: Chain_Curve

-Select chain

-Create Array modifier

-Relative Offset: 0.6

(At this point, a Bend Modifier can be added to Chain, but for more options continue to do the following steps)

-Fit type: Fit Curve

-Curve: Chain_Curve

-Object Offset: Chain_Offset

-Activate

-Select Chain_Offset

-R/X/90

-Select Chain

-Create Curve modifier

-Curve Object: Chain_Curve

-Select Chain_Curve

-Tab Edit (Chain sometimes becomes weird if edited in Object mode)

-Pivot Center for Rotation/Scaling: 3D Cursor

-S/X transform to create more chain links

-Select Chain

-Ctrl+2

  • Smooth

-Select Chain_Offset/Chain_Curve/Chain then Ctrl+P to make Chain parent

-Select Chain

-S: 0.1

(Select Chain_Curve then enter Edit mode to Scale either all verts or selected edge loops as desired)

(Select Chain_Curve, Tab Edit then transform CPs as desired. Use Ctrl+T to twist the selected CPs to twist the chain. You can also subdivide Chain_Curve to give you even more control over the position and twisting of the chain.)

d2