I often run across questions people ask regarding outsourcing animation. I seem to be one of the few people that has outsourced animation successfully. I’ve written a handful of short articles on the subject, but I thought it was time I edited and assembled them all into one handy guide. 🙂
I won’t dwell on the philosophical question of whether to outsource animation or not. If you’re reading this guide, it’s probably because you have X animators and need X * 4 animators, but don’t have the budget to hire inhouse. Let’s move on instead to the first practical considerations.
What do you need before you find a studio? Direction, documentation and reference.
Ask yourself: How much initial direction can I give? i.e. everything is predefined in advance, the ideas and expectations are set in stone and can be clearly communicated to the contractor, OR you intend to leave it up to the animator to figure out. If the latter is the case, do not outsource. Pick a direction, define it, build consensus, set the ideas in stone, and THEN outsource.
Internal ambiguity, indecision, and aimlessness is your problem, not the contractor’s. If you’re going to make it their problem, let them know up front, then pay them more for the time you spend spinning your wheels.
You need to be prepared enough to answer every question before it can be asked! Being specific up-front is paramount. That’s why you need to create an all-encompassing Animation Outsourcing Kit to contain all the documentation and reference your contract animators will need, and then a Specific Assignment with the details on the job you want the contractor to do.
1) Assemble documentation.
The idea behind an Animation Outsourcing Kit is that to have one single ZIP file that contains everything a new contractor needs to get started on animation. Direction, documentation, reference, tools, etc. It doesn’t have any assignment-specific information; that comes separately in what I’ll arbitrarily dub the Specific Assignment.
Now, when I’m writing documentation for any kind of outsourced work, I go through the entire process myself step by step and detail everything as I go instead of recalling it from memory. Why? I always forget something or realize “hey, that’s not something they would necessarily know unless they worked with this particular toolset.”
Even if it’s blindingly obvious such as the animation package you’re using, include it somewhere. If you learned something from a previous feedback iteration that you should have included in the first draft, update the documentation to include that, and send it back to the contractors, even if you’re working with the same one. What if they swap animators and you don’t know, and they miss it again? Documentation doesn’t have to be a big ugly mess that I have to sit down for hours and doâ€¦ it can be incremental. After all, why answer the same question more than once? Documentation must always evolve!
When writing the documentation, never assume assumptions. 🙂 Even if it seems anal, every piece of information should create its own context and be totally self-encapsulated. Something obvious to the writer and studio may not be obvious to the person that’ll eventually be reading it, or the person that is ultimately working on it. Documentation like this is essentially a game of telephone, and the win condition is trying to transmit your original message with as much clarity as possible to the other end despite the number of intermediary connections (translation being one of them).
So that leads to the question â€” what does one put in an Animation Outsourcing Kit? The answer: everything a contractor need to be able to do his job. Naturally, that’s a big list, so I’ll give an example list of everything I put into my Animation Outsourcing Kit. First, the Documentation:
- Technical specifications. For each asset type in my game, there is a guidelines document with detailed technical specifications. Animation framerate (30?), average sequence length (2s60 frames, 5s180 frames?), MAX or Maya, Skin or Physique, bone count limit, vertex influence limit, etc.
- Overview of the animation work:
- Style of animation. (realistic, cartoony, cartoony realism?)
- Type of sequences. (Run, walk, jump, attack, pain, etc)
- Is the contract animator creating the skeleton himself or is it being done inhouse first?
- Is the contract animator handling the rigging and character setup, or is it being done inhouse first?
- Who integrates the animation?(Are you going to handle all the game’s implementation inhouse or will the contractor? Depending on your desired level of risk, it may be easier to set up your contractors with a copy of the engine and the ability to export to the engine and test the animation.)
- List of animations. Here I include a master list of the game’s animations divided by type: characters, creatures, animated objects, miscellaneous, etc. From that basic designation, I break each down into structured lists divided by their role in the game. For example, creatures are either Melee (hand-to-hand combat), Ranged (attack with guns or bows), and Caster (magic user). Each role has a unique animation set, so I list all the animations in each set.
This is especially useful for when I want to create a new creature. Before I even outsource it I can say â€œOkay, Fat Ogre 3 is going to use the Melee and Ranged Animation Sets.â€ I don’t have to decide which animations it has one by one every time I want a new creature, because I already figured it out beforehand.
Then when I send the Specific Assignment details to the animator, I can simply copy and paste those pre-made animation lists. Time savings ahoy!
- Style guides. I include the style guides relevant to the race of creature he’ll be animating, so he can see the other members of that race, their size in relation to each other, and get a sense of their attitude.
- Scale guide. I have a MAX file demonstrating the scale of the object in the world so the animator can get a better sense of scale and how to animate what it is I’m giving him.
- The exporter. I include a copy of our proprietary 3DSMAX exporter plugin, along with simple installation and usage instructions.
- The tools. I include a copy of our proprietary Model Editor, along with simple usage instructions so the animator can create usable assets for our engine. Why should I have to spend time fixing each asset myself later, when I can explain it once and pay him to do it instead?
- FAQ. I’ve assembled a brief FAQ full of common questions I’ve been asked by my contractors. One very important note I’d like to make about the FAQ: It was a huge breakthrough to me to realize that every time I talk to one of my contractors to explain something or answer a question, I’m generating documentation. Everything I say is usable. So I just remember to write it down in one document, organize it, give it a coat of spit-shine, and my project is better documented. 🙂
2) Assemble reference.
The second part of the Animation Outsourcing Kit is the Reference:
- Animation samples in the animation package. I have directories set aside that offer example animations of every sequence for each type of creature and animatable object. There’s a directory for the Melee Animation Set that has sample animations for every sequence in that set, and so on for everything else that needs an example. I *never* leave gaps in reference for things like this.
- Animation sample AVIs. In addition to providing MAX or Maya animation reference files from your game, show an existing AVI sample (with a widely compatible codec, or include the codec in the contractor kit) of EVERY animation you expect to receive from the studio. Whether or not it’s a sample of something existing from your game, this should be a style target to hit. The crucial part here is to not only show them the reference, but also to explain what is good about each one.
Ideally, fire up Premiere or a video editing app and put captions in there. “Note that the windup here is powerful.” “This movement feels like the character has weight.” “The impact is very heavy and he really looks devastated by it.” Use plain language but be very specific. Never assume they’ll know what you like about each one.
At first, including both MAX and AVI samples of animation may seem redundant. Realistically, the animator is probably not going to look at all of these if he has the kit but no specific assignment. The reason to have all these included in the Animation Outsourcing Kit is so that when I create the Specific Assignment and assemble that information, I can pick and choose which animations to use as reference.
â€œFor the idle animation, check out Fat_Ogre_Idle_04.max. For the attack animation, check out LOTR_Cavetroll_smash.AVI.â€
That way, he’ll already have all the files he needs from the kit, instead of having to bloat up the Specific Assignment. 🙂
3) Assemble the Specific Assignment.
The Specific Assignment is intended to provide the information an animator needs to complete the job you’re assigning him. If the Animation Outsourcing Kit is the foundation, the Specific Assignment is the blueprint for the house.
List out the specific animations needed in the job you’re giving the contractor, and give a brief description of what happens in each animation, call out what frame it needs to happen on or by, and define the exact length. Even if you don’t have a specific length that it requires, I’d suggest making one simply so there’s a constraint there. Animation is really prickly, so limit your risks by leaving nothing up to chance.
Here are other questions that can be answered in the Specific Assignment:
- How fast do you want it?
- How will you be paying? (Paid per day, per hour, or per sequence?)
- If per sequence, are revisions included in the flat rate or are they priced differently? Is there a maximum number of iterations?
- Remote or on-site?
Since outsourcing animation can be tricky, I’d strongly suggest going with a studio that communicates very well in your native tongue (I’m assuming English) and also has a strong animation background to remove the difficulties caused by the language barrier. Running quickly through a typical animator’s glossary with them would be a good idea, to see if you speak the same language there as well. That’ll help down the road when you’re writing feedback. “What does follow-through mean?”
4) Ensure high quality with effective feedback.
I’ve been trying to come up with a simpler and easier way to structure my feedback on assets I receive that makes it easier for the contractor to focus on one aspect at a time, without being dependent on anything but plain text.
Most of my job is communicating ideas. And there are so many different ways to go about it that even the specific structure of the way you speak to someone can make the difference between doing it right and doing it wrong.
See, it’s easy to get lost in a lengthy changelist, or accidentally overlook a problem, or simply not know what I’m asking. It’s put a lot of pressure on me to learn how to communicate the most with the fewest words, and to arrange the data in such a way that certain parts of the feedback will pop out at them and really stick in their head.
In the example below, I’ve adopted a very specific, consistent structure for presenting feedback on art assets to my contractors. Right now, this is my formula:
Orok_Chieftain_Run_Animation_01 – Awesome! Great sense of weight.
– CHEST: Some vertices on his chest poke into his body. Can you fix the rig?
– FEET: His feet dip below the floor in frames 14-17 and 28-31. Can you bring them up?
In other wordsâ€¦
[Asset_Name] – [Brief Praise]
– [SPECIFIC LOCATION]: [Brief description of problem. Ask for specific fix?]
My reasoning is as follows:
- [Asset_Name] – Obviously you’re going to want to specify which asset you’re commenting on.
- [Brief Praise] – I generally try to say something nice and positive about everything I get. I never put anything negative here. If I have nothing good to say, I leave it blank. But I always start out with praise. Studio or contractor, I feel like this matters.
- [SPECIFIC LOCATION] – This is the REALLY important part. An endless bullet list, even numbered, can be a bit much to look at. But if you can have an IMMEDIATE callout of the specific area that’s affected by the problem, it’ll be easier to go through the list of changes component by component. â€œOkay, chest, foot, leg.â€ Reference the specific filename of the screenshot paintover MAX reference with each part.
When questioned, it’s a little easier to refer to areas specific to the asset itself instead of an arbitrary number that forces them to go back and look at the feedback list and remember what â€˜3â€² corresponded to. Granted, yeah, they should always have that available, but I have to look, too. 🙂 Every bit of time savings I can squeeze out of something, I will.
- [Brief description of problem. Ask for specific fix?] – The reason I describe it and end with a period, then ask the question, is because a question mark stands out in a sentence. They read the problem, and the proposed solution jumps out at them more readily than would a sea of periods. It also forces me to parse my thoughts very simply and clearly, which helps me. That, and I prefer coming off slightly nicer by asking a question instead of stating a list of demands. Sure, I’m paying them and I could be brusque if I want, but I personally prefer the softer touch unless I’m straightening someone out.
To provide extra information, I offer screengrabs of what’s wrong (if anything), and offer AVI or MAX file source art reference when available. Create a custom camera to highlight the problems at different frames and send them that MAX file as feedback if you need to be very precise, and detail that in the text. (“Switch to Camera 05 – Feedback Camera for frames 800 – 900 and observe vertices above the right knee…”)
Never let a single piece of feedback go unresolved in successive iterations or they’ll learn what they can get away with. This requires a lot of time and dedication by the outsourcing manager, but it ensures quality.
In doing all this, I generally had only 1 to 2 iteration passes per individual animation, which is pretty sweet. 🙂
I hope this guide proves helpful. Any questions, comments, criticisms or suggestions for improvements would be greatly appreciated!