Development Log 1 - Tom Forwood


Skeletal Armature Rig

This week I focused on rigging the Knight Character model that I had created over the holidays. The first major task was to actually create the skeletal rig for the mesh, which could be achieved quickly by using blender’s built in “metarig” system. The metarig system allows the user to bring in an already built humanoid skeleton that can then be skinned to a humanoid mesh, which in this case was perfect since the player character is a human. The problem with the metarig is that it can’t be used straight out of the box, it needs to be adjusted to fit the body of the mesh that you wish to animate. The process is fairly straightforward, with bones being adjusted by using the gizmos in blender until each bone in the skeleton was placed correctly within the mesh.

Skeletal Armature and Hand Inverse Kinematics

Mesh Weighting

After the bones were adjusted I used the automatic weighting algorithm built into blender to quickly allocate rough weights to each vertex. Using automatic weighting before manually painting weights is the best workflow for mesh skinning as it alleviates the problem of having to allocate every weight to every single bone from scratch. Areas such as fingers become exponentially difficult to weight due to the high concentration of bones. The automatic weighting system is fairly accurate and serves as an excellent base for manual weighting. The next step was then to manually adjust mesh weights, which is important as the accurate weights will determine how the skeletal mesh will deform, so ensuring each bone has the correct mesh vertices assigned to it is paramount to creating authentic looking movement. Vertices are assigned a colour by using a brush to essentially paint on however much weight you wish to allocate to each bone. The weight colours are on a scale, with red having complete control over the deformation of the assigned vertices and blue having none at all. I also had to take into account any separate objects such as belt buckles or straps and ensure that they were correctly weighted as well. Some objects such as the pauldrons, couters and poleyns were not parented to the mesh as I plan to parent these armour elements in the Unity engine to allow for in engine position adjustment and potentially even customisation. Having these pieces detached from the armature in blender will mean that they can be swapped out for different meshes in the game engine.

                                                                                Mesh weighting demonstration
Gothic armour elements for the less medievally inclined

Bone Constraints

After the mesh weighting was finished bone modifiers such as Inverse Kinematics and Child Of Constraints needed to be set up to allow for a more streamlined animation workflow. Inverse Kinematics work by essentially transferring all the weights of bones along a specified chain length to the set controller, through which relatively natural leg and arm movements can be obtained with minimal effort. Without IK’s I would have to manually position each bone so that it looked correct. The most problematic part of the rigging process was getting the lower hand to grip the sword correctly. Originally I thought I could parent an empty object to the sword at the position I wanted the lower hand to be relative to the sword and then parent the hand bone to that, but when I tried it the hand bone ended up in the correct position, but had incorrect rotations. The solution that I settled on was to use a combination of additional IK solvers and Child of constraints. I definitely underestimated how much time I needed to invest into getting the hands to move with the sword since I don’t usually rig and animate, so it ended up being quite the time sink! (The hand IK's can be seen in the GIF at the top of the page)

Animations

Finally I could make a start on the actual animations for the game. Most of Deus Vault’s combat feel lies in how well each animation is executed, so it’s important to ensure that the animations all look and feel good from the perspective of both the player attacking an the player being attacked. It was also important that each attack animation sword swing passed through the same median point on the players screen so that targeting would work in game, which was something I didn't realise during the early animation iterations, and had to be adjusted (hence the sphere in the GIF). I did struggle a bit with the arm IK rotations during some of the animations due to the awkward nature of the sword swing, but hopefully the finished animations won't display any of the jittering and instability that we were present during some of the earlier animation passes.

Attack Animation Example

Personal Reflection

This week was a bit of a mess. I greatly underestimated the amount of time it would take to get the player character rigged properly and animate out some of the core combat mechanics. That said I must be honest and say rigging and animation are not my strong points, so on top of being the first task of the semester, it was already a difficult undertaking to begin with. In addition to the rigging issues I also struggled with creating animations that looked correct from both Third and First person perspectives, however I feel as though those issues have been resolved. Ultimately now that all of this is out of the way I should be able to get back on track easily enough now that all the legwork is out of the way. The next big task will be finishing the rest of the combat animations and creating an animation controller that works over the network in Unity.

List of completed tasks for this week:

  • Rigged Player Model
  • Weighted Player Model
  • Right to Left Attack Animation
  • Left to Right Attack Animation
  • Overhead Attack Animation
  • Idle Animation

-Tom Forwood

Leave a comment

Log in with itch.io to leave a comment.