Thursday 11 February 2010

Skinning the character...

With a basic texture now down on the character i really wanted to get my model into the Unreal engine so the next phase of the process was to add the bones inside of my mesh. Way back in September in order to get used to the Unreal Editor i imported the UT3 male default character that is free to download successfully into Unreal. However way back in September i didn't need to skin the character as this was already done for me. I had only previously touched upon skinning once before back on the foundation degree and even then it was a bit daunting to say the least. With this previous knowledge of Skinning i seemed to quickly get to grips with the whole process and after a while quite enjoyed it, it was very relaxing.
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.

I think it is worth mentioning another problem i encountered when i had successfully imported my character into UT3. When the character died in-game part of the waist area would stay upright and cause the poly's to 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

No comments:

Post a Comment