Home Website Youtube GitHub

Building on top of a base rig

Hello mGear community!

I was wondering, how would you go about only building extra stuff on top of an existing mGear rig?
The general idea is to have many characters share the same base rig and skeleton, so that base rig would be permanently built and skinned in the Maya scene. I would only build what’s specific for each character (e.g. outfit).
Would you have any tricks or best practices to share?

Thanks!

I haven’t tried, but there are tools for attaching to an existing skeleton, I think? But I’m not sure that would suit what you’re trying to do, exactly.

This isn’t far from what we were doing on Felix years ago. We had the same guide and base topology as a template for each character. When you build, the skeleton is the same, and importing the identical skinning is just a matter of importing the skinCluster (or even the template guides) with Python. So I’m not sure I would constrain myself to having a template that was permanently built, as long as you have that template info stored.

But if you still want to, the skinning management might be tricky as you add custom joints for each character. Is this for games or film? If it’s for film, maybe the new’ish multiple skinClusters feature would help you layer on a separate skinCluster for the clothes and accessories, without modifying the base skin.

zooTools Hive has this great feature where you make a custom group that gets constrained to your existing skeleton. And as you go back and forth from guides to finished rig, that constraint remains, so you can parent custom stuff underneath. So that’s a clever way to attach things to the rig. (And you could do something similar if your skeleton is permanent. But you might have to reconstrain parts of the built rig with post scripts.)

Also there was something I did on Felix for certain post scripts, using defaultDict in Python. Which lets you define a default return value, but if you feed it custom info it will override it. So you could base your post scripts on that, where it only grabs new info as you create it. If it’s missing, it just grabs the template stuff.

You could also try serializing some easy-to-read, and easy-to-edit list of connections you want to make between built rig and skeleton. Some text notation like:

parentConstrain, spine_05_jnt, coatButton_ctl
connection, arm_11_jnt, sleeve_ctl, tx

Or something. But is that any easier than just scripting it, when you start hitting new exceptions and features? I don’t know. I know our script repos got pretty messy! :slight_smile:

2 Likes

Thank for the reply, Chris! Much appreciated.

I have the templates, shared topology, skin data and all and it runs pretty smoothly.

So, it’s not much of a need, but when I’m prototyping and trying out some stuff I tend to rebuild a lot. Since the base rig is pretty constant and stable, I ask myself if it wouldn’t be better and faster just to rebuild the specific stuff. Of course, that would imply filtering out stuff to delete as well, instead of deleting the whole thing each time.

Is this for games or film?

It’s games, multiple skinClusters won’t do.

zooTools Hive has this great feature

I’ll take a look!

Anyway, thanks again! I’ll try and figure it out, but honestly I’m not sure the saved build time is worth the development time. :stuck_out_tongue:

1 Like