angavrilov / angavrilov-rigs

Custom Rigify rigs (feature set package)
73 stars 8 forks source link

Request for a basic IK to FK snap function or space switching #13

Closed Mehdianim closed 1 year ago

Mehdianim commented 1 year ago

Would it be possible to get the ability to snap the IK controls to the FK controls pose OR ability to switch between Parent spaces while preserving the pose, whichever is easiest.

Reasoning: Currently there's only an FK to IK switch. It would be super helpful to have a snap that aligns IK controls to the FK. For animation, FK is great at the block-out stage to keep a tentacle roughly together with the body, but IK in world-space is best for polish as it is easier to get flowing overlap and control without countering the Without being able to snap, even approximately it is pretty tedious to snap the IK manually throughout the animation.

Thanks for considering, LOVE this rig even as it is.

angavrilov commented 1 year ago

I'm assuming this is about spline tentacle.

There are two big design problems with IK to FK snapping there:

  1. It is ambiguous: there is nothing in the FK chain to specify the desired spacing of the IK controls along the chain. The snapping code has to somehow come up with that information. Additionally, there are the option to enable or disable extra spline controls, and they can even be animated - what should IK to FK snapping do about that when converting an action?
  2. It won't be precise: it's basically impossible to reproduce the FK shape exactly, only approximate it. Twist in IK mode is even more limited: you just get a linear gradient along the chain between the start and the end.

Also, control spacing even ties in into approximation precision: when approximating a curve with bezier splines you would naturally use tighter spacing around tighter turns of the curve. That could indirectly specify spacing, but makes things even more complicated.

angavrilov commented 1 year ago

The rig was slightly modified and moved to the Rigify add-on itself. It now has an approximate IK to FK snap operator.