Home Animation Showcase & Critiques

Need some Rig help. Getting evaluation errors when using Expressions(Maya)(SOLVED)

polycounter lvl 3
Offline / Send Message
Interface polycounter lvl 3
Hello there everyone! So basically, the TLDR is this: I'm creating a rig for class and on the arm rig we are using a twist Expression on the wrist and forearm joints so that the forearm joint rotates on the X-axis at half the rate of the wrist joint. And well after I implement this expression I'm getting an evaluation error, which then proceeds to completely screw the rotations of these joints and causes problems. Thus forcing me to reload my file to get back the original state of the joints. This happens in both IK and FK mode. 

The evaluation error I'm getting reads as follows and there are variations of this for both IK and FK: "// Warning: Cycle on 'LF_Wrist_IK.parentInverseMatrix[0]' may not evaluate as expected.  (Use 'cycleCheck -e off' to disable this warning.) //" 

I've tried reaching out to my instructors and folks from my school but no one seems to be able to help me here. As my main instructor is currently out and the instructor standing in at the moment had his laptop die on him recently. But on my own I've tried completely redoing my IK/FK systems, I've completely redone the arm joint chains as well since at first, they had their own issues. But now even with my good joint chains, I'm still getting this evaluation error which then proceeds to mess up the rotation of my wrist joints and whatnot. I've also checked my expression to make sure that I'm using all the correct names and the correct structure for it to function. And well it all seems correct according to what I've been told to input here. If anyone could help me get to the bottom of this I'd really appreciate it. Since I can't seem to get an answer from my school and I really would like to have my rig function properly before we proceed further in class. Especially since this week, we are rigging the hands and whatnot. Down below I'll leave my scene file so that anyone can check it out. Thanks in advance to all who are able to help here :smile: 

Edit: I Thought I'd share a screenshot from the expression editor to show the expressions I'm talking about. Here you can see I have 4 expressions, 2 for the FK systems on both arms and 2 for the IK systems. There you can see the expression function which is being used to drive the expression and this is what I'm having issues with for some reason. I've gotten it to work on my very first attempt, but after that for some reason I just can't get them to work. 

Replies

  • WeatherMan
    Offline / Send Message
    WeatherMan polycounter lvl 6
    Is specifically using expressions part of the assignment?
  • Interface
    Offline / Send Message
    Interface polycounter lvl 3
    Is specifically using expressions part of the assignment?
    Yup, it's a pretty core part of the assignment. Bc we're trying to make the wrist and forearm act more realistically with one another. Since you don't just rotate your wrist and nothing turns with it. The forearm slightly rotates along with your wrist and that's what this expression is trying to mimic. 
  • WeatherMan
    Offline / Send Message
    WeatherMan polycounter lvl 6
    The solution I found is pretty straightforward, and should hopefully help you (it also, imho, falls under "best practices")

    Right now your hierarchy looks like this:

    Elbow Joint
    ---->Forearm Joint
    ---->---->Wrist Joint

    You simply need to, for all 3 joint chains, make the wrist a direct child of the Elbow joint. Then your hierarchy will look like this:

    Elbow Joint
    ---->Forearm Joint
    ---->Wrist Joint

    From here you should orient constraint the BindJoint to either the FK or IK, and switch accordingly, the same way you've done with the rest of your IKFK switch chains. I tested this and the twist still works as expected.

    As far as best practices go in general, I think this is a better way to setup your hierarchies. Hope that helps
  • Interface
    Offline / Send Message
    Interface polycounter lvl 3
    The solution I found is pretty straightforward, and should hopefully help you (it also, imho, falls under "best practices")

    Right now your hierarchy looks like this:

    Elbow Joint
    ---->Forearm Joint
    ---->---->Wrist Joint

    You simply need to, for all 3 joint chains, make the wrist a direct child of the Elbow joint. Then your hierarchy will look like this:

    Elbow Joint
    ---->Forearm Joint
    ---->Wrist Joint

    From here you should orient constraint the BindJoint to either the FK or IK, and switch accordingly, the same way you've done with the rest of your IKFK switch chains. I tested this and the twist still works as expected.

    As far as best practices go in general, I think this is a better way to setup your hierarchies. Hope that helps
    Dude.. THANK YOU SO MUCH!!! I just tested this out rn on my rig and now the expression is working perfectly!! Now I just need to update my rig from this week with this and I should be set. Although I didn't implement the orient constraints as you recommended. I still have the same parent constraints on there and it's working perfectly. Simply adjusting the hierarchy of my joints as you recommended worked perfectly! Actually tho this hierarchy isn't of my own making. This is the hierarchy which we were instructed to use for the rig and it worked for my instructor. So I have no idea why it didn't work for me as well. But I'm just glad that now things are working as intended. Thanks again man I can't thank you enough for your help here! 
  • WeatherMan
    Offline / Send Message
    WeatherMan polycounter lvl 6
    No problem. If I had time I would dig deeper to figure out the cause of the actual cycle issue you were having, but for now I'm glad this solution works for you (:
Sign In or Register to comment.