Hair curve tilt not following deformed surface

Hello, I wanted to use the new hair system to put some feather cards on my character, but I have a problem : when the character moves, it seems that the tilt of the curves is not recalculated. I’m no pro at geo nodes though, and since I don’t really understand why and how the problem happens, I could use a liltte help to fix it !

feathers when in rest pose :

when the ear rotates (but it happens when the head or whole body rotate too):

the node tree that makes the cards :

I’d like the feathers to not rotate on themselves when the character mesh is deforming, and I’d prefer to keep the cards as a hair system

This works for me:


For y-aligned feather:
image

Constrain feathers so y is along -z and point x along tangent… instead of tilting the curve tilt the feather with transform node. GN modifier needs to be after the armature.

Good luck!

Thanks for the answer! That could be a good solution for an array of feather meshes, but alas it doesn’t work for hair curves :confused:

The nodes I’m using work for the grooming part, but due to the “set position” node in my tree and the fact that the system groups the realized instances in a single mesh, it’s not possible to use the “transform geometry” node or the “rotation” of the instances node.

The only option left is to work around the original curves’ tilt ( or tangent, not sure). That or converting the groom to a mesh and using something like Surface Deform, but that’s plan B.

It’s totally doable: Simple wing rig1.blend (100.6 KB)


The trick is to have a reference curve deformed by the same armature acting as a tangent reference.

Good luck.

1 Like

Oh I see ! This solution would be perfect if it also allowed to deform the feathers along their respective hair curve, so I can groom them :sweat_smile:
Could it be possible ?
Right now the final groom looks like this, the hair curves have 7 points


The reason I stubbornly use a set position node on the realized instances is because it’s the only way I found to make them accurately deform along the hair curves :confused:
(they have the exact same point count / indexes as the curves’ profile)

But if I could use your solution + curve the feathers that’d be top notch :smile:

Thanks for your time and help !

the Y-align to tangent in my example does that for 2-point hairs… to perform a full deform you may wanna check out higgsas’ node collection - there is a node-group in there that does a deform along a curve. My guess is that it would have to be done after the initial align like in my example… I suspect that requirement, although doable, will be a challenge to get right.

Good luck.

3 Likes

Yea, seems like I’m forced to make a choice here, oh well…
I’ll check out higgsas’ nodes

Anyway, thanks a lot !