Molding the Abomination
by Olof Strand (www.OlofStrand.com)
As a modeler the 1st factor I noted about this character was that the concept design demanded it to be entirely special in all of its components. Usually it is feasible to mirror some components (e.g. an arm, a leg or some cloth piece) to save texture space and possibly some production time when modeling game characters. Not so this time.
The character was primarily based on a human physique sort with numerous deformities and modifications accomplished to it. This meant that I could effortlessly use a standard human base mesh as a beginning point. Employing currently current meshes as a starting point is, when possible, very crucial for production efficiency.
Another thing that needed to be taken into consideration was how the character would be rigged for animation later on. In this case the rig would be shared with one more character from the game and therefore required to be built below specific specifications (joints in particular places, and so on).
The fundamental mesh created before importing into Zbrush. (Click to enlarge.)
When the the base modeling was accomplished, the mesh was taken into Zbrush for a sculpting pass. The goal of the sculpting pass is to develop particulars that can be projected on to the final in-game mesh to make it appear more detailed than it genuinely is. Since the proportions and general shape where already defined on the base-mesh these ought to not be changed too considerably and mostly only minor information had been added.
All the separate components of the base-mesh exactly where imported into Zbrush as separate sub-tools. This made it straightforward to hide, show and mask components off. It was also achievable to assign distinct components to the separate parts as a visual help. In Zbrush the mesh was subdivided numerous instances providing me far more polygons to perform with. When there was adequate polygons, new specifics and shapes could be added by pulling, pushing and using other a variety of tools, nearly as if it was a piece of clay.
The diverse subdivision levels in z-brush. (Click to enlarge.)
When the sculpting was done the lowest subdivision level was exported in obj-format to use as a beginning point for the final low-polygon in-game mesh. The purpose to make a new low polygon mesh and not use the mesh from sculpting is to optimize the number of polygons in the final mesh. This can be really critical for functionality when added in the game. The mesh utilised as a base when sculpting has a a reasonably uniform tessellation (distribution and a size of polygons) and largely a quad layout of the geometry (which means that most polygons are 4 sided). The in-game mesh then had to be modified to only have geometry where it was needed. By doing this, a lot more details could be added where truly necessary with out decreasing any functionality of the final mesh. This method is often known as retopologizing and can be accomplished several different techniques. Some people like to use the specialized retopologizing tools inside Zbrush, but I personally like to use the normal modeling tools in my 3d application.
The final version of the low polygon mesh. (Click to enlarge.)
When the modeling was carried out it was time to develop the uv-map. A uv-map is generally a way to show exactly where components of model belong on a flat surface, the texture. This is named a projection, and in this case a 3D to 2D 1 (the model is in 3D and the texture 2D). Unless the 3D object is a quite simple a single (like cube or plane) this is a very difficult operation and it is nearly impossible to preserve the same ratios as on the model. A good instance of this is to appear at the numerous approaches our planet earth (a 3D object) has turned into maps (a 2D surface) and all of the distortions and/or strange layouts that adhere to.
There are some conventions that should be followed when laying out this uv-map. The most important is probably to make positive to put seams (areas where polygons split up for the duration of the 3d to 2d projection) in areas exactly where they are not very visible. This considering that it is usually very tough to match up colors of pieces not next to one one more on the texture. Seams can also mess up shading when using normal maps. On a humanoid character a good place to place them could be on the inside of the arms and legs for instance. This character also have some irregular areas that have to be provided some additional thought. For instance the head had an uncommon shape creating the uv-mapping further tricky. When the placement of seams in the uv-map have been established the chunks where laid out to maximize the use of the texture space.
The uv-map layout. (Click to enlarge.)
Ahead of beginning the actual texturing work I generated colors for some of the texture maps from info in the higher poly mesh. The textures made this way had been the regular map and an ambient occlusion (AO) map. The normal map offers the mesh some further detail and makes it seem like it is made up from a lot more polygons than it really is. The AO map was to be blended into the diffuse (the base colour) texture to give a higher sense of detail and type. Generally, AO is a calculation of how significantly light reach each and every point on the mesh, producing creases darker and pointy particulars brighter.
The diffuse map represent the base color of the character and was produced in Photoshop by utilizing a mix of various photographs, custom Photoshop brushes and the previously described AO map. The diffuse map was added essential as it was also employed as a base for creating some other maps like the specular and gloss map. These two are black and white maps that control how light will impact the model. Specular determines the strength of shininess on an regions and gloss how sharp the shininess is. Some of the detail in the diffuse was also utilised to add further particulars in the normal map, like wrinkles and scars.
The final normal, diffuse, specular and gloss maps. Notice that all use the uv-map layout as base. (Click to enlarge.)
Once the texture was completed, the model was prepared to be utilized in-game!
Renderings of final model employing different setups of texture maps. (Click to enlarge.)
It is Alive!
By Thomas Grip (Frictional Games)
Just before the model could be used in game, some other things was essential. Initial the model necessary to be rigged and skinned, a process exactly where the mesh is connected to a skeleton. This skeleton then require to get animations and not till that was accomplished where we able to get a it into the game. This job was made in portion internally and partly by an external firm. There were a lot of job place into this, but is sadly outside of the scope of the write-up. To some sum items up: we got the creature moving and it was now time to place inside the game.
For Amnesia: The Dark Descent we use a proprietary engine named HPL2 which is a vastly improved and revised version of the engine that powered the Penumbra games (despite the fact that fairly old now as we are establishing version 3 of the engine for our upcoming game). It makes use of a rendering algorithm called deferred shading at its core, a technique that is really helpful when rendering lots of lights. It works by drawing out the the normals, depth, specular and diffuse colors to separate buffers and then use these to calculate the final colour of a light. Typically when drawing a light, all models that intersect with the light needs to be found and then redrawn primarily based on the light's properties. The good point about deferred shading is that models are only want to be drawn after, saving tons of rendering time and permitting more predictable frame price.
Amnesia: The Dark Descent can be a really dark game in places, often generating it tough to see enemies appropriately. To remedy this we added a rim lighting algorithm that created the creature's outline light up when in dark regions. This proved extremely moody and when walking in dark passages the player could suddenly get a glimpse of disturbing silhouette slouching off in the distant. Soon after this final touch, our creature was prepared to frighten unknowing players!
In-game screenshot showing of the rim-lighting on the creature. (Click to enlarge.)
Hopefully this write-up will give you some insight into the function that it took to generate an enemy for our game. It was fairly a lengthy method and took a number of months from thought to completed asset but we consider the final outcome is well worth it!
An in-game screenshot of the final rigged model in a scene. (Click to enlarge.)