2
$\begingroup$

I have a simple armature made from bendy bones, each bone with a "Stretch To" constraint. The resting pose is on the left, and some other pose is shown on the right:

enter image description here

Is there a way to add a control to squash and stretch the entire rig at once, like this:

enter image description here

(with a bone, or some other way?)

Thanks!

Updated file here:


Edit:

Adding "Child Of" constraint to the "ctrl_top" bone results in sideways movement:

enter image description here

In fact, if I set the "Maintain Volume" property of the squash bone to "none", then it moves up and down correctly (but now doesn't maintain the volume). I'd like the squash controller to control the entire volume.

enter image description here


Edit 2:

As suggested, changing the placement of the Squash bone. Position 1 :

enter image description here

and position 2:

enter image description here

$\endgroup$

1 Answer 1

2
$\begingroup$

You can constrain the parts of the rig you want to be squashed to the squash bone via Child Of constraint.

To do this quickly:

Select your squash bone, then ctrl_top, and hit ⎈ Ctrl⇧ ShiftCChild Of.
This will add a Child Of constraint on ctrl_top that will target squash as parent.

To copy the constraint to other bones: select all the other ctrl_ bones you want to have the same constraint, then the ctrl_top bone, and in its Child Of constraint popover, click Copy to Selected:

copy to selected

demo final result

$\endgroup$
5
  • $\begingroup$ thanks for your answer. This looks to be on the right track... However, when I add the constraint to the first control bone it results in some sideways movement. See this demonstrated in my edit to the question above. Why is this happening / how can I fix it? I would expect the bb_top bone to now just move up and down? $\endgroup$
    – teeeeee
    Aug 26, 2022 at 10:26
  • $\begingroup$ Actually I'm not sure if it's something to do with the "Maintain Volume" property. See my new GIF... can you help with this problem? Thanks for your time! $\endgroup$
    – teeeeee
    Aug 26, 2022 at 11:52
  • $\begingroup$ Yes, the Stretch To constraint is by default set up to act how squash and stretch works: if you scale one axis, it scales the other two axes in the opposite direction - in order to preserve the volume. If you want to stretch only the Y axis up and down without the other two axes reacting to it, you can indeed disable the volume preservation. Otherwise, you also must position the squash bone where you want the scaling to originate from. $\endgroup$
    – L0Lock
    Aug 26, 2022 at 13:59
  • $\begingroup$ That makes sense. But it means tweaking the position of the squash bone. I have added a couple more GIFs to the OP - is this the kind of thing you mean? I would like everything to be squashed uniformly in the vertical direction, and pushed out uniformly to the sides to maintain the volume... Do you think this is the best that can be achieved using the "Child Of" constraint? I guess I could use a lattice to deform the whole mesh using the squash bone? $\endgroup$
    – teeeeee
    Aug 26, 2022 at 14:22
  • $\begingroup$ Maybe try disabling some transform channels from each bones' child of constraint, maybe the Z scale and see how it goes. Or try with a Limit Location constraint but that will impact what you can do in posing. $\endgroup$
    – L0Lock
    Aug 27, 2022 at 10:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .