Ah! I see one problem at least, I believe!
When you set the control-effect values, you’re setting them both to the same value. That means that both of them end contributing the same amount to the animation, and you only ever see an equal blend–never just one or the other, or shading between them.
(For one thing, note that, if I’m not much mistaken, the control-values don’t specify a percentage of the animation to show, but rather a weight. Thus, if two animations have the same control-values–regardless of what that value might be (possibly excluding zero; I’m not sure)–they will contribute equal amounts to the final result.)
What you have at the moment is something like this:
animVal = 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
fromAnim control value = 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
toAnim control value = 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
What you want, I think, is something like this:
animVal = 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
fromAnim control value = 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0
toAnim control value = 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Note that “fromAnim” counts down, while “toAnim” counts up. This means that the control-value–the weight–of “fromAnim” decreases, as the control-value of “toAnim” increases.
Thus, while it makes sense to just use “animVal” for the “toAnim”, I think that you would want to use 1 - “animVal” for the “fromAnim”.
Note, by the way, that your current code doesn’t take into account the frame-rate of your program. If that’s intentional, then fair enough! If not, then you might want to incorporate the time since the last frame (“dt”) into the changing of “animVal”.
Also, if I may ask, is “fromAnim” being set to “None” anywhere? You’re checking for that case, but I don’t see any code so assigning it.