Hi, my name is Matthew, and I am an animation lead at Anshar Studios. Today, I will show you the process behind creating a character as a fully animated final piece.
Before we start bringing our carefully crafted 3D character to life, we need to make it possible for it to move. Like an actual human, it will need some kind of skeleton. The process is a bit time-consuming and tedious because every mistake made here will affect our future work with the animation. Skeletal systems in 3d software are most often created using the hierarchy of joints, which visually look pretty similar to an actual human skeleton. We have to make sure that the joints are placed in anatomically correct places. We have to check if the joint orientation reflects the rotation that we want to work with. For anatomical correctness, of course, this rule can be bent while working on some kind of a stylized character, monster, or really anything else more cartoonish. Still, for a realistic character, it's more like a rule of thumb.
Okay, now that we have a fitting skeleton inside our character's body, the time has come to bind the skin, generating skin weights for our character. Weights are basically a black and white map representing 0 to 1 values, 0 being black and 1 being white. Those values determine the strength with which every single joint affects every vertex of the character mesh. There is also a different way to display skinning values called color ramp, which looks like a temperature gradient from dark blue to red. Still, I prefer the black and white mode because it's easier to see some misplaced influences.
There are a couple of ways you can bind the skin to the skeleton. Still, in the Gamedec pipeline, those are not really that important because we streamlined the whole skinning process using copy weight Maya script. Instead of painting the skin weights on hundreds of different characters by hand, we created a base body model and skinned it to perfection. Now we are using it as our base for all future skins. With this method, the skinning process is taken to the nearly finished state with a press of one button, all that is left to do is to look for some misplaced influences and adjusting skin weight values on different clothing, hairstyles, or any other elements that turned out to be problematic for the script. There are also cases of material difference, for example, the shoulders on the gif below. Still, the script did not know this, and it turned out too flexible. These things are being fixed at this stage too.
After the character is skinned properly, it's time to move it to the engine and see how it performs. We can test various animations to see if the skinning is well done and if the elements hold their places well. I usually use our test level to play desired animations with a press of the button on the widget. This is usually the final step before a new character is approved and can be used in the game, but some cases will need a final touch to look good. One of those cases is the long skirts of female characters inhabiting the wild west world - Harvest Time. The skeleton that we use is pretty simple because Gamedec is an isometric game. We do not need a significant amount of detail to make things look good. But sometimes, the overall low amount of bones in our skeleton and the lack of support joints for cloth turns out to be an obstacle that makes it really difficult to keep things looking smooth.
Our savior here is the built-in cloth simulation system to give us a really realistic look on those problematic skirts with low effort. The procedure itself is straightforward to use but at the same time pretty complicated given the number of variables and parameters that we can tweak to get the behavior of the fabric just right. To name a few, cloth stiffness, simulation weight, and friction are just a tiny portion of the possible tweak values. With the help of this fantastic tool, we just made our skirt look like it's straight from the real world.
How did you like this article?
Do you have your favorite piece of animator work among other games? Do you consider animations important for immersion level?
If you'd like to talk with our team members, want to ask a question to the Author of the Gamedecverse (Marcin S. Przybyłek), or chat with enthusiasts like you - join our Discord channel.