In this blog article, we want to show what steps are necessary to design a character in a game. As an example we use the research project MightyU, which deals with the development of a playful application to support the therapy of children and adolescents with infantile cerebral palsy (ICP).
Reference drawing and selection of the tool
The tool of our choice is Blender. It is a widely used 3D software, which offers a comprehensive and very comfortable toolbox. We started with a reference drawing of the fox. Here the character is usually shown in a T-pose, which makes it easy to “rebuild”.
With the sculpting functions of Blender we then worked out the proportions of the figure, first roughly and then more and more finely. You can actually imagine this step as the shaping of virtual clay. The main thing here is to find the right proportions and the silhouette of the figure. The advantage of this approach is that you can completely disregard the structure and resolution of the polygon mesh and concentrate on the essentials. Once the basic shape of the figure has been found, any number of details can be modeled.
Resolution of the polygon mesh
Since our character is used in a real-time application and not in a pre-calculated animation film, it is necessary to arrive at a realistic and calculable resolution of the polygon mesh after the creative work with virtual clay. Therefore, the high-resolution polygon mesh (plasticine) is now reduced. For this step there are different methods and auxiliary tools that can simplify and almost automate the process. In our case, we manually defined a second mesh on the surface of the plasticine, which takes up the shape and contours of the model.
Ideally, this step should also take into account the later animation of the character by trying to take into account the topology of the newly created polygon mesh along the regions that will later be strongly deformed. These regions include shoulders, elbows, knees and also the hips.
Next, you can decide whether you want to start by texturing the figure or by preparing it for animation. We first wanted to be sure that the polygon mesh had enough resolution for animations and so we focused on the animations.
Making the figure moveable
To bring movement into the character, a little preparation is necessary. You can imagine the structure of an animation system for characters in a similar way to real anatomy, only strongly abstracted. The outer shell of the figure is supported by an inner skeleton. If the skeleton moves, the body follows. For this purpose a rig consisting of bones is drawn into the polygon mesh. A bone then represents a moving region, for example hand, forearm or upper arm. The process of this construction is illustrated in the video.
The connection between shell and skeleton
Now we look at how the skeleton and the shell are connected, so that the movement of the bones also moves the shell. To do this, Blender assigns a group of surface points to each boil in the skeleton. The special thing about this is that the points are assigned in a weighted manner. This means that the transformation of the bone only influences the transformation of the surface point to a certain percentage. For example, the polygon mesh can behave elastically at the joints. Blender initially tries to calculate the weighting as far as possible automatically. However, it must be manually corrected at certain points. This happens with weight painting.
In weight painting, the weights of the surface points are assigned by a virtual brush. Blue represents no weight and red represents full weight. Yellow and green are then intermediate values. With this method it is then possible to smooth unwanted deformations of the shell or to build up intentional deformations.
These were the basics of character design, here is how it goes on
The activities described up to here form the basis for the further development steps of a game character, which we will discuss further in a following blog post. As a small teaser, the last video clip gives a foretaste of how the character will move in the future and be represented within a game engine.