Wednesday, July 11, 2012

Turntable 01

Here is a turntable of where I am at with painting and sculpting. Getting better and faster every day!  It's hard to see the detail in this video, but it's there.


Tuesday, July 10, 2012

Returning to an old friend...

So I have decided that I need to finish an old character that I have been working on for a long time.  The model is done, but now I'm cutting my teeth on painting textures and extracting normal maps in ZBrush.  So far so good.  Here is where I am at so far:

More to come on this in the coming days.  Stay tuned.

Tuesday, July 03, 2012

The Tool Productivity Curve

This is the first in a series of discussions about software productivity and usability.  It is a follow up to my previous post called "Why 3D Software Stinks - Part 1"

You have been forewarned.  This could go a tad long.

Many who know me know that I can get really excited and passionate about tools.  I use a plethora of tools every day, and it is a pretty tough job to stay on top of what is out there.  There are so many ways to do my job, but I tend to gravitate to the ones that make my job faster, easier, and get me to my goal quicker.  I've used (not mastered) just about every 3D package I can get my hands on in some way, and usually within 5-10 minutes, I know if I like it or not.  Call me picky, but I'm a UX snob.  In a world of iOS, Android, YouTube, and the like, where user interaction makes very difficult tasks very simple and straight forward, even for those unexperienced users, 3D has fallen dreadfully behind.

I started in 3D in 1999 using Maya 1.0 on an SGI O2 with 512 MB of RAM.  Back then, that machine SMOKED!!)  I learned to love flying chrome logos and raytracing.  But I cane from the art/illustration side.  I loved drawing, and I loved characters.  But this new world (to me) sucked me in with incredible force.  I looked at this software and thought of what I could was endless...until I tried it.  I quickly learned that I could do anything, given that I scoured the documentation for days at a time, stayed up all night for weeks on end, and fumbled my way through it.  Until at last, I was finished.  I did it.  Well, at least what I was willing to take after all of that pain and anguish.  I had achieved my goal, kind of.  I put blood, sweat, and tears into my volcano model with particles spewing from it, only to find that after all of that, it still wasn't what I wanted. But it was good enough.

That was the beginning of my quest.  That quest has yet to be fulfilled.  It has come close, so very close.  But it has never completely been satisfied.

Between my Junior and Senior year at BYU, I got an internship at a small video game studio in SLC called Avalanche Software.  They didn't use the mighty Maya.  They used and obscure piece of software I had never heard of called Animation:Master.  It wasn't Nurbs.  It wasn't polys.  It was spline patches.  My first assignment was to sit down and model a head.  So I did - the way I had done poly models.  Not knowing how splines worked, it turned out horrible.  I couldn't understand why anyone would want to work like that. But I was doing it the Maya way - the only way that I knew how.  Maya made perfect sense to me...that was, until I saw the light.  I then understood why they used it.  I was simple, fast, efficient, and streamlined, even if it was buggy :)  We flew through assets like Maya only dreamed of.

In the ensuing years, I used A:M exclusively and came to understand what "usability" really is.  It is still one of the best examples of a truly non-linear pipeline ever.  Nothing that I have tried has ever come close.

Usability is one of those things that we in the CG industry seem to put aside in favor of eye candy.  We go to SIGGRAPH and GDC and oooh and aaaah at the new tech that we see - the amazing new tools that are out there, and we so badly want to get our grubby little hands on them.  But once we do, the magic seems to die.  Why is that?  Is it because the tool doesn't work as advertised?  Is it because we can't fit it into our pipeline?  Usually not.  It's usually because the complexity is far greater than we have time to learn.  We want something that we can jump into, become productive, and use as an asset in our tool pipe.  We want it to make us faster with as little ramp up time as possible, because in this industry (especially games), time is of the utmost importance.  Time is $$$$.  The faster a tool gets us to our goal, and the better the result, the more important the tool is to us.

This is where the Tool Productivity Curve comes into play.  I cane up with this about a year ago, and I feel that it holds true in almost every situation. There are things that it might not fit, but they are very small and insignificant to the whole.  So here it is:

The graph is pretty self-explanatory.  As the tool complexity (usability and ease of interaction) gets higher, there is a point at which there is an ideal balance between usability and feature set.  This balance produces the highest productivity.  Even though there is a learning curve, it is simple and straight forward.  It is easy to understand and retain.  But as the toolset gets more and more robust and complicated, the productivity tends to drop because it is just too difficult to use, too difficult to remember, and too confusing.  On the left of the graph, the tool is SUPER easy to use, but incredibly deficient in it's capabilities.  On the right, the toolset is so extensive, that it's hard to keep track of how to use it.  There are too many ways to do the same thing, and it is confusing to the user.  Somewhere in the middle, you have the sweet spot.

Here is an example of two extremes, and it is funny how they come from the exact same company - Pixologic.  

ZBrush vs. Sculptris
On one hand, we have Sculptris, an amazing package that lets you get right down to the business of sculpting.  You choose your brush and go for it.  Import an OBJ, and have at it.  Then export that OBJ. That's about it.  Simple, simple, simple.  But I can't retopo.  I can't really bake detailed maps.  I can't articulate my mesh.  The mesh is all tris so it is really messy. So it leaves me hanging.  

On the other hand, we have ZBrush.  Don't get me wrong, I love ZBrush.  I own it for a reason.  It is amazing.  But I will say that it has taken me years to get used to it (not that I am really used to it even still).  I resisted for the longest time using it in my production workflow because it was so hard to integrate.  The whole 2.5D stuff, let alone the fact that your models were called "Tools" and your scene was called a "document" and it wasn't even really a scene.  The learning curve was/is astronomical.  That's why it has taken me so long to adopt it.  When I can jump into Mudbox, which is basically Maya and Photoshop smashed together, do some quick sculpting on my OBJ, select faces or verts, look at my UVs, paint layered maps, etc., why should I go through the agonizing pain of trying to feel comfortable enough in ZBrush to do the same?  It would take weeks to get up to speed, and I can just jump into Mudbox.  And where the heck do I find the "File" menu?  Oh, it's half way across the screen.  Just sayin'. 

Both of these tools are amazing at what they do.  But neither of them truly fit the apex of the production curve.  Maya, Max, Modo, Softimage, Cinema4D, Blender...they are all getting better and better technology.  But from what I have seen, they are all getting further to the right, instead of balancing the tech with the usability.

I've often compared the usability of a tool to a Ferrari vs. a Pinto.  They are both cars,  They both move us from one place to another.  However, the tech in the Ferrari is hugely more advanced.  This allows us to get to where we are going more efficiently and faster than the Pinto.  Is it because they put more controls in the cockpit for the driver to use?  No.  All of the new tech is hidden under the hood and behind the dashboard.  It's still just a steering wheel, clutch, brake pedal, gas pedal, and the stick.  Usability has been optimized for the driver to sit down and know exactly what to do and punch it, even if they were driving a Ford Fiesta before that.  

Somehow we have been trained to think that a better tool has to be more complex.  That is bogus.  Some of the most effective tools that I have used in my job are extremely simple to the user, yet insanely sophisticated under the hood.  Other tools I have used have been "programmer tools for artists" and make no sense at all except for the person who wrote it.  The former is MUCH more productive.  When in a production environment, I don't care how the tool works under the hood, I just want to get into the driver's seat, strap in, and hit the gas.

More to come.