Rigging101 » Rigging128

Dealing with multiple characters in a scene (4 posts)

About This Topic


No tags yet.

  1. animatr

    Posted 8 years ago

    this is something I've been thinking about for a while, so i will post my thoughts on it.

    I have an "uber rig" that almost all of our biped characters can hook up to. Though, for cinematics(i work in games) we tend to have multiple characters in a scene. Now, I could make a unique rig for each char. but if I need to make one change to the rig, I have to propagate it down for like 20+ rigs (because, the rig is the same, the only thing different is the model and skin/skeleton)

    I would love to implement a character selection thing in the rig's UI. So if you had two chars in a scene. you import the same rig twice, and on each UI you'd choose your character, but Naming conflicts will be an issue. The UI has tons of scripts that are looking for exact names of things, so Im not sure how that would work. I suppose I could change the script nodes contents upon choosing a different character so it would replace Character_A_ with Character_B_ etc.

    any thoughts? how do others deal with this?
    the easiest way is to have a separate rig for each char. But again, if anything goes wrong with the rig, a bug is found or whatever, gotta redo that work in all the rig files. seems very unorganized. also, if there are any books/dvds/references out there for this stuff, let me know!

    Thanks all!

  2. Javier "Goosh" Solsona (admin)

    Key Master
    Posted 8 years ago

    I had this in my previous job

    It worked something like this:
    1 animation rig
    5 (to say a number) characters

    I built a tool that would show me all the characters that exist (It would troll through the folders and find what's available). Then when I said build character. it would import the character, import the rig and constrain the character to the rig
    I was using name spaces when I imported both the rig and the character. that way there was no name conflicting. I could built even many of the same characters and since they all got their own name spaces it was no problem.

    later (since you work on a game) I would bake each of the characters at a time. once it was baked and exported, I would delete it, and bake the next. once again avoiding name clashing.

    hope that helps

    later I actually built a faster/better tool that used referencing but that worked a bit different.

    Happy rigging


  3. animatr

    Posted 8 years ago

    yeah. thats exactly what I want. though right now, my problem is i have a few hierarchies. one is the skinning rig(just joints that the mesh is weighted too) one, the control rig, and one the mocap rig(which has to have very specific naming for the mocap to be imported. the mocap drives the control rig(which acts as a layer) which then drives the skinning rig.

    my control rig has (for example) "character_A" prefix on everything. also the skinning rig also has that prefix. mocap rig has no prefix, just the correct naming for the mocap to know where to import too.

    so now, I want to do the character picker thing. all of my scripts are looking for character_A_xyzcontrol or whatever.

    I guess Im not totally sure how to go about making sure all scripts still work on all characters, and the scripts know which character to be applies too (im assuming if you have 4 chars, youll have 4 UIs. So the UI would need to be renamed I guess so you knew who's it was?)

    In your example, is the rig it's importing the same rig for all characters? how did it handle in the scene with multiples. I wish i could be more specific or post pics/files, but under nda etc.

    if any of this needs clarity, let me know!

  4. Javier "Goosh" Solsona (admin)

    Key Master
    Posted 8 years ago

    yup.. that's fine..

    it makes sense..

    all my scripts took into consideration the fact that there were name spaces, etc. So all my tools catered to that specific pipeline.

    I don't like UIs, so I never built them, but I had a lot of tools that would run on the characters. There was only one tool (not multiple for each character). You would often had to select a part of a character and it would then extract the namespace and use that to run whatever tool I was running. (does that make sense)
    so each tool was generic basically, and it would append the namespace.

    let's say one of the tools was a simple select head.
    I would select any controller (say the hand)
    the when I pressed "select head" the tool would figure out the name space.. (since you have a selection all it needed to do was look up the namespace of the selection) then do a simple select <namespace>:head

    if you select another character then it would run the same code and since the namespace was different it would select the new head controller.

    alternatively I guess in your UI you could have a character dropdown list.. so you would select the character first and then do whatever you want to do with the UI. I guess there are a lot of different way you can specify which character you want to work with.

    oh.. and as far as the same rig..
    as per my previous post.. say you import both the model (skinned) and the control rig.. using name spaces..

    actually.. in your case, you could import the whole character
    so you would have something like this

    then you import the same character but with a different name space

    then instead of doing
    select ct_head

    you do
    select CHAR_A:ct_head

    (with a bit more clever scripting to have CHAR_A be a generic namespace)

    hope all that makes sense



You must log in to post.

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