Ubisoft Assassin’s Creed: Autodesk 3D Pipeline Helps Bring Centuries-Old Tale Into the Modern Age
Over four years in the making, Ubisoft’s Assassin’s Creed is one of the most highly anticipated games of the 2007 holiday season. In its pre-release form, Assassin’s Creed won over five industry awards, including honors from IGN, Games Critics, GameSpot, GameSpy and others. Ubisoft has been using Autodesk® 3ds Max® and Autodesk® MotionBuilder™ software products as key components of its games pipeline for many years, and this release marks the first title that has incorporated use of Autodesk® HumanIK® middleware for seamless integration of character animation into the game engine.
Assassin’s Creed is set in 1191 AD, when the Holy Land is being torn apart by the Third Crusade. Ruthless assassins attempt to curb the crusade by suppressing both sides of the conflict. Players take on the role of main character Altaïr, a disgraced master assassin who embarks on a quest to restore his status within the Assassin Order. In order to redeem himself, Altaïr must venture into the Holy Land and rid the men said to be exacerbating the battle. In doing so, he will work towards stabilizing the region, allowing the assassins to usher in an age of peace.
The game involves intuitive, free form third person adventure play which entails running up and along walls where every building, ledge, path and platform can be climbed. This complex character navigation was animated with a pipeline that included Autodesk 3ds Max to create character and level 3D models, 3ds Max and MotionBuilder for in-game character animation, and HumanIK for seamless integration of character actions into the game engine.
HumanIK Extends Creative Reach
HumanIK middleware was developed by Autodesk to allow programmers to translate motion decisions from animators into runtime libraries, simplifying the creation of motion sets. HumanIK also solves the potential inaccuracies and hurdles of transferring pre-established or “baked” animations into game engines by delivering code that people run in their game to create motion on the fly.
The Assassin’s Creed programming team used HumanIK to create a framework within Ubisoft’s proprietary game engine so that the animators could identify frames within a character sequence that needed IK, and the game engine could interpret it exactly as the artist envisioned. HumanIK was used to facilitate all of Altaïr’s complex climbing animation throughout the game which provided a huge time saving for the artists.
“HumanIK allowed us to get results very quickly. The game has an impressive climbing system where the characters can mount anything that sticks out from a wall two inches or more using both their hands and feet. This enabled us to develop a totally different type of level design because we could create a path over anything in the scene using this climbing system,” explained Elspeth Tory, Project Manager for Animation, Ubisoft.
HumanIK was also used to animate Altaïr as he’s pushing through crowds and to animate a horse that travels throughout the kingdom. “Essentially anytime Altaïr needed to keep his feet on the ground, or to climb or to push through the crowd, we used the HumanIK setup, which was directly integrated by our programmers into the engine. The IK was essential for hands, feet, the horse’s feet and more. It was great because the artists set up their animations, we flagged them as needing IK, and the IK would automatically be interpreted in the engine. It allowed us to see spectacular animation right off the bat. We didn’t have to develop our own animation systems for many of these complex actions,” Tory continued.
HumanIK afforded the team immediate feedback on whether a system was working or not. This helped tremendously with knowing where to place objects in a scene and how to build the 3D sets and structures, eliminating a lot of the trial and error of scene setup where all the animation systems are built from scratch. It also facilitated good collaboration between level designers and level artists, with the animators ensuring that the movements worked within the environments. Most importantly, HumanIK allowed for quick prototyping, which is what the team needed with such a big and new game concept.
Automating with MAXScript
Assassin’s Creed features approximately 20 main characters and hundreds of secondary and crowd characters. After being modeled at very high resolutions, hero characters are reduced to approximately 3,000 polygons with 3 MB of textures each, while crowd characters have about 750 polygons each with 1.5 MB of textures attached. In order to generate high volumes of crowd characters, the Ubisoft team created a custom engine builder using MAXScript, the scripting language within 3ds Max, to automate creation of multiple variegated characters on the fly.
“We created an engine builder using MAXScript that enabled us to populate worlds with hundreds upon hundreds of characters with enough randomization that they all look different,” said Francois Levesque, Animation and Character TD for the game at Ubisoft.
“We built 150 different bodies and many different heads—each body was built to stringent specifications with 120 bones each so that we could combine the heads and bodies in endless permutations, along with over 60 different textures for unique hair, clothing, accessories, physical characteristics and more. This enabled us to populate a rich or poor district and give the characters distinct traits that made them look like they belonged in each environment.”
This unique engine ensured that all the heads and body types, modeled in 3ds Max, could be mixed and matched to work together. There was a lot of optimization done to make sure that all the characters were perfectly designed to be integrated seamlessly into the game engine. To further create variety amongst the crowds, there were various different sets of animations (i.e. movements for an old lady, fat man, soldier and more) integrated into the engine to add variety and life to crowds quickly and easily.
Productivity Boosting Pipeline
With a team that grew to 150 over a production cycle that lasted four years, optimizing the production pipeline was a major priority.
“For games that use a lot of motion capture like Assassin’s Creed, the pipeline of MotionBuilder to 3ds Max is a really efficient one. We capture data on our motion capture stage, tweak and clean up that animation in MotionBuilder and bring it into 3ds Max. We have been working with 3ds Max for many years—people are very comfortable with the software, they know the pipeline and they rely heavily on Biped because it produces great quality animation. 3ds Max is perfectly designed for game development and helps us produce large quantities of assets at a breakneck pace. And with this game, we had so much volume that having a pipeline that was flexible and that our artists were comfortable with was essential,” said Tory.
Standardizing on 3ds Max also provided an advantage when building such a large development team, as it was easy to source a trained and talented pool of animators well versed in the package.
“Our Character and Animation Technical Directors take advantage of the extensibility afforded by 3ds Max via MAXScripting and can easily tailor the pipeline to a specific project need, further maximizing efficiencies. It’s also really beneficial that we have a direct link between 3ds Max and our game engine which allows us to get data from the game engine into 3ds Max and conversely get data from 3ds Max into the game engine,” Tory continued.
Create, Animate, Integrate
The creative process at Ubisoft starts out with a conversation between designers, artists and programmers to break down a system and figure out exactly what animations will be needed to help the story progress in a given sequence. At this point characters will have been modeled and rigged in 3ds Max and MotionBuilder. From there, the animators might start capturing some video footage to get idea of what they want things to look like. Once a good understanding has been established between the designers and the animators, the teams go to the motion capture studio and start recording data. The data is tweaked and refined in MotionBuilder and brought into 3ds Max for cutting out frames, inserting start and end poses, and breaking the animation down into parts to create a system that works. From there, the process involves a lot of collaboration between the animators and programmers as sequences are brought into the game engine.
Working with HumanIK was largely invisible to the animators,” explained Levesque. “The artists had access to a scripted interface under ‘Biped,’ where they could add keyframes to hands or feet via checkboxes. So on a climbing animation, if a character is moving, you might want the hand that is going up to grab something to stop being affected by IK for a few frames while it’s moving, and then you’re going to flag it again to be controlled by IK once it’s holding onto something. There were also different IK controls for fingers, feet and toes, so there were eight IK controllers in total built into the climbing system. So, the basic animation is completed in 3ds Max and then when the animation is handed over to the programmers, they know exactly when to activate and deactivate the IK system.”
Animators had more responsibility over the quality of their animations on this title because of the HumanIK integration. It also enabled the transfer of information between animators and programmers to flow very smoothly, and even more importantly for information to move back and forth very easily between the game engine to 3ds Max and vice versa.
Life Saving Features
When asked about features within 3ds Max that make the animator’s job easier, Leveque quickly pointed to SkinWrap and MultiRes.
“I like to use MultiRes and SkinWrap all the time. SkinWrap is a really easy way to speed up the tedious skinning process and I’ve also used it to model a character’s head. Basically, after doing a first pass LOD (level-of-detail) character manually for one head—and since all the heads were based on the same topology—I could morph it to create a different character head, and still get a perfectly unwrapped skinned result that would look just as good as if it was done by hand,” commented Levesque.
“We also did the body LODs with MultiRes, which saved us hours of work by reducing polygon counts automatically to shrink models down to the minimum size they could be to deliver realism in a sequence. I also like Render-to-Texture because all characters are first modeled at very high resolutions, and then rendered to generate normal maps and diffuse maps—and it’s really convenient to use Render-to-Texture to streamline that process,” he concluded.
Overall, the Assassin’s Creed team agreed that the climbing system is a huge part of what makes the game stand out from other titles—not only is it a more complex character navigation than has been attempted in a game before, but it’s also essential to immersing the player into the life of an assassin in the middle ages. “HumanIK helped us make the game look real, and enabled us to accomplish our goal of allowing our main character to have total freedom to move anywhere within the game’s environments,” concluded Tory.
Assassin’s Creed is being developed for PLAYSTATION®3 and Xbox 360™ consoles; a PC version will be made available as well. It is the first title from Ubisoft that is based on original, wholly owned intellectual property; the company’s previous hit titles have been based on pre-existing franchises or film and television licenses.
Autodesk, HumanIK, MotionBuilder, and 3ds Max are registered trademarks or trademarks of Autodesk, Inc., in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product offerings and specifications at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. © 2007 Autodesk, Inc. All rights reserved.