Before I report this as a bug, I’d be very grateful if some riggers who are more experienced than I would render an opinion.
The attached file contains part of a rig for a five-function hospital bed. The part in question is the head/foot pedestals which raise and lower the head/foot independently of each other. Rather than naming the bones as foot/head, I’ve set up this example as right/left.
The rig works, more or less, but when operating rockerCTRL.R, which raises and lowers the left side, the right-hand pedestal bones’ axes flip around. This doesn’t affect the objects attached to those bones, however. In other words, even though the bones seem to spin, the objects attached to them don’t.
The anomaly is that when operating rockerCTRL.L (the other side), the bones don’t flip around. Rather, the former is the anomaly and the latter is the norm or seems to be.
So, given that the flipping only takes place on one side, and that the objects attached to the bones don’t flip as the bone axes flip, is this a bug?
I’ve rebuilt this rig three times and each time I run into the exact same behaviour, bone axis flipping that doesn’t affect objects attached to those bones. In the versions I’ve built, I have:
- built one side, then copied it to make the other,
- used bone mirroring to create both sides at the same time,
- built one side, made a copy and then used Armature -> Mirror -> X Global to create the other side.
There is a second anomaly in this rig:
If I rotate rockerCTRL.(L or R) and then hit ESC to cancel, the rockerCTRL bone goes back to it’s rest position, but the pedestal bones (which telescope out using a driver fed from the X Rotation of either rocker.L or rocker.R) jump to their fully-influenced positions instead of going back to their rest positions.
So, this sounds (to me) like two bugs:
- bones flip axes under certain conditions, and
- bones influenced by drivers will not return to rest positions under certain circumstances.
Please download the file and try/check it out and let me know if I’ve simply missed something or if this behaviour is just not avoidable in the current version of Blender.
Can anyone confirm this or show me that I’m doing something wrong?