Report article RSS Feed Open Outcast character variations

We want to have many, many talans on the streets of the cities in Adelpha so it would be cool if they are a bit different from each other, no? Here goes what our 3D artists did to make that happen...

Posted by madcybi on Nov 19th, 2010
Article

We want to have many, many talans on the streets of the cities in Adelpha so it would be cool if they are a bit different from each other, no? Here goes what our 3D artists did to make that happen...

First let me list features that CryEngine offers to bring some variability to characters.

  • putting different meshes together in character editor
  • thin and fat mesh variations (for any mesh)
  • mesh decals
  • texture decals
  • material variations and diffuse texture coloring by decals

Putting different meshes together is used in OOC quite a lot, we have different heads, eyes, clothing, hats, belts and other accessories.

Thin and fat mesh variations – this comes in two flavors. Generally thin/fat mesh variations mean that you can morph a body into it’s fat version or thin version with slider, so you may have 50% of the fat body or even 150%. The flavors I mentioned means that you can supply a fat body mesh and thin body mesh, but you don’t have to. If you supply them, they are used as the morph target. If you don’t supply them, cryengine pushes the vertexes outwards to simulate some fatness, or pulling them inside to simulate thinness. This is similar to using Push modifier in 3dsmax. Of course the result is much better when you supply thin/fat meshes, because you have more control over the shape.

Because we are also using mesh decals I have decided that for the general body which most talans should use we will use the “automatic” cryengine fatness/thinness. For some variation it does good job, even though the result is probably more of a thick/slim variation then fat/thin. Later we may introduce a fat body for specific talans, but generally this simpler version will be used (which also saves a bit of memory because no real fat and thin mesh data have to be hold in memory). Also a real fat stomach could be achieved through “fat” clothing (under which body without torso may be used).

Here are a few examples of thin/fat body using the simple engine push/pull vertexes:


(thin – normal – fat)

On the picture the whole body gets thicker, but we have control over which parts should get thick/thin (like legs, torso or hands). Also on the picture head changes, but it wouldn’t have to. Another thing to note is that body doesn’t have muscles painted int the diffuse and normal map. This is because it would spoil the fat or very thin character. We still have textures and materials for the normal/muscular talans of course. Heads can also use thin/fat variations, but for OOC I have decided that for these thin and fat variations we will use different head altogether and that way we can generate lot of heads variations.

Mesh decals are small pieces of mesh which are textured with some decal like a tattoo, scar or some other distinctive feature. To optimize for drawcals, more decals are placed on the same texture (512×512) and then they are “selected” by changingn uv tiles and offset parameters inside sandbox. Mesh decals have their own material and their mesh is “skinned” on the skeleton so that they move and deform same as the body underneath.

Then we have texture decals. These are applied in the same material as the face texture. Advantage is that head diffuse texture can be in higher resolution, for example 1024×1024 and the tattoo decal can be as low as 256×256. This saves memory because the hi-res diffuse texture is shared among many talans (682 kB) and the head tattoo adds only 85kB on top of that. Of course borders of the tattoo will have a bit jaggy edges, but still they are worth the saved memory.

The same technique can be used for body dirt. Body diffuse texture which is shared among talans can be in much higher resolution that a few dirt decal textures. Diffuse body texture takes 1.33MB, while 5 different dirt decal textures for the whole body take only 853kB (even though there is visually no dirt on a particular body part, dirt decal is there too).


Here is an example – clean – dirty hands – dirty feet – dirty hands and feet – fully dirty :)

Next are the material variations like different skin brightness (tweaking melanin parameter with the same diffuse texture) or diffuse texture coloring. Coloring can happen through diffuse color in sandbox material editor. This is great feature for tweaking colors, but less great when we would want to color a greyscale texture completely by diffuse color. One of the reasons is rather obvious, we couldn’t have diferent colors on a more complex clothing, for simple skirt it could do, but something like Lora’s or Shamaaz robe which have different colors in different parts would break it completely. Another reason but much less visible is that if we color plain surface with only one color then it’s not very natural, even solid color in real life varies on hue a bit.
Here coloring (in cloth shader) by a decal comes to help. First we have to break the diffuse texture to it’s shading component and color component. Shading component can be higher res (contains all the detail) like 1024×1024 and the color component can be as low as 128×128. Let’s have a look at an example:


Try to find two same talan :) . What you see on the picture should be further enhanced so that any of the two same colors except the short skirt version should be at least slightly different hues and the dirt you see on the cloth has no variation. Now interesting facts about memory usage:

  • main diffuse texture is 1024×1024 large, has opacity included (for short skirt) and takes 1.33MB of memory
  • everything else is made by small textures in resolution 128×128 and they all take only 300kB of memory

This is how the big diffuse and all other small coloring decal textures look like:


They say eyes are important, so here are our talan eyes using simple diffuse coloring for the cornea of the eye to bring different colored eyes, example:


The smaller pupil on the middle image is different eye texture similar as this “damaged eye” which could and should be a bit better


and yo mama, someone said high, but how high?


That’s all folks ;-)

Post comment Comments
Piuneer
Piuneer Nov 20 2010, 12:12am says:

Great update, guys. Nice to see the little details you're putting into this, but the pictures are so small!

+4 votes     reply to comment
Splinesplitter
Splinesplitter Nov 20 2010, 3:11pm says:

Great job. Would be awesome if the facial features varied as well.

+1 vote     reply to comment
madcybi
madcybi Nov 22 2010, 1:37am replied:

Yep, we plan to implement a facial animation system for the dialogues...

+1 vote     reply to comment
phunkracy
phunkracy Nov 20 2010, 4:37pm says:

That's great :D looking forward towards release and previews :]

+1 vote     reply to comment
Ash712
Ash712 Nov 22 2010, 8:25am says:

Very cool looks into to how the game is designed!
I didn't realize the Character Editor in the SB2 was so handy!
I'd love to see more of this kind of news about other aspects of the game!

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Feature
Browse
Features
Report Abuse
Report article
Related Mods
open Outcast (Crysis Wars)
open Outcast Crysis Wars - Single Player Adventure
Related Games
Crysis Wars
Crysis Wars Multiplayer First Person Shooter
Related Groups
Eternal Outcasts
Eternal Outcasts Developer & Publisher with 20 members