Development Update: How a character is made
New Development Update #2
Let's make a character
In my experience so far, developing a game isn't best described as being one colossal task -- But, rather, a colossal number of small to medium sized tasks. As a solo developer, and making a game with an emphasis on presentation, one of the most time consuming things I do is create art assets and animate characters. When I made the difficult decision to remake the game in a new engine late last year (read about it in the previous two updates if you want more details on that), I took stock of what new things would be possible with the new engine -- What things would make the game better, and what things would make my life easier and re-development faster.
One of the most significant changes beyond the upgrade to Unity was the adoption of Spine 2D to handle all of my character art and animation. By this point I've already made a number of units in it, some of which are running in the game now.
In the past, working on the previous version of the game, all of the animation was created traditionally. Creating it was both extremely time consuming and extremely mentally taxing -- It was also inflexible, as any change to the character art after it was put into the game, whether big or small, was a very impractical and difficult task.
It also imposed significant technical restrictions onto the game, and, in fact, doing it that way again would quite possibly impede its ability to run on lower specced platforms like the Switch. Since every frame of animation was drawn and output onto a giant texture, characters became exponentially more memory consuming the larger their dimensions were and the more frames of animation they had. Giant characters -- Ones that are really fun to have in a game, ones that take up half the screen or more -- Were pretty much impossible to really do for this reason. Not traditionally.
In the past, making a complicated character and animating it could be a week long project if not longer. Let's take a look at what's involved now and what I can now create in just a couple of days.
While many of my environment assets can be recycled in one way or another, and, indeed, are -- The characters have to be remade for the reasons I outlined above. I decided it would be fun to remake Mutt relatively early in the process, especially since he appears very early in the game. I took the opportunity to make his suit a bit larger and turn him into a female character.
The first step is to scribble out a rough outline and get a feel for what the shape of the character is. I knew I wanted some kind of big mechanized suit again, and I knew I wanted it to be heavily damaged.
The very first sketches are typically extremely loose. It's all about finding a shape. If you're curious, I'm doing all of this in Photoshop with a Wacom Intuos Pro.
I wasn't sure whether I wanted the face to be showing, but this sort of worked itself out as I refined the sketch.
This is the concept that quickly emerged. The entire front of the suit will have suffered such extensive damage that the occupant's head and part of her torso would be visible. I feel like this is a bit more compelling and helps sell what the character has been through in her story.
Next step is to get her into a proper resolution to work from, and compare her to another character (in this case, Little Blue) to make sure I keep the rendering of the lines and colors consistent as well as easily understand what the scale of the character is.
Next is colors. You may have noticed by now that the coloring style of the characters is slightly different compared to last time -- It's generally a bit flatter. This was intentional. While you may or may not personally like it as much (I happen to like it more and feel that it pops out against the painterly environment art), how much easier this coloring style was to implement was factored into my decision -- And the fact is that it's simply easier to produce art this way.
Another thing to keep in mind about my coloring process is I start by finding where the contrasts are, and often change the actual colors at various points in the process, especially after seeing it in engine. As of now, the suit is green and purple and her hair is red, but these are all things that could potentially change.
Now that I have a usable piece of art, what I do is spend a number of hours cutting it up into many individual pieces that will be layered on top of eachother in the spine model.
I don't need much art to animate an infinite number of animations for a character, and it's pretty much just what you see above.
Spine is an extremely well designed and full featured animation program, and it makes the process of animating 2D characters very much comparable to the process of animating 3D characters. You lay out your art, you create a skeleton, and you assign the art to the individual bones of that skeleton. You can also create meshes to go with any piece of art, and weight those meshes to individual bones in order to bend or warp them in any way imaginable. This is great for making pliable materials like skin and clothes and hair, but can really be used to do anything at all.
Elements of traditional animation can also be mixed in for even greater flexibility. If one particular body part isn't quite right to achieve a pose that is needed, new art can be swapped in anywhere and any time. (This was done quite extensively in the creation of the main character so that it could achieve a great number of motion and poses -- I even drew the helmet from 16 different angles so that the head could be animated turning towards or away from the camera).
Okay, here's what I had for a model after a few hours of rigging:
Most things on the model are articulated, and inverse kinematics are used on all the limbs and the hair to help it move more naturally. Animating now becomes a matter of going to the timeline and selecting parts and keying their positions and orientations into it.
So, now, after about two days worth of work, I have a functioning model more detailed and articulated than any I did in the past game, and it can now be animated into many motions and poses with relatively minimal time and effort. If I need it to do something or assume a pose that I can't quite get to with the current art, I can simply create new art and drop it in.
As I alluded to before, there are no real memory considerations doing the animation this way. It's extremely light weight, since there are so few images involved. I could make a character larger than the screen if I wanted to and there would be no significant technical downside since all of the animation is calculated by the game engine in real time. This also means that anything about the model can be changed in real time, which is already being used to great effect in the Unity build.
Yeah... So that's how a character is made, and it's what I'll be doing an incredible amount of over the next months and beyond. I hope you found it interesting and I hope it helped you to understand why I made the choices that I did.
Before I go
The moveset for the main character is reaching a pretty advanced state, and I hope to be able to show some basic combat mechanics next month (I'll update with something, regardless of whether or not it's that).
In the mean time, take a look at what I decided to do with the jumping and dashing animation. Initially, I nixed the spinning that was so prevalent in the previous version of the game because it felt too unoriginal. I was really longing for something, though, and ended up with what I think is a pretty good compromise -- The single somersault. It only happens if you sprint to full speed first before jumping.
Link to clip (if it doesn't show up big, right click and select open video in new tab or whatever)
(The above clip features an area I've been using to test things - That's why there are random objects and units standing/floating around)
The gameplay controls have settled into something pretty comparable to last time -- If any of you played the demo a while back, it's still similar, but I consider it more refined and generally better. Dashing is still fast and is still on the Lb and Rb buttons.
If you have any questions or comments, I'll be reading and watching and prepared to answer anything.
See you next month. Thanks!