
------------------------------------------------------------------------------
charRigger
------------------------------------------------------------------------------
Copyright 2001,2002 Michael B. Comet  All Rights Reserved

http://www.comet-cartoons.com/
comet@comet-cartoons.com
------------------------------------------------------------------------------


OVERVIEW:
------------------------------------------------------------------------------

	Given pointHelpers or other objects of a specific name, 
this will take their positions and auto generate a character rig for 
animation based off of them.  This includes Stretchy Legs, Stretchy Arms 
and a general finger setup, with Custom Attributes on proper controls.
	


INSTALL:
------------------------------------------------------------------------------

0. Close MAX if it is running.

1. Unzip the files with subdirectories into the proper 3dsmax4 sub-folders

ie:
	.bmp	3dsmax5\ui\uicons\
	.mcr	3dsmax5\ui\macroscripts\
	.max	3dsmax5\scenes\
!-->	.ms	3dsmax5\stdplugs\stdscripts\

!-Note the "AttributeHolder" script is a pluginScript that comes with MAX.
It's is not required but is recommended to install into that location!


2. Start MAX.
   Go to the customize User Interface menu, and under the "Comet Cartoons"
	category, you will find charRigger.

3. Add the charRigger as a hotkey, menu or quadmenu item, or toolbar 
	entry.  However you will want to run it.

4. Open the "charRiggerSAMPLEall.max" sample file, or the 
   "charRiggerSAMPLEcustom.max" sample file.
   Note all the pointHelpers, their arrangement and names...

   !-A pop-up reminder will autoopen when the file is opened, this is
	NOT an error, just a friendly message for ya!

5. Run the "charRigger" script.

6. In the UI, enter a character name, like "john".
   Press "Create ALL".

7. The rig is created, with options as chosen.  SELECTION SETS are
	auto created, and the point Helpers and internal stuff are hidden.

HELP:
------------------------------------------------------------------------------

This script REQUIRES a bunch of SPECIFIC pointHelper or object names.
The easiest way to do this is to Merge or Load up the "all" Sample file with 
all the locators.

You can customize it as needed, for example you can remove spine or neck 
helpers if you don't want as mant joints.  Or remove fingers or thumbs as 
desired.  Note controls MUST be kept in order.  That is, if you want 3 
fingers, they must be named as finger1, 2 and 3,  not 1, 3 and 4...  etc...
The thumb is optional as is the first toe.  All toes and fingers are also 
optional.

The "charRiggerSAMPLEall.max" has all required helpers in the file.
The "charRiggerSAMPLEcustom.max" shows a custom version where certain 
controls like the neck and spine as well as a few fingers have been removed.

In some cases locators are required or actual created controls are required 
to run sub components of the script.  For example, the spine will auto 
create the hips.  The Placement, will not work unless legs and feet have 
been generated.  The easiest way to watch this is to open up the MAXScript 
Listener window and watch for warnings.

Make note that Selection Sets are auto created.  The pointHelpers are hidden
right after a creation, though not deleted.  This means if you create an Arm
for example, the helpers will hide, but you can still press the 
"Create Fingers" button to create the fingers, even though the helpers 
are hidden.

Note also that the timeline is set from -1000 to +5000 during creation of
controls, so that wiring and reactor stuff won't break during animation.  
You can adjust this range at the top of the .MCR macroscript file if needed,
but 5000 frames should be long enough for most animations! (I hope!)


The following is a list of required names for the pointHelpers or whatever 
type of object you want to use:


 * List of Required Locators.
 *		ptHips		- Hip
 *
 *			(Legs are optional in that you can just have one, or none at all)
 *			(!!!Local Z angle of ptAnkle (L&R) in top view controls angle of
 *				foot bone creation from top view, so the feet don't have to
 *				point straight forward.!!!)
 *		ptLLeg		- L Upper Leg Start
 *		ptLKnee		- Knee pos, where lower leg starts
 *		ptLAnkle	- Ankle of foot
 *		ptLBall		- Ball position on foot, where toes start
 *		ptLToe		- Toe TIP on foot.
 *
 *		ptRLeg		- L Upper Leg Start
 *		ptRKnee		- Knee pos, where lower leg starts
 *		ptRAnkle	- Ankle of foot
 *		ptRBall		- Ball position on foot, where toes start
 *		ptRToe		- Toe TIP on foot.
 *
 *		ptL2Leg		- L Upper Leg Start			-- for FRONT Legs stuff for quadraped!  change L to L2 basically.
 *		ptL2Knee		- Knee pos, where lower leg starts
 *		ptL2Ankle	- Ankle of foot
 *		ptL2Ball		- Ball position on foot, where toes start
 *		ptL2Toe		- Toe TIP on foot.
 *
 *		ptR2Leg		- L Upper Leg Start			-- for FRONT Legs stuff for quadraped!  change R to R2 basically.
 *		ptR2Knee		- Knee pos, where lower leg starts
 *		ptR2Ankle	- Ankle of foot
 *		ptR2Ball		- Ball position on foot, where toes start
 *		ptR2Toe		- Toe TIP on foot.
 *
 *		ptS1		- Spine 1 Start		-- optional
 *		ptS2		- Spine 2 Start		-- optional
 *		ptS3		- Spine 3 Start		-- optional
 *		ptS4		- Spine End Top		-- optional
 *		ptS5		- Spine End Top		-- optional
 *		ptS6		- Spine End Top		-- optional
 *		ptS7		- Spine End Top		-- optional
 *
 *		ptNeck1		- Neck ctrl 1		-- optional
 *		ptNeck2		- Neck ctrl 2		-- optional
 *		ptNeck1		- Neck ctrl 3		-- optional
 *		ptNeck2		- Neck ctrl 4		-- optional
 *		ptNeck1		- Neck ctrl 5		-- optional
 *		ptNeck2		- Neck ctrl 6		-- optional
 *		ptNeck1		- Neck ctrl 7		-- optional
 *		ptNeck2		- Neck ctrl 8		-- optional
 *		ptHead		- Head start
 *		ptHeadTop	- Head end
 *
 *		ptLClav		- Clavicle
 *		ptLUpArm	- Upper Arm
 *		ptLLoArm	- Lower Arm
 *		ptLHand		- Hand Start
 *		ptLHandTip	- End of Hand
 *
 *		ptRClav		- Clavicle
 *		ptRUpArm	- Upper Arm
 *		ptRLoArm	- Lower Arm
 *		ptRHand		- Hand Start
 *		ptRHandTip	- End of Hand
 *
 *		ptThumbL1	- Thumb digits, 1st 2 must exist for thumb to be created
 *		ptThumbL2
 *		ptThumbL3
 *		ptThumbL4
 *		ptThumbLUp	- Must exist for thumb.  Represents "up" direction for thumb
 *		ptFinger1L1	- Finger 1 digits
 *		ptFinger1L2
 *		ptFinger1L3
 *		ptFinger1L4
 *		ptFinger2L1	- Finger 2 digits
 *		ptFinger2L2
 *		ptFinger2L3
 *		ptFinger2L4
 *		ptFinger3L1	- Finger 3 digits
 *		ptFinger3L2
 *		ptFinger3L3
 *		ptFinger3L4
 *		ptFinger4L1	- Finger 4 digits
 *		ptFinger4L2
 *		ptFinger4L3
 *		ptFinger4L4
 *
 *		ptThumbR1	- Thumb digits, 1st 2 must exist for thumb to be created
 *		ptThumbR2
 *		ptThumbR3
 *		ptThumbR4
 *		ptThumbRUp	- Must exist for thumb.  Represents "up" direction for thumb
 *		ptFinger1R1	- Finger 1 digits
 *		ptFinger1R2
 *		ptFinger1R3
 *		ptFinger1R4
 *		ptFinger2R1	- Finger 2 digits
 *		ptFinger2R2
 *		ptFinger2R3
 *		ptFinger2R4
 *		ptFinger3R1	- Finger 3 digits
 *		ptFinger3R2
 *		ptFinger3R3
 *		ptFinger3R4
 *		ptFinger4R1	- Finger 4 digits
 *		ptFinger4R2
 *		ptFinger4R3
 *		ptFinger4R4
 *
 *		ptToe1L1, ptToe1L2, ptToe1L3, ptToe1L4;		-- replace L with R for R toes.
 *		ptToe2L1, ptToe2L2, ptToe2L3, ptToe2L4;
 *		ptToe3L1, ptToe3L2, ptToe3L3, ptToe3L4;
 *		ptToe4L1, ptToe4L2, ptToe4L3, ptToe4L4;
 *		ptToe5L1, ptToe5L2, ptToe5L3, ptToe5L4;
 *		ptToeLUp;									-- up vector for first toe.
 *
 *				-- and then also for FRONT toes... L or R becomes L2 and R2
 *		ptToe1L21, ptToe1L22, ptToe1L23, ptToe1L24;		-- replace L with R for R toes.
 *		ptToe2L21, ptToe2L22, ptToe2L23, ptToe2L24;
 *		ptToe3L21, ptToe3L22, ptToe3L23, ptToe3L24;
 *		ptToe4L21, ptToe4L22, ptToe4L23, ptToe4L24;
 *		ptToe5L21, ptToe5L22, ptToe5L23, ptToe5L24;
 *		ptToeL2Up;									-- up vector for first toe.
 
 
------------------------------------------------------------------------------
Copyright 2001,2002 Michael B. Comet  All Rights Reserved
------------------------------------------------------------------------------

