2
$\begingroup$

I'm trying to achieve this kind of stacked rotation that you would get when using an array modifier on an object and having the offset controlled by another object.

This is for a spine of a character. I want to be able to rotate the hip (torso) bone and have every children bone rotate increasingly more compared to hip bone.

Another way to look at it would be that every children bone would have the same rotation value in relation to children's respective parent. But because every parent (except the first one) is also a child, the rotations would stack.

Here is a video demostrationg the effect achieved using array mod and obj offset https://youtu.be/1Dm_htzlVrM

$\endgroup$
5
  • 1
    $\begingroup$ so waht about a Copy Rotation constraint? $\endgroup$
    – moonboots
    Sep 24 '20 at 14:35
  • $\begingroup$ No, this only copies the rotation. No stacking. $\endgroup$ Sep 24 '20 at 14:37
  • $\begingroup$ Does the exact rotation matter or the overall effect to have a progressively rotated bone "array"? $\endgroup$
    – lemon
    Sep 24 '20 at 15:45
  • $\begingroup$ Exact would be nice, but all I want to do is curve my characters back using one bone. Whatever you can throw at me would be better than nothing. $\endgroup$ Sep 24 '20 at 16:05
  • $\begingroup$ Was thinking about bendy bone... but not the exact same effect I think and will need two objects to drive it properly. So maybe, forget it. $\endgroup$
    – lemon
    Sep 24 '20 at 16:07
2
$\begingroup$

Copy Transform constraint

Using a copy transform (or copy rotation and or scale) from target space local with parent to owner space local for each descendant targeting a common ancestor bone will achieve this

Add constraint to one bone select all others and Bone > Constraints > Copy Active to Selected so its pretty easy to set up.

Will also progressively scale. The bones are all connected hence the constraints calculated translation is ignored.

enter image description here

Example, all 4 descendants copy the transform of bone named "Bone"

$\endgroup$
1
  • $\begingroup$ Yes, that's it. The other answer achieves the result too, but it required manually typing in the rotation values. This is better, thanks! $\endgroup$ Sep 26 '20 at 13:28
2
$\begingroup$

Using "child of" constraint:

enter image description here

Add the constraint to each of the bones, using "set inverse", relatively to its parent:

enter image description here

Tune the influence to be progressively decreased: 100% for the first then 75, 50 and 25 (as 4 bones in my example).

Notes:

-will work under some limits, because if too much rotation the last bones will turn over the constraint limits.

-scales are progressive too (like array modifier)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.