Home Technical Talk

Rigging helper bones: And other nonsense.

polycounter lvl 18
Offline / Send Message
oXYnary polycounter lvl 18
Ok here is Emo part 2.

There was a good article in Game Developer about 3 years ago about rigging with helper bones that are 50% between two bones in a chain(like linked off one and IKed? to the other with a 50 percent between each) You link like inner vertices to this to help reduce folding. Does anyone know what I am talking about and which joints was it in reference to? Was it in fact good advice?

Is adding a clavicle bone to the standard biped going overboard? They have a scapula on it normally, but that doesnt take into account how the clavicle effects the front portion of the shoulder.

Also, without buying a $80 video. Or looking for a used copy of that Maya book version (which has failed thus far). Any online tutorials for facial rigging specific to Max and gaming (ie efficient). (I think Im going to make a version with and without a facial rig, but I want to complete the facial rig version first).

With a facial rig, do you need to have a normal map for each extreme? Since the UVWs will be stretched and such.

Slightly OT. I noticed the hl2 is using animated shaders for their eyeballs to follow the viewer. Are most engines going in this direction or are they the exception?

Replies

  • doc rob
    Options
    Offline / Send Message
    doc rob polycounter lvl 19
    1) Yes, helper bones rock. They prevent the collapsing of the joints when they bend and twist. Bend bones work for elbows and knees and such, and twist bones work for biceps and thighs. They are hard to wire into a biped because bipeds use quaternion (TCB) keys and Max bones use Euler (XYZ) keys. Max 8 has options for using Euler keys on a biped, which might help with that. e_x might be able to help here?

    2) You have the clavicle and scapula mixed up. The clavicle is there by default, the scapula is not. You usually don't need a scapula, but it might help for 3rd person player characters where you're staring at the back all the time. A reactor setup is probably best for this.

    3+) Facial rigging is hard and usually very game-specific in implementation. Eyeballs can be controlled aimed with shaders or look-at controllers. You don't need normal map extremes for UV stretching. However, you will need to think about creasing in the face for expressions (no creasing is one of the hallmarks of the uncanny valley), and blending between normal maps based on expressions is one good way to do this. Another way (done in HL2) is to cut edgeloops into your model where you expect creases to form in extreme expressions. Then, with the morph targets or careful skinweighting you can get the creases to appear at the right times. Again, it all depends on your game tech.

    Check out Jason Ospia's "Stop Staring" for a good take on facial animation and rigging.
  • oXYnary
    Options
    Offline / Send Message
    oXYnary polycounter lvl 18
    1. Hopefully e_x can chime in? If I could remember that Issue it was in. Im not even sure I have it anymore since I have done so much clean up in back issues taking up room. I can always hand build the rig if need be, but I suck at creating IK and dummy object stuff to help make the rig easier to manipulate.

    2. My mistake. With reactor is there good tutorial to add gravity without manually posing sub pieces to mimick? In example, like for hair pigtails and setting it up so it will stop and rebound at the models surface depending on the animation.

    3. If one has no idea what the tech is of the engine (UED3), which version of eye creation is the safest? I have pretty detailed facial edge loops happening, about the same detail (slightly more) than hl2. However, they didnt use normal maps at all on hl2 characters right? If one was to blend between normal maps how would this be accomplished? The only way I can think of doing this would be through morph targets versus bones. Since many times the high res master is in say zbrush where you cant get a rig inside to mimick the low. So I dont see how you could repose the low, then have the high end one mimick it (especially since vetices have a tendency to be renumbered on export). Actually this sounds like a hell of a lot of work either way and not time/cost efficient for a company to do (multiple normal map passes). Is there any engine or game doing this or is it more just that its "technically" possible? Can I get away with a neutral pose normal map and have the edgelooped face still look somewhat convincing with this normal map attached?

    I cant find stop starring locally used. I have been looking for months. I cant do online purchasing at this time. Anything at all online in this direction to at least get me started? Maybe a facial rig using bones someone has created in max they will allow others to look at?

    (One of those hmm questions, why aren't artist more willing to share such sdk type material? Versus simply giving a tutorial alone with just pictures)
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    [ QUOTE ]
    (One of those hmm questions, why aren't artist more willing to share such sdk type material? Versus simply giving a tutorial alone with just pictures)

    [/ QUOTE ]

    Presumably so that people will actually go and do things themselves rather than just loading up an existing file and copying and pasting settings out of it, or merging it with their own scenes.

    Nothing beats learning it yourself.
  • doc rob
    Options
    Offline / Send Message
    doc rob polycounter lvl 19
    2. Sorry, I think it's "Reaction" - a controller type, not Reactor, my mistake. Whatever the name, it's a controller that lets you set up a relationship between two objects, one driving the other.

    4. In the case of HL2 facial animation is a mix of AI driven emotional states, automated lipsync, procedural look-at based on the player's position in the world, and probably more that I'm not aware of. You can hand-key eyes looking around, but if you want them to look directly at a player, that has to be done by a specific game implementation. I can't tell you how to do that, even if I know the engine, it really depends on the game.

    The same goes for things like normal map creasing. The edgeloop method can be done in Max with a morph based animation system. But, the morphs will have to be set up a very specific way for export and configuration so that the game knows how to manipulate them. The game will only store the keyframe times and morph percentages - that's how it plays the animation. You can understand how each game (even using the same engine) will have it's own, very specific way of setting up a character for export and then configuring it with a proprietary tool so it will work in the game. If you have HL2, use Steam to get the SDK and be befuddled by their character tools.

    Sorry you can't get Stop Staring, but keep trying - it's worth it. He uses a combination of edgeloop and bump map creasing in the book. He's been working on some super secret games stuff since the book came out, so, yes, stuff like that is done in games. I think Fight Night 3 uses a normal map blend system as well.

    Also, and this goes for anybody, if you can master this kind of stuff - custom rigging and facial setup - you will have a guaranteed job in the industry. Forget modeling or textures or any of that crap. It's very rare to find somebody like . . Paul Neale or Bay Raitt that can do magic with character setup (I can't). If you're good at it, you will make bagillions of dollars.
  • oXYnary
    Options
    Offline / Send Message
    oXYnary polycounter lvl 18
    Thanks rob for the suggestions thus far. I have been looking at the hl2 facial system and even read a shor tut on its morphing system. The problem I see with a bone rigged face versus a morphed version as far as muliple normal mapped creation. If you are creating your normal map in a outside program like zbrush, going back into zbrush with a pre sudivided model and expecting vertices to keep the same numbering system is more difficult than going out. In other words, if the engine was a morphed based system like hl2, you could create the normal mapped morphs in zbrush and then bake them unto to the low poly (except when you need the jaw open). Does anyone know the pipeline used specifically in these games with normal map blending? Or does someone have an example of a character with a facial bone system using only one normal map showing how it looks in extreme facial expressions (like surprise).

    I like doing my own rigging (control freak). I don't want to be plastered with just "the rig guy". I can already imagine how incredibly boring that must be to day after day. I like modeling and texturing characters much more.


    Off topic
    [ QUOTE ]
    Presumably so that people will actually go and do things themselves rather than just loading up an existing file and copying and pasting settings out of it, or merging it with their own scenes.

    Nothing beats learning it yourself.

    [/ QUOTE ]

    Then I guess Im the exception to the rule. Or more, thats going to happen no matter what with some people. I like using what I see as an example and building my own based off it. Nothing helps more than seeing something in person/action for my learning style.

    Ashvelon a few months ago was willing to share his models, and by being able to look at his edge loops directly, I was able to learn a great deal more than looking at static online or video tutorials because I could manipulate the object.
  • e_x
    Options
    Offline / Send Message
    e_x polycounter lvl 18
    I remember that article. Stephen Theodore talked about it in his Pixel Pusher column. No idea what issue it was in though. I don't think it was three years old, maybe early last year? Half-Life 2 uses a lot of fix up bones in their character rig, which I think Theodore was referencing when he wrote the article. I remember seeing a video before it came out showing off some cool new stuff in XSI. Might be worth trying to track down to look at. It was on Softimage's site back when they were hyping HL2.

    As far as fix up bones with character studios biped, a lot of what you're looking for is already built into max 8's biped. Just go into figure mode and expand the 'Structure' rollout and at the bottom you'll see the 'Twist Links' options. Here you can turn on the different fix ups for each major joint.

    After doing that, exit figure mode and select the arm for example. You'll notice a 'Twist Pose' rollout. Inside there you can "pose" your twist bones for better deformation. Max gives you some predefined poses to cycle through to test out. You can also create your own if you want. I recommend skinning your character first and then doing this. That way you can assure proper deformation by tweaking the skinning and pose of the twist bones.

    If you want to add your own fix up bones, you have to create an "Expose Transform" helper and then link/assign them to the parent bone. This will convert bipeds wacky TCB controller into Euler XYZ info that you can then use for wiring or reaction manager controls. Then you will have the fun time of fighting with gimble lock, confused.gif

    Adding fix up bones to a custom rig is a lot easier. You just have to make sure everything is lined up all nice and neat and then wire/raction it together. Pretty straight forward.

    Check out Paul Neale's site for pretty much all things rigging in max if you haven't already. http://paulneale.com/ I own his $80 facial rig DVD that you are probably talking about and it rocks, hard. I would recommend picking it up if you can afford it.

    Hope some of that helps.
  • oXYnary
    Options
    Offline / Send Message
    oXYnary polycounter lvl 18
    I'll look into that e_x. Thanks. Last time I really used biped versus just building my own structure it still was pretty lame in most areas. Though on export, do those twist bones actually export with the biped weighting/structure? Or is this something that only works inside of max? frown.gif If so I would be back at creating my own.


    Hmm.. per Neales site

    [ QUOTE ]
    . In places in this character there are up to 8 to 10 bones affect a vertex.

    [/ QUOTE ]

    http://paulneale.com/production/ogre/ogreFaceRig.htm

    Thats completely unfeasable in most engines. I dont know what ued3 limit is (was 3 in ued 2), But I think the doom 3 engine is 4. How do you translate that to a game facial rig (since especially he mentions 50 bones.. again unfeasable realtime?). This is why realistically, Im not sure how Neales vid can help as much if Im learning specific for game constraints (other than I cant afford it anyhow at this time).
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    when the twist bones are exported, they export as bones. All the skinning is there. The forearm twists are superb.

    4 bones per vert seems to the norm these days. 10 bones isn't really feasible for realitime, plus you end up storing a load of weighting information. A more common technique is to use a lower number of bones to rough out the face shapes, and then blend a morph to get it looking better.
  • e_x
    Options
    Offline / Send Message
    e_x polycounter lvl 18
    [ QUOTE ]
    Thats completely unfeasable in most engines. I dont know what ued3 limit is (was 3 in ued 2), But I think the doom 3 engine is 4. How do you translate that to a game facial rig (since especially he mentions 50 bones.. again unfeasable realtime?). This is why realistically, Im not sure how Neales vid can help as much if Im learning specific for game constraints (other than I cant afford it anyhow at this time).

    [/ QUOTE ]

    While the actual rig that Neale uses in his videos wouldn't work for games, the techniques that he uses to build the rig and control it are completely viable for building a facial rig for games. Like Doc said, it really depends on the game and what your goal for the characters is. There’s no reason you can’t scale down his rig to fit into the constraints of realtime gaming.

    Take a look at Unreal’s Impersonator stuff. It has a face rig that might help. http://udn.epicgames.com/Two/ImpersonatorHeadRigging That link has a picture of the face rig. From what I’ve heard, UE3 uses a newer version called FaceFX by the same company. http://www.oc3ent.com/

    There aren’t a lot of facil rig resources out there, especially for games. My suggestion would be to just sit down and start building a rig. Then do some animation tests and think about what could be done easier and what controls would help. The only way to learn is to do it.
  • Mark Dygert
    Options
    Offline / Send Message
    This has worked for me more than a few times, it has nothing to do with facial rigs but could be of use.

    http://www.jhaywood.com/croiProjectArm03.htm
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    A simpler method than that for a forearm twist is to create another forearm bone and link it the hand twist.

    Character studio has foretwist, this is pretty much the same method but with your own bone.

    Just create a new bone object and make it the same size as the forearm (eithr your own forearm or the CS one).

    Align its position and rotation to the forearm bone.

    Link it to forearm bone.

    You now have a duplicate of the forearm.

    Using wireparameters, set the Z rotation of this new bone to be linked to the Z rotation of the hand bone (you'll need to use an expose transform helper for this if you are using chracter studio). You can apply a dampener to this wiring if you wish.

    Now you have a roll bone that foolws the forearm, but rotates when the hand does. just gradient off your skinning.
  • FatAssasin
    Options
    Offline / Send Message
    FatAssasin polycounter lvl 18
    [ QUOTE ]
    This has worked for me more than a few times, it has nothing to do with facial rigs but could be of use.

    http://www.jhaywood.com/croiProjectArm03.htm

    [/ QUOTE ]

    Man, that's old. Someone needs to get in there and update that crap. smile.gif

    For our pre-rendered cinematics at work we have a custom made facial rig that uses stretchy bones constrained to splines. It works pretty good for the most part, but as soon as the current project is over I want to give it a major overhaul and add more bones and controls so you can get more subtle expressions.

    And if you really want to get into rigging, learn MaxScript. Every rig I create now was made once by hand and then scripted so that it could be made again and again quickly. So you build it from scratch manually first, and then write a script that makes the same rig in about three seconds. Scripting is essential to keep yourself from dying of boredom making the same rig over and over.
  • oXYnary
    Options
    Offline / Send Message
    oXYnary polycounter lvl 18
    [ QUOTE ]

    A simpler method than that for a forearm twist is to create another forearm bone and link it the hand twist.

    [/ QUOTE ]

    Is this to simulate a radius? I made one of those last time (with some input from Skullbox).

    Fatassasin, Couldnt you do the same thing by simply saving the file with the rig inside and merging when you need it again?
  • animatr
    Options
    Offline / Send Message
    animatr polycounter lvl 18
    generally, when you maxscript it, you can set it up so you can put dummys where the major joints are, then it will build that rig based on those locators. That way different scale characters isnt an issue
  • FatAssasin
    Options
    Offline / Send Message
    FatAssasin polycounter lvl 18
    [ QUOTE ]
    generally, when you maxscript it, you can set it up so you can put dummys where the major joints are, then it will build that rig based on those locators. That way different scale characters isnt an issue

    [/ QUOTE ]

    Yeah, exactly. If you need to rig a dwarf, an elf, and a giant, you can't just resize an existing skeleton, unless it's just some super simple FK only setup. So you can either create each one of those from scratch, use some sort of rigging solution like Biped or CAT, or script your own. I prefer the later.
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    Yup, another good thing about the maxscript method is that you only place the postion and aim points for one side of the face, and let the script mirror it as well as creating the bones.
Sign In or Register to comment.