Wednesday, May 25, 2016

Art Prototype Dev Blog 03: Tired of Attire

So, for the next part of my character, I decided I needed a bit of clothing.  Clothing usually hasn't been a big issue for me; however, there are a lot of aspects to it that can quickly make the pipeline I'm trying to develop rather challenging.
Essentially, I have a few options, which I explored:
  • Marvelous Designer
  • Use iClone Character Creator's clothing
  • Model Clothing from scratch
  • Find existing clothing

Marvelous Designer

I really liked Marvelous Designer at first.  It's a cool program for designing clothing; however, I eventually found, once the coolness wore off, that it just isn't really for games and it just really isn't that much faster because of the required knowledge needed sew clothing together.  In addition, it's expensive, and with 3D Studio Max having its own version of Marvelous Design built into it with Garment Maker -- with the caveat of it being far inferior -- I decided to pass on this program.

iClone Character Creator

One nice aspect of iClone's character creator is that it comes with a decent amount of clothing.  It doesn't have every type of costume -- martial arts, occupational, etc. -- but it has enough casual clothing that you could probably construct usable outfits for most things.  In fact, it uses Substance Designer materials to edit clothing.  I didn't really dive into this, but if I want to make a shirt with a certain type of pattern or decal, this probably wouldn't be that challenging.  The bigger challenge would just be making the textures -- an area I didn't touch yet because my texturing skills are rather weak.
My only issue is that the clothing is rather high poly, a pair of jeans being about 12,000 triangles.  Again, for a next gen. fighter, this probably isn't a big deal, but I still have the feeling I'd have to do some clean up in most other cases.
Another issue that came up is that this clothing will always look the same, so I probably will need to do some adjustment.  I thought to try and use Blendshapes to make the pants a little more baggy, this way, I wouldn't have to reskin the entire thing.  Unfortunately, because of an issue with smoothing groups, when the jeans were reimported, the smoothing groups were eliminated, making it look like something from Virtua Fighter.

Though interesting, that square, patch pattern is not intentional.

Modeling Clothing from Scratch

When I say "from scratch", I really mean one of two things.  One is modeling clothing from scratch, something I'll probably need to use from time to time for more complex attire; however, for some clothing, I'll sometimes just take existing parts of the mesh, duplicate, remove geometry I don't need, and boom -- I have a pair of gloves.  This technique isn't perfect for all clothing, but again, good for tight, form-fitting clothing or gloves.

Glove and inner sleeve made by just duplicating parts of the original mesh.  Needs texture work, but for an initial pass, works.

Find Existing Clothing

Since I'm making a fighting game character, I wanted to try and make an alternate costume.  I decided to try martial arts attire; however, I didn't want to spend hours modeling it from scratch, so I decided to look for one.  After failing to find one on Turbosquid, I found one on a site called CGTrader.  It had nice edge flow, and with some minor adjustments, I was able to use skin wrap to get it onto the character.  The skinning isn't perfect, but with the amount of modeling time saved, I could definitely spend a little time adjusting the skinning.  It was about $50, and it's not something I would want to do for EVERY outfit, but I think this approach isn't bad for when I need an article of clothing for a character quickly.

Untextured, but this took very little time to fit and skin; the arm pits verts need work, but in the amount of time it'll take to fix that, I'd probably barely have the pants model if I were to do it from scratch.

Again, the goal of this prototype is to see if making a character by myself in a short period of time (1 - 2 weeks) is viable.  So far it's shaping up to be.  Here are some of the biggest challenges I've faced thus far:
  • Hair!  I need to come back to this, but decided to take a break.
  • Closing gaps -- when working with clothing, a lot of it is open, but Unity culls faces based on the shader -- and not culling (making it double-sided) increases render processing -- so you get these strange instances where the inside of a sleeve becomes see through.  There are several techniques for preventing this, but it's a bit of extra work, and I wish I didn't need to do it at all.
  • Texturing.  I'm going to try and use 3DCoat to see if I can texture clothing in a way that doesn't make me want to abandon the project altogether.
  • Will it animate?!  Once I get the entire character's look figured out, I have to see if my biped rigging script will do it any justice, will the clothing deform in a way that looks decent, etc.?
  • Shaders -- I'm not sure if I should use Unity's built-in shaders or my own; however, one thing I learned from past projects, is that when figuring this out, you should do the textures simultaneously as some shaders will change the setup of you textures -- channels, normal map use, etc.

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.

Thursday, May 12, 2016

Art Prototype Dev Blog 01

So for the last month or so after pausing Project Merfolk and besides new character work for Battle High 2 A+, I've been trying to work on improving my art skills and my art pipeline.  I wrote a script to convert any rig to the 3D Studio Max biped

I then did research and experimentation with various other programs such as iClone, 3DCoat, and Marvelous Designer, all with the goal of becoming a better and self-sufficient artist.  I've been wanting to start a new project, but since I've been doing all of this art exploration, I thought that it would be a good idea to, instead of making a gameplay prototype, make an art prototype, a prototype of the way the art in my game would look and feel.
This is an important step for my next game, regardless of what it is, so I'm going to start this now.  I'm going to do it live!
Well sorta...and with a lot less anger

The first thing I need to do is determine the look I am going for.  There are several ways to go about this.  One is to determine my strengths and weaknesses.  I know photorealism is definitely not an option.  It takes too long for me, and there are certain skill sets that I don't possess and would take way too long to try and develop -- high res sculpting, complex retopology, etc.  Another tool to help with this is to develop a style guide; from what I know, a style guide is similar to a game design document, but focuses solely on the visuals of a game and usually done very early in a game's production.
I'm going to develop the style guide for the look of characters for my next game, Cupkick.  The first part, is on a scale from realism to cartoony, how do I want the characters to appear.  The following image shows a character made in iClone Character Creator.  It uses the Slim morph -- one I find rather cartoonish and like -- and ranges from no (0%) influence to 100% influence of this morph.

Based on this morph, I want something a bit higher than 25% but not any more than 50%.  The game is going to be a 3D fighter, so characters will be a big focus.  I like this range because it's not 100% realistic, but the 100% is a bit too cartoony and looks weirdly unnatural.  This could be due to the use of a realistic texture on a cartoon-proportioned model. (Note, I'm going to edit these textures before using them in game.)  Regardless, the previous image is just one of many types used in a style guide.

Another part done for style guides is just the use of finding existing work and stating what aspects you want and what aspects you don't.  Here are some games I'm looking at for influence:

Team Fortress 2

Though not a fighting game, TF2 has a unique style that has many aspects I like such as strong silohuettes -- important in a figthing game to help identify moves and simple yet bright colors.  One aspect I don't like is that the proportions are a bit too on the cartoon side for what I'm shooting for.

Dead or Alive & Tekken

I've been a big fan of the Dead or Alive and Tekken series.  I do like the way the characters look.  There's an anime influence in their faces; they aren't realistic so they avoid an uncanny valley look, but they are still strong.  Also the game is bright as a whole.  The negative takeaway is that the world and shading as a whole is a bit too realistic and sometimes silhouettes can get lost.

Marvel Vs. Capcom 3


I really like the graphic style of Marvel Vs. Capcom 3.  The characters are a great mix between realistic and comic style.  The graphic style is a bit too harsh and flashy for what I'm shooting for, gameplay elements can get lost sometimes.

Super Mario Galaxy

Super Mario Galaxy is a bit too cartoony for what I'm shooting for; however, there are aspects of the game's looks I'd like to capture, particularly its cleanliness and bright colors.

Street Fighter V


It's contested, but I think SFV is a great looking game.  The character models, though not all beautiful, are great because they have strong silhouettes.

So, comparing these, I sorta want the following in my game:
  • Bright colors
  • Easy to discern silohuettes
  • Slightly unrealistic characters
And here are some elements I don't want:
  • Comic book style / harsh outlines
  • Photorealistic graphics (in characters AND environments)
  • Cartoony proportions
My biggest issue, of course, is that achieving this level of art fidelity on my own is going to be very difficult (if not impossible).

So what is my goal?

My goal is to create one character from scratch for this game with the following goals in mind:
  • Determine how long creating a new character will take; for example, if it takes 2 months for one character, this is way too long, and obviously i need to invest in other avenues to create characters.  
  • Develop and polish a pipeline for creating characters
  • Achieve the look of the characters I am developing
  • Have something more visually appearing to show off early to gain excitement
I mention the last one because I've felt for my previous prototypes that because they usually have prototype are or look boring, usually get ignored or I get little feedback on them.  I want to see that, if I start with stronger visuals first, that I can get more interest in what I am working on early.
In addition, here are some other, more specific questions I want to answer:
  • How am I going to do hair?!  I like planar hair, but it usually takes a long time to model.  Can I find a starter base asset somewhere and work with that?
  • Will the iClone Characters be good enough?  Too high poly?  Too recognizable?
  • How will I do clothing?  All iClone?  Marvelous Designer?  Model from scratch?
  • What shader / materials will I use?
  • Will these characters run well in Unity3D? On Xbox One?  On PC?  On mobile?
Anyway, this is just a short blog post about what I'm working on next.  Hopefully I'll be able to show progress as I continue working on it and smoothing out the pipeline.