• Editor
  • Keyframe Inherit

  • Modifié

Hi everyone,

Is there any possibility to keyframe the inherit, maybe in future releases?

My problem is when i want to switch from ik to fk when animating, but also want in the fk mode to be able to translate or scale the bones of a character.
Right now in my version of Spine 3.8.97 the ik locks the inherit.

Thank you so much!
Vlad

Related Discussions
...
  • Modifié

Sure, we can add that in the future. 4.0 gives us a good foundation to add more timelines type, so in versions after that we can make more things keyable.

If I'm understanding correctly, you have an IK chain with bones that you want to scale, but the IK constraint is preventing you from altering bone scale in the way you want to?

Not sure if this quite solves your problem, but I've just tested a workaround that might help. For an IK chain with bones named A and B...

1) Create a bone that is a child of A (and a sibling of B). This will be your scale control bone. (It can't be a child of B)
2) Create a transform constraint from B to your control bone, and set it to match the scale.
3) You can now alter the scale of B by changing the control bone.

NOTE: When I was mucking around with it I found the scale constraint MUST be ordered after the IK constraint if it's going to work in FK mode; if reversed, then scaling will affect the IK mode but not FK. Creating a version of the constraint both before and after gave both behaviours.

IanM a écrit

I found the scale constraint MUST be ordered after the IK constraint if it's going to work in FK mode

I don't find this to be a problem in 4.0.76-beta, which has the constraint improvements we discussed recently. In other words, your setup works with just the constraint before the IK constraint, no matter the IK mix.

IanM's setup is a neat idea: use a TransformConstraint to get the equivalent of disabling inherit scale. To be clear, it works like this:

  • ScaleConstraintAfter isn't needed and can be deleted (when using 4.0.76-beta or later).
  • ScaleConstraintBefore sets the scale of bone B to the scale of bone BScaleControl. This overrides the inheritance of any scale from the parent bone.
  • When you do not want scale inheritance, set the scaleX and scaleY mixes for ScaleConstraintBefore to 1.
  • When you want scale inheritance, set the scaleX and scaleY mixes for ScaleConstraintBefore to 0.
  • The IKChain IK constraint isn't needed, but shows it can be used with IK. It will work in any scenario!

Thank you so much for all the advice!
It sounds great and im going to try this.