Rigging

Rigging101 » Rigging128

Face control sliders (16 posts)

About This Topic

Tags

No tags yet.

  1. ryangriffin

    offline
    Member
    Posted 8 years ago
    #

    First off I am glad to be here. So here is my question. I am trying to created a four cornered nurbs slider that can be use to drive joint based face shapes. For instance I need to have a LT_Corner_up shape at 1TY and 1TX, then the LT_Corner_down at -1TY and 1TX. The RT_Corner_up will be at 1TY and -1TX, and the RT_Corner_down will be at 1TY and -1TX. The of course you will get a full smile at 1TY and 0TX and a full frown at -1TY and 0TX. I am sure you see the problem is that these coordinates overlap thus nulling out my setup. I had a simple solution to this issue a few years back but for the life of me can't remember what it was or where I put those notes. I know I get the effect I want by hooking up some distance dimension nodes, however I was hoping for an easier solution. Can anyone help?

  2. dBrooks

    offline
    Member
    Posted 8 years ago
    #

    When you say overlap, do you mean your blendshape is being overridden by another blendshape? If this is the case you need to make sure you are using one blendshape node, ie: you are applying all of your target shapes to your base shape via one blendshape command (you can add and remove shapes later).

    I'm assuming you'd have one shape for your smile, one for your frown, then you'd just hook up the translation values so 0 to 1 drives the smile, and 0 to -1 drives the frown.

  3. ryangriffin

    offline
    Member
    Posted 8 years ago
    #

    It is more like I have 4 shapes. A left and right smile and a left and right frown. This is a joint driven facial system where I move the joints to form poses. So I am dealing with 4 poses. Here is the problem. I say that I want LTSmile to occur when I move my slider to 1Y and 1X. Now I want that pose to deactivate when I move the slider to 1Y and -1X, however I have a set driven key saying that 1Y = LT smile on.

  4. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    I think the problem is that you are trying to do too much with one box..

    you might want to divide it into two separate ones.
    Say Smile
    Y is R and X is L
    so if you do YX then you get R and L
    (your default 0 0 is on the left bottom corner and it only goes up one unit in Y and right one unit in X)

    same with frown

    I don't think you can do both smile and frown AND left and right with one one (unless you do a 3D box)

  5. ryangriffin

    offline
    Member
    Posted 8 years ago
    #

    That may be the way I end up going. I do have a mel script that will create a distance node using locators. Basically I calculate the distance from each edge of my square and use those numbers to set my driven keys. I am trying to finish up a joint driven facial rigging script in Python, however I am pretty new to Python and I am not sure how to wire all this up. I want to set up the control this way so that animators cant try to use conflicting shapes at the same time such as corner up and corner down or wide and narrow. I may have to give in for lack of time and go with your suggestion. I know Jason has done something like this because it is an option in his jsFacialWin script. I myself have done this same thing with a simple cheat however I can't remember what it was and have a feeling it was messy to begin with.
    On a side, here is an image in case anyone is confused about what I am trying to do. http://picasaweb.google.com/ryangrif/ForTurbineDocs#5304697802068784434

  6. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    The thing is.. what happens at 0X 1Y? what do you expect to see there?
    a full smile?

    if so.. that's fine.. you just need to set up the blends like this for Y1

    RS1 RS1 RS0
    LS0 LS1 LS1

    so from X1 to X0 you go from left smile to full smile and then you carry on taking the smile off
    but I would think that's weird for animators

    what you can also do, is what I mentioned above, BUT you invert the frown so that it's on the lower left corner.. that way you won't have conflicting curves
    that would leave you with a top left and a bottom right corner that are useless and nothing happens there (unless you can find some kind of shape you want to add there too

    I hope that makes sense

    BTW.. I would put right smile on the right and left smile on the left.. but that's just me

  7. sim.On

    offline
    Member
    Posted 8 years ago
    #

    so you are trying to setup a joint_based-facial setup with osipa-style-sliders ...

    ------------------

    here is what i would do for adding up translations of each joint / each pose :

    - for each joint i would create one plusMinusAverage-Node . ( the translation of each joint is the sum - of all translations , that occur , when you e.g. move your sliders ... e.g. final pose will be the sum of ... 30% smileL + 10% frownR + 50% "O"-Phenom )

    - into the first "input3D" of each joint i would write the initial translation of your joint (bindPose)

    - now for each facepose+ each joint ... i would create one multiplyDivide-node ... input1X , 1Y and 1Z , will be the "slider-attribute" ( float-attribute from range 0-1 ) ... input2X ,2Y and 2Z would be the "relative" translation of your target-pose - e.g. for a smileL , the relativeTranslation of your L_mouth_joint might be X=0 , Y=0.5, Z=0

    - then connect this multiply-output into your "plusMinusAVerage_node.input[1]" , and for the other Poses that follow into input[2] input[3] input[4] and so on . now , if you "slide" your attributes , all poses ( initial_bind-pose + slider1*pose1 + slider2*pose2 + ... ) will add , to the final pose .

    ------------
    you could also ( for non-linear-animation / and even more advanced ) include some "animCurves" ... so the interpolation of the motion of each joint would not be so linear and look smoother ... anyway , i can recommend to have a look at following weblinks , for jointBased facial_setups

    http://eat3d.com/facialrig ( a really good walkthrough for a easy to follow and robust setup )
    http://store.autodesk.com/DRHM/servlet/ControllerServlet?Action=DisplayProductDetailsPage&SiteID=adsk&Locale=en_US&Env=BASE&productID=81355500 ( this DVD shows non-linear-joints_based animation with setDrivenKeys + sticky-lips and joint based eye-blinks)
    http://research.animationsinstitut.de ( here you can download a complete joint_based-toolkit / you need to register to download it )

  8. ryangriffin

    offline
    Member
    Posted 8 years ago
    #

    Hey guys thanks for all the suggestions. That is a very interesting setup you describe Sim.On. That does not sound to difficult to script in Python. Just to get this thing running, I will likely go with the half square sliders and move on from there.

  9. Erick

    offline
    Member
    Posted 8 years ago
    #

    Just a quick note on the RT/LT being opposite. I thought that looked weird too, but then realized that when I'm doing facial animation, I'm looking at my character head-on. So, the Left side of the character's face is the Right side of the screen and vice versa. I always make my controls based on the Character, so the Left Arm Control is on the right side of my monitor if I'm looking at the front of my character. Is this a typical setup or do animators prefer to think of "Their" right and not the "Character's" right? I guess as long as the controls on one side control that same side of the character, RT/LT are meaningless (until you get to the graph editor and have to select only by channel names). Does anyone still use or prefer the "on-face" style controls of Osipa's book? I like that because I can actually grab a control in an intuitive place and pull it up/down/left/right and control all my facial shapes with no real need for excessive boxes and sliders and RT/LT/UP/DN labels. From an animators perspective I would think it is less important to know how to mix a RTSmile and a LTFrown on a couple sliders in a box than to just pull up one side of the mouth and pull down the other until it looks right. Also, it avoids the need for a 2 window split view where you keep your controls in one pane and your character in a second. You could also of course have a toggle to hide the on-face controls to better see the final shape when the controls get obstructive. What do you all think/like/use?

  10. Javier "Goosh" Solsona (admin)

    offline
    Key Master
    Posted 8 years ago
    #

    Well.. animators here don't really like the square controllers too much.. as far as I know... (aka "Osipa's Method" though I like to call it more the "Michael Ferraro's" method, since I believe he developed it with Osipa's help.. Osipa just happen to have written a book about it... anyway)

    for something like feature, animators want/need a lot more control and sliders like that would be way too confusing.. (I could be wrong though... Jason might want to step in)

    I always thought (as an animator) that having some kind of on the face controllers would be the ideal...

    I guess this is more of a question for animators.. As a character TD, what we think is best, matters very little.. it's the animators that are going to be using the setup and it needs to make sense to them.

  11. sim.On

    offline
    Member
    Posted 8 years ago
    #

    i personally also like to have controls and sliders ( to ride the emotions of a character's face , like a discJockey ) - i find it very attractive in demoreels ,as it makes the work of a rigger visual ... sliders are soooo lovely to look at .

    but , as far as i know , most animators like it much more , when they can "scrub" their attributes , from within one main_facial_control , within the channelBox ( so they dont need to select and deselect all the control_sliders all the time and it also makes it possible to use exact values / all areas of the face seperated in Brows , Eyes , Nose , Lips , Cheeks , Jaw )

    sometimes , with sliders , you "cannot mix" certain poses together . e.g. 30%smile+ 5%frown ( because "the slider" doesnot allow it , as it is setup for EITHER smile OR frown ) .

    once you have setup one central_controller for your face with all the attributes and have connected them and have generated all the poses ( which is the main work , when rigging a face / and most animators are happy ) you can later also additionally add sliders , if you like and then connect them with the attributes of your main_facial_control , in a way , that animators , could EITHER animate the sliders OR animate the attributes from the face_control .

    thinking about sliders , a robust and stable "rock-on-setup" is much more needed , than fancy colored style-sliders ... i mean these sliders can be very nice for animation-beginners , but experienced animators would prefer functionality more than sliders.

    so in my eyes sliders are "additional" , and not really needed .

  12. dBrooks

    offline
    Member
    Posted 8 years ago
    #

    Yeah nodes would be the way to go here. You can control the way the joints are driven via nodes.

    Even that Eat3D setup, although the narrator says it's a driven key setup, I noticed his joint transforms were yellow, indicating that he'd used nodes/direct connections there somewhere.

  13. ryangriffin

    offline
    Member
    Posted 8 years ago
    #

    I took some time to speak with my animators on the topic of facial control. I get a whole range of opinions. Some like the controls on the face and others like sliders. I personally am not a big fan of on the face control as I find it distracting when I am trying to find my pose. I think I am going to go with the option of having on face controls and sliders, that way the animator can choose. This means more scripting to fit into my already tight deadline, but I want to make sure I get this right.
    Thanks again for all the suggestions I got concerning the creation of controls. You have all been very helpful. I later realized that I was able to make the four corner control in the past because I was using blendshapes, not a joint driven system. Boy do I feel silly.

  14. dBrooks

    offline
    Member
    Posted 8 years ago
    #

    Dont feel silly dude! We've all been there

    It sounds like you care a lot about the rigs so I'm sure the animators will get a nice final result.

  15. edwardG

    offline
    Member
    Posted 8 years ago
    #

    "Even that Eat3D setup, although the narrator says it's a driven key setup, I noticed his joint transforms were yellow, indicating that he'd used nodes/direct connections there somewhere."

    Well, you will also get yellow channels from multiple driven keys on the same transformation channel, so it' still possible that he used only driven keys.

  16. dBrooks

    offline
    Member
    Posted 8 years ago
    #

    Ahh yeah okay my bad. I tend to avoid driven keys if I can.

Reply

You must log in to post.

Rigging101 » Rigging128
1,099 posts in 307 topics over 110 months by 188 of 8,226 members. Latest: fashionpvp, d2q4p5z2j, gasheldonl