Max... bones vs. biped. vs geom. vs helpers

What’s the best all-around rigging solution for games these days? I’ve used all of these in the past for different things, but I’m looking to learn more about rigging.

Biped is super-simple and quick, but I hate using the Workbench.

Bones are easy, but the hierarchy seems to break so easily in Bone Edit Mode. :curses:

I watched an interesting Master Class “Creating A Complex Rig In Minutes” from Laurent Abecassis, where he snapshot Biped and used the mesh as bones. Very quick to setup and align to the skin mesh.

Point helpers seem less helpful, simply because it’s harder to see their orientations.

I know it depends, but I’m fishing for opinions.

Max bones are actually geometry with some special properties. Special properties which I really hate. I hate max bones, let me say again, I hate max bones.

Biped is a good animation and rigging tool if your needs are quick or easy and you are animating stuff that doesn’t need anything more than Biped can provide. It falls apart in pipeline and tools, it is an enormous pain to work with if you have to do scripting. I know many studios do, but I think it is utterly foolish to use Biped on any large project or a project with a customized animation pipeline. Just a side note, if you do decide to use Biped, never plan on exporting the Biped itself- it can hide all sorts of bad stuff from you, such as non-uniform scale- better to position and orientation constrain helpers to it and export those instead.

Geometry is fine in that it is like bones that don’t have the stupid bone properties. However I’d be cautious of using regular geometry, it could cause problems with pipeline, exporting, etc- how do you know something is a bone (then you have to start adding CA’s to it, etc)?

Helpers actually behave exactly as you should expect real 3d bones to have- if you non-uniform scale, they will appear sheared, for example. You can use a Point helper with box and cross and axis tripod turned on- the display options are handy. However you can’t see the length of a joint which is a pain.

Max also has its ‘old’ bones (just type ‘Bone()’ into the listener to make one). If these weren’t deprecated I’d much prefer them, they behave a lot like Maya’s joints. However, I don’t know if there are issues with using them, as I’ve never used them to make any complex rig.

Save yourself the trouble, though, and just use [w]PuppetShop[/w]. It is extremely flexible for all types of rigs (not restricted to bipeds or anything like that), and is quite easy to extend and script for. IMO, learning how to rig in Max is not worth the hassle… it is such a goddamn pain to rig in compared to something like Maya, if a solution like Puppetshop is possible then it is a much better choice.

At Volition we primarily use Character Studio Biped. Most of our games have only had human bipedal characters and for that simple fact CS:biped has served most of our needs.

Biped Pros:
Its a simple basic rig and easy to animate with, no ik/fk switches, control nodes, etc. What you see is what you get. We can dump mocap on biped without any additional effort. The built in IK has always been really nice to work with once you get the workflow. The postures and pose copy/paste does what it does and we use that a great deal. Overall biped is a simplistic rig and that simplicity can net the animators in being very productive.

Biped Cons:
I will agree that the workbench is utterly useless and I dont think anyone at the studio has even touched that. Also, the Mixer does some nice things but there is a lot left to be desired from it. You can only mix tracks and then, to work at the key level, you must bake down losing any of the mixing that you might want to go back to after tweaking the keys. There are many bugs with the way IK works with biped layers, dont get me started. Biped is not very friendly with complex rigging. You can link bones/geometry to biped to expand the rig more outside of what biped gives you but it can get pretty hairy. Additionally, if you need to get more out of your animation with tweaking function curves, unless you want to open the workbench and deal with that pile, biped completely fails in that aspect.

Biped Workflow
We dont export the biped rig to game. Biped is used as the control rig and an FK skeleton bound, link constrained, to the biped. The FK skeleton is what gets exported. The FK skeleton is essentially snapshot geometry from the biped with some automated twist controls applied here and there, biped twists are buggy. The FK skeleton may also have whatever additional bones are needed, be it geometry or max bones it doesnt matter. The animators work with the biped primarily and whatever extra attached bones that need to be animated. The base FK skeleton and the automated controls used stay hidden from the animator.

I would have to agree with Rob about rigging in max being a hassle. Unless perhaps if you are Paul Neale. He has some good tutorials and dvds if you really want to get into max rigging. I think we may have touched on Puppetshop briefly but perhaps not nearly as much as we should have, as noted by Rob’s glowing affection and somewhat biased postion on it. :):

Unfortunately we also use Biped with an FK system constrained to the biped. We do mostly hand keyed animation, and biped isn’t the best solution for that. The animatable pivot points for the hands and feet are nice but really buggy. As stated above workbench is as useful as a sunken boat. We’ve also used custom rigs in max. They have worked great but sharing animations bewteen them is not quick and easily accomplished (especially when dealing scale differences). Puppet shop is the way to go if you want quick and cost effective rigs. Its fairly affordable considering CAT is about a $1,000. CAT does some really nice things, its far and away superior to CS, but expensive. Download the demo to either, they’re worth a look.

Our exporter will handle bipeds or regular Max bones. In fact it’s probably fine with any object types in a hierarchy driving the skin. We typically use Bipeds though since we don’t have the scope to get someone rigging up character skeletons. Bipeds take no time to set up and that’s good for us. Dead easy to transfer animation between dissimilar characters too which we do quite a bit.

We haven’t so far done much with trying to extend them. I’ve added constrained helpers to aid twisting and that worked just fine.

Can someone explain what the problem is with exporting bipeds directly? We’ve done that for several projects and haven’t hit any problems. Rob you mentioned them hiding non-uniform scaling. Is that an issue if we tried to use squash and stretch? We haven’t needed to do that for the previous projects, but might well do for the current one. I’ll have to run some tests before we get too far into it.

I’ve been meaning to look into PuppetShop. It does look much more flexible (especially for non-bipedal characters) but we use external contract animators and we’d need to make sure they have licenses for PuppetShop which complicates things.

Personally I’m no animator and don’t actually animate the things myself beyond chucking a layer on and fixing up some intersecting arms from some mocap or something. The animators we’ve used have produced good stuff with bipeds. I’m sure they’d prefer a nice standard bones rig, but they haven’t complained so far or taken too long.

I’ve had mixed impressions of the main two systems over the years. We started out with biped a number of years ago because originally that’s all our exporter supported. It was immensely annoying to use back then, especially since we were animating a lot of quadrupeds.

Eventually we switched to max bones and developed a rigging system that was much faster and easier to use since we could control much more of it. It still breaks on occasion, but we’re happy with it for now. Much of that can be attributed to Paul Neale who’s efforts have made the rigging world in max a lot easier to understand and manipulate.

Of course now that biped is finally developed to a stage where it’s usable, I haven’t had the stones to go back to it. Too many horrific memories. :slight_smile:

One thing I can’t stand is spline IK. It’s magical when it works, but when it breaks it can cause so many problems it’s hardly worth using.

I’d love to use CAT, but our exporter hates it. I’ve yet to try puppetshop.

I think generally the idea of the complex driving the simple FK rig is usually the best way to go (not to mention the faster way to export large amounts of animation).

[QUOTE=robinb;1547]Can someone explain what the problem is with exporting bipeds directly? We’ve done that for several projects and haven’t hit any problems. Rob you mentioned them hiding non-uniform scaling. Is that an issue if we tried to use squash and stretch? We haven’t needed to do that for the previous projects, but might well do for the current one. I’ll have to run some tests before we get too far into it.[/quote]
Biped allows you (or used to allow you, maybe still does) to change the scale of bones, outside of figure mode (which isn’t applying scale). And because the Biped is hierarchical, when your engine interprets this data, it will be applying that scaling to bones further down the chain. The Biped, however, does not reflect this. If you try it with point helpers, you will see the shearing- with Biped, you won’t. Unless your engine is specifically set up to handle non-uniform scaling, you never want it in your rig, and you certainly don’t want your rig to hide it from you.

The animators we’ve used have produced good stuff with bipeds. I’m sure they’d prefer a nice standard bones rig, but they haven’t complained so far or taken too long.

I doubt they’d prefer a nice standard bones rig. While some of Biped is crap, it is really simple to animate with, and there are some good scripts and workflow tools available. I do know, however, that your pipeline would prefer a non-Biped solution, and it comes down to, is the pipeline time Biped adds worth building (and more importantly, maintaining) your custom rig solution. With any complex pipeline, yeah, it is probably worth it, but if you haven’t had any problems and don’t have people that have done it before, it is probably not a good thing to try- creating a rigging and animation pipeline from scratch when you have one that works already, will force whoever is doing it to have lots of moments when they re-examine their choices and will put their sanity to the test- it is really a high-stress endeavor.

You should be able to put an FK skeleton on top of CAT, no? Also, PS exports to Max bones (and will bring your skin modifier over and everything, etc.), so exporting is no problem. It also allows for custom export hierarchies that may be different from rigging hierarchies, etc.

It should also be noted, PuppetShop is written like 90% in MXS. The C++ stuff is only for things that need to be very fast. This means you are able to modify almost any of Puppetshop, except a few MSE files that are encrypted (and your company can buy source code). CAT is all in C++ AFAIK, with a few auxiliary scripts- this makes it much less exposed and much more difficult to work with. After the first month or so of using PuppetShop, I have really been able to add and script with it seamlessly, even creating my own integrated limb type (a dog leg which behaves like Biped’s, both IK and FK at the same time), and a ‘custom’ spiderleg that was added after rigging.

Thanks for the info everyone, this helps.

When I was at Whatif our exporter supported using anything as bones, it simply extracted whatever was being used by Skin or Physique. The engine also supported non-uniform scale, as long as it wasn’t present in the bind pose itself, but it could be used in subsequent keyframes.

I always thought Biped only allowed non-u scale in Figure Mode, which it seemed to internally convert to bone position instead of actual non-u scale. IIRC you can’t scale outside Figure Mode, but I don’t have it open to check.

[QUOTE=Eric Chadwick;1552]I always thought Biped only allowed non-u scale in Figure Mode, which it seemed to internally convert to bone position instead of actual non-u scale. IIRC you can’t scale outside Figure Mode, but I don’t have it open to check.[/QUOTE]

It doesn’t seem to allow it for me either but I know my Art Director was using it somehow (though I seem to remember it wasn’t straightforward to use or enable it). But I know for sure it was there. I used to have nightmares about his Biped files.

[QUOTE=Rob Galanakis;1551]

You should be able to put an FK skeleton on top of CAT, no? Also, PS exports to Max bones (and will bring your skin modifier over and everything, etc.), so exporting is no problem. It also allows for custom export hierarchies that may be different from rigging hierarchies, etc.
[/QUOTE]

Well, admittedly, at the beginning I didn’t know much about CAT. You’re absolutely right, it should work with no issues now. But given your exuberance for PuppetShop, I should suggest it to the team for a test run!

The studio were I work at don’t do videogames, but they have been using Biped during the past two years for feature film. I’m lucky Biped is a little pain in the ass for some animators, because I came to the company to solve this :p: and to create a rig based on bones.

The main point is that this rig is intended to be more ‘modular’ and to allow more customization than Biped. Some animators ‘complain’ about things like ‘gimbal lock’ (that never happens with Biped, of course) and other stuff, but in the end they are learning to looooooooove the bones (as you should, Rob, hehehehe ;)).

It’s hard to get the best of the two worlds (I like a lot the seamless integration between FK and IK in Biped), and sometimes you have to decide which way to go knowing in advance that the rig you’re going to use will lack of something.

After reading a lot about PuppetShop, I think it deserves a good chance to avoid some of the problems of Biped as well as a bone rig.

Nice to see Puppetshop has layers, mocap integration, etc. Looks really solid.

[QUOTE=Rob Galanakis;1551]…Stuff Rob wrote…[/QUOTE]

Thanks for the input Rob.

I couldn’t figure out how to scale biped bits outside figure mode. I was sure you could stretch and squash them somehow. I saw a video about it as a feature a few versions ago I thought, but now I can’t find anything in the docs that mention it (Max2008). Maybe it was removed. How odd.

Looks like we will need to go to bones if we want to do stretch and squash. Not sure if we’ll need to yet though.

[QUOTE=robinb;1569]Thanks for the input Rob.

I couldn’t figure out how to scale biped bits outside figure mode. I was sure you could stretch and squash them somehow. I saw a video about it as a feature a few versions ago I thought, but now I can’t find anything in the docs that mention it (Max2008). Maybe it was removed. How odd.

Looks like we will need to go to bones if we want to do stretch and squash. Not sure if we’ll need to yet though.[/QUOTE]

You can set ScaleXYZ Controllers in Biped. And then, click on the ‘Enable SubAnims’ and ‘Manipulate SubAnims’ buttons, under the ‘Keyframing Tools’ rollout. Then animate the scale and voilà! Works perfectly :slight_smile:

[QUOTE=ikerCLoN;1573]You can set ScaleXYZ Controllers in Biped. And then, click on the ‘Enable SubAnims’ and ‘Manipulate SubAnims’ buttons, under the ‘Keyframing Tools’ rollout. Then animate the scale and voilà! Works perfectly :)[/QUOTE]

Thanks, I’ll check that out tomorrow. Doesn’t exactly sound straight forward to turn on. Not very likely to happen by mistake.

Right, I’ve got it. I couldn’t get it to work when I assigned a Bezier Scale controller (it just disappeared when I tried to scale the limb). It seems to work with ScaleXYZ controllers. The help doesn’t really help at all since it doesn’t mention which controllers to use.

This link helped that.

And now I’ve exported it I see the problem Rob mentioned. The limb scales alright, but in max only the current bone scales and the rest of the limb stays OK. But in the external engine the whole limb inherits the scale and ends up skewed.

Thanks guys, that’s been useful.

If you want squash n stretch, I recommend animating the position length between bones, instead of scale, since you don’t want the scaled frame to be inherited down the chain. I don’t know if this is possible with Biped, but we did this with Max bones, and it exported well.

For the squash part, we linked a helper leaf bone to the parent, and scaled that in a 2-axis plane perpendicular to the parent. Then we wired that scaling action to react to the distance between the parent and it’s limb-child, which gave us auto-squash whenever the child limb was repositioned closer to the parent limb, and auto-squish for the opposite. The leaf bone has no children, so no scale-inheritance problems.

Good idea Eric, but I can’t get position SubAnims to work the same way as scale does on the biped. I can assign a controller, but tugging on the lower limbs doesn’t make the upper limb stretch or make the lower limb separate, it just pulls the limb using IK as normal.

Now I know what I was searching for in the help (SubAnim- one word, meaning searching for “Biped Sub Anim” misses it) I found there’s a tutorial dealing with biped limb stretching. However it only deals with scaling and noise on rotation. Both of those work, but not position. I get the impression it’s not exactly a robust technique.

Oh well I know now to try and avoid using it. We can always use a custom rig for any specific moves that need stretch and squash if we really need to, but i think I’ll try not to need it.

As far as I know, you can tweak the XPosition on the Biped limbs as you do with standard bones. Biped has some advantages… but disadvantages too.

we are using biped here for a lot of the same reasons that other people have listed…

we are actually using a mobu > biped setup. i came onto this project late, and this pipeline had already been established. coming in without having used max before, i was a little leary of changing a stable, if undesirable, pipeline. i initially planned on breaking out of biped and just having an fk skeleton that we would import fbx’s onto, but i had only been working with max for about a month so i decided to leave things the way they were, even if i didn’t really like it, out of fear of making bigger problems that i hadn’t foreseen.

as a rigger, i pretty much hate biped. i’ve established a workflow that is suitable for things like skinning, but manipulating biped and some of the basic functions of it bother me. gimbal and all, i love that in maya i can just punch in a rotation value and know that i’m getting what i want. i don’t feel that confidence with quat’s and biped. im just now setting up my first face rig in max and hoping that it plays nice with biped. so far so good.

i hadn’t heard of puppet shop or cats before coming to this forum so i’m pretty excited to check those out.