My character rig needs shape key correctives when it makes certain poses (eg. lifting the arms, the shoulders need to be corrected with a shape key so they don't lose volume).

I know you use a driver for that, but the way I find it in books and tutorials is to use a "Rotational Difference" driver between two bones (like between an arm bone and a reference bone pointing in the direction that should activate the shape key, so the driver is `1.0 - rotDifference`), and use that driver on the shape key. Like this:

[![driver panel][1]][1] [![shapekey driver working][2]][2]

The problem is that this driver *doesn't work well for this*, because when the bones roll around their aim vectors (without changing their actual directions), it still triggers the shape key:

[![shapekey driver problem][3]][3]

How else can I activate shape key correctives based on the rotation between two bones (and only their directions)?


  [1]: https://i.sstatic.net/jbITT.png
  [2]: https://i.sstatic.net/YBEF5.gif
  [3]: https://i.sstatic.net/7socW.gif