Bone Names
Types of Bones
Bones cause a lot of confusion among Unreal Engine modders (and possibly licensees too). Part of this is the naming scheme. There are 2 types of bones, which do not share names and are in no way related. The names of some coincide, but that does not indicate that they are the same bone, thus adding to the confusion. The two type of bones are skeletal animation bones, Karma ragdoll bones. Ragdoll bones exist only in UT2003.
Skeletal Animation Bones: These are the bones used when creating skeletal animation to import via UnrealEd. These are the bones affected by PlayAnim and LoopAnim. These names can be viewed through the UnreadEd Animation Browser by clicking View → Bonenames.
Karma Ragdoll Bones: These are the "bone" definitions used by the Karma Ragdoll physics. They do not interact in any way with Skeletal Animation bones, however, they can interact to a limited extent with script bones. You can find the information on these bones in the .ka files in the KarmaData subdirectory of the directory in which UT2003 was installed. These files have some formatting but can be deciphered with relative ease.
Skeletal Animation Bones
Foxpaw: I vote that we break this into subpages - one subpage for each model, and it would include that model's Skeletal Animation Bones, Karma Ragdoll Bones, and known script bones.
Jugg
Bip01 +- Bip01 Pelvis +- Bip01 R Thigh | +- Bip01 R Calf | +- Bip01 R Foot | +- Bip01 R Toe0 +- Bip01 L Thigh | +- Bip01 L Calf | +- Bip01 L Foot | +- Bip01 L Toe0 +- Bip01 Spine +- Bip01 Spine1 +- Bip01 Spine2 +- Bip01 Neck +- Bip01 Head | +- Bip01 Ponytail1 | +- Bip01 Ponytail11 | +- Bip01 Ponytail12 | +- Bip01 Ponytail13 +- Bip01 R Clavicle | +- Bone_R_shoulder | +- Bip01 R Upperarm | +- Bip01 R Forearm | +- Bip01 R Hand | +- Bone_weapon +- Bip01 L Clavicle +- Bone_L_shoulder +- Bip01 L Upperarm +- Bip01 L Forearm +- Bip01 L Hand
HumanFemaleA
Note: The HumanMaleA is the same but without the ponytail bones.
Bip01 +- Bip01 Pelvis +- Bip01 R Thigh | +- Bip01 R Calf | +- Bip01 R Foot | +- Bip01 R Toe0 +- Bip01 L Thigh | +- Bip01 L Calf | +- Bip01 L Foot | +- Bip01 L Toe0 +- Bip01 Spine +- Bip01 Spine1 +- Bip01 Spine2 +- Bip01 Neck +- Bip01 Head | +- Bip01 Ponytail1 | +- Bip01 Ponytail11 | +- Bip01 Ponytail12 | +- Bip01 Ponytail13 +- Bip01 R Clavicle | +- Bone_R_shoulder | +- Bip01 R Upperarm | +- Bip01 R Forearm | +- Bip01 R Hand | +- Bip01 R Finger0 | +- Bone_weapon +- Bip01 L Clavicle +- Bone_L_shoulder +- Bip01 L Upperarm +- Bip01 L Forearm +- Bip01 L Hand +- Bip01 L Finger0
Bot
Bip01 +- Bip01 Pelvis +- Bip01 R Thigh | +- Bip01 R Calf | +- Bip01 R Foot | +- Bip01 R Toe0 +- Bip01 L Thigh | +- Bip01 L Calf | +- Bip01 L Foot | +- Bip01 L Toe0 +- Bip01 Spine +- Bip01 Spine1 +- Bip01 Spine2 +- Bip01 Neck +- Bip01 Head +- Bip01 R Clavicle | +- Bone_R_shoulder | +- Bip01 R Upperarm | +- Bip01 R Forearm | +- Bip01 R Hand | +- Bip01 R Finger0 | | +- Bip01 R Finger01 | | +- Bip01 R Finger02 | +- Bone_weapon +- Bip01 L Clavicle +- Bone_L_shoulder +- Bip01 L Upperarm +- Bip01 L Forearm +- Bip01 L Hand +- Bip01 L Finger0 +- Bip01 L Finger01 +- Bip01 L Finger02
Aliens
Bip01 +- Bip01 Pelvis +- Bip01 Tail +- Bip01 R Thigh | +- Bip01 R Calf | +- Bip01 R Horselink | +- Bip01 R Foot | +- Bip01 R Toe0 +- Bip01 L Thigh | +- Bip01 L Calf | +- Bip01 R Horselink | +- Bip01 L Foot | +- Bip01 L Toe0 +- Bip01 Spine +- Bip01 Spine1 +- Bip01 Spine2 +- Bip01 Neck +- Bip01 Head | +- Bip01 Ponytail1 | | +- Bip01 Ponytail11 | | +- Bip01 Ponytail12 | | +- Bip01 Ponytail13 | +- Bone_Rtentacle1 | | +- Bone_Rtentacle2 | | +- Bone_Rtentacle3 | +- Bone_Ltentacle1 | +- Bone_Ltentacle2 | +- Bone_Ltentacle3 +- Bip01 R Clavicle | +- Bone_R_shoulder | +- Bip01 R Upperarm | +- Bip01 R Forearm | +- Bip01 R Hand | +- Bip01 R Finger0 | +- Bone_weapon +- Bip01 L Clavicle +- Bone_L_shoulder +- Bip01 L Upperarm +- Bip01 L Forearm +- Bip01 L Hand +- Bip01 L Finger0
Karma Ragdoll Bones
Foxpaw: Someone feel free to fill this in, or follow my suggestion above.
Bones in UnrealScript
You can refer to individual bones using some native functions in UnrealScript. When referring to these bones, you can use the full name of the bone, though this works only for bones set up in the defaultproperties if the bone name has a space in it, in my experience. As an alternative, you can refer to a bone using it's attachalias. If the bone name does not have a space in it, you can just use the full name of the bone.
AttachAliases can be set up in the Animations browser in UnrealEd. Select the Mesh tab in the animation properties box to the right of the 3D pane of the animations browser. From there, expand attach, and then expand sockets. This reveals a dynamic array of attachment information, including the attachaliases and some options for the facing of actor attached to that bone.
Here is an example of how to refer to bones in Unrealscript:
// Substitite Actor for the actor you want to attach, and lfarm for the // attachalias or name of the bone you want to use. AttachToBone( Actor, 'lfarm' ); // Use this to detach it from that bone. You do not need to specify what bone // it is attached to. DetachFromBone( Actor );