I could only get this to work with your curve. I kept getting an error on “cycles” and can not traverse the hierarchy. Any suggestions in creating curves? I would love to drive the curve as another rig so the entire ribbon structure can animate.

Hey! I did a quick test using the scene file and had no problems trying different curves. Since it’s a cycle error, you’ve probably missed some setting in the teal colored nodes, so take a closer look at them. Also make sure you’re generating UVs inside the Sweep SOP.
Cheers,
Chris

Hey! Using any closed curve as a base for a rig will lead to a circular dependency error (as seen in part one of this course). You can turn your closed curved into an open one by using an “ends” SOP with the “close U” parm set to “open”. This will likely fix your problem.

Hey Lorenzo, you can use a “vector to matrix3” node inside vops. The only difference is that you have to supply it with 3 vectors instead of 2 (think of them as the x, y and z axis of a coordinate system). If you’re following the same steps as I did in vex, you should already have those three vectors, so just plug them in, maybe try reordering the inputs if it behaves strangely and you should have a working setup!

Hi hi, Entagma team,
I have a problem with the curve, I’ve tried with more than 5 different curves, but at the moment, to add the ‘rigpose’ (min 21:22) this message appears
“Warning
Failed to traverse the geometry:
Cycle detected”

Hey! That error is either the result of a circular rig (you can’t use closed curves) or some weirdness in the vertex order of your rig. To fix the latter, you can try building the small setup I show in Ep 12 at around 5:30 in this course (starting from the fuse node, up until the rig doctor node).

1. Can you walk me through the Point VOP in the first setup, where we get the “anim” attribute in the end. Why do we use two fits and why do we connect them in this particular way?
2. Why do we create separate coordinate system in the second setup, but don’t do it in the first one?

Thank you a lot and sorry for the silly questions, I’m still at the start of my learning path 🙂

1. With the vop I want to control a gradient that travels down my rig and turns my anim attrib on every point from 0 to 1. With the first fit I simply bring the distance values on my points into a 0 to 1 range, which is needed for what I’m doing next: With my second fit node I create the gradient, the “wave” that travels from the root bone to every tip of my rig. This is done by shifting the srcmin and srcmax parameters of the node up and down that 0-1 range, essentially clamping everything below to 0 and everything above to 1. The last connection from the with node to the first fit is a little math hack that ensures that a slider position of 0 also means that every point has an anim value of 0, which makes the setup a little more intuitive to use.

2. In the first setup I could build my transform attrib entirely using the orientation-along-curve-node. In the second setup however that node wasn’t able to give me the exact transforms I was looking for (i.e. some of the xyz axes weren’t pointing in the direction I wanted). So in this case I opted for a more manual approach: I create to vectors, that should be roughly perpendicular to another: The normal vector, like in the first setup and a tangent vector, which I create using the orientation-along-curve-node. I can take those two almost perpendicular vectors and turn them into two exactly perpendicular vectors with some vector math and then use those to manually build the 3×3 transform matrix KineFX wants. This way I have full control over the xyz axes of each joint and get the result I want.

I could only get this to work with your curve. I kept getting an error on “cycles” and can not traverse the hierarchy. Any suggestions in creating curves? I would love to drive the curve as another rig so the entire ribbon structure can animate.

Hey! I did a quick test using the scene file and had no problems trying different curves. Since it’s a cycle error, you’ve probably missed some setting in the teal colored nodes, so take a closer look at them. Also make sure you’re generating UVs inside the Sweep SOP.

Cheers,

Chris

When creating the curve make sure to Retract Tangents from the end points of the curve. Otherwise the rig won’t work.

I got the same error as prometheus, I am running up and down to find the mistake , but no use yet

ok it was not the teal nodes , it was the first node , the curve itself. Just try using a circle instead , you will see what I mean

Hey! Using any closed curve as a base for a rig will lead to a circular dependency error (as seen in part one of this course). You can turn your closed curved into an open one by using an “ends” SOP with the “close U” parm set to “open”. This will likely fix your problem.

Hey! In the attwrangle you use : “3@transform= maketransform(z,y);” How can i translate this to vops?

Hey Lorenzo, you can use a “vector to matrix3” node inside vops. The only difference is that you have to supply it with 3 vectors instead of 2 (think of them as the x, y and z axis of a coordinate system). If you’re following the same steps as I did in vex, you should already have those three vectors, so just plug them in, maybe try reordering the inputs if it behaves strangely and you should have a working setup!

Hi hi, Entagma team,

I have a problem with the curve, I’ve tried with more than 5 different curves, but at the moment, to add the ‘rigpose’ (min 21:22) this message appears

“Warning

Failed to traverse the geometry:

Cycle detected”

Is there any way to get to solve this?

Thanks in advance!

Best,

A.

Hey! That error is either the result of a circular rig (you can’t use closed curves) or some weirdness in the vertex order of your rig. To fix the latter, you can try building the small setup I show in Ep 12 at around 5:30 in this course (starting from the fuse node, up until the rig doctor node).

Hi Christopher,

Now it works; I have the curve with the proper directions, which solves the issue!

Thank you 🙂

Hi, Cristopher!

I wanted to ask if you could explain two things:

1. Can you walk me through the Point VOP in the first setup, where we get the “anim” attribute in the end. Why do we use two fits and why do we connect them in this particular way?

2. Why do we create separate coordinate system in the second setup, but don’t do it in the first one?

Thank you a lot and sorry for the silly questions, I’m still at the start of my learning path 🙂

Sure thing!

1. With the vop I want to control a gradient that travels down my rig and turns my anim attrib on every point from 0 to 1. With the first fit I simply bring the distance values on my points into a 0 to 1 range, which is needed for what I’m doing next: With my second fit node I create the gradient, the “wave” that travels from the root bone to every tip of my rig. This is done by shifting the srcmin and srcmax parameters of the node up and down that 0-1 range, essentially clamping everything below to 0 and everything above to 1. The last connection from the with node to the first fit is a little math hack that ensures that a slider position of 0 also means that every point has an anim value of 0, which makes the setup a little more intuitive to use.

2. In the first setup I could build my transform attrib entirely using the orientation-along-curve-node. In the second setup however that node wasn’t able to give me the exact transforms I was looking for (i.e. some of the xyz axes weren’t pointing in the direction I wanted). So in this case I opted for a more manual approach: I create to vectors, that should be roughly perpendicular to another: The normal vector, like in the first setup and a tangent vector, which I create using the orientation-along-curve-node. I can take those two almost perpendicular vectors and turn them into two exactly perpendicular vectors with some vector math and then use those to manually build the 3×3 transform matrix KineFX wants. This way I have full control over the xyz axes of each joint and get the result I want.