CGTalk > Techniques > Character Rigging
Login register
reply share thread « Previous Thread | Next Thread »
 
Thread Tools Search this Thread Display Modes
Old 11-03-2002, 03:20 PM   #1
Lunatique
Pragmatic Dreamer
 
Lunatique's Avatar
CGTalk Forum Leader
portfolio
Robert Chang
Artist|Writer|Composer
Photographer|Director
Lincoln, USA
 
Join Date: Mar 2002
Posts: 8,699

Reusing rigging information for other characters?

I'm about to start on the first scene of my animated short, and I have a pretty important question:

How much and which parts of my rigging for a character could be reused by other characters? The bones? Skinning? Deformation? The IK's? The blend shapes?

For example, I have the following main characters:

Man
Woman
Little girl
Little boy
Old man

Now, I understand that if I have characters that are very similar in their physique, I could probably reuse some stuff, but what can I reuse if the physique of the characters are as different as the above listed characters?

Basically, I need to know WHAT data and nodes I SHOULDN'T delete when rigging the first character, so that I can reuse those data again for other characters.

Last edited by Lunatique : 11-03-2002 at 03:26 PM.
 
Old 11-03-2002, 03:56 PM   #2
Bennels
Veteran
portfolio
Ben Bryan
3d animator
Ben Bryan
Melbourne, Australia
 
Join Date: Oct 2002
Posts: 32
Send a message via ICQ to Bennels Send a message via AIM to Bennels Send a message via Yahoo to Bennels
I've just completed my first animated short and I have reused my main character rig 3 times. Covering a male adult, an elderly female and a 4-year-old child. Having the same rig for each character makes things a lot simpler as you only have to know one rig.

Bones can be easily re-sized and positioned for new characters, and IK setups should follow. If you have any constraints you may need to adjust them for the new character.


However, the program I use (MAX) does not support reusing skinning and deformations (correct me if I am wrong). It sounds like you are using Maya, so I don't know if it is possible in that program.

I would say reusing character rigs is definitely possible and I would highly recommend nutting it out because it saved me several days work.

I hope that helps
 
Old 11-03-2002, 05:58 PM   #3
E.T
Doodler
 
E.T's Avatar
Eric Thunfors
Freelance Designer
www.thunfors.com
stockholm, Sweden
 
Join Date: Jun 2002
Posts: 342
Bennels, how did you reuse the rig?
Ive been trying to use the IKJoe rig with my own mesh, but some of the bones wont resize properly...

I would hate to miss something obvious, as im now building my own rig. (would hate to have to do that too many times)

E.T
 
Old 11-03-2002, 11:25 PM   #4
Bennels
Veteran
portfolio
Ben Bryan
3d animator
Ben Bryan
Melbourne, Australia
 
Join Date: Oct 2002
Posts: 32
Send a message via ICQ to Bennels Send a message via AIM to Bennels Send a message via Yahoo to Bennels
ET: Unfortunately I'm using MAX 4.2 and I've not had the chance to pull apart this infamous rig. You may need to break it a little to move some bones, and then try and put it back together.

Sorry, i'm not much help on that one. I'll do a bit more research on the IKjoe rig.

Cheers
 
Old 11-04-2002, 01:12 AM   #5
bentllama
warrior soul
 
bentllama's Avatar
CGSociety Member
portfolio
nate walpole
motion zealot
USA
 
Join Date: Jan 2002
Posts: 4,908
Send a message via AIM to bentllama Send a message via MSN to bentllama
Most of my rigging for bipedal creatures is automatic. The beatuy of MEL is that you can script the usual grunt labour you repeat all the time...
__________________
bent...
bentllama
...
 
Old 11-04-2002, 01:42 AM   #6
jschleifer
schmoderator
 
jschleifer's Avatar
CGSociety Member
portfolio
jason schleifer
Head of Character Animation
PDI/Dreamworks
USA
 
Join Date: Apr 2002
Posts: 877
Send a message via AIM to jschleifer
yep, same here.. makes things so much easier. Plus, you can experiment with specific parts of a rig.. say your biped character is 99% the same as another character, but it has pig tails.. you can rig it in seconds with your standard rig, figure out somethign for the pig tails, and then from then on you've got a pig tail setup you can use for any of your other creatures.

super handy.

-jason
__________________
jason schleifer
Animator - http://jasonschleifer.com/
Mentor - http://www.animationmentor.com
 
Old 11-04-2002, 02:34 AM   #7
Lunatique
Pragmatic Dreamer
 
Lunatique's Avatar
CGTalk Forum Leader
portfolio
Robert Chang
Artist|Writer|Composer
Photographer|Director
Lincoln, USA
 
Join Date: Mar 2002
Posts: 8,699

Ok, stupid newbie moron question time:

In order to script the mel for rigging, do I just grab all the steps I went through with the first rig from the script editor, and then drag them onto a shelf button? Or am I spewing newbie stupid nonsense?
 
Old 11-04-2002, 04:05 AM   #8
jschleifer
schmoderator
 
jschleifer's Avatar
CGSociety Member
portfolio
jason schleifer
Head of Character Animation
PDI/Dreamworks
USA
 
Join Date: Apr 2002
Posts: 877
Send a message via AIM to jschleifer
The best thing to do is approach it in a way that you'd approach writing any modular program.. break it down into the steps that you're going to be taking.

For example, first you need to figure out how you want to build the rig.. do you want it based on the skeleton, or do you want to do it based on locators that define certain regions of the creature? The important thing is that you need a base to start with. So let's take the locator method as an example..

First, you would load in the scene that has the geometry and create locators based on where you want things to be. Because you know that you're going to be building a skeletal structure based on the locators, you want to ensure that the naming is consistent and correct. So what you would do is place locators where you want, for example, the up arm, elbow, and wrist to be.

So you name the locators l_up_arm_loc, l_elbow_loc, l_wrist_loc.

Then, you're going to make a program that does the following:

1) Determine whether or not you're building a right or left sided arm (l_ or r_).
2) Find the appropriate locators (l_up_arm_loc, l_elbow_loc, l_wrist_loc).
3) Build a joint structure that moves through them.
4) Build an ikHandle
5) Create the control structure you want
6) Set the correct attributes keyable/unkeyable/locked
7) Hide things that you don't need to see.

So start breaking this down.. into mel. You know that you're going to be making this a "procedure" or individual program that can be called from a larger program. And you also know that you need to pass it either a left or right side, so it knows what to do. So you would define the procedure and the variables that you're going to pass it:

Code:
global proc buildIkArm (string $side) { // Take an argument ("l_" or "r_") and build // an ik arm. }


This is a simple procedure which that simply will take an argument and does nothign with it at this point.. but it will do something eventually.

Now you want to add the second part.. where it finds the locators that it needs. You can do that using the $side variable, and the fact that we KNOW that the things will be labled up_arm, elbow and wrist:

Code:
global proc buildIkArm (string $side) { // Take an argument ("l_" or "r_") and build // an ik arm. // get the names of the locators $up_arm = ($side + "up_arm_loc"); $elbow = ($side + "elbow_loc"); $wrist = ($side + "wrist_loc"); }


now that we know those, we're going to start building joints through them. To do that you need the location of those locators in space, and you need to know the joint command. To find the location in space of an object, you can either use the xform command (xform -q -worldSpace -rotatePivot) or use the getAttr command if the locators aren't a child of anything else. I prefer the xform command 'cuz I know it'll work..

Code:
global proc buildIkArm (string $side) { // Take an argument ("l_" or "r_") and build // an ik arm. // get the names of the locators $up_arm = ($side + "up_arm_loc"); $elbow = ($side + "elbow_loc"); $wrist = ($side + "wrist_loc"); // find the world space of the locators, and // create joints that are in the right place $uap = `xform -q -ws -rp $up_arm`; $ep = `xform -q -ws -rp $elbow`; $wp = `xform -q -ws -rp $wrist`; $up_arm_joint = ($side + "up_arm"); $elbow_joint = ($side + "elbow"); $wrist_joint = ($side + "wrist"); // now each of the pos variables are arrays. // we can use them to create the joints. select -d; joint -p $uap[0] $uap[1] $uap[2] -n $up_arm_joint; joint -p $ep[0] $ep[1] $ep[2] -n $elbow_joint; joint -p $wp[0] $wp[1] $wp[2] -n $wrist_joint; // now orient them correctly joint -e -oj xyz $up_arm_joint; joint -e -oj xyz $elbow_joint; }


see how this is progressing? basically, you see what it is you need to do, then search the mel docs for the commands required. The next step was to make the ikHandle. Just guessing you can assume that it requires the ikHandle command.. type
Code:
help -doc ikHandle
and you'll find that there is example code to help you out.

Code:
global proc buildIkArm (string $side) { // Take an argument ("l_" or "r_") and build // an ik arm. // get the names of the locators $up_arm = ($side + "up_arm_loc"); $elbow = ($side + "elbow_loc"); $wrist = ($side + "wrist_loc"); // find the world space of the locators, and // create joints that are in the right place $uap = `xform -q -ws -rp $up_arm`; $ep = `xform -q -ws -rp $elbow`; $wp = `xform -q -ws -rp $wrist`; $up_arm_joint = ($side + "up_arm"); $elbow_joint = ($side + "elbow"); $wrist_joint = ($side + "wrist"); // now each of the pos variables are arrays. // we can use them to create the joints. select -d; joint -p $uap[0] $uap[1] $uap[2] -n $up_arm_joint; joint -p $ep[0] $ep[1] $ep[2] -n $elbow_joint; joint -p $wp[0] $wp[1] $wp[2] -n $wrist_joint; // now orient them correctly joint -e -oj xyz $up_arm_joint; joint -e -oj xyz $elbow_joint; // add an ikHandle $handleItems = `ikHandle -sj $up_arm_joint -ee $wrist_joint -n ($side + "_arm_ikHandle")`; }


see how it works?

the best thing to do is look at the script editor as you're trying stuff & see what commands get echoed.. then read the docs on those commands.. and discover how to use them to your advantage.

hope this helps some & gets you going on the right track!

-jason
__________________
jason schleifer
Animator - http://jasonschleifer.com/
Mentor - http://www.animationmentor.com
 
Old 11-04-2002, 04:31 AM   #9
john_homer
random guy
 
john_homer's Avatar
john homer
cloth monkey
wellington, New Zealand
 
Join Date: Oct 2002
Posts: 1,396
Well I don't know about you guys, but I'm doing that tomorrow.

Thanks for taking the time Jason, I guess you have a bit more of it now though ;^) can't wait to see it on the big screen.

cu
.j
 
Old 11-04-2002, 04:35 AM   #10
bentllama
warrior soul
 
bentllama's Avatar
CGSociety Member
portfolio
nate walpole
motion zealot
USA
 
Join Date: Jan 2002
Posts: 4,908
Send a message via AIM to bentllama Send a message via MSN to bentllama
Nice response Jason. That should get Lunatique started on the right track...I saw a few things I could do to enhance my scripts too. I get nervous around Xforms...my brother was killed by an Xform...*sigh*



Thanks.!
__________________
bent...
bentllama
...

Last edited by bentllama : 11-04-2002 at 04:46 AM.
 
Old 11-04-2002, 04:42 AM   #11
jschleifer
schmoderator
 
jschleifer's Avatar
CGSociety Member
portfolio
jason schleifer
Head of Character Animation
PDI/Dreamworks
USA
 
Join Date: Apr 2002
Posts: 877
Send a message via AIM to jschleifer
heh, glad it's going to be helpful.. I'm actually in the process of re-working my whole pipeline at home to keep things more interesting.. should be fun.

-jason
__________________
jason schleifer
Animator - http://jasonschleifer.com/
Mentor - http://www.animationmentor.com
 
Old 11-04-2002, 06:37 AM   #12
Lunatique
Pragmatic Dreamer
 
Lunatique's Avatar
CGTalk Forum Leader
portfolio
Robert Chang
Artist|Writer|Composer
Photographer|Director
Lincoln, USA
 
Join Date: Mar 2002
Posts: 8,699

Jason- WOW! Thanks for pointing me the right direction!! You've always been one of my favs at cgtalk, since you are a busy bee working at a big studio, but still take the time to help out the cgtalk community, and is totally down to earth and easy going.

I feel like I have a huge mountain in front of me that I have to climb, and the peak it up there in the clouds where my eyes can't even see. Attempting to make an entire animated short as a 3D newbie, while learning each step of the way is VERY daunting. But with great people like the cgtalk guys/gals around to help out when I get stuck, I feel a bit more optimistic.

Now for another question:

Aren't locators just part of the skeleton? If the two systems are different, what are the pros and cons of building a system based on skeleton vs. locators? I will not be dealing with any non-human characters, and my characters will all be animated in a realistic manner(not exaggerated cartoony style). There will be a lot of closeups on the face and hands, as they express a lot of emotions. Oh wait, I do have to rig a flock of pigeons too. So, ok, add a pigeon rig to that.
 
Old 11-04-2002, 08:27 AM   #13
jason-slab
snr potty trainer
 
jason-slab's Avatar
portfolio
jason slabber
naiad|houdini TD
blackginger
Cape Town, South Africa
 
Join Date: Feb 2002
Posts: 1,064
Send a message via MSN to jason-slab
huh, who needs them trianing dvd's
getting alllll the info right here

thx jason

|jason
 
Old 11-04-2002, 11:49 AM   #14
Twisted-Imperial
Intsta-Insanity
 
Twisted-Imperial's Avatar
portfolio
Jordan Curr
Edmonton, Canada
 
Join Date: Apr 2002
Posts: 111
yo jason nice! that helps me out and i can see how to almost write the whole thing in mel, but how would i do something like adding a hand rig to that, to place the joins in space do i have to havea locator for each one? or what do u recomend

thx

peace
__________________
-Side Step the Norm-
[http://www.cgtalk.com/showthread.php?threadid=133394]Machine Flesh 3D Challange![/url]

Or Visit DA4's site
twistedimperial@hotmail.com
 
Old 11-04-2002, 07:50 PM   #15
fortner
Veteran
portfolio
Mike Fortner
CG Supervisor
Reel FX
USA
 
Join Date: May 2002
Posts: 82
awesome response Jason... I love it.
 
reply share thread


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 08:43 AM.


Powered by vBulletin
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.