Ars Technica: Final Fantasy Interview - Page 1 (original) (raw)

Final Fantasy: The Technology Within

by and Jonathan Ragan-Kelley

(This feature for subscribers only!)

Undoubtedly this year's most visually stunning movie, Final Fantasy: The Spirits Within raised the bar for technical achievement in the new and growing genre of CG movies. Final Fantasy's characters and environments looked so amazingly real that some more traditional Hollywood types were thrown into a tizzy--with no less than Tom Hanks sweating possible future unemployment in a recent interview.

Directed by Square's Hironobu Sakaguchi, the director of the _Final Fantasy_series of games, the film brings together the artistic and technical talents of a huge team of artists, writers, programmers, managers, sysadmins and numerous others from a variety of backgrounds, nationalities, and languages. Managing such a long an innovative project with such a large and diverse team was, as we'll soon see, a logistical nightmare. The Square team faced new challenges at every stage of the film's production--and not just technical challenges, either. Problems with knowledge management, workflow, communications, and asset tracking were all met with a variety of technologies and techniques.

To to learn more about what went into the production of such a technological and artistic tour-de-force, we sought out and interviewed a few of the real stars behind the Final Fantasy movie--Squaresoft's Honolulu-based production team. Production Systems Supervisor, Troy Brooks, was kind enough to let us fire some long-winded questions his way, and he and some other members of the Honolulu crew took time out to answer them for us. So before we get on with the interview, we'd like to take a moment to thank Troy and the rest of the guys for answering our questions and for making such a great sci-fi action film (which I really enjoyed). We'd also like to thank Columbia Pictures for letting us do the interview.

From the Square team, the cast of characters is as follows (in order of appearance):

On the Ars side, asking the questions are myself and Jonathan Ragan-Kelley, my partner in crime for this interview. Jonathan is a student at Stanford University, and he studies computer graphics under Pat Hanrahan. He's been studying CG, with a particular interest in film effects, for the past eight years. Presently, he's involved in scalable rendering research and other graphics-related studies. Throughout the interview, mine and Jonathan's questions are marked off by our names in bold-faced, white type. The Squaresoft crew's responses are marked off by the respondent's name in bold-faced, orange type.

Now, on with the interview...

Hannibal: Can you give us a general overview of the production process, and how it differs from making, say, a regular animated movie? For instance, how do ideas flow from script to storyboard to finished product? Do you do things like "rough" renderings of scenes to tweak camera angles and whatnot, before cooking up the final renders?

Troy: The production process is very iterative. From the script/treatment, we get conceptual drawings and sketches, and as the script matures, that becomes storyboards - just like a "regular" movie. The layout section uses low-res sets, to define the camera movement and staging, and that's when things become "3D". That layout info is used by the animation section, who work on lower-res versions of the characters that are easier to manipulate in real time. They do frequent renders to check the camera, the animation and deformation of the characters. That animation is ultimately applied to the highest-res models for the final rendering. Sets and Props (and Character) deliver increasingly refined models, and the Lighting section lights the set, with all the characters, breaking the scene down into layers (foregrounds, backgrounds, reflections, shadows), which are carefully combined by the compositing group. All the way through, we do test renders, checking the camera, the pacing, the animation, the lighting, the texturing, and refining them all as we go along.

Hannibal: Also, tell us a bit about the roles of both the artists and the technical types, and how they work together to make the finished project.

Troy: Some of the artists, particularly in the VFX (visual effects) section, are quite technical themselves, writing code for shaders and expressions (rendering and animation procedures that define the look of a canyon wall, or an explosion shockwave, without necessarily using texture maps). The production software group is responsible for code that relates directly to workflow, and the production pipeline. They write plugins in Maya to give the animators an interface for controlling some of the more complex movements of the characters, or in the compositing software, for doing image manipulation of the rendered layers. Also, there's an entire infrastructure that's built, an environment for everybody to work in, to be able to find what they need, to organize the work, and to move the data from one section to the next. This includes renderfarm software, that manages all the batch processing jobs (rendering, baking out animation, doing dynamic simulations for special effects, compositing long sequences of frames, etc.). Production software engineers are spread throughout the studio, actually sitting w/ the artists in the various sections, so they can see firsthand what kinds of tools are needed, and how the artists want to use them. We also have an R&D section that developed SqFlex - our hair and cloth animation systems - the asset management database, and other things.

Hannibal: I've read a little on the tech behind the movie--for example, the SGI press release gives the following info:

"Four SGI 2000 series high-performance servers, four Silicon GraphicsR Onyx2R visualization systems, 167 Silicon GraphicsR OctaneR visual workstations and other SGI systems were used to create the film. Alias|WavefrontTM MayaR software was used for animation authoring on the SGI machines, and Pixar RenderManR software was run on LinuxR OS-based systems."

Could you give us a few more details on exactly how and why the various types of hardware and software hardware are being used, and what their roles are in the production process described above? For instance, what's the role of Linux in the production process? What parts of the work are done on the Octanes, and what parts on the SGI 2000s?

Troy: All the artists have SGI Octanes on their desks (some have two!). That's the main platform for day-to-day work, which is done w/ Maya. Maya is the modeling and animation software, and the interface for setting up all the lighting. Some rendering is done w/ the Maya renderer (mostly effects shots, e.g. explosions), but the majority of the rendering is done w/ Pixar's RenderMan. The Onyxes are used for compositing, and as a platform for our preview system, which lets the artists review full-res playback of long sequences of the movie, spooled on a (very fast) RAID array. The 16-cpu Origin 2000s are primarily used for batch-processing MTOR jobs, which is the Maya-To-Renderman conversion. (This generates .rib files, which are rendered on Linux machines; more on that in a moment.) We also have a number of Origin 200 servers, which are mostly used as disk servers, or to host the backup systems. We have a number of NetApp file servers, that provide most of the disk storage (approx. 4TB of primary disk space). The renderfarm consists primarily of ~1000 Linux machines (PIII, custom-built, rack mounted), running Red Hat 6.2. These machines do all the RenderMan renders, as well as a number of other tasks.

We have custom renderfarm software, called SQB (pronounced, "Scooby"-- SQuare Batch Processing), which controls all access to the Linux machines. SQB also controls access to the Origin 2000s, and makes use of the desktop Octanes when they're not being used by the artists - some 1400-1500 cpus in all. Artists submit jobs w/ a GUI tailored to the particular type of job. The system evaluates the criteria of the job (priority, memory required, # cpus needed), and schedules the jobs accordingly.

Next: Polys and stats