IK Rig with Shapekeys, Driver Assistance Needed

I’ve set up an inverse kinematic rig with shape keys. The problem I’m having is with the limitations on the drivers. For example, I have a rigged horse that needs to distend its elbow but only when the control object has moved on the positive Z AND Negative Y axis. If it only moves on the -y axis, then the elbow will automatically distend when the leg moves forward such as walking, which is not what I want. If I apply it only on the z axis, then the elbow protrudes when the leg has moved backwards and up as well, which is not what I want either.

Is there a simple solution to this that doesn’t involve the use of python scripts? Perhaps the distance to an empty I can hide in the scene? Is there a way to only activate the driver when it has met two thresholds simultaneously (+z and -Y) rather than moving in just one direction? Is there an easier way that doesn’t involve drivers at all (pipe dream)?

REST POSITION


SLIGHTLY FORWARD (Angle of Elbow is too great)


BENT POSITION (Angle of Elbow is not great enough, because it is a smaller value than the slightly bent position)


First, very nice model!

I’m only able to see just one rig bone: the one running across the body. Does it have rigging on the legs? If so, it would be easier if the driver was keyed to the rotation of the forearm (rig) bone.

The entire body is rigged. The barrel (stomach) of the horse doesn’t have a custom bone shape applied, but the rest do. The custom bone shapes are in the appearance of actual bones in a horse skeleton. I can’t apply the shape key/driver to the rotation of the arm because there is an IK rig assigned to it. Since the forearm doesn’t actually have a local rotation when moved as part of an IK rig, I have no way of assigning the driver to it. I tried doing the distance, rotation, location et cetera drivers with the IK rig, and while they responded, they were too glitchy or did the exact opposite of what I wanted them to do.

I’m trying to assign the driver to the IK handle now, which is the sphere with arrows. The problem is, I need it to only respond when two separate criteria are met (movement along the -Y axis as well as movement along the +Z axis) at the same time.

I feel like such an idiot. It didn’t work when I had done it before and when I looked into it, everyone said I couldn’t apply it because it didn’t have its own rotation (being that it was IK). When I applied the driver to the forearm with its LOCAL coordinates, it actually worked!

Thank you!