The first thing that i would like to point out and which was probably the hardest part of the skinning process was understanding which bones should be added to each part of my mesh. It took a while to get to grips with this and it was a case of experimentation in order to get the mesh correctly interacting with the Unreal skeleton.
Below is a list of which bones i settled on and to which area of the mesh they were assigned to:
- Helmet (Top of Head) - Bones assigned to Helmet = b_Head
- Head - Bones assigned to Head = b_Head, b_Neck and b_Spine2
- Torso - Bones assigned to Torso = b_Hips, b_LeftClav, b_RightClav, b_Root, b_Spine, b_Spine1 and b_Spine2
- RightShoulderPad - Bones assigned to the Right Shoulderpad = b_RightShoulderPad
- LeftShoulderPad - Bones assigned to the Left Shoulderpad = b_LeftShoulderPad
- Legs - Bones assigned to the Legs = b_Hips, b_LeftLegUpper and b_RightLegUpper
- Boots - Bones assigned to the Boots = b_LeftAnkle, b_LeftLeg, b_LeftToe, b_RightAnkle, b_RightLeg and b_RightToe
Some experimentation had to be done in order for my mesh to correctly follow the Unreal skeleton. This part of the process was basically shifting the weights from one bone to the next after a bone had been weighted i would play the simple animation that had been added into the Unreal Tournament male skeleton to see if my whole mesh followed the bones correctly.
Below is some before and after videos of how the skinning process went:
Torso before Skinning
Hand before Skinning
Arm before Skinning
I found skinning very much as a trial and error type of process as to get the mesh to fit along side the skeleton was very experimental. I found that not all vertices would have the same weight assigned to them. To solve these issues i found it easier to solve the problem by rotating the skeleton to extreme body angles. Although in the real world a human body cannot move to such angles i found this the best route to go down.
With the whole mesh now attached to the skeleton i noticed that when i played the animation the shoulderpads did not follow the arms correctly. At first i panicked and thought that i had made an error somewhere down the line. The arms would go right through the shoulderpads but after some guidance from Dean he reassured me that this was perfectly OK as the shoulderpads would be moving independently with the Unreal Engine/Editor.stretch. I think this was to do with not skinning the character properly and assigning the waist area to the wrong set of bones.
Stretching of the polys in-game