AimOffset2D use joint for "forward" axis?

We are using AimOffset2D to help prevent hair from clipping during look-ats. This works great for any idle or walk animation, but breaks on our turns.

It seems the AimOffset uses its own origin to determine the look-at vector (Forward X), but our character has root rotations that change their orientation when turning.

image

As a result, if our character is 90º into a turn, the Up-and-Down look-ats will make them tilt their head left and right putting ears to their shoulders, exacerbating the hair clipping we wanted to prevent in the first place.

Is there any way to set the aim vector based on a joint/socket so it updates dynamically when a character is rotating so that forward for the aim offset always is forward for the character’s current motion instead of being based on the origin?

What kind of hair?
Groom s*it can fully simulate and avoid any clipping.

Hair cards - if you do it right - are part of the whole mesh and can therefore be given cloth paint values and parameters that prevent it from clipping/are able to react naturally to the mesh they belong to/themselves since cloth allows for self collision detection.

Any aim offset node works off the poses you provide and linear algebra.

The bones positions are interpolated with values that match the location you place your cursor (or look) based on the values fed into the extreme poses.
This is not really suited for anything except aiming/looking somewhere - and the precision of it can either be near perfect if you took the time to calibrate the extreme poses, or really bad if you just throw stuff in it.