Monday, July 13, 2020
Gnomon Workshop tutorial now available!
I've finally broken my silence with an announcement. For the past few months I've been working the hours away to produce a tutorial for the Gnomon Workshop and the first volume is finally here!
The tutorial is titled "Subtle Performance Workflow"; the first volume covers shot planning and body animation and the second volume will cover facial anatomy and animation. My whole objective for this tutorial was to outline my workflow and thoughts for animating a realistic, subtle dialogue piece; to get into the nitty gritty of making a character feel vibrant and alive while not doing a whole lot.
Enjoy the final animation! Volume 1 is already out and volume 2 should be up in the next few weeks.
And to coincide with the release of my tutorial, I've put together a reel of the work I personally did on Aladdin. I was a lead on this show and worked closely with modeling and rigging to develop the facial setup used on Genie. I'm pretty proud of how it all turned out. My only regret is that I didn't get to actually meet Will Smith during the time we were making him blue.
Wednesday, January 30, 2019
The Current Situation
Though I wish I had posted something for the last two months of the year, the break has allowed me to take a step back and look at it all. I want to dig a little deeper this year and tackle harder topics. Maybe even throw in a video or two. Do something with my Patreon beyond letting it sit there, come up with some exclusive content. Keep an eye on this space!
In the meantime, for January and this new year, please enjoy my latest two showreels representing my work on Star Wars : The Last Jedi and Jurassic World : Fallen Kingdom. I was a lead animator on both of these shows (and specifically the lead animator for Snoke) and I couldn't be more proud of how they turned out and of the work that the entire team at ILM pulled off. It was a dream come true to work on these franchises, and while they were never easy, there's definitely a certain magic to working on something from my childhood, to work on the projects that got me interested in the field of visual effects in the first place. Enjoy!
Wednesday, October 31, 2018
Just Add Noise
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.
Wednesday, September 5, 2018
Watch Where You're Looking!
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
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.
Vowels:
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"
Thursday, May 31, 2018
Practical Scripting for the Animator
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.
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.
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.
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
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.
- 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 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;
}else{
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".
Wednesday, April 25, 2018
Giving Inspiration a Jump Start
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
Wednesday, February 28, 2018
Starting out
Wednesday, January 31, 2018
Don't Let the Machine Win
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
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!






























