Grafting New Body Parts into Figures
                                                                                                              by Bloodsong

     When you customize a standard Poser figure by subdividing the mesh, or adding clothes to it, or exchanging one head for another, it is quite easy to substitute your new obj into the old CR2 and end up with a perfectly workable character.  But what if you want to go beyond that?  Suppose you want to slice shoulders out of the P3 cat, or make the P4 lion's jaw poseable.  When you keep basically the same mesh, but just want to add pieces, you can graft them in.  This is the technique I use for Cat2 (the cat with poseable shoulders -- see the Cheetah), the Lion Jaw, and the tail for the Cheap Horse Skeleton (though the latter one was not as successful.)  (Look for alla that stuff listed on the Goodies page!)
     For messing with Poser files, I recommend John Stalling's CR2Edit(or), which is available at

Step One: Mess with the Mesh

     This should be natural to you, if you're snooping around this tutorial. :)  Re-slice the mesh, or mix and match parts, or add things in, whatever.  Keep the model the same proportions and size as it originally was, or else the old JP's will no longer match it.

Step Two: Grafting New Pieces into the CR2

     Now, take notes, here.  I'm going to refer to the three arbitrary sections of the CR2 file that I use.  The first part (between the first OBJ reference line and the second) -- or the GeomHandler part.  The second part (between the second OBJ reference and the figure section) -- or the, say, Channels part.  And the third part, the Figure section.

     I'm also going to use abbreviations: PAR means parent, or whatever body part would be the parent of your new body part.  CH means child, or anything that would be a child of your new body part.  And NBP would be.... did you guess?  The New Body Part.
     When you messed with the mesh, you gave the new group(s) a new name.  The P4 Lion Jaw is the most recent one I have done, so I'll use that as an example.  The new body part was named "jaw."  So wherever you see NBP, I put jaw.  And "head" was it's parent so PAR=head.  It's all very simple, really.


     First... remember to change the two OBJ reference pointers to point to your new OBJ. :)

     The first section is a list of body parts in the OBJ, and a statement of a pointer to the particular group in the OBJ.  It looks something like this:

     You will need to add an actor line for your new body part.  Copying, pasting and renaming works fine.  You need three things:

     Look at the parent/children of your NBP.  If they have geomCustom.... instead of the standard handler as shown here... you could be in trouble.  GeomCustom is the OBJ info embedded in the CR2.  So you may have cut some vertices off one piece and put it on another, but the new figure will still insist on the old piece still having all its parts, so to speak.  Make sure the figure doesn't use geomCustom, or that it only uses it in areas not affecting your NBP.



Revised and Simplified!


1:     First, copy an existing body part and paste it between the NBP's parent and child.  It is easiest if you use the parent or child, as you will have to change fewer entries.  However, instead of picking a body part near your NBP, you might consider finding one with the same rotation orders your NBP would need.  Usually, body parts in a line have the same rotation orders, but you might want to change them.  (For example, I made the twist axis on the Cat2's shoulder the one that would 'bend' it, so it could have a wider angle of rotation than normal.)  Changing rotation orders is a royal pain, so pick a part with the proper rotation over one that is close to your NBP.

2:     Change the name of the Channel entry to your NBP.  Also open it, and change the name entry.  The name entry may use a GetStringRes, but you can put "name NBP" if you like.  If you are inserting a standard-named NBP, you can use the GetStringRes Lookup Tables.

3:     Change the parent to the NBP's parent.

  Look for these entries:

actor NBP

name NBP (or use the GSR)

parent PAR

4:     Open the channels section.

     A:     Delete all the Morph Targets (targetGeom).

     B:     CH Twist/Joint/Joint:  (These are the "affectors," the entries that tell Poser how the child affects the parent.) If you have copied the parent of your NBP, you can leave these.  Otherwise, you should delete them and copy them from the actual child.   Here is how you do that:

  1. Open the child's channels and find the Joint/Joint/Twist entries just before the Rotate entries.  You will be copying them in reverse order, so select the Twist at the bottom and paste it into your NBP's channels, above the Taper channel.
  2. Edit the name (at the top and inside the channel) from "twistZ twistz" to "twistZ CH_twistz" (or twisty or twistx, what have you.)  The name entry will be "name CH_twistz."  Basically, just insert the CH_ before the twist/joint/joint entry.
  3. Change the Other Actor entry to the child, ie: "otherActor CH"  This tells Poser who the other party is in this joint setup.  When the joints are in the child, the other actor is the parent.  When the joints are in the parent, the other actor is the child.
  4. Add a "flipped" statement.  This goes right before the CalcWeights entry; you should be able to copy one from any normal CH affector channel.  Or insert a new node and just name it flipped.  All this does is explain to Poser that these joint relationships are flipped, meaning that the child is over there and the parent is over here, instead of vice versa.  (I think.  Okay, really, I'm just guessing!)

Look for these entries:

twist/joint/joint CH_twist/joint/joint

name CH_twist/joint/joint

otherActor CH


Easy Alternate:  Copy the child affectors from the child's previous parent, if you haven't changed those yet.

     C:     Add/Edit the PAR/CH Smoo entries.  There should be a Smoo entry for the parent (this will be the last entry), and each child; you can copy and paste.  Change the top and internal name to match the PAR/CH, and make sure you are using the PAR/CH's twist axis.  This works just like the Twist/Joint/Joint deal, so you'll end up with something like "smoothScaleZ CH_SmooZ" and "name CH_scaleZ."  After changing the name, make sure you also change the Other Actor entry to the PAR/CH.  Note: make sure the parent's Smoo has "flipped" in it, just above CalcWeights.  The child Smoo's do not.

Easy Alternate:  Copy the CH smoo from its former parent.  Copy the PAR smoo from its former child.

Look for these entries:

smoothScale PAR/CH_smoo

name PAR/CH_scale

otherActor PAR/CH

     D:     Find the NBP's Joint/Joint/Twist entries, and change the otherActor to it's PAR.

Look for this entry:

otherActor PAR


1:     Open the channels section.  You will need to add/edit the child affectors to point to your NBP.  If you copied the PAR's original child as the NBP, you won't need to change these, just fix the name (both instances) to NBP_twist/joint/joint.  If you used a different body part (the parent itself, for example), you should use the same method as outlined above for creating the Twist/Joint/Joint entries.  Copy them (in reverse order) from the NBP's channels, and fix the names, Other Actor entry, and add the "flipped."

2:     Add/Edit the Smoo channel for the NBP.  If there is already an entry for a child or children in the parent, you can use that, but remember the Smoo-ing should occur on the NBP's twist axis.  Edit this as outlined above, remember to edit the names and the Other Actor entry.


1:     Change the parent to the NBP.

2:     Open the channels and add/edit the parent Smoo entry for the NBP, same as outlined above.

3:     Change the Other Actor entries in the Joint/Joint/Twist channels to the NBP.


     The final section is deceptively small and simple looking, but there's a lot going on here.  The family tree is in here, and the seam welding, and the IK chains, and the materials.  There's three (that magic number again) places you need to graft in your NBP.  Well, two, if it's not part of an IK chain.


   First up is the family tree, where all the children get added to their parents.

For the NBP: add or copy/edit an   addChild NBP, PAR

For the CH: add or copy/edit an    addChild CH, NBP


     Next, all the seams get welded.  If your new body part isn't really part of the mesh (such as an independent eyeball or something) you might not really need this section.  But it is Poser tradition to weld all the children to their parents.

For the NBP:   weld NBP, PAR

For the CH :   weld CH, NBP


  (You don't really want to do this, do you??)

    Okay, in the inky chains, you have a  name for the chain, a section of addLinks and the goal that makeup the chain, and this mysterious linkWeight bit.

   Insert the NBP's addLink  in the chain where it belongs,  then add a linkWeight statement (or statements if you are adding multiple body parts -- good luck!) so the number of  linkWeights match the addLink entries  (there is not a Weight for the goal).
     It looks mysterious, but my esteemed colleague Dr Lemurtek has assured me that the first number in the linkWeight stream goes 0, 1, 2, 3, 4, 5 etc, and the second number set goes 1, 0.2, 0.04, 0.008, etc.
"At least for default IK chains created using PHI files.   Using the internal Poser Hierarchy editor results in a different  start value depending on the number of parts. But the progression is the same. Except when it's different. As in the cat's legs. :)"

Step Three: Edit the Joint Parameters

     Note that we are copying joint information from an old body part and applying it to a new one.  This doesn't magically create new JP's for our NBP.  Instead, you'll open your figure and find the jaw's rotation centers over in the neck, for example.  You still have to move them and adjust them by hand in Poser.  (You just won't have to rebuild all the other body part JP's from scratch!)

     There is one problem you need to watch out for, that can cause all your meticulous editing to come to ruin.  After inserting the body part(s) and adjusting the JPs, etc etc, it is imperative that the  centers and endpoints of the chain of body parts match up.  That is, each part's center should match the location of its parent's endpoint. Or, rather, the parent's endpoint should match its child's center. Since you can't see endpoints (except on terminal body parts), how to accomplish this is somewhat of a mystery. I think you can accomplish this by selecting the center JP (the green cross hairs) and nudging them a bit.  Poser should read the new center location and adjust the parent's endpoint to match it.  In theory.  If you are worried about moving the center around, note it's coordinates in the JP window, then move it (drag it around with the target thing), and then punch those coordinates back in.

     If your new body part, or its child(ren) moves sorta kinkily, there's either a problem in the flipped entries, or the endpoints/center points don't match.  In Pro Pack, this is easy to see (the bones won't be end to end), but in regular Poser, it is an invisible affliction.  You can view and adjust the "end point" and "origin" entries in the CR2, and make them match the relevant other origin/end points... but in my experience, this doesn't seem to help.