brotools rigging maya python tech

BroRig: Auto rigging tools are slowly coming together!

2021-10-12

BroRig is something I've been working on and off for quite a while now. I've been leaving it for long periods of time because I kept asking myself one simple question - why reinvent the wheel when there are a ton of other auto rigs available, including mastodons like Advanced Skeleton or ART?

Well, I'll try to answer these questions here, for myself as much as for anyone else.

So...

Why develop my own auto rig?

Flexibility

Probably one of the biggest reasons why anyone would want to have their own auto rig is flexibility. Since I wrote it and I know the code I can adapt it to any task. I build it with modularity and extensibility in mind, as a framework which is not limited to any specific rig types. And it allows me to keep, gather and expand on my own library of rig modules.

It does not have to settle on just one type of FK or one type of IK. Regular FK, Variable FK, simple IK, stretchy IK, bendy IK, layered IK-FK, dynamic FK, wave FK, spline IK, ribbon IK - it can allow user to choose which modules to add to the rig to tackle specific animation tasks without trying to cram unnecessary functionality "just in case".

Which bring me to the next point...

Performance

One of the big issues with many auto rigs that are available for Maya is performance. The main reason for that, as I can see it, is that most auto rig systems try to cram as much functionality into them as possible. They are, simply put, bloated .

BroRig tries to solve this problem by bundling different rig modules as mentioned above. If you are working on a game and you know you only need simple IK without stretching or bending - you can install just the Simple IK module. It will be fast and minimal.

If you are working on an animation movie and you want to need to have the full functionality - you can install some of the IK modules that support everything you need. Or you can install different simpler IK modules and jump between them.

But you are also not limited by your initial decisions. At any point you can add rigging modules to your rig and rebuild it.

On top of that I also try to stick to performance-oriented rigging techniques. Relying on nodes as much as possible, using matrix parenting instead of parent constraints, etc.

Simplicity and minimalism

A lot of existing rigs look like someone just thrown out all the buttons they have onto a canvas. It's intimidating. When you just want to rig a character that's too much.

With BroRig I'm trying to make UI simple and minimal, with clear separation of different tools. I want it to be something that an animator can pick up and start using after watching a quick introductory video.

Specific workflow

BroRig separates the process of creating a "Deformation Rig" and "Animation Rig". Deformation rig is your skeleton system, blendshapes, deformers, etc. They can exist separately from the animation rig. At the moment I'm focusing on working with Animation Rig, but in the future I plan on adding tools for creating deformation rigs as well.

This way it can be used not only to rig new characters, but to also quickly add animation rig on top of, say, existing game character that you only have an FBX file of.

BroRig should also allow to quickly "import" existing animations from FBX files with matching skeleton.

One of the situations where this can be useful is when you need to adjust an animation of a character in existing game project. With BroRig you can import the character from FBX file, quickly add a rig to it, import animation from another FBX file and edit it.

Automatic IK FK switching built in

BroRig has a system built in that allows animator to switch not only between IK and FK, but between all the different modules installed on the body part. Meaning you can have 3 different IK systems on your spine, and upon switching it will be matched.

There is an issue where spline IK spines or stretchy IKs can't be matched 100% exactly due to how they work, but BroRig will still try it's best.

Practice

Well, and finally it's just great practice. While working on it I've learned a lot about Maya, this gives great incentive to dive deeper into rigging techniques as I look for most optimal solutions for my rig modules.


Oh, and one day, when it's ready, it will most likely become part of BroTools suite, available for purchase.