Skip to content

Using 3DS Max and CAT Rigs in the FarmVille 2 Character Pipeline | Media & Entertainment

By Brian Huffman, Zynga

Zynga’s first fully 3D game

BigBanner

The latest installment in Zynga’s FarmVille franchise, FarmVille 2, is Zynga’s first fully 3D game. In order to produce and manage the large number of character rigs and animations necessary for the game quickly, Zynga’s team utilized 3ds Max and the off-the-shelf CAT rigging and animation system.

Early in the pre-production phase of development of FarmVille 2, the decision to use the CAT system for character rig prototyping was made for speed and simplicity. Animators who were less technical and more concerned with quickly iterating on ideas could easily use the system to produce sophisticated rigs for testing and animation without needing the support of a dedicated rigger or technical artist. This allowed for fast turnaround to test assets in the game and work towards the refinement of the look and feel of the characters.

Once the art direction was fully realized and we shifted into full production, the pre-production rigs were then standardized in terms of their hierarchies and bones. This was done to allow animation copying and pasting across species, so that animation could be automatically retargeted without intervention. Since CAT saves and pastes animation based on the bone addresses in the rig hierarchy (not on bone names), careful consideration of this fact up front allowed us to reuse animation across different species, as long as the basic types were the same. So for instance, the horse animation suite could be used as a basis for the cow animation suite, since both are quadrupeds and utilize the same basic rig. Variation in the rigs was allowed for as well, with all unique bone types coming at the end of the hierarchy. So in the example of the horse and cow, the horse was given more bones in the tail to allow more fluid motion there, while the cow received a special bone for the udder.

BabyHorse_rigBabyHorse_geo

CAT also uses a basic rig scale number to scale animation that is copied into clips and pasted onto rigs and attempts to make “smart” decisions on how to scale animation on procedural elements like limbs, spines and tails. So in the same way that our rigs were standardized in terms of hierarchy, we also attempted to try and make their CAT rig scales in relation to one another somewhat realistic. So if a baby horse is half the size of an adult horse in reality, the CAT rig scale of the baby would then be half of the adult horse. In this way we can get a more predictable result when animation is copied amongst different size animal rigs, and also make a more informed decision on which animation to reuse on newer rigs, depending on their size.

Another great aspect of the CAT rigging and animation system is the RG3 rig file format. Use of the RG3 file format is somewhat akin to using Xrefs or externally referenced files, as it packages the rig itself and any other rigged elements you desire into one small file. We use the RG3 files as a method of rig organization and storage, a way to update or change rigs, and even to change which rig you are using in a scene. One nice thing about changing rigs while there is already animation on the rig is that it is non-destructive. For example, if the rig is exactly the same rig, but with different geometry, the change is transparent and has no effect on the animation. Changing to a different rig altogether can have varied results, but that would be the same as pasting an animation clip from one species to another. And although we can build a system that would automatically check the version of a rig and update it on an event like opening a file, we decided against that system to prevent undesired changes to animation. Rig updates were planned and executed to accommodate any changes to animation, so that the quality of the animation could be maintained and no unseen changes introduced.

Peacock_tail_rig
Peacock_noticeMe_rigPeacock_noticeMe_geo

The CAT animation layer system is quite sophisticated, and while all of the animation we generated was hand-keyed, there are also some powerful procedural systems in place. Mostly, however, we utilized animation layers and the clip system as tools to quickly add, edit and finalize new animations based on reuse of previously completed animations. The ability to edit animations with layers on top of existing animations allowed subtle tweaks and additions without having to change basic animation or start over from scratch. And the way that 3ds Max can adjust animation curves based on initial poses allows motion to be adjusted for the new scale of character after the animation has been pasted on, minimizing the amount of rework necessary when transferring animation from one species to another once you have your neutral pose worked out.

In addition to the tools available for animating on layers, CAT’s clip and pose files were helpful as well. We used these in various ways and within tools in our pipeline to create animation more quickly, as well as doing diverse tasks like automatically posing animals for their icon “snapshot”. The animation clips themselves are great for managing, storing, copying and pasting animation – everything you would normally do with animation clips, as well as tasks like quickly checking skin weighting on new assets. And the pose files were incorporated in custom tools in our pipeline – they are used in our face posing tool to paste any of a set of roughly 30 different facial poses for our human characters, they are used to set neutral and idle poses in animation files, and they are also used to pose our animals with a predefined standard pose so that a render can be produced and used for an in-game icon.

RancherLady_geoRancherLady_rig

I have worked on many game pipelines where you don’t have the luxury of choosing your rigging system at the outset – perhaps due to specific engine requirements, unique rigging or animation problems, or legacy pipelines being leveraged. These are all valid reasons to maintain the status quo on larger projects. But for our game, we had the ability to choose, and I think we chose well. Using the CAT rigging system in 3ds Max allowed us to focus on the problems we wanted to solve, and didn’t burden the team with creating an entire system from scratch. Being able to create and maintain over forty rigs (at last count) for our game, as well as all of the associated animation, is a huge process. Our use of 3ds Max and the CAT system has helped make FarmVille 2 a unique experience, with a huge variation of character rigs and character animation that add surprise and delight for our players. Without the speed and ease of using this system, we wouldn’t have the extra time to devote to the polish and special finishing touches that our players love.


Brian_Huffman_headshotBrian Huffman has been rigging characters and writing tools for video games, film and television for ten years. He came to Zynga two years ago to build the 3D art pipeline for Zynga’s first 3D game, FarmVille 2.

Share and Enjoy: