Project Spotlight Workflows

FIFA Hair Simulation Workflow

What was the problem?

EA Cloth (which is used for hair simulation) is a proprietary tool used at EA for hair and cloth authoring.  The cloth/hair tool, is complex and requires a lot of steps to get the simulation running and in game.

Hair simulation was first introduced to FIFA 15.  I was one of three artists assigned to hair authoring during that production cycle. FIFA 16 added female players to the game which flooded the simulation artists with work, to keep up with production schedules we had to author about two and half times more hair simulations as we had done the year before in the same amount of time with an almost steady team of four artists.

In FIFA 16 the game team had requested that we also author a low resolution hair simulation for each new and existing hair simulation so it could be seen at all points of game play and not just during character closeups. This increased our hair authoring time for each individual character by about fifteen to thirty five percent (the range of times varied as the lions share of the low resolution hair models had to be upgraded to specific vertex counts to handle the simulation). The process had to be made quicker.

What did I do?

I had to break down what the problems were and how I could solve them.  I began to write a workflow tool during production using Mel in Maya.
  1. Number of steps involved in hair simulation creation, there is a lot of setup to hair sim that must be done in a particular order, if the artist missed an earlier step he/she would have to delete the simulation and restart from the beginning.  Also time would be wasted debugging the simulation to figure out what earlier step had been missed. 
  2. New artist ramp up time, because of the number of steps and complexity the ramp up time to learn hair simulation takes quite a bit of time.  During FIFA 15 we had to reassign an artist because they could keep up with the hair simulation authoring time frame.
  3. Forgetting to save at the wrong point could result in a lost simulation.
  4. Exporting the simulation to game while tuning the simulation in certain instances could take up to ten minutes because of simulation playback setup time.
  5. When the players hair had been updated, the simulation artist wouldn't know what had changed, which could result in crashing the game.
  6. For FIFA 16, an extra level of simulation was added, the high resolution and low resolution hair meshes would be animated.  I needed to develop a workflow that would leverage the high resolution simulation tools and existing hair sim settings to quickly author the low resolution hair sim.

I began writing the tool while working on hair simulation production tasks, I maintained my hair simulation quota while I wrote the tool, it took me about a month to write to the core features and another month to put in all the polish and slick features.  The tool I wrote hit the main tasks in the following way.
  1. I created a floating tool bar that had all of the steps involved in authoring a hair simulation in a top down fashion.  Each step had a button associated with it.  I programmed each button to automate as much as possible with each step, every step no matter how small or quick was automated and laid out in this fashion for the artist.
  2. The layout of the menu helped the new artists, but this wasn't enough.  I also made the menu context sensitive, buttons would be enabled/disabled depending on what step of the simulation the user was on, tootips would come up when the user hovers over the buttons with an explanation of what the button does, or why it's currently disabled. 
  3. The menu buttons handled all of the file I/O for the artist, the artist never had to leave Maya.  Everything was brought in by the program and exported by the program when the artist need arose (except for file submissions to the game team, this was an impossibility).  
  4. The buttons would force saves at points that were notorious for loosing the artist simulation settings.
  5. I wrote my own export utilities from within Maya to get the assets into the game, without having to go through the rigmarole of shutting down and resetting up the game and Maya to work with each other to tune the hair simulations.
  6. To solve the issue of whether or not the hair simulation matched the current player's hair geometry, I wrote a utility that would load in the player's hair and count the number of vertices within that model and compare it to the simulation.  If the vertices had moved, I would create a heat map on the simulation hair that would show in a black to white greyscale texture on what had exactly changed in the hair geometry, I would also ask the user if they would like to automatically update the simulation with the new hair (manually this would take about 10 minutes or so).  However if the vertex counts were different the simulation would need to be manually updated, but other artists that worked with player hair knew how much work would be created when they added or removed vertices, so this was a rare occurrence. 
  7. To facilitate the simulation for the low resolution mesh, the floating menu would change, as the workflow had changed, some of the same buttons would remain, but a lot were taken away as not all features were needed.  By optimizing and automating much of this workflow I reduced the authoring of the low resolution simulation by approximately 85%.

What impact did it make?

The impact this new workflow made was quite significant, and had surpassed my expectations.  To start with the biggest question, how much time did it save? For every 2 man days of production 1 man day was saved in authoring the hair simulation.  During the course of the project we had estimated that the tool had saved over 3 man months of production time, over a 6 month time frame.

The tool I had written covered absolutely everything that could be automated, and at times I would question whether or not I should I should add a button for the more simple tasks, as the time savings to the artist were quite insignificant.  However nearing the end of the project as QA had began to write up hair sim bugs, we noticed something.  Certain types of bugs that we had seen the year previously had been completely eliminated through automation.  The time and cost savings here is harder to estimate, however it is easy to figure out who's time isn't being used up.  First we have QA who has to find the bug and write it up, It saves the time of the art director who reviews the bug and forwards it on to the art team. It saves the time of the art lead who distributes the bug and of the artist who fixes the bug and releases the fix to the game team.  It then saves the time of the technical artist who integrates the fix into the game and also eliminates the possibility of any new bugs being introduced.  A simple click of a button saves all that time.

Decreased artist ramp up time was also a benefit of the tool, because the tool was an end to end solution, steps in the hair simulation process wouldn't get missed, and automated saving prevented the loss of work due to user error.

FIFA kit creation

FIFA 15 player kits/uniforms*

The EA FIFA series features many different teams from many different leagues found all over the world.  The number of player uniforms in FIFA can exceed over 2,000, most kits (uniforms) change yearly.

What was the problem

When I had started on FIFA back in 2004 two packages were used to create kits and each artist had their own technique.  When we started to outsource the kits, the art we would get back could require a substantial amount of work due to poor quality or updated reference.  In fact the first month of outsourcing resulted in 7 day week with 12 hour days.

What did I do

I was the character art uniform lead for FIFA 07, and the one of the first projects to deal with outsourcing, as stated earlier we were doing a lot of overtime and dealing with substandard assets.

I introduced new workflow techniques to standardize how the art was created and organized.  I also focused on what was important in kit production.  For instance we were showing the stitching used in the kits which didn't really show up in game and we were not showing the effects stitching has (like buckled/raised areas) which is quite view able in game.

I also reduced the number of packages we were using to create the kits and introduced the artists to new techniques that could be used in just one package to achieve the desired results.

To get our outsource partners on board, every asset that we reviewed that did not meet our new workflow standards would be sent back for minor finishing fixes (major fixes would be sent back regardless of technique).  In the review we would point out if the art was created to spec the fix would have taken less than a half hour and we would had done it on our side.

What impact did it make

The immediate impact was significant, our outsource partners on-boarded fairly quick, once they realized the new workflow process was better and would result in less bounced back work for them.  We had also replaced one of our vendors, who just couldn't meet the quality that was expected.  Within a month of introducing the new standards we were back to a 9 to 5 work week, with only minor amounts of overtime near the end of the project (as projected).

My method of kit production is still in use today, and has propagated to other asset types.

Because of the way I planned and implemented new workflows that directly effected the bottom line and efficiency of outsourcing EA had given me an "on the spot stock bonus award".

After the project was done I was then a key member of creating our centralized outsourcing group for our department as the character art outsourcing lead.  There I helped establish review/documentation/training workflows for outsourcing.  I also traveled to Shanghai for 3 weeks to train our new and existing outsourcing partners on creating assets for EA Canada (such as heads, kits, etc.).

*images on this page represent the workflow of kits, I am not responsible actual creation of every kit depicted on this page.