Home Technical Talk

Maya Set Driven Key issue

polycounter lvl 17
Offline / Send Message
root polycounter lvl 17
I'm working on a joint-based facial rig and I need to create a library of facial poses, and I thought I would use set driven keys to create this pose library.  I don't need an animation UI, since it's for motion capture, so what I did was just create a locator with a bunch of custom channels corresponding to each of the facial poses that I need to hit.

So my locator has a bunch of these channels, eyebrows_up, eyebrows_down, eyebrows_in, etc., each of them with a value from 0 to 1, 0 being the bind pose and 1 being the target pose.  The problem I'm running into is this: I key eyebrows_up at 0, pose the eyebrow joints, and key eyebrows_up at 1, and it works - but then I can't assign any of the other custom channels to drive eyebrow joint behavior.

I'm not familiar enough with Maya to understand why this isn't working.  Do they need to be driven by separate objects for the driven keys to blend properly, and not just separate channels on the same object?

Replies

  • antweiler
    Options
    Offline / Send Message
    antweiler polycounter lvl 8
    You can by nature only plug one channel into an input, the blending of the poses need to happen otherwise.
    I did this once by assigning driven keys to various hierarchical groups (or locators) per pose:
    Say i have a bunch of locators, all in the same place, grouped one below the other.
    The eyebrow_up controls the lowest locator using driven keys.
    eyebrow_down controls, the locator above and so forth.
     This way, the poses add up nicely like blendshapes, but it will be a lot of work for complex facial rig..


  • root
    Options
    Offline / Send Message
    root polycounter lvl 17
    That's about what I figured, it seems like some kind of super basic GUI is gonna be necessary even if it's not going to be used by an animator, because I'm going to need different objects driving each of the poses.  Thank you!
  • root
    Options
    Offline / Send Message
    root polycounter lvl 17
    Okay, here's a new issue I'm running into:  

    I'm setting driven keys in my GUI to drive stuff like smile, frown, sneer, etc.  I am able to set the translate x channel on my Emote GUI icon to drive a smile in x = 1 and a frown in x = -1, but I'm trying to do a sneer_upperlip and a sneer_lowerlip on the same GUI icon's y channel.  When I set the keys, the status window says result=1, which should be successful, but no transformations are taking place when I move the icon in the Y axis.  I tried creating a separate icon to drive the sneer actions, but I'm getting the same lack of result.

    Even more frustrating, I had another icon driving a lips_pursed action, but somewhere in the setting of the keys for the smile/frown actions, all of the movement of the joints that had been set for the lips_pursed actions no longer works.

    There's also something strange appearing when I select the joints to be driven - in addition to the translate/rotate/scale and visibility channels, there's a blend channel that's got the names of two of my animation layers in it and I have no idea where it came from.  The joints affected aren't even supposed to be loaded into those layers, I don't know why they're appearing in the set driven key channels.
  • root
    Options
    Offline / Send Message
    root polycounter lvl 17
    Okay, I think I've figured it out.  The problem was being caused by adding all of the joints in the rig to each of the animation layers, even though none of the joints are being directly manipulated for any of the animation, all of the animation is being done through set driven keys.  So I think I was creating dependencies that the SDKs were having to fight with.

    Anyway I started again and this time the only thing I'm adding to each animation layer are the GUI controls that are being specifically keyed in that animation layer, and leaving the joints out of them.  Everything is going much more smoothly now.
Sign In or Register to comment.