Colleagues:
I have been trying to get intra armature drivers to work in 2.76 (i.e. some bones rotations are drivers for other bones rotations, mapping local z rotations of one bone to local z and local y rotations of another)
It seems to be working, although not in the way I want (bone 1 z rotation will map to bone 2 z rotation ok, but not to bone 2 y rotation)
Should I even be trying to do this? https://developer.blender.org/T40301 indicates that as of 2014 doing this type of driver setup was not possible, but I cannot trace out whether the issue has been straightened out.
Attached is the armture I am working on. I am trying to get the following setup to work
Local z rotation of bone 1_1.R and 1_1.L drive local z rotation of bone helper_0_1, with the values of the driving bones averaged.
Local z rotation of bone 1_1.R and 1_1.L drive local y rotation of bone helper_0_1, with the values of the driving bones averaged.
Local z rotation of bone 1_1.R and 2_1.R drive local z rotation of bone helper_1_1.R, with the values of the driving bones averaged.
Local z rotation of bone 1_1.R and 2_1.R drive local y rotation of bone helper_1_1.R, with the values of the driving bones averaged.
I find that no matter what I do, I cannot get the z and y rotations of the “helper” bones to rotate correctly at the same time, whether I use xyz euler rotations or xyzw quaternions.
If I restrict myself to getting the adjacent bones to drive the y rotation of the ‘helper’ bones only, I find that i if i set up the helper bone to rotate correctly for, say bone helper_0_1, I have to mirror by values over cursor value in the driver graph view. But by doing that, I cannot get the bone helper 1_1,R to behave correctly without doing another mirror by values over cursor value in the graph view, which reverses the rotation of helper_0_1, since doing a mirror command on the driver graph view affects all drivers. So if I make helper_0_1 rotate correctly around its local y axis, helper_1_1.R rotates opposite to what I intend. If I go ahead and mirror values over cursor value for to make helper_1_1.R behave, then helper_0_1 rotates opposite to what I intend.
I’m rigging an octopus, so I’m trying to use drivers to make it so the user does not have to manually rotate the helper bones, which control the deformations of the webs between the tentacles. If the webs do not have any bones, they don’t deform correctly (i.e. their faces self intersect, twist, and in general, become a mess.)
What I am trying to do may be impossible with blender’s current capabilities, so I don’t want to spend time doing something that atm blender just cannot do.
the blend file is attached, with my aborted attempts to get those helper bones to rotate around their local y axis correctly.
ideally i would like the helper bones to be driven by the adjacent bones’ local z rotations to do local z and local y rotations correctly, but as described above, trying to get the driven y rotations to behave as intended is proving impossible.
thanks alot for your input!
Attachments
octodriversarmatureonly.blend (162 KB)