Follicle Ribbon Twisting vs Spline IK Twisting
Hey you guys,
So recently I've been moving towards more of a follicle ribbon rig vs a spline IK rig due to ease of stretchiness and also faster frame rate. However I ran into an issue with the ribbon rig that I wanted to ask here. When the ribbon twists, instead of fully twisting, it pops into a different position. Does anybody know a way to fix this?
When does this pop happen? Is it when you go beyond 180 degrees? If that's the case, unfortunately, there isn't much that we can do to fix that as the ribbon is already collapsing on itself.
Other than that, is there any chance the follicles that are misbehaving have a parameter of either 0.00 or 1.00 ? They need to have some distance from the end of the surface in order for the tangents to work correctly, so usually I do 0.01 and 0.99.
And lastly, what denilson020898 suggests about using the other tangent could help as well. Instead of an aim constraint I've been using the matrix setup , but the logic is exactly the same.
The pop happens when it goes beyond 180 degrees. I was curious if there might be a fix for it however the things that you mentioned I will still explore!
The 180 deg problem rears it head in a lot of places. If the ribbon's geo is collapsing, you can try using deformers. This guy talks about his method for getting distributed twist in his ribbon setup. https://vimeo.com/108727407 This rig is probably more computationally heavy than it needs to be though, and there are some other limitations when stacking deformations as blendshapes like that. These days I just use a curve and motion paths to drive joint chains, and set the upvector to something static, get twist rotation either as it's own separate twist attribute, or from a twist extractor, and distribute twist rotation by changing the motion path's 'front twist' value based on it's position on the curve. It rotates cleanly, and it's faster than a follicle.
Try to change the rotate order.
Usually, when working with ribbon(nurbs surface). I prefer pointonsurfaceinfo + aim constraint to drive the joint.
the thing is. you can determine which axis is pointing to the surface's normal in aim constraint.
You can take the U or V tangent from the pointonsurfaceinfo, and apply it to the constraint up vector.
please CMIIW. I usually do this with scripts.
Ahh okay, i'll give that a shot and let you know!