Tuesday, May 17, 2016

Art Prototype Dev Blog 02: Hairy Situation

So I spent the weekend working on the art prototype mentioned previously.  I decided to try and make a 3D version of this character that I concepted over a year (maybe two or even three) ago.

Why am I not a professional concept artist you ask?  This, this is why.  Now stop asking!
I'm serious about this prototype, so I even made a spreadsheet, splitting up task.

I was pretty excited, getting a pretty decent body and face done in iClone Character Creator relatively quickly.  I knew it wasn't going to look exactly like my concept, but I had the major components figured out.

I did learn that iClone Character Creator spits out a lot of textures, at most four -- diffuse, spec, normal, and alpha -- per part:
  • Head
  • Body
  • Eyes
  • Transparent Layer of Eyes (which I'm tempted to remove)
  • Upper Teeth
  • Lower Teeth (which aren't the same size as the upper)
  • Tongue
  • Fingernails
  • Toenails
  • Eyelashes
This is one aspect of iClone I like over Mixamo Fuse.  Fuse has less textures, but you still had to make multiple materials since the eye lashes -- which needed transparency -- were on the body and face's texture.  I'm pretty sure using cutouts would have sufficed though.  Anyway, I wrote a script to make one texture's alpha channel the red (or any channel) of another texture.  This is important because if I plan on using Unity 3D's built in shaders, they require the alpha channel to be utilized.  For diffuse textures, the alpha is used for transparency; in the specular (or metallic) it's used as the texture's smoothness.  This is how the character looks in Unity3D after playing around with various work on this:

The top image is how the character looks with the built initially exported spec map, which has an alpha of 255.  It's extremely reflective and unnatural.  I lowered the alpha to 64, resulting in the lower image, a lot less reflective and smoother.

After getting the base model figured out, I, instead of doing clothing, decided to try my hand at hair...which quickly made me think...

At the same time, it made me realize why so many games have bald or short-haired characters.

Anything else is expensive -- whether that's the amount of time needed to create decent looking hair or the rendering power needed to deal with the transparency created by using the alpha plane technique.
It was also at this time that the hair in most character creators -- Fuse and iClone CC included -- are just not amazing.  Don't get me wrong, they are much better than I could make as I soon learned trying to make my own, but they just feel lacking compared to other games.
For myself, the problem is that there are a lot of different ways to do hair and a lot of the tutorials I found were for rendering realistic hair for animation, not games.
So, for my situation, here are some possible solutions:

Use What's Out There

Fuse and iClone do come with some hair, and, though I don't love it, it is usable.
"Messy" hair exported from Fuse and put on my character with minor modifications.
I could probably take this hair and manipulate it enough to get various styles.  There are also stores and other resources out there I could use to find new hair.

Learn to Model Hair

As I mentioned previously, there are dozens of tutorials out there.

These are just two of many that differ on skill, time, programs, etc.  I tried modeling my own, but I think I came across a bigger problem:  My concept isn't really complete.  It's just a single pose of the character.  I think, because I knew I'd be using a character creator, that thought I wouldn't need a character sheet with front, side, and back views; however, because the hair is rather atypical, I should have clarified it.
Because this is a prototype -- and because I was in a bad mood pulling my hair (and his) out -- I decided to just use Fuse hair to improvise a new haircut.  This is what I came out with.  I'm still not in love with it; from some angles it looks odd.  The biggest problem I discovered is that rendering hair is rather difficult.  It was particularly frustrating because in Fuse, the hair looks fine, but they are using a unique shader that isn't built into Unity.
Not only does this need specular adjustment, but there is odd Z-fighting, particularly at the front bang
Despite my efforts creating various shaders in Shader Forge, I still couldn't quite get the hair to look right.  Fortunately, I was able to find a shader in the Unity asset store, Advanced Hair Shader.  I had to get a version compatible with Unity 5; fortunately, the developer was very quick to respond to my email.  Though, despite getting a good version of the shader, I still wasn't feeling it.

The parameters need a lot more adjustment, but the Z-fighting is gone at least.
As I continue these characters, I'm going to avoid using alpha transparency in my hair.  It'll probably require more triangles in the meshes, but I think it'll create a better look overall, especially for the more cartoony, bright look I'm going for.  Also, when working in Unity, I try to prevent myself from fighting with the engine.  I'll either make a workaround -- as in with using my own simplified physics solutions -- or work with the engine.  It obviously doesn't work great with alpha transparency, so I'll avoid using it when I can.  I was also having some luck using muscles in 3DCoat to make hair -- retopologizing was inducing some rage though -- and I want to explore that further and see if that can create nice, sculpted hair.  I know I can't use that for everything, but it's worth a shot for sure.Overall, I hit a bit of a bottleneck in the character creation process.  I should have probably done attire instead of hair.  Admittedly, attire will create similar problems and have its own questions like how do I close gaps?  Do I use clothing provided by Fuse or Character Creators or use Marvelous Designer or something else to make clothing?  The most challenging part will most likely be tying all the parts together, making them coherent and consistent, but I'm going to keep trying -- at least for a bit before finishing the next Battle High 2 A+ character, Beat.

1 comment:

  1. This comment has been removed by a blog administrator.