• Editor
  • Locking a value of a bone?

Related Discussions
...

It would be great if I can lock attributes of a bone like the x,y, scale-x, scale-y, etc to have things more flexible.

Sometime I want bones of a Path scale with the length but don't want it to get wider but now the bone will scale on both XY.

Have you tried using a Transform constraint to control the scale?

Isn't Transform Constraint only control the whole scale and translation?
I only want one component of to be locked. e..g only X or Y of scale/position.

An other example is to have something like shadow that has fixed x( or y) that only follow something horizontally or vertically.

I forget the some scenarios but from time to time I want to have this locking feature available in the past.

Oh, you were talking about Chain Scale.
Doesn't that only affect the X scale anyway? Why does it become wider?

I am not specifically talking about Chain Scale.That is just an example I want to have locking values for position too. (in the form of Transform Constraint or real locking feature)
Btw, my bone in a path constraint does have the bone scaled on both x & y. Maybe because I just have one bone in the path?
What I want to do is to make things easier to control. e.g. dragging a control point to make a bone longer (by scale ) and will have attachment deform with it. I cannot use the real "length" of bone because it doesn't affect mesh deform so I have to go with scale.

Imagine something similar to IK but allow me to control the middle node in addition to the tail node position. the two bones will auto adjust its length accordingly which will allow me to pose to different perspectives more easily with minimum input / control.
Now, the auto scale works in this setup but the two bones scale on both X and Y which affect the mesh deformation making things wider or thinner in addition to longer/shorter. That's why I guess having a lock on the width scale of the bone will help solve the problem. However, the Transform Constraint only deal with whole pair of x,y for both position and scale. 🙁


One another usage as I mentioned is for shadow.
My game does not allow character to walk freely.
However, some character animations will have them moved away from character origin (the local [0,0] ). e.g. a short jump to attack enemy and jump back, or a slide back when shooting a cannon.
I want character shadow to be controlled from spine by artist. When character jump, artist can fade in/out and move along with character horizontally with precise control.

Of course I can use two bones to have shadow only follow the horizontal change but that make the whole thing more complicated and not natural for keying. Being able to restrict/lock on y (or x) separately is much more straight forward.

Another shadow case is that I have a relatively large boss with complicated legs which I expect each of them have their own shadow. Its just more easier to have shadow done in spine than coding in the game as I can actually see how shadow is presented. (scale, alpha, position, etc)

I'm trying to force the existing bones to do what you wish for, so far Transform constraints didn't help much.
Indeed it would be nice to be able to control X and Y separately (and maybe things like translation in relationship to rotation and such?)
But for now the quickest solution is probably to edit the shadows by hand once you finish animating a sequence. At least we have the fact that a shadow is flat, so it's easier to control!😃
I'll keep you updated if I find another nicer solution :>

Yes. the most straight forward way to do this is to make change to Transform Constraint to allow separate value for x,y.

This change is minimal as I believe the calculation is already done separately for x, y in the code.
Just need to update the UI and make calculation take two different arguments instead of one.
This kind of quick change should not take more than a few hours for your coder, and should count in minutes for a good programmer. so please...make it happen asap.

Current:

Desired (with a toggle for linked value):