Blog Post 3 – Rigging and Animating
Animation isn’t an entirely brand new subject for me, last year I had to learn and put into practice animating techniques for a 2D game. Although 3D animating is very different as it requires rigging and modelling and other techniques not needed for Sprite animating, prior research used for 2D animating, such as the 12 principles of animating were a useful starting point to help understand how an object or character would behave in motion. For this project, there was a lot of new subject area which I had to research and practice before I could make finalised assets for the game. Tutorials online and advice from other students was essential in helping me learn how to animate in a 3D scene.
Although I have had very little experience with modelling organic assets, I had to try and learn how to model a character before I could learn how to animate. Online I found lots of different recommended ways that a person could model a low poly character, but many of the models looked as if they would be out of place in our game world. Some models were too low poly, whereas others looked proportionally unrealistic, done for a stylised effect. I, therefore, had to try my hand at modelling a character on my own, the same way I learnt how to model assets from an environment, through trial and error. Using drawn references for the characters meant I could flip back and forth between references, making sure that the model fitted the proportions from the front and side. After a few attempts at modelling, I finally created a template for a character that would go on to be the starting point for each character in the game. This model was not based on concept art provided by my teammate, as I didn’t want to dive straight in with the goal of making one of the main characters for the game, as I first wanted to practice modelling and animating before I tried to make anything that could be used as a finalised asset. This was done with the intention that with practice I could create character models that were to a suitable quality for the game we are making.
Once the character was modelled, it was a fairly straight forward process to rig it. Arms and legs have two bones, the torso has two bones, and there are bones needed for the hands, feet, neck and head. In blender you can easily place down bones and extrude them to determine their length, then with the same standard controls the program has for moving objects, you can move and position the bones to be in the correct place and depth, inside of the modelled character. I have had basic practice with rigging for a previous project last year, so it wasn’t completely new to me, although I was thankful for online tutorials as they refreshed my knowledge on the subject. The following videos helped a lot.
After the bones were in place, there were a few tweaks that needed to be made, initially, the legs bent the wrong way, but moving the bones a bit, and adding in loop cuts into the model allowed me to make some constraints that made the bones bend more naturally. Additionally, some controller bones floating off the body helped make the body move the way it should realistically.
At this point, I thought I was finished with the rig. By moving the hand the whole arm followed, if I brought up the lower leg, the knee would bend and the whole leg would move. In pose mode, I positioned the model and thought it was close to what I was after. However, some bones were affecting too much of the character, for instance, if I moved the left leg, part of the right leg would try to move with it, and vice versus. This would create a distorted look on the right leg, which would not be useable for our game. Initially, I thought that I modelled the character wrong, and went back to the start of the process and positioned the legs further apart in hopes that they would not be affecting one another any more. After going back through the whole process again, I noticed that the issue wasn’t as terrible anymore, but it was still noticeable. Going online, I found that the issue wasn’t the spacing of the characters limbs, but rather issues relating to weight paint. Bones in a blender have a radius impact on the body they reside in. However, what was happening with my model, was that the other leg was just close enough in the radius of the bone to be impacted by its movement. This was easily fixed by using weight paint mode, in which I set out clear guidelines for the bones, painting which areas of the body they could move.
At this point, the model was finished and the rig was complete. I created a quick idle animation for the character, which only needed two keyframes, and the whole process was complete. Upon finishing this I made a list of animations for each character in the game, as well as an estimate to how many frames of animation would be needed. Although small animations like an idle animation would only need a couple of frames, longer more complex animations would take a lot more time. After some thought, I determined that animating all 8 background characters (with 3 variations of each) and all 14 main characters would be a long time-consuming task. With an understanding of animation, I looked online to see if there was anything that could speed up the process in order to free up time for other tasks which required my time. I stumbled across Adobe Mixamo which is a library full of free to use animations. Using the software was rather straight forward, I uploaded an FBX file of a character in T-pose, positioned markers which indicated where the chin, wrists, elbows, knees and groin were, then the program would automatically rig the rest of the character for me.
After a few minutes of the software calculating the rig, all I needed to do was source animations from their collection, tweak settings such as the speed of animation, or attitude of the character, until I had an animation I was after. Then I just downloaded it as an FBX.unity file and imported it into Unity. This process was repeated for all 8 background characters, and all 3 versions of each one, as well as the main characters as well. It took a few days to fix issues with the models such as normals facing the wrong way, or models not having enough loopcuts in areas such as joints, but once the models were fixed, the animations were straight forward to source.
- Adam Watts