Mouth and Eye Edge Flow Fix Tool
What was the problem?
While working on FIFA 16 finishing new player heads I noticed that just about every newly created asset that was given to me required work in the mouth area. Because we use a common player skeleton and common weighting, the edge loop spacing of a new player's head asset needs to be equal to that of our base head. During the scanning and modelling process this edge spacing is lost and has to be brought back to the head's topology while maintaining the player likeness. Without the proper edge loop spacing the player's facial animation will not perform as intended, giving poor results when the mouth and eyes are expressing emotion or speaking.
A finishing artist would spend about an hour or so fixing the mouth area. Then the head would go to another artist who specialized in further mouth cleanup who would then fix/polish as needed; the inside of the mouth; back of the lips; mouth bag (teeth, gums, tongue, roof of mouth) positioning and scale. They would also further optimize the edge flow in the lip area.
What did I do?
At this point in the project I asked to be put on head finishing to find areas in new player head asset creation workflow that could be improved. This same mouth area goes through three different artists: an outsourced artist who cleans the scanned model, a local artist who finishes the asset, and the mouth/eye specialist who polishes the head's mouth and eyes further. I came up with a strategy and a retopology technique that would deal with this issue at the outsourced artist stage.
The shape of any mouth is retained while adjusting the edge loops to match the optimal mouth edge flow layout. |
I wrote a tool in Python and PyQt4, that would load in the optimal player head (the base head) and take measurements on that head in regard to edge flow. I would then analyze the new head and position the edges in the correct locations relative to each other. The artist is presented with a user interface and can exclude key areas (such as the top of lips) to maintain character likeness and can further adjust the edges for optimal blending between the surrounding edges that lay outside the lip region.
This tool works on any shape of lip, be they thin, plump, wide, etc. The tool goes further by getting the inner lips and mouth bag information and positions it in the new player's mouth (sliders on the user interface provide further placement and scaling help for the mouth bag).
Using the tool's default settings the edge flow fix is immediate. If the artist wishes to control the edge fix using the interface it will take an artist a couple of minutes of tweaking via sliders and informational feedback from the tool. Additional time may be spent by the outsourced artist adjusting the mouth area. But overall the process should take less than 10 minutes.
What impact does it have?
The impact is significant, as this tool rids us of an issue that has been around for years. It helps us eliminate the issue at the first artist but can be done at any time during the head's production (helping with legacy assets). It also takes an issue that was in the hours time frame and put it into the minutes time frame and eliminates the need for a third artist who specialized in cleaning/optimizing the mouth and eye area in regard to edge flow and mouth bag placement.
Furthermore by bringing in the base head and measuring the edge flow, this has made the tool portable to other games that share the same base head topology throughout the Artworks department in EA.
Eye Lash Tool
What was the problem?
During the production cycle of FIFA 16 we would get a lot of eyelash bugs, where the eyelashes would appear detached from the eyelids and look like they were floating.
Modelling the eyelashes can be a tedious process as it is a relatively dense mesh for its size. Adjustments to the eyelid shape are common in the production cycle of a player head mesh as the artist strives to attain player likeness or simply to resolve clipping issues with the eyelids during animation. Slight adjustments to the eyelid can result in several minutes adjusting the mesh to match the new eyelid shape per eye.
While there were some existing tools for eyelash creation, the current tool set did not address modifying the eyelashes after altering the eyelid structure. Also the current tool set did not position the eyelash geometry properly resulting in floating lashes.
What did I do?
I wrote a new eyelash tool that would determine if eyelashes already existed, if not it would add them to the hair geometry. It would then allow the artist to use use sliders to model/modify the eyelash geometry and take away the tedium of manually adjusting every vertex on the eyelash mesh.
I added snap eyelash functionality, so when the eyelid geometry changes, instead of having to manually adjust the eyelash mesh, the artist just clicks a button and has the eyelash geometry instantaneously jump to the correct positions with no further modelling needed. Furthermore I adjusted where the eyelashes attach to the eyelids which eliminates the issues with floating eyelashes.
What impact did it have?
Besides the smiles of relief on my colleagues' faces when I showed them the new tool, the artists believe the greatest part is the snap tool and the time it saves.
However the greatest point of impact is the elimination of bugs related to floating eyelashes. By targeting this issue I have eliminated the time on QA finding the bug, writing up the bug and regressing the bug. 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 snap button saves all that time.