I don’t get to say this often, but I’ve finished a project using Softimage which all can see. Well, it’s not actually ‘finished’ as it’s an online game which is continuously maintained, updated, and ongoing, but it’s now live and I can talk about it beyond generalizations. Yay! My last completed project was my previous production –Barnyard the animated feature back in 2006. It’s been a long time coming, a relief, and refreshing to be able to refer to something I did in the current decade.
Wildstar officially launched last Friday night at midnight for early access, but opened up the flood gates today for everybody else. The game is now running smoothly in North America and Europe for all to see and experience. If you were part of the beta, let it be known significant improvements have been made since on all fronts. If you haven’t tried the game yet, point your browser to www.wildstar-online.com and click on the shiny buttons. The first 30 days are free with initial purchase.
Production started in 2005 using Softimage XSI v3.5 and launched with Softimage 2013 SP1 – all of it in 32 bit land. Majority of the content created in Softimage 7.5 which we used for roughly 5 years. Softimage was used for a heavy majority of the 3D artwork including characters, props, environments (other than the ground), buildings, dungeons, and everything inside of them. We didn’t use ICE at all (but not for lack of trying, and we tested heavily), so this is a good example of what the fundamental toolset can do. Heavy use of custom properties, vertex colors, user normals, clusters, envelopes, UV spaces, and hardware (real time) shaders to customize and iterate on our content. What made these simple components really nice is they were general and could be re-targeted for many uses outside of their original intended purpose. Our particles were created and applied in Softimage, but simulated only in engine. The SDK was used to write 500+ tools to assist artists to create their content include tools like ‘mimick’ which is a command similar to GATOR which can transfer attributes, but do so on select subcomponents instead of the entire object, along with other bells and whistles. Often overlooked and understated, but Softimage scaling was incredibly powerful for controlling the squash and stretch scaling of deformers used in our envelopes to animate characters with cartoon whimsy and without ugly shearing often associated with other software. It is used on every asset that moves. Relational views were used to create tools such as a face editor to view and animate faces for our player characters, and adjust face customizations to see how they’d appear in the game as each of our characters have multiple faces and other components which can plug in like a Mr. Potato head doll. It was important to see the various components in context side-by-side for comparison while creating the content so consistency could be maintained. This was achieved using many ‘object view’ embedded into the relational view. Under the hood the face editor drove the animation mixer to perform face pose blending so artists could see the animation in real time on their characters. Also, NURBS, that’s right, NURBS surfaces were used to transfer face poses and clothing between characters. The details must remain a trade secret, but I just had to mention we used NURBS in all their unfinished glory to get meaningful work done with significant contributions to the end product. Render passes were used to re-dress environments to allow artists to create geometry once, then swap textures, shader settings, and other details many times for each variant of the environment. Not only does it simplify the artist workflow by centralizing all their interaction to a few clicks, but it also allows assets to be packed into compact files for use in our engine. Render passes are used in housing and dungeons. If we had to do this in Maya, we’d probably have to break up each variant into its own scene and have to figure out a way to merge all the scenes together that shared the same geometry. These polished touches matter. Softimage for the win.
So that said, while many 3D software could create the assets in their own time and space vacuum, Softimage (in my opinion) was the only software that could’ve tackled this project given our specific time, resources, and budget as there were many close calls along the way. I say Softimage because many of the aforementioned features came out of the box with us ready to roll and not have to spend oodles of time reinventing the wheel. Not having to write an animation mixer to do face pose blending, or render pass systems to do texture/shader swaps were incredible time savers and something we could lean on. Spreadsheet queries and custom selection filters allowed us to quickly and easily find our custom data in any scene with just a click, view the data in a clean environment, and change it in bulk, if necessary without worry of missing a spot – highly important for finding and fixing bugs. The elegant user experience was paramount to getting work done on tight schedules at high quality with minimal development resources available. Everybody says that, but in our case it couldn’t be more true. That user experience extends to the SDK as well. Not having to relearn or rewrite code over many versions and upgrades over the span of nearly a decade was quite important in maintaining continuity and stability. The scripting object model was more than a blessing to get under the hood and target only what we needed rather than having to rely on combinations of commands which do more work than necessary or don’t do exactly what we need as is available in most other 3D software. Backward compatibility with the API for C++ development was very important too. While today’s OpenGL/DirectX viewport may seem antiquated, at the time this project started it was ahead of and more capable than any other in the industry, and fully compatible with all the other tools such as render passes. That cannot be overlooked.
Finally, I should thank all the hard work and contributions from the Softimage developers and support, past and present, who put such an application together to make it possible. Not just the foresight to see and understand the artist’s point of view, but also in the continued listening and support when we needed help along the way whether it be to fix bugs, augment existing features, or implement new features to accommodate our needs. Building such an application is more than just writing and compiling code – it’s about understanding people. You cannot understand people without forming relationships and maintaining those relationships over the long haul. Softimage made the effort to establish and maintain those relationships contributing help and advice along the way, and that is why so many successful projects have resulted. As much as I’ve ragged on many points, the bigger picture is not lost on the fact Softimage is a very capable and strong swiss army knife of 3D software to tackle many projects fearlessly. It’s just a shame that in all my years of working with Softimage|XSI, this is only the 2nd long form project I’ve been able to call complete (due to project durations) and will be a shame that there will likely not be a 3rd. One point of satisfaction is of having worked on one of the first XSI projects in ‘Panic Room’, and now finishing one of the last in ‘Wildstar’. Both poetically apropos as Panic Room was a project fighting with a then beta-quality release rushed to market full of many bugs while Wildstar is a game about exploring and settling the planet Nexus much like the old west of America’s pioneer days of the 1800’s with wagons, staking claims to territory, gold rushes, and shootouts. Only fitting as I must now look forward to a new destiny in uncharted territory as Softimage has literally been part of half my life in the 21 years I’ve used both Softimage|3D and Softimage|XSI….(and Eddie too!).
Thank you, Softimage.
Congrats Matt, killer job!
Not shameless we all need a pat on the back after an exhausting marathon.
I love all the clothing transfer stuff the that opened my eyes.
I saw a small making of (showing the animation and XSI UI) and I was thinking, man this looks awesome, even though my gamer days are long gone. Cant find the Making Of videos again.
I mostly design workflows and write tools to support those workflows. I don’t have to worry about doing the same thing over and over again like the artists. Probably a big factor in me staying so long.
You have a lot of patience Matt! I got bored of dinosaurs within a year! Good job, glad to finally see it released.
To clarify a bit, Softimage was used for the heavy majority, but not everything:
Z-Brush was used for creating hi-resolution character models which were then later downsized (resolution) for use in the game. Modo was also used for initial character modeling, and texturing as it has better tools for unfolding and manipulating texture UVs interactively such as pinning UVs and interactively resolving the unfold as UVs are manipulated. Once modeling was completed, they were imported into softimage for further work such as using ultimapper for transferring/generating normal maps, assigning our custom shaders, custom properties, vertex color properties, and so forth. Once completed character models would be passed onto tech art for rigging and eventually animation for animating. All rigging and animation took place in Softimage. Prop and environment were modeled in softimage, but occasionally exported to Modo for texture UV adjustment, xNormal for generating normal maps, or Nvidia plugin in photoshop for generating .dds normal maps for use with our custom OpenGL shaders.
We had many in-house developed tools and editors for generating the terrain for our worlds and populating the worlds with our assets as well as connecting the game logic with game design to put it all together so work can be previewed, tested, and debugged.
What I wrote is just a quick gloss over. If I can find some time, I’ll look into whether I can do a more in-depth ‘how we did it’ article. No promises though.
Matt, your description of the work involved was satisfyingly dizzying!