• Editor
  • IK scale

Hello,

Let's say I have a front view guy

HTTPS をサポートしていないため、画像は非表示になっています。 | まだ表示する

I have IK on legs, and at some point, I'd like him to jump forward.

Right now, because of IK, my legs can only do the frog jump style.

HTTPS をサポートしていないため、画像は非表示になっています。 | まだ表示する


HTTPS をサポートしていないため、画像は非表示になっています。 | まだ表示する

But I'd like to have a foreshortening effect on the thigh. Without breaking the IK.

I just saw that it was not possible, some wild Spine message appeared.

HTTPS をサポートしていないため、画像は非表示になっています。 | まだ表示する

Why not ? Is it some math calculation problems?

I wanted to go from 1 to 2 using this kind of idea, but for now, I can't, except if I break the IK constraint.

HTTPS をサポートしていないため、画像は非表示になっています。 | まだ表示する

Related Discussions
...

Scaling affects the bone matrices down the chain which makes the calculations very complicated (or not feasible in some cases?)

I think this would work simply if the bone length was animatable. (I'm not sure though. But a brief look at the code suggests that it would.) But either way, unfortunately, it's currently not keyable.

This is an interesting problem though.
I always think an interesting and important aspect of Spine where it begins to hit its head against the third dimension. The ideal is that it recognizes and handles it well and conveniently for the user.
Spine shouldn't pretend it's just a 3D program with one less dimension to worry about. But we're always cautious about adding every bit of functionality that comes to mind.

You can't disable scale inheritance (yes, for IK math reasons), but you can scale the IK bones to change their length.

If I scale the IK bones, both are modified. I wanted just one :p

If you scale the child, you are done. If you scale the parent, you could scale the child the opposite to compensate (1 / parentScale). However, the IK bones rotate, so if you scale the parent nonuniformly (scale X and scale Y don't match) then the child's length will vary as it rotates because the parent scale is applied along the parent axes. If you really must go down this road, maybe you could add a new child bone to the IK parent bone, put your attachments there and and scale that bone instead of the IK bones. Another option might be to use a second set of bones, without IK, for the animation where you need this scaling.

3年 後

@Nate Ah, this one is giving me so much trouble for IK and foreshortening. Could we please make animating bone length possible, just the way you can adjust it in setup mode, not x or y scale, just bone length. With this we could keeps rigs simple and still do easy foreshortening without having to deal with the children changing scale and skew. We aslo wouldn't have to disable inherit scale and the children would still scale with the parent bones scale so we could do a character walk cycle growing over time without having to also animate the child bone scale to compensate/match the parent bone scale.

I've made a note so we'll consider allowing bone length to be keyed. We'll have to thoroughly explore all the ramifications of that.

In the meantime, can you add a child bone to the IK child bone? You'd then put your attachments on that bone and disable inherit scale. This way when you scale the parent IK bone, the bone with the attachments for the child bone doesn't scale.

Nate wrote

In the meantime, can you add a child bone to the IK child bone? You'd then put your attachments on that bone and disable inherit scale. This way when you scale the parent IK bone, the bone with the attachments for the child bone doesn't scale.

Nice trick 😃

I have a little complex workaround explained here

Nate wrote

I've made a note so we'll consider allowing bone length to be keyed. We'll have to thoroughly explore all the ramifications of that.

In the meantime, can you add a child bone to the IK child bone? You'd then put your attachments on that bone and disable inherit scale. This way when you scale the parent IK bone, the bone with the attachments for the child bone doesn't scale.

I've made a couple of rigs with inherit scale turned off and at first it works exactly as intended when scaling the length of the parent bone, say upper leg/arm, and doing foreshortening but then I need to scale the whole rig without redoing animations but then the fore shin/forearm stays the same scale and the whole rig breaks down. If I could just animate the length of the bone without affecting the children and still scale with the parent bones, it would work out perfectly 🙂


warmanw wrote
Nate wrote

In the meantime, can you add a child bone to the IK child bone? You'd then put your attachments on that bone and disable inherit scale. This way when you scale the parent IK bone, the bone with the attachments for the child bone doesn't scale.

Nice trick 😃

I have a little complex workaround explained here

Thnx! Excellent video, I will use this setup in the mean time.