Ghost in the Shell Project Breakdown
This project was a 10 week project I worked on during my final Demo Reel class with Miguel Ortega. I had previously modeled a Tachikoma Think Tank from Ghost in the Shell and was approached by a fantastic Rigger named Dominic Barrierre who wanted to rig a set of robots for his own reel. Taking that lead, I decided I wanted to do a real-time Ghost in the Shell scene that included the Tachikoma and a brand new model of Major Kusanagi, the show's main protagonist.
The first part of this project started before the term began. I tasked myself with cleaning up the old Tachikoma model and also modeling a brand new interior for the abdomen section of the robot. Once I was finished with this step, I passed the model off to Dom and began work on the Major.
The Major proved to be a challenge from the start. Before I began modeling, I created a breakdown of the concept and gathered a ton of references that would aid in the process. I started off using a base mesh I bought from Javier Zuccarino on the Artstation marketplace and then used Zbrush to sculpt the bodysuit and head. Next I used a TexturingXYZ full face displacement map that was fitted to the low poly model’s UVs to displace the high resolution details onto the face, and then used a set of skin brushes to fill in the spots that were not covered by the map. Because I had used a base mesh I was able to quickly generate the low poly mesh for the head, and then used an awesome plugin called Zwrap to generate the low poly mesh for the bodysuit, with a little bit of Quad Draw in Maya to fill in the blanks. Once all this was finished, I moved on to Marvelous Designer for the next step of modeling.
In Marvelous Designer, my main task was modeling the cloth aspects of the jacket. I used references I found online of other similar projects to create a Marvelous pattern that could be stitched together to create the main look of the jacket. As a default, the cloth in Marvelous Designer is quite loose even after changing the fabric type, so I had to use the strengthen feature in Marvelous to make the cloth act more like leather.
When the jacket was finished I brought it into Maya and used the process laid out by Olivier Couston, in his Artstation project “How to export from Marvelous Designer (Like a Boss),” to create new and optimized topology. Once I had the jacket finished I set about modeling the hard surface armor the character wears.
For the Texturing, I used Substance Painter as my main tool of choice. For the Tachikoma, I divided the geometry up into six UV tiles for the main pieces, and then four more tiles for all the gauges and dials on the interior of the model. I used images of tanks and used construction equipment as my main references and went about texturing it with that information in mind.
My texturing on the Major started with using the same Texturing XYZ full face map set that I fitted in XNormal to texture the face. First I made sure to bake down the hi poly head I generated in Zbrush to get my mesh maps set up, and then applied the fitted textures to the head before going any further. For the rest of the model I used a mixture of smart materials I have accumulated over the years as a starting point and then made changes accordingly.
In tandem with my work on this project, I had been exploring the real time grooming pipeline offered by Unreal Engine. To generate the groom, I first began by sculpting the overall shape of the hair in Zbrush, using a hair tube IMM brush I had lying around. Next, I took the finished hair asset and brought it into Maya where I converted the longer edge loops into curves. With the hair curves generated, I could begin working on the groom itself. I had been learning a fantastic grooming software called Yeti alongside this project, and decided to use it to generate the Major’s hair. Yeti is a procedural, node-based software that allows you to create grooms without the hassle of more widely used softwares. I started by separating the curves I had generated into groups that would drive the fibers from different points on the head. For each set of groups I had to paint a black and white mask to dictate where the hair could grow from, otherwise it would grow from the entire head.
Growth Mask Examples
Because I was planning to render in Unreal Engine, one of the main challenges I faced here was working with the full hair density in the viewport. Yeti makes it easy to export for unreal engine, so I had to go back and forth between programs to make tweaks and double check my work. Unfortunately, because I had to export the full density into unreal engine, I could not utilize Yeti’s render tools that allow you to work with a low density and render at a high density. This made working in the viewport very heavy. To solve this I plugged an expression node into the density for each node chain that allowed me to turn the density down for each node while working, and bring it back up to full for export. From this point forward it became a game of tweaking to get the look just right until I had my finished project.