Home Technical Talk

Maya - Advanced Skeleton - Custom Controllers / Driving Systems issues

polycounter lvl 12
Offline / Send Message
SeveredScion polycounter lvl 12
I'm trying to follow the techniques for corrective controls shown in this video from about 40 minutes to 50 minutes, but I'm having some issues. I'd love some help or solutions!

1. When I rotate a rig control (elbow in this case) further than the degree I set when I clicked, "Pose --> Driving Systems --> Create Driving System," the skin control sort of inverts its effect. So for example.... I follow the video and make a SoftMod and do "Custom Controllers --> Create Skin Control" to keep the elbow in place with full volume when it rotates. Then I rotate the elbow 90 degrees and transform the Skin Control as desired. Then I select the elbow joint and create the driving system. Then when actually trying to animate, if I rotate the elbow more than 90 degees it starts to shrink back up. Is there a way to prevent this? I expected it to maintain the final shape if rotated further than the driving system pose.

2. When I add a second Skin Control to the same Driving System (as shown in the video starting at about 48:20), it appears to be successful, but then when I actually rotate the joint, the shape of the skin control takes its full form before full rotation of the driving system pose. For example, adding a bicep bulge to the driving system, if I again rotate the arm 90 degrees for the driving system and add the bicep bulge, then when I actually go to animate the character, the bicep achieves full bulge around 60 or 70 degrees and has already started shrinking back up by the time I get to 90 degrees. How do I prevent this?

3. Some of the joints simply aren't available in the dropdown when I create a Skin Control. On my character, the dropdown doesn't list any of the left-side joints. My character is asymmetrical and I did *not* toggle on the symmetry option when creating the right-side Skin Control or Driving System. Is there a way to force the dropdown to populate the names of every joint?

I'm a modeler/texturer, not a rigger animator, I'm just using this to give a portfolio character a nice pose and idle animation. This is outside my comfort zone so hopefully I'm just missing something simple. Thanks everyone!

Replies

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    been a long time since i messed with this part of advanced skeleton but I think in issue 1 you need to set min and max limits.

    if you can show what sort of correction you are trying to make, it might be easier way to solve it than this. even for somebody very familiar with advanced skeleton it is going to take some time to troubleshoot. but a lot of problems might be possible with more precise skinning, especially if it's an elbow or shoulder issue
  • SeveredScion
    Offline / Send Message
    SeveredScion polycounter lvl 12
    Thank you so much Alex_J!

    For some reason issue2 that I described above is no longer happening, but issues 1 and 3 are.

    I'm not sure the proper way to set min and max limits. I don't see an option for setting limits within the Advanced Skeleton UI. In this case, I am confused by using the per-node limits native to Maya via the Attribute Editor, because each skin control has 1) a bone, 2) a control object, 3) a parent constraint to a point constraint, and 4) a parent constraint to an orient constraint. I'm not sure which object to limit in what way.

    I recorded a video showing my process and trying to illustrate the issues more clearly. Sorry it's 8 minutes but you can probably get the gist if you watch it double speed. Thanks for whatever help you're able to offer! (as of the time of this posting, youtube has only uploaded a 360p version so far, higher res will finish in like an hour)




  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter

    i took a quick watch but I'd need to go through the steps myself in order to possibly pick up on any mistakes that may have been made. I might be able to do that in a couple days but there is a few quick thoughts might be worth considering:
    • the bad elbow deformation can be fixed with more careful skinning. the initial binding usually makes this area falloff to soft, usually I make the falloff around elbow bend pretty sharp and that fixes most issues. you can also use some additional bones at the joint to hold it together (see metahuman skeleton as example)
    • for bicep bulge, although not as elegant as an automated driver, you can alternatively just add a separate bone and give it it's own control that can be animated directly. This means an extra control to animate however it also means more direct control. Adding new bones and controls to advanced skeleton is pretty straightforward and you can even do it later without the fit skeleton - if you want to see some example how to do that I can show you.
    • if you do want to update the rig post initial skinning, i highly recommend grabbing free NGskintools plugin. it makes it very easy to copy/paste and transfer skin weights so that if you add/remove bones it's not a big deal to fix up the skin weights quickly.
    • if you add an extra joint for bicep bulge (or anything) and want for its control to be automated, you might find it easier to control its translation/rotation via set driven key from another control (this is similar to what advanced skeleton is doing, though simpler so you wont have to be guessing so much using a more advanced tool that is doing a lot under the hood). For this you just need to watch some Maya set driven key tutorial, and then the process is if bone A is at rotation 0, then boneB is at X, and if boneA is at rotation 90, then bone B is at Y, and maya interpolates the inbetweens.
    • about elbow and limits, I think you need to define the softmod shape at all desired ranges. e.g. you said what shape is at 0 degree bend, and at 90, but if you don't tell it what shape should be at 120 then i am not sure what it does - either clamps to last shape or maybe interps to something else
    • with the bicep bulge getting inverted, i think what has happened is that you created the deformation when rotation is at 0, so when rotation increases it is interps based on that as the neutral position. if you rotated elbow other way it would probably grow outwards I expect. If this is true, then what to do would be move elbow to the two extreme limits and shape softmod there (and maybe you need to shape the middle as well). Basically you have to tell the computer min and max limits and it is going to interpolate the shape between those. But what it looks like you are doing is telling it the max shape while in the middle pose.

    these are all just alternative ways to accomplish same task. of course its nice to get the tool working but in case you can't get it working these ways should generally be simpler and involve less troubleshooting. also note that if this is meant to be a game character and rig, the soft mod stuff wouldn't work and you'd need a bone solution anyway


    here is graphic in case it helps:
    what i mean by limits is that if you set up your softmod shape of bicep bulge while in the neutral position, maya thinks this is the middle. I think you need to set the softmod shape and key it when the driver is at the same rotation as when the softmod should be used.
    In other words:
    Driver - minimum pose -> Driven -> shape softmod -> set key
    Driver - neutral pose -> Driven -> shape softmod -> set key
    Driver - max pose -> Driven -> shape softmod -> set key

  • SeveredScion
    Offline / Send Message
    SeveredScion polycounter lvl 12
    Thank you so much for such detailed information! I will have to read over this again and try some of these techniques. I may post more questions depending how it goes. Either way I'll post the results of what I end up doing.
  • SeveredScion
    Offline / Send Message
    SeveredScion polycounter lvl 12
    In case anyone else finds this post in the future......

    I realized that the workaround for my initial question 3 is to select the softMod and also select the joint that you want to be its parent.
    It actually says this in the help image when you click the question mark box for the "Create Skin Control" button.

    For now I'm giving up on getting the driving system to work. I'm just going to manually keyframe the skin control.

    As a side note if it helps anyone else in the future, I got stuck for a few days seemingly unable to export animation from an Advanced Skeleton rig in Maya to an FBX and import the animation into Marmoset Toolbag - the FBX and model would import and the character would be in pose but there would be no animation. I think there were probably a few things I was doing wrong but one that surprised me was that I had to un-check "constraints" in the FBX exporter.
  • WillStandard
    The hero is there! 

    I was stuck with the same problem as you. When using the driving system, my drived controlers where goint back to initial position passed a certain point.

    When creating your driving system, hold "ctrl" key and you'll have the min and max features Alex was talking about!

    Kinda late on the reply but just wanted to let you know!

    Have a wonderful day my friend!
  • WillStandard
    well well well, upon testing it, it doesn't work either...
Sign In or Register to comment.