Wednesday, October 31, 2018

Just Add Noise

It is relatively easy for an experienced animator to track every arc and create smooth, crisp and clean motion. For a more stylised film, this is fine. Just as the designs themselves are caricatures of reality, so too is the movement. This becomes problematic when thinking in terms of visual effects or realistic animation. In reality arcs are not squeaky clean; there is noise and breakup. The difficulty is in getting noise that feels natural and not like a mistake.

There are a few types of noise; vibration, general noise, and breakup. Vibration is a quickly oscillating noise; you can use this to show tension usually. General noise is usually just random noise, a bit of added dirt to the base animation. And then there's breakup, which can tie in to general noise but it's usually a more deliberate addition. It is the breaking up of a smooth move into multiple parts; for example, slowing or stopping in the middle of a head turn so it doesn't feel quite so perfect.

 General noise

 Vibration Noise

Break up (on a kind of head shake or something)

Before adding in any noise, I make sure my arcs are clean. It's good to have this as a base as you then know that any noise added is a deliberate choice and not a computer generated artifact or mistake. Usually I'll keep my noise on a layer in case it needs to be toned down or amplified. It makes it easier to edit and gives you more control over its influence. Breakup is the exception; I tend to put this into the base animation as this allows you greater control over the curves.
Layers also allow you to animate the weight of the noise. Let's say you have someone lifting a heavy object, and you want to add some vibration noise to help sell the effort involved. You could have a layer that has vibration noise throughout and then use layer weighting to have it vary in intensity. I usually don't bake down noise layers until the final polishing passes and usually not until I need to see exactly what my curves are doing.

For characters there are more considerations to make. Some very smart folks at MIT wrote a research paper about video magnification. They created an algorithm that could somehow amplify the apparent motion in a video. A video of a stationary crane, when run through this, swings wildly about because the crane is being buffeted by the wind. They filmed and amplified people sitting, not doing anything, but the output video shows then bring jostled around by their very heart beat. There's a rhythm to it and a logic that is absent from other noise. I've been meaning for the longest time to make this as an animation layer, but I find that every time I need it at work I don't actually have the time to do it. This is all subtle stuff but can really add to the realism of your character.

It is important to keep in mind that that the body is a unit, nothing happens in isolation, and so it's important to link noise from connecting body parts. They may not be one to one, but the noise in the chest, for instance, should feel like it affects the limbs and head. Similarly if you break up the arm, you can really sell it by having it affect the motion of the wrist.

Noise doesn't need to be limited to characters or objects; camera noise can also help add to the realism of a shot. It's good to think about how the camera is operated in a shot and adding in noise over the top that makes sense for that. Similarly you can add vibration noise for impacts and the like to really sell your animation. I do find that less is more with cameras, so keep it subtle and make sure it doesn't grab attention. People shouldn't be thinking about the camera.

I  have a script I use for general noise that can be found here. You set value range for the noise, hit apply and get some nice random noise. Pressing the button again will get a slightly different result. For vibration noise, I bake a curve in a layer, select every other key and set a positive value. Then invert the selection and apply a negative value. I usually then run the previously mentioned noise script so the vibration doesn't feel too artificial, with low values so it doesn't undo the vibration feel.

It is important to reiterate that you should try to support this, as with anything, with copious amounts of reference. Study the natural world to get the best results.

Reality is full of imperfections and it's important that our animation reflects that; especially when we're trying to fool people with our computer generated unreality. Thoughtful and deliberate dirt, noise and breakup will go a long way towards filling the gap between your animation and convincing, natural motion. 

Keep on keyframing!

Wednesday, September 5, 2018

Watch Where You're Looking!

There are a lot of contributing factors when it comes to eye direction and so it's a tricky thing to nail down. It's not as easy as just placing the eye aim control on an object and calling it done. In my experience the only thing the eye aim is good for is making sure the eyes aren't locked to the head; it is almost guaranteed that your character won't be looking at that control directly. Getting it the rest of the way and making it really appear as though your character is looking at a point in space is a bit more involved. Let's go through some of the things I do to try and nail eye line.

First things first is placing the aim control on the object the character is focusing on.  I like having that visual representation of what the character is looking at, so I do my next broad offsets using the individual eye controls. I'll drop a camera on the object in question and offset the eye rotations so they look like they're looking directly at the camera. With this we at least know we have a solid technical base; the character is definitely, technically looking at the object. This is not usually where things stop.

Another thing I do to help with this stage of things is constrain cameras to the character's eyes so you can technically see what they're seeing. This is more interesting than it is helpful. I'll also constrain long, thin cones to the eyes to try and get a feel for what the eyes are looking like from the camera view. The theme you may be noticing at this point is that the technical considerations rarely get you to good eye lines. There are just so many things influencing the perception of eye line that a straight technical approach will not work.

The next thing then is to look at the eyes as a graphic shape, looking at them like a 2d animator. I'll often use my flat shading trick from a previous post to help in this regard. The important things to look for are the amount of white around the iris to the left and right ( top and bottom only really if the eyes are wide open) and the apparent angle of the eye in relation to the head. The eyelids themselves can do a lot to change the perception of that angle.

Don't be afraid to adjust head angle to help your eyeline. I had a shot where the apparent eyeline was too high. In the end, I barely touched the eyes and most of the adjustment came from head angle. You will have situations where that's not possible, like a snooty person looking down their nose, but most of the time there can be some leeway in head angle.

Watch out for cross eyed characters; eyes are never parallel to each other rotationally, they are usually out from each other a bit. You don't want to go too far the opposite direction, but depending on the character this can affect the appeal (think Hei Hei in Moana).

It's important to have a good eyelid setup as this affects apparent eye line as well; as the eye moves around in the socket it pulls at the lids and displaces the flesh around it. The corneal bulge of the eye also deforms the eyelid and should be a part of the setup as any change in the eye area can also, obviously, change the appearance of the eye.

Make sure as you are posing extreme eye positions that you're not digging the eyes in so far that the pupils can't actually see their target. Nudging the eye out, or changing the shape of the eyelid can help in this regard. Similarly with the eyelids keep your pupil clear unless you are deliberately going for a sleepy character.

The shading of the eye also makes a difference; I have often found the eyeline changing ever so slightly once a character is rendered. Having shaders with specular set up in your Maya scene helps give a character that needed spark of life, but refraction also makes a difference. Either you need a clever rigger to make an eye refract deformer (I think there's one in an old Maya book, Maya Hyper-realistic Creature Creation I believe) or else try and get your shot rendered as early as possible.

Get your character's brows involved; subtle adjustments can help support your eye direction. Nothing moves in isolation and the eyes are no exception. As the lids move and deform so too will they affect the brows. This will probably be subtle, but it will reinforce what your eyes are doing and give you that fine detail that sells the performance as real.

Most importantly get other people to look at it, even non-animators; especially non-animators. Granted, people can and will have different opinions about where someone is looking, but it's useful to get those opinions to fine tune and close in on good eye direction. And as always, flip, flop and invert your animation to get your eyes fresh. A mirror of your animation should still be looking at its intended target.

Eye line is a surprisingly tricky and subjective thing. Getting in the ballpark is easy, but that's not usually enough to get that solid connection. Hopefully these tips can help you knock it out of the park

Keep on keyframing!

Tuesday, July 31, 2018

Refer to Reality

I've been asked a few times how I go about using reference. To my mind there are two kinds of reference: personal and sourced. Personal is the video an animator shoots for themselves, and sourced is video an animator will find on YouTube, BBC Motion Gallery, etc. The following thoughts apply to both and I will point out instances where they are different.

It's important to note that the finished, rendered product is what people will see, not any of the steps along the way. So reference, in my mind, should be a help and a guide, not something to be copied. Rotoscoping never looks very good.

Whenever I begin any shot, whether at work or at home, the first thing I do is thumbnail. I get down my raw, uninformed ideas in the form of simple posing. Then I film or try to find reference with these ideas in mind. The ideas might change once introduced to the light of reality and that's okay; the thumbnailing is just pre-planning.

In the process of looking at the various takes I've filmed, or the different video clips I've found, I may edit these different takes together to make a supercut. It's not so important to have a single continuous perfect video clip to use as reference; people are going to see your finished animation up on the screen, not your reference.

Once I have this supercut reference, I thumbnail again, but now it's informed by the video and it becomes about finding the key poses, amping them up and making them stronger, more readable and more entertaining. I'll draw key poses, breakdowns, and make notes about little details I've seen in the reference if I can't reflect it in the thumbnail.

It's at this point that I ignore the reference for a while; I have enough information to start blocking. I may glance at it when I start splining, but I won't really look at it again until polish to make sure I'm not missing out on anything, to clarify my notes from earlier, and to make sure I haven't departed from the reference in a detrimental way. The animation needs to stand on its own and work within itself, and I think the only way to truly do that is to give it room to breathe and become its own thing.

That being said, I thinks it's fine to go back to the reference if something isn't working. Maybe a weight shift isn't feeling right, or a blink is just wrong. The reference will show you what the reality of that movement is. If it isn't in your reference, shoot more or find more; you need good foundations for any animation you do.

Gather reference, rely on it, but don't let it hold you back from making your animation amazing.

Keep on keyframing!

Wednesday, June 27, 2018

Give It Some Tongue

The tongue is an integral component to speech; directing air through the mouth to produce, in conjunction with lips and jaw, the various phonemes that make up vocal language. It is slightly surprising then that the consideration the average animator gives the tongue is limited to when the jaw is open enough to see it.

I am a firm believer of "if you don't see it, don't animate it." No one wants to waste time perfecting something that will never be seen. But! Consider a shot of a character where you don't see the legs, it would be important to still block in the legs, if they're walking or shifting weight. You'll never put the same amount of detail into those legs, but at least roughing them in helps the overall animation. I believe there are benefits to treating the tongue in the same fashion.

When an animator moves the tongue it is usually for one of two reasons. Either it's based on reference, or it's because the tongue needs to move when the mouth is open; movement for movement's sake.  This is not a good position to be in (I've been guilty of this myself!), but like any animation, having a good foundation will go a long way toward believable movement. Knowing where the tongue has been and is going to be when not visible gives you a better idea as to where it should be and what it should be doing when the mouth is open. I think it's important to note, when I animate the tongue, it is a rough block, except for when it's visible.

When leading on Snoke I sent this video out to everyone on the team. It is a really good reference for how the tongue is actually moving and the range of motion it has.

The tongue also subtly affects the outward performance. The muscles of the tongue anchor to the jaw and so you do get movement under the jaw as the tongue moves around. This really only applies to the most realistic of characters, but it is a nice detail to add in.

In light of all this, I recommend a few things. First is to attach a camera to the side of your character's head, with the clipping plane adjusted so you have cut the head in half. Now you can see the tongue properly, much like in the X-ray video above. The second is to build up a pose library for your character's tongue. I pose the tongue with the full phoneme when I set up a pose library. Most pose library plug-ins should allow you to affect only the selected objects, so you can do a tongue pass after the fact, if you so choose. Ideally, if you're working professionally, your lead or supervisor would set this up.

Below I have illustrated the tongue position for various phonemes, separated out into vowels and consonants.


AA as in "apple"
AY as in "rain" 

AH as in "hard" 

 EE as in "eel"

EH as in "net" 

IE as in "slime" 

IH as in "bit" 

OH as in "over" 

OO as in "spoon" 

UH as in "cut" 


CH/SH as in "child"
D/T as in "toy"
F/V as in "floor"
H as in "hot"

K/G as in "guild"

L as in "lord"
M as in "meld"
N as in "never"
P/B as in "PB and J"
R as in "roast"
Ss as in "snake"
TH as in "thing"
/TH as in "mother"

Those are the main tongue positions in relation to their phonemes. There's two things to note. First, there is a difference between the two TH phonemes and I think it's an important distinction. The first TH phoneme has the tongue between the teeth and it is a very deliberate TH, the second one is less open and has the tongue pressed against the back of the teeth which is more of an incidental, passing TH. The second thing to note is the N phoneme. I have considered adding in an NG, as they look relatively the same on the outside, but the tongue is doing very different things. For the N, the tongue is pressed similary to the D or T, with NG the tip comes down and the back comes up almost like a K sound. The reason I haven't included it so far is that you have a combination of sounds, the N, and then the K/G, and you could almost blend the two, and have the tongue move through the two positions. I may revise this at a later date after trying things out in some actual shots.

A general rule of thumb for movement in all of these is that vowels are fairly fluid, and consonants are generally a sharper motion away from the pose. Just look at the X-ray footage above and you'll see that all in all, much like the lips/jaws hit or skip phonemes on the way from one to the other, so too does the tongue.

At the very least now you can know why the tongue is moving rather than just moving it for movement's sake. Keep on keyframing!

Thursday, May 31, 2018

Practical Scripting for the Animator

When I started using Maya, scripting in MEL was very much beyond me. I was an artist, harnessing technology as a tool but keeping a professional distance. At a point it became a secret source of pride. But as I kept on animating I realised that I was wasting a lot of time doing repetitive actions; in this case I was setting up locators to create custom spaces.

One day I decided that I'd had enough, and I started combing the internet for how to start writing a MEL script. Stumbling through writing a script for the first time was not easy, and I'm hoping that I can give some pointers to help you out. Don't waste time doing the same thing again and again and again. That's madness. Learn just a little bit of scripting and you can really streamline your workflow and focus on the thing we all love doing: basket weaving. I mean animation.

The first thing is the easiest: set up manually in Maya and see what commands pop up in the script editor; everything you do in Maya is a command that is used behind the scenes. Using echo all commands under options, can give you even more detail about what's running under the hood. There is always a direct correlation with your actions in Maya and what pops up in the script editor. In my example, I would create a group and constrain it to the parent object.
As I do this the script editor spits out:

So as I do each manual step I can see that:
1. The command to make a group, or at least the one the Maya menu is using.
2. How to rename that group, the original name of the empty group was Null1.
3. How to select my parent (-r means replace) and -add the child with MEL before....
4. Creating a parent constraint between the two with a default weighting of 1.
    Then I create a locator, and parent it under that group. 

    5. The command for creating a locator (the -p means position in this case, so it's at the origin)
    6. Our familiar rename command
    7. Select the parent second.
    8. Parent the locator under the group.
    Constrain that locator to the child object and bake it out (so it keeps the original animation of the child object).

    9. The selecting and parent constraining we learned from above.
    10. Selecting and baking the constraing. BakeResult has a lot of flags attached to it.  Simulation should have been turned off because this isn't a dynamic simulation. The -t is time, so the numbers with the colon in the middle is the time range. The other one that is important to consider that I cropped out on accident is -sm, for smart bake, you can have that on to preserve your keys or bake out every frame or number of frames.

    Then constrain the child object to that locator.

    11. We constrain the child object to the locator like above.

    And done! Except, it would only work for those specific names. It wouldn't work every time, so it'd be useless except in one very specific instance

    Which leads me to the second thing, learning to store information -- in this case, the names of objects. Strings are the go to way to store object names. You can have a string to store a single name, or a string array to store multiple names. Floats and integers will store numbers for you, should you need certain values again.

    So for example:
    string $someText = "someText";
    string $lastSelected[] = `ls -sl`;  (You can then get your first object with $lastSelected[0])
    int $wholeNumber = 10;
    float $decimalNumber = 10.5;  
    There's also vectors, but I don't really use them myself.

    There were other things that were a bit more complicated to figure out. To be honest a lot of the time I just Google "Maya mel thing I want to know," and that usually gets the ball rolling in the right direction. Below are some of the resources I've come across that are very useful in figuring out how to do what I wanted:

    • Maya MEL Commands - This is a list of all of the MEL commands, it has all of the relevant flags and examples of use. I use this most often!
    • MEL Scripting - This gives a pretty good breakdown of common mel commands and gives examples as to how they work. Also covers making UIs in MEL.
    • MEL How-To - Covers a lot of different questions and is a very good resource to see how things are broken down.
    • CGTalk - Either someone has already answered whatever question you have or they are willing to if you post.
    • HighEnd3D - Has many, many available MEL scripts to peruse for free.

    I also did a lot of looking at similar scripts and breaking apart how they did things and googling the commands I didn't know. MEL is a language so there is a structure and a logic to it.

    Most importantly, find someone who knows more than you. I don't know how many times I have banged my head against the wall, because one little thing wasn't right. Thankfully I had people I worked with who could tell me what I was doing won't, but even just asking in a forum like CGTalk should help you find the answers you need to make a script work.

    Now, I know some if you have read this and are still daunted by this technical language. Don't be! Don't script for scripting sake, script so you have more animation time, meaning, script with an idea in place. You need to have a goal to work towards with this stuff. So constantly analyze what you do, what your workflow is and see if maybe there's a place to automate some of it. It'll save you so much time in the long run and you can focus on the animation itself.

    I know there's also the fear of being pigeon-holed into a technical route if you reveal scripting knowledge. I know because I've been there, but really, in my experience, people are grateful, but not expectant. Also don't be afraid, if you feel you're being pushed in a certain direction, feel free to speak, your mental well being and desire for growth in certain areas should be a welcome discussion point with your boss. It should also be pointed out here that your job, as an animator, is to animate; script on your down time, or at home, or if you really need a tool, make sure the time writing is less than the time saved. Don't get tunnel vision and distract from your actual work.

     Before I sign off, here's a list of things that I find supremely useful:
    • Always end your lines with a semi-colon, it lets Maya know that command is finished. Likewise if you are using a command  within the context of something else (like defining a string) put tildes on either side.
    • objExists - Checks to see if anything with that name exists in a scene.

      objExists pSphere1;
    • getAttr - Returns the current value of any attribute.

      getAttr ( $object + ".visibility" ) ;
    • setAttr - Sets the attribute to whatever value is given.

      setAttr ( $object + ".visibility" ) 0 ;
    • For/In Loop - This lets you do the same thing for multiple objects in an array. In my example above, apart from the first object, any other object I select I would want to generate locators and constraints. The for/in loop allows me to do the same action again and again for multiple objects.

      for ($object in $objects){

      parentConstraint $object $parentObject; }
    •  If/Else - Good for toggling type hotkeys. If this condition exists, do this; otherwise do this.

      if(`objExits pSphere1`){
      select pSphere1;
      polySphere -name pSphere1; } 

    • Tokenize - You can break up the name of an object based on an alpha-numeric character. I use it to try and to get namespaces, more often than not. In the example below, you can see I'm using the first section that comes out of the tokenize (the [0] means it's the first) because that's usually the namespace.

             string $object[] = `ls -sl`;
             string $storageBuffer[];
             tokenize $object[0] ":_" $storageBuffer;
             string $nameSpace = $storageBuffer[0];
    • whatIs can help you figure out the specifics of a command. Sometimes a command behaves strangely or inconsistently, you can use whatIs to find out what it actually is and if it's part of another command. For example, when you break connections on an attribute, CBDeleteConnection comes out. If you use this command, it didn't always work, because it's waiting for Maya to source the script it lives in on your hard drive. Using whatIs you can find exactly where it is and what commands it is actually using to break that connection.

      For instance! In the first example I used doGroup to make an empty group, using whatIs I was able to find that mel script in my maya bin folder and find that it was using the MEL command group. You can use group -em to make an empty group
    • Pretty well all commands come with flags to define what you want to do with them. For instance, if you look at keyTangent, the MEL command that deals with tangents, there's loads of flags. And a lot of them you can query too. For instance you can query the in and out angles of your tangents, if you're into that sort of thing:

      keyTangent -query -inAngle -outAngle pSphere.translateX ;

      And it should then return to you with two numbers. Usually you have "command -flags $object(s)ToActUpon".
    I really hope this is encouraging and not scary. It's not imperative to learn scripting to animate, but it sure can make it easier.

    Keep on keyframing!

    Wednesday, April 25, 2018

    Giving Inspiration a Jump Start

    Inspiration is key in animation (any art really). It's important to truck on when you don't feel particularly inspired (especially if you're animating for a living) lest you stop altogether and get stuck in an endless downward spiral into the void of "I don't know what to do!!!" If you are starting down this void, I encourage you to seek out inspiration and to know what stimulates you. Here are a few things to do when uninspired:

    1. Watch other people's animation.

    Vimeo is a great resource, especially when you start connecting to people. The videos your connections "like" will turn up in your feed. 'Reel'y Inspiring is a Vimeo channel I visit fairly frequently; it's awesome to see what other animators are up to, the different styles, and whatnot.

    OnAnimation is a site I frequently visit; it covers a huge range of material.

    There are a bunch of great behind the scenes videos you can watch on YouTube, and most of the big companies have a YouTube channel for their own stuff. ILM, WETA and Blizzard, to name a few, all have their own channels.

    When at work, I'll take time to go through the dailies viewer and see the latest submissions. Just seeing how other people realize their ideas is huge motivation. You can also see a bit of their progress and realize that they're a lot like you. No one gets it the first time. Animation isn't easy. Watching videos from other disciplines is also really cool; like seeing muscle simulations, lit and rendered shots, or fx sims. It is especially rewarding seeing your own shots go through the pipeline.

    You can also watch films for inspiration; animated or vfx filled. Non-animation-related films can also be hugely inspiring, especially with regards to performance (which is huge for any character animator).

    These are a few other links I check out (not an exhaustive list):
    Animation Progession Reels: This is an awesome way to see other people's workflow, and how ideas change throughout the process. In feature and VFX animation, accepting change is all-important.

    Spungella: The owner of this page is JD, and he's a very talented animator who doesn't hesitate to answer questions or share his workflow. He posts his personal animations often with a breakdown of his progress; there's always cool links to anything animation related. It's very diverse!

    Flip: This is Cameron Fielding's blog; though it hasn't been updated in a while it's still full of good stuff. He has put up a lot on his own experiences in this field and shared a lot of his workflow. He's now doing e-critiques of people's work, which is cool (RandoFlip is awesome). He hasn't updated in a good long while, but there's still some great material on there.

    Pencil Test Depot: I love seeing rough pencil tests!

    2. Talk with other people about animation as a whole, or a specific animation you're doing.

    It can be easy to build excitement while speaking with another animator. I find when talking to someone about a specific animation, my ideas get better; they get bounced back and forth, smoothing them out, and refining them. Creativity does not exist in a vacuum. I will often bounce ideas off my wife and she'll take it in a completely different, but awesome, direction. You see, it's important to have someone that is not in love with every part of your idea who can look at it. You need that outsider's perspective, because ultimately that's who's going to watch it. Unless of course you do animation and then don't show anybody.

    Talking with people who have no idea what animation is can be beneficial as well. There are gems hidden in what they have to say, as people see naturalistic motion every single day and intuitively know if something looks wrong or unnatural. They might not be able to express specifics, but even a statement like "it looks weird" can be beneficial to a certain degree and get your mind going in a different direction. It's important when taking this direction to not get offended or take what they say too personally. Take the critique gracefully, even when you don't agree with it, because their advice could mean that your shot gets that much better. But that's another topic all in itself.

    Also, having to explain what it is you do to someone with no context (I've found most people lump every CG profession under "animator"), remembering why you got into it in the first place, and the parts you love about it... well, that can also light the fire of inspiration within you.

    I've been going for some years now to the Bring Your Own Animation Event in London. People go to get their work critiqued and meet other animators. I try to turn up every month and give feedback, and it's always great to be able to help out and give something back. However, it's also great to be in a room with like-minded people and be surrounded by that excitement and energy. If you're in London, I'd highly recommend going; the place is usually absolutely buzzing.

    3. Go out and do stuff.

    Step away from the computer, the sketchbook, and go outside, meet with people and live. We build our ideas off of observation, so go live life and take note. Go visit the zoo while you're at it, or the park, or anything really. Get physical, go walk somewhere, or ride a bike. I ride a bike into work most days and it's a great way to clear the head and come back the next day refreshed. It's easy to get bogged down by work if that's all you do. You end up thinking about while working (good), after work (less good), and even dreaming about it while you sleep (the worst). Take a break and give yourself a chance to recharge. As excited as you are about animation, you can burn yourself out if you don't give yourself an opportunity to cool down.

    These are just a few things, and I'm sure I've forgotten something. There are more inspiring links, sites, and ideas that I happen upon from day to day, but the ones listed are those I regularly visit. Feel free to send me the inspiring sites you frequent, or leave them in the comments. I'm always on the lookout for more.

    Keep on keyframing!

    Wednesday, March 28, 2018

    The Long Shot

    On average, most shots in film are about three seconds long (about 72 frames). There are shorter shots, which are usually easy to deal with. Then there are those that are much, much longer, that can become quite daunting to deal with.

    Here are some methods I use to tackle these shots and make them a bit more manageable.

    The big thing is focus. Like so many things, breaking down tasks is very helpful when it comes to a long shot. I do this both in my scene and organisationally.

    When working in Maya I will limit my timeline to 100 frames, even when blocking, and actively ignore whatever is outside that range. As I go through and become happy with that section, I don't go to the next hundred frames. I overlap about 20 frames and start from there. It quickly brings that daunting length down from, "I don't know how I'm going to do that," to, "I'll get to that in due time." One of the benefits of this method is when you loop 100 frames it's easier to spot mistakes. Similarly, in splining and final polish, isolating a leg or arm in the hundred-frame fashion really helps the mistakes stand out. That said, it is important to, every now and again, look at the full length just to make sure it's still working (and to make sure nothing's been ruined!). It's important to avoid tunnel vision and lose sight of the shot as a whole

    All the tips I put forward in the Keepin' It Tidy post will go a long way toward making a long shot more manageable. All the myriad of ways to get a fresh look at your animation (flipping, flopping, inverting colour, etc) will be hugely beneficial as you make your way through your shot.

    Outside of Maya I make checklists. Sometimes in my notebook, but more often than not I use Google Keep. It helps organise my thoughts and focus my workflow rather than randomly jumping from task to task. There is a nice sense of accomplishment when you check things off and find the list growing shorter. I tend to divide up by character and have the related tasks underneath. These start out broad, such as "do a facial pass," but as time passes they become more specific.
    At work, I'll write these things down as I commute home on the Tube, ready for the next day. This will usually include notes from dailies, things I need to hit, and things I still feel I need to do.

    The long and short of it is that there isn't a script or anything that will make a long shot easier. It's about being deliberate and methodical, compartmentalizing your animation down into edible, easily digested chunks.

    Keep on keyframing!

    Wednesday, February 28, 2018

    Starting out

    I had the pleasure of attempting to give feedback at the Bring Your Own Animation booth at the Siggraph TechTalk event in London a while back. I say "attempt" because as it worked out, I gave no animation feedback. I gave feedback to a guy who had made a video that looked like it was made of individual paintings (it was a clever filter with some hand fixing), but that was limited in what I could tell him. It just wasn't animation.

    The good thing was that there were people to talk to and in one particular case there was a student, just starting out, who asked me for advice at the start of his animation education. I will now share with you what I told him, as I think it is worth repeating.

    1. Don't get ahead of yourself
    Learn to walk before you can run. Too often I see students trying to get straight into acting or a big creature shot and making a right mess of it. A bouncing ball is a perfect way to become familiar with the fundamentals of animation. If you can't do a good bouncing ball, you certainly will not be able to do anything more complicated than that. Like any other complex skill, you need to gradually expand to harder and harder tasks. A good series of exercises that go from simple to complex can be found at Animation Island. If you allow yourself to slow down and soak in the lessons learned from doing simpler animations, you'll be better prepared down the line to tackle any situation. Build on the foundations in order to accomplish more complicated tasks.

    2. Learn to accept criticism
    This is probably the most important animation lesson. As a professional animator, you will get feedback pretty well every day. People that don't respond well to criticism will not last long in this industry. VFX especially wants people that can do the job, not people that argue every point. That being said, you can discuss notes, but I'd recommend getting down the acceptance part first. Other people who have a bit of distance from the material you're working on will have a better vantage point to see what is and isn't working with your shot. And I've always found that feedback from animation supervisors will generally give you a better shot than you could have hoped for. They have loads of experience and a keen eye; don't throw that idly away. As a student, you may or may not have that, but I would recommend being able to take advice from anywhere; your dad saying that something doesn't look right doesn't mean he's stupid and he doesn't know about animation. People naturally analyze movement and know when something is off; it's why the uncanny valley is a thing. A non-animator may not be able to articulate why something is wrong, but don't dismiss when they say something looks weird or unnatural. All critiques, even bad ones, usually have some small gem of value that can be taken away.

    3. Don't be afraid to throw work away
    Tying into that idea, it's best to walk the tricky line of being passionate about your work, but not being precious. If something isn't working, don't be afraid to cut it out and start again. I used to want to try and keep every single keyframe in a shot that I had done because I had put so much time and effort into it. When I was working on World War Z, I sat next to an animator named Alvise Avati, and I was amazed to see him take something that looked alright to me and throw it away. Start over and have something even better. Trying to shoehorn existing animation into a new idea could be holding your animation back.

    4. Develop your eye
    Study movement, any movement. People watch. Look at how weight shifts from one leg to another as people walk. Be inspired by what you see. Watch good animation, break it down and watch it frame by frame. Study it. As time goes on, you will start to see what looks natural and what doesn't, what works in your shot and what needs improvement. Sharpen your ability to give feedback, as it is very useful to be able to give yourself feedback and look at things with an objective eye. Giving fellow students feedback (when asked, no one likes unsolicited feedback) can be a good exercise as well as giving feedback on something like the 11 Second Club. I'm not giving you license to be a jerk. Be professional, but be able to also point out what you like about a shot, not just what sticks out as wrong. This will really help your animation, and as you develop your skills and your eye, you'll hopefully be able to spot what isn't working and know what to do about it.

    5. Find the workflow that works for you
    There's more than one way to skin a cat, as the saying goes, and I think it's hugely important to find your own way to go about it. I think the best thing that you can do for your animation is to have a workflow that you know you can rely on to get good results. Finding this is a matter of trying and failing, seeing what feels comfortable and what doesn't. Different situations also call for different methods. For instance, I usually block stepped, but when I do something that's entirely physical (like a tumbling dinosaur or a falling zombie) I'll do a kind of layered, straight-ahead approach. It's important for you to find these things out for yourself. No one should be dictating how you tackle an animation.

    The important thing to realise is that learning is an on-going process. You will always be challenged by new things, but laying down good foundations and having a good grasp of the principles will allow you to meet those challenges with confidence.

    Keep on keyframing!

    Wednesday, January 31, 2018

    Don't Let the Machine Win

    I was planning on having a bigger announcement this week, but I'm navigating the legal implications. So for now I'm pleased to announce that I'm launching a Patreon for this blog. If you enjoy this blog and want to contribute please hit the button on the right. Contributions will help support the blog and I have plans for the future, which include a Stylized Reality tool set and, given enough patrons, video tutorials based on my personal projects. Patrons will also be able to make requests and suggestions for topics they'd like to see covered in future blog posts.

    Also, now that I've reached my self-imposed deadline of January 31, compounded with crunch time at work, I'm going to throttle back a bit and do one post a month. I may start doing one every two weeks when we're out of it. We'll see!

    And now for a tip.

    The computer, as inbetweener, is an idiot. It knows how things should move mathematically, but not naturally. When I block in stepped, I end up breaking my animation down to the point where I manually place keys every 2 to 4 frames, depending on the action. This gives greater control over the final product. There will need to be some massaging once splining begins, but it should all-in-all be a less painful process and give you the poses and breakdowns you want, rather than the ones the computer demands.

    There are tools and techniques you can use to help you with inbetweening. To help you beat the computer.

    - Arc trackers are vital. I use it even in stepped blocking. Using it early in the process, tracking all your arcs, helps to make sure everything will work down the line. I use toolChef's motion path tool as well as MorganLoomis' arc tracer at home.

    - Space switching is hugely helpful. I almost always have FK arms in world space, as well as the rotations of the head. On some characters, like Kaa, the whole head is in world space. These kind of things reduce the amount of counter-animating you'll have to do because of something the body might be doing. Be in control of what the different parts are doing.

    - Make use of rotation orders. Maya doesn't evaluate all of the rotation channels all at once. It does them in a certain order and it can change how one key transitions to another. Morgan Loomis has a great tool for changing rotation orders on something that has already been animated. It even gives you an analysis of which one will give you the best results. This helps you keep on top of the computer. 

    Worse comes to worst, you'll have to key something every frame, but that is the last ditch effort. Don't let the machine win! The computer is a tool, it works for you. Don't let it bully you into inferior animation because of math.

    Keep on keyframing!

    Wednesday, January 24, 2018

    Embrace Fear

    I've been asked a few times what a person should do next as an animation piece. There are a few answers I could give to that question and all are valid. All could be combined into one super answer.

    The first answer would involve looking at this person's reel, and assessing and saying, "you don't seem to have a lot of *blank* on your reel, you should do some more of that." This will help when it comes time to look for a job. It could also very well be the kind of advice that could cause growth in this theoretical person.

    The second might be to tell this person to try a different style, if they do cartoony, try realistic and vice versa. This could help that person get a different handle and perspective on the principles of animation that they might not otherwise get. It will push them outside their comfort zone and they will grow.

    I think there's an answer that encompasses all of these and one that is tailored to the animator and not external requirements or pressures.

    Do what challenges you, do what scares you.

    This is my thought whenever I start some new personal project, what scares me in terms of animation? What animation pieces have other people done where I think, I couldn't do that? What scenes in movies have I been impressed by?

    It's good to be challenged at work, but I would take the bigger risks on personal projects. Even if you never show them to anyone else, this gives you the opportunity to fail and learn from it without negative reprecussions from a production. Personal projects allow you to focus on things that you either know you're not good at or don't even know how to start or do.

    When I did my "King" animation piece, I wanted to do something I hadn't really done before. I chose a long dialogue, because the management of so many frames caused me anxiety. And I chose to do a subtle performance because 40 seconds of believable subtle performance scared me. But through it I learned techniques to handle lengthy animation pieces (a topic for another day!). It has helped me tackle really long shots at work as a result. Conversely my next piece is a bigger, funnier performance and has a female character, which I don't think I've done before (excluding Kaa).

    It's important to note here, that when you are looking at another person's finished product, it's going to be daunting. The natural response will be, I couldn't do that, or do that as well, but you need to temper that with the fact that you're not seeing the process. The sleepless nights, the endless notes, the month or so of cleaning and tracking. Ultimately, with a finished piece, you're just seeing the tip of the ice berg. If you have a good workflow in place, solid ideas and a person you trust to give you feedback; there shouldn't be a limit to what you can do.

    So as you are wondering what you should tackle next, keep recruiters and job requirements at the back of your mind, and think about the kind of animation piece that fills you with dread. And then do it. It doesn't matter whether you succeed or fail, or show it to anyone, you will grow from it.

    Keep on keyframing!

    Wednesday, January 17, 2018

    Keepin' It Tidy

    Cleanliness is next to godliness, or in this case, a well organized scene makes for an efficient animator.

    Scenes in Maya can quickly become a mess in a few different ways. The time you spend searching for something, even if it's just a few seconds, is time that could have been spent making your animation great. I hold this mantra for most things, and I find that if I'm repeating the same action again and again then I should probably write a script that does it automatically. Save time wherever you can so you can focus on what's important.

    Bloated scenes can actually slow down your fps, so the first thing I'd recommend is going up to File and clicking on Optimize Scene Size. I usually go through and activate everything except display layers (it has deleted layers I wanted to keep). It'll get rid of anything superfluous floating around your scene.

    Your outliner can quickly become cluttered with all manner of things and you have to peruse a list to find what you're looking for. I know some people use groups to organise things, which is viable but make sure to check if it will screw up things in your pipeline. What I'd recommend is using outliner colours, and have a system behind it, blue for characters, yellow for lights, etc. You can find this in your attribute editor under Display.

    I used to find the amount of red ticks in the timeline a bit daunting, they didn't tell me anything about my timing except when I was blocking out my key poses. And if you bake something out on every frame, it quickly becomes a red bar, telling you nothing.

    I use the special tick draw to colour my key poses yellow, my golden keys, so that I can quickly have context in my timeline. I'll even set these kind of keys if I'm using mocap, just so I can kind of see how these poses relate to one another timing-wise.

    You can quickly set these kind of keys using this line of MEL, I recommend setting it as a hotkey:
    $now=`currentTime -q`; setKeyframe `ls -sl`; keyframe -time `currentTime -q` -tds 1 `ls -sl`;

    Lastly, I've also been enjoying using a tool called "Maya Timeline Marker," by Robert Joosten, that allows you to select frames in the timeline and assign a background colour to them. I used this a lot on The Jungle Book and Last Jedi to colour words in a dialogue or where breaths were in the reference. It's an additional way to make your timeline really mean something other than how long is it and where am I in it.

    All of these things shave off a bit of time. They clear away technical hinderances and allow you focus on doing what you want to do: animate.

    Keep on keyframing!

    Wednesday, January 10, 2018

    The Importance of the Internal Silhouette

    When I work, personal or professional, especially in my first pass, I'm dealing with poses.

    Having clear posing is vital to having an action or attitude being understood by the audience the first time they watch a piece of animation. Especially in visual effects, shots go by too quickly for any hint of confusion. In Maya, it's beneficial to turn off all the lights to see the silhouette of your creature or character and how well it reads. The problem with this method is that it doesn't take into account a character's internal silhouette, how contrast and shape within the character's outline make a pose readable.

    If we only relied on the external silhouette we wouldn't get very naturalistic animation with arms always out and away from the body. Poses like this can and do work, obviously, but it shouldn't be the only way we assess a pose.

    In order to combat this I came up with a script while I was working on Guardians of the Galaxy. It takes the low res proxy geo for a character, sorts it out into display layers based on the body part names (torso, leg, etc.) and then applies flat coloured shaders to those parts on a new render layer. I wish I could release this one to the public but naming conventions are impossible to predict from rig to rig, so I'll have to stick with the broad concept (though I am looking at ways to package this into a tool I can share).

    This not only helps with internal silhouette visibility, but with what I was talking about last week; seeing your animation with fresh eyes. Because all of the body parts are wildly different colours it is that much easier to pick them out visually as the animation is playing. You can also use the display layers to focus on one thing, like hips and legs for instance, or just an arm. I use this all the time, and will some times work in this mode for hours despite its eye searing nature. 

    It's important to note that this is just one tool in the toolbox. It works quite well with the lights off silhouette I mentioned earlier, and the flat shading from last week. It's especially important to avoid tunnel vision while working, as it could result in a character made up of separate parts that have no relation to one another. Nothing moves in complete isolation in the body and it is vital to remember the other parts even though they might be hidden.

    Strong, effective posing is more than an outline. Being aware of internal shapes and how they relate to the external silhouette expands how an animator is able to communicate with the audience, making room for more nuanced and authentic performances.

    Keep on keyframing!