Showing posts with label WORKFLOW. Show all posts
Showing posts with label WORKFLOW. Show all posts

Monday, August 9, 2010

Camera Animation

Here are some quick notes on how I approach camera animation for some of my previous sequences. I'm no expert at this but thought I'd share since I received a couple of questions about this in my last post.
________________________________________________________________________________________


To begin, if there are storyboards, use those as a starting point since that's what the director is probably expecting. If there aren't any storyboards, then I'll:

  1. Start by loosely blocking in characters. If it's a more complicated sequence, I might block in the camera with characters translating in bindpose for the entire sequence, then show to director for approval.
  2. After characters are roughed in, I'll then rough in the camera (use maya default cam, change rotation order to zxy).
  3. Then the back and forth process: refine poses to camera angles, tweak camera angles to showcase pose better. Concentrate on framing during this stage.
  4. Next, animate characters, taking it out of first-pass animation.
  5. Get motion of camera to track action right (key all channels of camera, no offsetting).
  6. When camera anim is at a pretty solid first-pass, transfer camera keys to the camera rig. Reason is I then get access to more layers, attributes, and features to play around with for polish (if the rig supports it that is).
  7. Polish with camera shakes and camera noise (handheld look) last.
________________________________________________________________________________________


Things I try to think about:

  • Framing of course.
  • When tracking moving character don't just lock on and follow. Also think about how the character is moving relative to the 2d screen space and frame.
  • Lag camera when tracking movement.
  • For fast movement it's ok to have character (or most of character..can't remember which) go off screen for a frame or 2 (can't remember if 2 was ok...guess just experiment). Shout out to my friend Austin who gave me that quick tip a while back, it always stuck with me.
  • I like to cut on impact sometimes. We weren't allow to use camera cuts for finishing moves, so I cheated by "punching" (translating) in during impact (2 or 3 frames).
  • Don't go too crazy with camera. Common mistake (hopefully I didn't do it)
  • Make sure you track fast action accurately (maybe even use tangents). Smoothly animated characters could look jerky if camera is not tracking well. On the converse a camera that's too "locked-on" might make the character look weightless.
  • Use camera to cheat wherever you can (to save time and only if it doesn't take away from the sequence). I used this a lot. I'll try to give specific examples in another post.
  • If you don't see it, don't animate it, just try to have the character still work in 3d space in case they decide the camera should be pull out farther. (again examples later)
  • For games, camera cuts are perfect to hide characters sliding when transitioning from player controlled to scripted events.
  • Camera shake (on different node or layer).
  • Don't go crazy with shake.
  • For camera shakes, translate keys usually have a higher frequency (for hit-impacts) and with quicker fall-off (imo). When hitting ground with massive character, then maybe a bit longer (maybe 'cause earth is actually shaking?).
  • Add a bit of rotation for shakes as well. Rotates can last a little bit longer (just a little).
  • I try to accentuate the translate channel of the main action that's causing it. example: if character is slamming straight down, translate Y of camera shake is greater that the other 2 trans channels.
  • Handheld camera anim on different node (and usually animated last).
  • I tend to animate tangents a bit more for cameras, esp slow moving pans, etc.
  • I like tilting the cam, hopefully I didn't over do it. I use it to get a character to be higher in frame (very useful for Dante/ Death sequences since Death is literally twice Dante's height in game). Used it during Phlegyas sequence, trying to imagine that if i was on the guy with a camera on his back, I'd be off balance.
________________________________________________________________________________________


Hope these notes weren't too loose. If they don't make sense, I'll try to clean up later. And remember, use at your own risk--I could be totally wrong here:)

Saturday, August 22, 2009

Rohan Rig: Quick update


I've updated Rohan's FKIK matching scripts to work with namespaces and referencing (through the picker). FKIK matching will now work with multiple characters in a scene. Thanks goes out to Jeremiah Grant for showing me how to do this.

Just download the rig again for the updated scripts.

NOTE: I've changed the rotation order on the weapon controllers. If you're in the middle of an animation, you could just manually change the rotation order back to the default xyz.

Sunday, June 7, 2009

Camera Rig


Hello everyone, I'm coming off of vacation and heading back to work tomorrow...I figured I'd post something before things get busy again.
____________________________________________________

I found this shaker script a while back and decided to make a camera rig out of it. I find it useful for throwing in some quick camera shakes. Of course, if you have time, you should hand key a bit of the rotate channels as well.

HERE'S A QUICK RUN-THROUGH OF THE CAMERA RIG:
  • Tilt the camera with the "up_CON" controller, the "tilt" attribute on "CAM_CON", or the Z rotate channel on the main controller.
  • "Zoom" attribute actually trucks the camera in closer (doesn't affect focal length). It was added out of necessity. There were times when we wanted to experiment with different versions of a shot--bring the camera in close or keep if out further.
  • "Frequency" regulates how fast the jitter is.
  • "Ampitude" regulates how big each shake is.
  • "Phase"--honestly, I've never use this.
  • "Flash"--one of my cheap tricks to get a screen flash.
  • Contrain the parent of "up_CON" or "aim_CON" if you want it to follow a target (I tend to not constrain, though...still experimenting).
  • "CAM_noise" is keyable. For lack of a better name, it's to layer in extra camera "noise".
  • Visiblity switch is found on "Master_VisibilityShape" node (select "CAM_CON" then look in channel box").
____________________________________________________

WORD OF CAUTION:


I found that it may be difficult to "undo" in Maya once you press play with the camera rig in your scene. This is due to how to the shake feature is set-up.

Here's my work around:
I toggle the "Shake" expression on and off, depending if I'm working on the camera or not.

Use this mel to turn it off:
  • expression -e -s "" -o noise_MD -ae 1 -uc all Shaker; print "Shake off!";
Use this mel to turn it on:
  • expression -e -s "noise_MD.input1X = (noiseX.outColorR -.5) *.2;\r\nnoise_MD.input1Y = (noiseY.outColorR -.5) *.2;\r\nnoise_MD.input1Z = (noiseZ.outColorR -.5) *.2;\r\n\r\nfloat $valeur = `getAttr (\"CAM_CON.frequency\")` *2;\r\nfloat $phase = `getAttr (\"CAM_CON.phase\")`;\r\n$valeur += $phase;\r\nsetKeyframe -v $phase -at \"time\" -t 0sec CAM_shaker;\r\nsetKeyframe -v $valeur -at \"time\" -t 4sec CAM_shaker;\r\n\r\nnoiseX.time = CAM_shaker.time + 5;\r\nnoiseY.time = CAM_shaker.time + 10;\r\nnoiseZ.time = CAM_shaker.time + 20;" -o noise_MD -ae 1 -uc all Shaker; print "Shake on!";

Make shelf buttons for these commands or do what I do and make them buttons on your Picker.

Have fun, but don't holler if you cant undo in Maya cause you forgot to turn the "Shake" expression off! I had to learn the hard way:)

Sunday, March 1, 2009

Rig Preferences

(click pic to download sample rig)
_________________________________________________________

Every animator has his/ her own set of preferences when it comes to animation rigs. While it is true every animator can adapt to a given rig and produce good animation with it, I believe that a well laid out rig allows for a more streamlined workflow, thus creating the potential for more polish time.


Creating a rig that has enough control for the animator while not being overly complicated is definitely a balancing act. Here are three main categories I like to use as a checklist.

  • EASY TO SELECT CONTROLLERS
  • MINIMIZE COUNTER-ANIMATION
  • PERFORMANCE / REAL-TIME PLAYBACK
_________________________________________________________

So to start, at the top of my list has to be…

EASY TO SELECT CONTROLLERS
  • Try to separate controllers as much as possible. In other words, minimize the overlapping of controllers so you’re not constantly selecting the wrong controller. When there’s too much overlap, you’re wasting time by constantly bobbin’ and weavin’ and tumblin’ around just to select a specific controller.
  • Controller shapes don’t need to be exactly centered to the joints they are driving. I’d move them (the cv’s) if it helps with separation.
  • Take the time to resize the controller to fit the body part of the character, esp. when using automated rigging scripts. (ie. Don’t create hand controllers that are the size of the torso or controllers that are imbedded in the geo.)
  • Color code controllers. I probably won’t remember that red means right side and blue means left, but colored controllers will further help with separation.
  • The standard yellow/red/blue scheme seems to work well for a wide range of textures.
  • I like fingers controllers a bit brighter (yellow) since they’re smaller and harder to see. Other “secondary” controllers could be light blue. Whatever you choose, keeping a little bit of consistency helps when you’re jumping from character to character in a pipeline.
  • I’d also stay away from bright green and white controllers. These just confuse me as to what’s currently selected.
  • Create controller shapes that are selectable from wide angles. In other words, try not to have controllers that can only be selected from the front or the back. Spine, neck, and shoulder controllers seems to be repeat-offenders.
  • A character GUI/ picker is good for selection “backup” (when a controller is hard to select in a specific pose). Also good for selection sets.
  • Picker could also be used for frequently used tools and matching scripts.
  • Picker to help with scenes containing multiple characters.

CONTROLLER SPECIFIC PREFERENCES
  • Boxes for the spine. I like fin-shaped boxes because I can quickly judge the rotation of one spine controller in relationship to the others. This makes it easier to keep the torso rotations clean. If circles are used for the spine, then a direction indicator for each controller would help. Speaking of spines, I’m plenty fine with only 2 spine controllers (in addition to the Root and the hip). 3 spines controllers are ok, but any more than that feels to cumbersome to animate. If deformation is a concern, have fewer controllers drive more joints.
  • For the neck, I’m fine with one controller.
  • A "halo" controller above the head feels nice and clean and is definitely separated from the neck controller.
  • I prefer the head controller to never follow the rotation of the neck. Local/global switching of the head could be connected to the spine instead.
  • Likewise, I like the arms controllers to never follow the rotation of the shoulders (clavicles). Have it follow the world or the spine.
  • The main pivot of foot controllers should be at the ankle imo. Pivoting on the heel could be handled as an attribute in the channel box. When the main pivot is at the heel, I feel like I’m constantly readjusting the translation of the feet everytime I rotate it (too much counter-animation).
  • IK’s oriented to the world-->meaning that if I translate an IK controller using “world” mode, only one channel should be affected. If this is not so, it’s a lot harder to make translation adjustments in the graphEditor.
  • I prefer elbows to not follow the clavicles (again too much counter-animation). It can follow the world or the spine instead.
  • For knees I always preferred to have them follow the feet when the feet are translated but now when they are rotated. I haven't really used the knee twist attribute in the past, but I’ve recently been seeing a lot of noFlip knee solutions. I’m actually pretty intrigued by it as I think it might be the way to go for knees from now on. I'll be experimenting with this.

OTHER PREFERENCES
  • Long attribute lists in the channel box should be grouped and separated with “empty” channels.
  • Rotation behavior of mirrored controllers should be checked. (ie. Rotating both clavicles in one channel should rotate them both up)
  • Rotation orders should be checked and be allowed for change, so that FKIK switching would still works.
  • Controlling fingers is always going to be somewhat tricky. A controller for every finger segment can get bit cumbersome to select. On the other hand, a long list of attributes in the channels box can also get a bit confusing. The method I find to be the best balance between control and speed is to have one controller at the base of each finger. Each finger controller would then have 2 attributes to curl the remaining segments. Sure you can’t bend every finger segment every which way for “smear” frames, but for games (where you have to turn anims around quicker), I think it’s plenty of control. Joel Ku introduced this to me a few years back and I’ve been loving this method ever since.
_________________________________________________________

Next category...


MINIMIZE COUNTER-ANIMATION
  • Since different situations may call for different approaches, I think the key here is a quick and intuitive way for FKIK and space switching on the fly.
  • I prefer all local and global switches as keyable attributes on the controller itself. That way, I’m not wasting time trying to track the switch from a list of 50 attributes on a separate controller.
  • I also prefer only one controller per body part. I’d rather have one IK controller be switchable between local/ global space as opposed to multiple IK controllers for each space. Again it’s so I don’t have to track down that other controller when switching, not to mention the added clutter and worry about more visibility toggles.
_________________________________________________________

Lastly, but just as important is…


PERFORMANCE / REAL-TIME PLAYBACK
  • A rig could have a gazillion controls to cover every possible situation, but if it’s too complicated and heavy and runs at a very low framerate, then polish time could still be compromised because accurately judging your animation in real-time is too difficult.
  • The balancing act here, I guess, is to know your production goals. (What’s the target, what’s the budget and timeline?) Controllers for uber-subtly may not be used if the budget doesn’t doesn’t allow time for them.
  • Proxy meshes, in addition to how connections are hooked up in a rig, can make dramatic impacts on how it runs in Maya when I hit that “play” button. Of course some characters will be more complex than others, but if I’m constantly making playblasts for every little change because my scene is running at 5 fps, even during the blocking stage, then two things will probably happen. I’ll have to spend more time on this anim to get the level of polish I’d like, or this anim will get done on time, but with less polish that I’d like.
  • Playblasts are definitely important for final polish. But if I have to playblast from the get-go, then there will ultimately be less polish time.
______________________________________________________________

As for the face, I’ll just quickly mention that I am a fan of the Osipa-type interface—one that lets you quickly get the shapes you want but at the same time allows for layering in detail with “on-the-face” controllers if needed.

So to hopefully better illustrate some of the things I’ve been rambling about, I made a simple rig for everyone to play around with. If you're interested, download it here. I know no one really reads the “readme” files but try to at least glance through this one, there are features in the rig that may not be obvious.


And remember, in no way is the rig meant to be the super-rig (it’s not even fully complete). I’m sure any TD out there could look at the rig and find many ways to build it better. But there you have it. Again, these are just my own preferences. Feel free to add to this list or bring up counter arguments. I’m always looking for more efficient ways of doing things:)

Friday, November 14, 2008

Poll Results: IK Spine?


Spines with both FK and IK controllers seem to be more and more common these days. I've only played around with them very briefly, but haven't felt the need to use them yet. I can see it definitely being good for things like squash and stretch in the torso or for characters on all fours.

I have a new character model/rig that I've been working on lately. It's always good to have both options, but since I don't know how to set one up yet, I just wanted to see if it was in my interest to take the time to learn, since I still need to learn animation:)

Monday, October 20, 2008

Poll Results: FK or IK?

Thanks everyone who voted.

________________________________________________________

Just so you know, this poll was purely for my own curiosity, since the last 3 animators I chatted with preferred IK arms (great animators btw). I never want to start a war by saying one method is better than the other. I see advantages for both, esp. for specific situations.

With that disclaimer out of the way, my personal preference, if a situation allows for either, is FK arms (with rotations that follow world space). For me, it feels faster to pose and edit. I'm sure proponents of IK arms would argue otherwise. Translating in all 3 axes always feel slightly slower to me as I'm tumbling the camera around more. Also, I feel that if the IK's are following world space translations, editing anims could be a bit trickier once things are offset.


OTHER FK PRO'S (in my humble opinion):
  • You get some of the arcs for free. Just remember that you should always check them and add keys if necessary.
  • You get some free noise as well because the arms are translating with the torso. And with rotations set to follow world space, you don't get TOO much noise that is often magnified by fast moving chest rotations.
  • With FK, it's easier to make it feel like the body and shoulders are driving the arms. With IK, you could definitely do it--you just got a work slightly more to avoid the marionette look.

IK PRO'S:

  • The big one, of course, is whenever the character's interacting with the environment or specific targets. For these situations--IK all the way! Just watch out for the magnetic hands and feet syndrome. Maybe slide them a bit before the complete stop.
  • Character flopping around like ragdolls (for deaths, knocked down anims, etc). Because IK's are "separate" from the torso, it's easier to get the whole body looking loose and floppy.
  • Stabs--I'd probably use IK for these. Just to note, though, I have used FK for these in the past when I'm...uh...too lazy to switch. I just add keys in the end and track paths and contact points. And while it's not ideal, a good amount of the 2 character attacks that I've done (like the alien stuff and the Kull beast take-downs) were all FK for the humans. If slippage is obvious then it's my bad and I probably should have been more adamant about switching to IK. If it's not that noticeable, then I guess I can say that it supports the idea that what ultimately matters is the pose on screen--forcing more keys to get the right pose whenever necessary.

________________________________________________________

I think with IK, you have more control when it comes to fine tuning the arcs of the hands, but you may need more keys to get those arcs in the first place. Some of my friends use IK set-ups that follows the Root/COG controller. This could be interesting to try. Another method that might be interesting as well is animating with IK's that translate with the top chest controller but doesn't rotate with it.

I do like to switch back and forth often, even when posing, so FK/IK matching tools for the rig is a must. Luckily, this is fairly standard with rigs these days. And if a rig doesn't come with it, it's probably the first thing I'd ask for.

So in the end, as I have always believed, use what YOU like because I'm sure the only ones who talk about FK vs. IK are us crazy animators. I'm sure everyone else who watch our movies and play our games could care less about these debates:) Also, I think real speed will come from knowing what you want with the animation at hand. And why do I always talk about speed? It's not because I want to call it a day early (though that can be nice!), but if I can get to 80% faster I'll have more time to milk that last 20%.

Wow, sorry if this was a bit long winded:) I totally thought this post was going to be a quick one.

Tuesday, October 7, 2008

A Few More Workflow Helpers

_________________________________________________________

Phew! The last two months were pretty hectic. In a nutshell, I had to create over 100 animation assets to support a new game feature. This was on top of all the planning, meetings, and occasional sick days:)

Although, a good number of these assets were smaller transitions or held poses, I still had to use every trick in the book to get these done on time. This leads me to a few more hotkeys, scripts, and workflow helpers that kept things moving along at a steady pace.
_________________________________________________________

First, if you haven't done so already, go to Jeff Cooperman's site and download his suite of aacScripts. They're all useful, but here are the one's I used a lot in the last month.

toggleNurbs
---map this to "n"
---it's esp. useful when a rig is very cluttered and there's no way to easily toggle the visibility of each controller (I prefer to toggle their visibility through a masterVis node that's parented as a shape node to the Uber controller, the Root controller, and the Head controller)

toggleXRay
---noted this before, and still very useful for hard to find controllers.
---mapped to "9" (or ctrl + "x").

snZeroOutControls
---quick way to zero out channels for foot plants.
---checkbox the vertical translate channel, and checkbox two rotate channels (you'll know what I mean once you open the UI and a rig)

eulerfilter
---I noted this before as well, but because I use it a lot, I've recently mapped it to ctrl + "o"

abxSmartKey
---from another previous post. It's now mapped to ctrl + "k"
---do it! you'll use it more once it's mapped.
_________________________________________________________

Kiel Figgins also shares a lot of cool scripts on his site.

The one that I really dig is saver.
---I'm more likely to make incremental saves when it's only with a click of a button.

And did I mention before that I absolutely love Maya's shelves for saving poses and selection sets on the fly (using pose2shelf)?

I know setting these scripts upfront may seem like a hassle, but believe me, they will help with your flow.
________________________________________________________

A few additional reminders that helped me get everything done on time:

Plan your attack--have a good idea before animating. This may include reference or a bit of thinking. I slacked on the planning for a few anims and they ended up kicking me a bit. Also, for this many anims, I started by creating an Excel list with the full file names and time estimates for each one before jumping into actual animation.

Layer polish--as always, every thing could use more polish, but do what's more important first. Some anims were cut--good thing I anticipated it and didn't take those ones far at all.

Recycle--the only way I was able to finish everything was by re-using parts of anims when I can, modifying them for variations and differnent transitional angles. This may seem like a shortcut, but it's production/budget reality. Hopefully, if you're tricky enough about it, it won't stand out too much.
________________________________________________________

Finally, on the bigger front, I felt our little pod at work got a lot done within our given time frame. I contribute that to good collaboration, communication and support. Basically do your best to be a team player while showing support and respect, and most likely you'll get it back. And for those familiar with the term, our small team used a process call SCRUM, or Agile Development.

Sunday, August 31, 2008

Indy Storm Animatic

This was the animatic for the film in the previous post. Again, this was done back at school.



Cutting storyboards together with audio definitely helps with planning...though it didn't seem to help my animation at the time. :)

Wednesday, August 6, 2008

Character GUI

For the majority of my workflow, I prefer to select controllers in the actual viewport and on the character--I find it faster that way. However, I also like having a character GUI (or picker) to supplement my selection options. Every character should have one of these. I find GUI's most useful for selection sets (i.e. All Controllers, Spine, Fingers, Mover, etc.) or whenever a controller happens to be hard to find in the viewport.
________________________________________________________

AbxPicker, a free download from Highend3d has to be one of my favorite scripts. Thanks Adam Burke for sharing! This super versatile script allows you to create fully customizable Pickers very quickly.

HERE ARE SOME HIGHLIGHTS:

--Easy to make, easy to change and customize on the fly
--Able to save out and import GUI into another scene (with a new character)
--Supports referencing
--Supports multiple characters
--Supports tabs (i.e. body, hands, face, etc.)
--Clean=>only one extra node in the scene
--Useful "help" button on the GUI
_________________________________________________________

Here are some of the pickers I've made in the past using this script.



The buttons I made at the bottom are "extras", used for mapping frequently used scripts and commands (i.e. euler filter, toggling inherit/follow attributes, bringing up other scripts like tweenMachine, autoTangent, shotView, etc.)
_________________________________________________________

QUICKTIPS:

  • Change the size of the GUI in line #41 of the script to your liking--then save script. Mine's set to 300 x 550.
  • If you want more control and precision while lining up the buttons during creation, change the resolution of your moniter to the lowest setting (as long as you don't mind messing up your desktop icons)
  • Making that first GUI could take 15 mins...or an hour if you are artistically anal like me. But after you've made your first template, you could just import it into a new scene and modify it very quickly for every new character.
I know the GUI itself won't make good animation, but I'm all for workflow helpers and making technical things (like selecting and manipulating controllers) a bit less cumbersome. That way, hopefully, we could concentrate more on the actual art.

Wednesday, June 11, 2008

The Hardware Render Buffer

So you want to create a new reel and can't decide if you should just playblast a bunch of clips together or give your anims the full treatment of lights and render. You want to playblast because they're a lot easier and quicker, but you also want to render because everything looks so nice fully lit.

Well, what if there was happy medium--something in between? There is!

THE HARDWARE RENDER BUFFER!
__________________________________________________________

It's the best of both worlds. With the HRB, it's like playblasting with the added advantage of motion blur and anti-aliasing. Althought, it's actually slightly more work than playblasting, it's definitely a lot quicker than setting up lights and doing full renders.

Here's what you do:


Here are my settings. Use what you like.


Scale as you wish:


View the sequence with the Fcheck.


If you like what you see, import the images into Quicktime Pro and export an uncompressed clip. Then when all of your clips are exported, throw them into Premier to toss around as you like.

All of my previous reels have only been playblasts (HRB for future ones). My reasoning is that while it definitely is nice to have full renders, the time it takes me to set up lights and render, I rather use that time to polish my animation even further. Plus, if I just finished editing together a reel and realize that I need to fix yet another anim hitch, I'm more likely to make that fix if all I needed to do after is to re-playblast. And although I don't want to speak for everyone, I'm pretty certain that the animators that are looking at your work will be judging it by your characters' motion and performance, and not by their rim lights and cast shadows.

For future reels, I think I'll be using the HRB, unless of course I have a shot that have already been lit from a cinematic sequence.
_________________________________________________________

While doing these "suped-up playblasts", these are my additional prefs:
  • All heads up displays should be turned off--just to keep things clean.
  • I actually like having the grid visible as a ground plane. I feel it grounds the character, and in a way, helps with weight because you can anticipate where the foot (for example) is supposed to hit. Without, it's like hitting an invisible wall that you're not ready for. This might be just me, but I find it a bit awkward without a ground plane. It's like the character's floating in space.
  • If there's camera movement, the grid acts as points of reference in the environment. This way, you get a better sense of how much the character is moving relative to it's environment and not the screen.I've seen animation tests from film studios and they are all rendered with some sort of a ground plane with a checkerboard texture.
  • Finally, I prefer the motion-blur to be subtle. I think it's one of those things that should be felt and not seen.
Here's a final tip--echo all commands in the script editor while setting up the parameters for the render settings and make it a shelve button. It'll save you time if you have 20+ clips to render.
__________________________________________________________

Now remember as always, this is purely my preference--I have friends who like to render their reels, and I have to admit, it looks quite nice. But I'm stubborn:)--I'll still say that what extra time I have, I'd prefer to use it to nicen' up the actual animation instead.

Wednesday, April 30, 2008

Timing Tools

Here are a few hotkeys that may help make timing tweaks a bit easier, esp. when you're working on a scene that has 1000+ frames.
__________________________________________________________

First off, in case anyone's not familiar with how to set up a hotkey, here's how:

Scroll down to the User category --> Click New --> Type in the Name, the Description, and the Command --> Click Accept --> Assign New Hotkey --> Save

__________________________________________________________

Now for the hotkeys...

Skooch_Left, Skooch_Right


To use--select a key or multiple keys in the Dope Sheet or Graph Editor, then hit the arrow keys to shift those keys left or right.

Note: You could also just type in "+=(any value)" or "-=(any value)" either in the channel box or the Graph Editor to shift key(s) any specific amount. In addition to adjusting the timing of keys, you could use this trick to adjust transform values of keys as well.
__________________________________________________________

Ripple_Left, Ripple_Right


To use --> Find a spot in the timeslider where you want to add or subtract frames. Hit Ctrl + arrow to shift all keys after that point left or right.

Saturday, March 8, 2008

How I Work


I always love reading about how others go about animating their scenes, so I thought I'd add my own process and preferences to the mix, incase anyone might be interested:) I like talking workflow with others because it allows me to discover new methods and inspires me to try new things. It also helps me organize my thoughts, as well as reminds me of the things I should be thinking about for each new animation--because I tell ya, this animation thing ain't easy!
_________________________________________________________

So...in the tradition of other workflow posts out there, I'll start by throwing up my own disclaimer:
  • I know I still have a lot to learn about animation, and I will probably always have a lot to learn. The following workflow habits are ones that seem to have worked for me for the past 4-5 years. However, I'm contantly experimenting. Ask me how I work a couple of months from now and my answer could be totally different. (Hopefully not too different). In the end, what really matters is what the audience sees on the screen.

_________________________________________________________

Alrighty, now on to it!..

When I first started animating in 3D, I read about the layered approach to animation--animate the root first, then continue outwards.

That seemed to work for a while. Individual motions in my animation were "loose" enough because keys were offset, but the overall animation still came up a bit stiff, esp. with the poses. I found it difficult to predict what pose was to come next without seeing the full pose before it. After struggling with this for a while, I decided to go back to a more traditional method by treating each keyframe as a drawing, and keying all controllers for that "drawing".

This leads me to my biggest mantra:

To keep things simple, I try to remind myself that animation really comes down to these two things:

Poses and Timing
  • Now, I'm sure you've heard this before, but when I say poses and timing, I'm including the breakdowns, extremes, and "overlap" poses (in addition to keyposes of course).
  • Also, for each of these poses, I'm setting a key on all of the controllers.

I feel that breakdowns and extremes can be just as important as key poses, and that having a key on all of the controllers for each pose ensures that I have full control over that pose when I start adjusting my animation. I also feel that you get stronger follow-through by actually creating these "overlap poses", rather than by just offsetting.


So in short, here's what I do...

  • For most of my work, I prefer to straight ahead, keying all as I go. I then slide the poses around in the dopesheet for timing and finess the poses as needed. At this point I should be about 70% of the way there. From there I start the polish, which could take up more than 50% of the time.
  • I think this method lends itself well to action-heavy animation. For the acting stuff, the breakdowns and overlap poses may come after, when all of the keyposes are in. This is unless the transition between 2 keypose is a bit more physical, in which case I'd straight ahead to the next pose with the breakdowns.
  • After my initial block-in, I think I end up with more of these "keyed-all" poses than what you may consider typical.


Exceptions/ variations

  • If there is a really important pose I have to hit (like a grapple idle, where other animations may branch off of) I might straight ahead very loosely to that pose, make sure that pose is solid first, then come back and tighten up the others to make it work for that pose.
  • For a cinematic sequence, I'd probably very loosely block in the entire sequence of shots, using the least amount of poses needed to portray the purpose of each shot. I'd then show that for feedback and/ or appoval. After that, I'll go back and do full straight ahead animation on each individual shot as before.

__________________________________________________________

Layering and Offsetting

While setting these poses during the initial block-in, I do not worry about any layering or offsetting of keys.

  • This way, I could easily slide poses around in the dopesheet until I'm pretty happy with the timing.
  • It also keeps things clean and facilitates revision as you're going through the approval process with whomever is in charge.
  • I'd also try to keep it like this for as long as I can. If it's a game animation, I'd rather have it tested in the game before I even think about starting any polish.
  • If it was up to me, I'd leave all of the animation assets at this level of finish, and start polish only when each specific game feature is deemed "fun".


Do I ever layer my animation?

  • Sure, but only if the situation calls for it and usually not as a foundation or an initial block-in, even for walks and runs.
  • I admit, some animations will lend itself to a more layered approach, but even with these, I would still lock-down a couple of full-body poses first. (example=> Hit-reacts, Knock-back anims)
  • Wings, tails, and other secondary parts are usually layered in after.
  • Finally, as a quick note for action vs. acting, I'm noticing that I tend to layer a bit more for subtler acting as opposed to the broader physical actions. Details and nuances are usually layered in.

Do I offset keys?

  • Yes, for finer overlap, but only near the end, only when necessary, and only the least amount needed.
  • Again, this is to allow for easier/ quicker changes. And believe me--requests for changes are common in a real production environment. Animating for gameplay is a very iterative process. Not only does it have to look good, it has to function properly with regards to the game design. And the design will often go through many changes during the production cycle.

Finally, whenever I get lost in the mess of keys and my animation just isn't cooperating, I could always find my way back by stamping poses and deleting some of the mess. I'll then reassess these poses, and possibly add a few more key-all poses if needed.

Believe me--if time doesn't permit and all you have are the right poses, the right number of poses, all hitting at the right beats, You're animation will have weight and will be fluid, even if you don't have a single offset (or a few in the feet, perhaps).

This way of thinking may have stemmed from my traditional background (because if you think of it, all 2D animators have to work with are "keyed-all" poses every 2 frames). Nonetheless, this method makes things easier for me to digest.


After block-in

  • After the initial block-in, the feet are usually the first things to be offset.
  • To keep things organized a bit longer I then continue to offset body sections from each other (only if I need to), while still treating each section as a whole as opposed to offsetting their sub-components. For example, I'll treat the spine as one shape and not as individual joints. Each arm is one shape. This goes for the hand/ fingers and legs as well. With tails, esp. when there are many joints, I think of it as whole shapes as I'm animating, and not individual sections. Not until it's already flowing and overlapping with key-all poses do I think of offsetting.
  • For wings I'll animate the root of each wing to quickly block in where I want the flaps. I'll then go back and treat all the controllers of each wing as a whole shape.
  • When I offset, I don't just slide keys around. Sometimes I'll stamp a key where I think the offset should take place, adjust it, then delete the previous key.
  • Even when you start to offset and add keys to refine arcs, you could still see the major landmarks in the dopesheet, in case you need to blow out keys and make changes.


To better illustrate all of this, here are 2 examples from my previous posts:




Reference was shot for only the last strike of this combo. I try to pay attention to what the feet are doing. And again, the overall speed is exaggerated for gameplay.



This is what the final animation looks like in the dopesheet. Even in the end, you could still see where all the main poses are. Things are still organized, and if I have to make any changes, it shouldn't be too difficult.


No reference was shot for this next one. I didn't want to hurt myself!





__________________________________________________________

Miscellaneous Preferences


Here are some additional, miscellaneous tidbits I prefer.

***Again I'm not here to spark up a debate or start a fight. I just enjoy talking to other animators about how they go about the "little" things and what they prefer. I always find it interesting and often times it inspires me to actually try that "new" way of doing something, just to see if it would work for me.
  • Up until now, I've mainly used spline tangents as the default for action heavy stuff and clamped tangents when working on subtler performing pieces. I hate to admit it, but I actually sometime use splines' overshoots to my advantage, mostly for the action stuff. I do acknowledge, however, that things could get a bit rubbery/ floaty if I'm not careful. These days I think I might stick to clamp as the default.
  • So far, I haven't found stepped keys to work too well for me. Maybe I'm not using it correctly. To be fair though, I'm going to give it another shot for the quieter acting pieces I'm doing these days.
  • Weighted-tangents--Again, I know animators who swears by them as well as animators who don't use them at all. There are great animators on both sides. I personally haven't used weighted tangents in the past as I think I prefer to set that extra key for more control (though I have been thinking about giving them another shot for the more subtle stuff. I'm pretty sure, though, I won't be using them for action) Here's my final answer to this debate. What matters is what the audience sees on screen--you're animation, not your tangents. Haha!--I managed to stay diplomatic on that one! Seriously though...find what works for you, but always keep an open mind and try new things.
  • Finally, I tweak tangents only in the end, and probably not too extensively. My reasoning for this is that the moment you adjust a tangent, it won't automatically try to smooth out the curve if you adjust that key. So if you touch a tangent in the beginning, every time you adjust that key, you will probably have to adjust that tangent. Plus it's too easy to let the OCD side of me kick in regarding numbers and curves, it's too easy to get caught up with the graphs and overlook the actual pose in the viewport.

As for the rigs, I generally prefer a clean simple rig, nothing too fancy. As long as it has FKIK switching and matching, and the controllers aren't confusing, I'm happy. Oh--and it has to have a low-res, unskinned, proxy mesh that can be toggled with the final mesh--I'm greedy when it comes to the playback frame rate. :) I do have a longer list of preferences when it comes to rigs, but I'll save that for another post.


TOOLS

Before you animate, get comfortable!

  • First off, get a bigger monitor or preferably a 2nd one. The extra real-estate makes a huge difference! If you can't afford one, save up. It's you're career, invest in it.
  • Get a good chair. Statistically, 8 out of 10 Americans will get some form of back pain in their lifetime. I threw out my back once and I can assure you, it's no fun.
  • Try out Evoluent's vertical mouse. If I'm on the computer for too long, my wrists starts hurting. Several friends recommended this mouse. I gave it a shot, and ended up buying both a left and a right one to alternate throughout the day. You could also try using a Wacom Tablet--yet another way to switch it up.
  • Check out RSI Guard - there's a free trial version. It's a program that keeps tab on how much typin'/ mousin' you're doing and reminds you to take periodic breaks.
  • Buy Quicktime Pro if you don't already have a "special" version. It's only 30 bones, but comes in handy when you need to save a video clip off the net, trim reference clips, or compress and export clips.
  • Take the time to set up scripts, hotkeys, and shelves in Maya. It may seem like a hassle, but you'll thank yourself when your knee deep in keys and curves.
  • Check my previous post for some of the scripts I use ("A Few Good Mels"). Go to Highend 3D for more.
  • Here are some of my hotkeys.

    x-ray toggle (very useful for finding that polevector or other controller that's hidden behind some piece of geometry) Map this command to the hotkey of your preference.

    $currentPanel = `getPanel -withFocus`;
    $state = `modelEditor -q -xray $currentPanel`;
    modelEditor -edit -xray (!$state) $currentPanel;

    I like to reserve my second monitor for the character GUI, the face GUI, my reference video(s), the finalShot camera view (if it's a cinematic), and my IM.
    Because of this, I set up these hotkeys.

    "h" brings up my
    grapheditor layout (2 panel splitscreen: 2/3 Perspective, 1/3 Graph Editor)

    "d" brings up my
    dopesheet layout (2 panel splitscreen: 2/3 Perspective, 1/3 Dope Sheet)

    "8" brings up my
    walk run layout (3 panel splitscreen: 2/3 Front/Side, 1/3 Graph Editor)

    I also map PlaybackToggle to "`" and "0". (under "Playback Controls" category)

    As for Maya's shelves, I love 'em! For each character I create separate shelves for them. One could be for body poses and selection sets. One could be for hand poses and another for the face. Regarding hand and face poses--these are just for speed. It's to get you maybe 80% of the way there so you could adjust quickly. Again, in a production environment, time is always a factor. You never seem to have as much time as you'd like, so you have to find ways to speed up the process--ways to buy you more time for the important shots. The quicker you get to 80% the more time you have for polish.

__________________________________________________________

PLANNING

I'm sure you've all heard that planning is super important. I totally agree! And although I put this section last, it should be first.

Before you start anything, ask questions

  • Know the purpose of the animation you're about to do. Find out how it fits in the bigger picture. If it's a cinematic, know what your shot is trying to show. Know the purpose of the character. Know what the shot is before and after your shot.
  • If it's a game, find out what this attack is supposed to do. Is it supposed to knock the enemy up? Back? Is it supposed to stun it? Kill it? Are there limitations? Is the animation supposed to be contained to an area? Is the attack supposed to hit at 4ft, translate only 5 feet max and have the player character rotate 180 degrees into the Idle Pose to face the enemy who's in the Prone_Back Pose facing you?
  • Simply put, the more you ask, the more you'll know. The more you know, the less likely you're going to have to redo that awesome animation of yours because it didn't fit into the big picture.

Observe

Regarding video reference, here are my thoughts.

  • Video reference is a great tool, probably one of the best in our arsenal. There is a small trap, however, that you should all be aware of.

You ready? Here goes.

  • If you're not careful, and you start to rely on it too much, you could become a slave to it.

Wait! Hear me out. This is what I mean when I say "rely."

  • The trap that you could easily fall into if not careful is to rely on reference too much...or better put, not use reference to it's fullest. This happens when you merely scrub through the quicktime file, find a pose, slap it onto your character, then move on to the next, rinse/repeat, as opposed to really analyzing and breaking down the mechanics or the emotional shifts embedded in your ref. You concentrate too much on the "what" is happening in the reference video and not enough on the "how" and "why".
  • If you've been using reference too much this way, then you've become a slave to your reference and you could run into trouble when it comes time to animate something that can't easily be referenced.
  • I've seen it happen. Heck, I've been guilty myself at times!
    Instead of just concentrating on "what cool pose can I find" concentrate also on "why is this pose cool or why is this pose happening and why do I need this pose here?" This way you're more likely to understand why things are happening and you'll be better adept at drawing from what you've learned the next time you have to animate something that has to be straight out of your head because it's something that's beyond what a human can actually do.
  • In the past I often tried to balance referencing my animations with a more spontaneous and gung ho method. Sometimes, I'll just jump into the computer with only a broad idea and see where my instincts takes me. Although caution is definitely advised here, this is why I've done it. First, maybe I just can't shoot reference for this crazy move. Maybe I have to finish this animation in a couple of hours. But seriously, I find that it can be a good thing for me to do from time to time to keep me on my toes--force myself to analyze and breakdown things a bit deeper for myself (body mechanics, weightshifts, underlying thoughts). I'd say about a third of the stuff on my reels was referenced, and probably less for all the animation assets that went into the final game.

Now...with all that said...

If it's an important shot, I'll most likely shoot reference if I can. I imagine if I were ever lucky enough to work on a film, I'm pretty certain I'd shoot reference for every shot that I'm able to shoot reference for.

Bottom line is--work the reference, don't let it work you.

Moving on...


Visualize!

  • See the animation in your head.
  • Thumbnail if you can. To be honest, though, I haven't been doing it much for the past 4 years. I do want to try to thumbnail more, though. I know of great animators who don't thumbnail, as well as great animators who do. I'm sure it's not absolutely necessary but it can help.
  • The clearer your idea is before you touch the mouse and keyboard, the smoother and usually quicker everything will fall in place.


POLISH

  • Once I'm pretty certain no major changes will be requested, I will then cross my fingers and start checking arcs, tightening tangents and adding and offsetting keys wherever I feel is necessary--on every frame for individual sections if I have to.
  • At this point, switch over to "free-form mode" and allow yourself to get a bit "dirty" with your keys. If you did your work honestly and you set a strong foundation, you'll be fine. Your graphEditor could end up looking like a mess, but again, it's what's on screen that really matters.
  • Perhaps step away from the animation for a while, work on something else, and come back to it later to get a fresh eye.
  • Also get feedback! Everyone could give valuable feedback, not just animators. To be honest, often times, my daughter and nephews give me spot on feedback becuase they don't over analyze. They just look at the big picture.

I have one final note about polish I think is quite important. The following could easily be misinterpretted so please, don't take what I'm about to say the wrong way and think of me as one who's just lazy or is always looking for shortcuts.

  • Basically, in an ideal world, you'd have plenty of time to polish every single animation you do. In the real world, there are budgets, schedules and deadlines.
  • This is where you need to prioritize your polish.
  • In other words, don't polish too early, layer your polish from big to small, don't over-polish what's not going to be noticed as much.
  • To hit this home a bit more, resist the temptation to polish those curves in the beginning (exception of course is when the main action depends on getting that curve accurate). Don't offset every finger or eye brow control if your character's only an inch on screen. Resist tweaking arcs and motion trails of that sword tip until you've seen your animation in game and it has been tested and approved.
  • On a bigger scale, every animation you do for the game can't be a portfolio piece. Time just doesn't permit. And if it does, let me know where you're working because I want an application! Of course you should alway do your best, but if you spend 3 days trying to polish every last inch of that get-hit animation, you're probably taking time away from that multi-strike, finishing combo, the one that the player is going to aprreciate more. I strongly believe you have to choose your battles, layer your polish in a logical order, polish what's most important first, what the audience will notice most. And if time permits, go ahead and make that hit-react a portfolio piece. I honestly think that if you try to polish every asset as you go along, you could end up with a less polished game because you may run out of time in the end to polish what really matters.

Now remember, I'm not advocating cutting corners all the time, The last thing I want to do is to come across as a slacker. All I'm saying is work smarter, choose your battles--prioritize your polish.

__________________________________________________________

So to re-cap my personal process in a nutshell
(in the right order this time):


Plan

  • Think before you animate, ask questions, know the constraints, know the purpose, know the character.
  • Visualize, have a clear idea. See the animation in your head. (this is something I'm trying to remind myself of more these days)
  • Reference (use it, analyze it, just don't be a slave to it)
  • Thumbnail (if you can, why not?)

Tools

  • Get comfortable, get ergonomic! (And don't forget to take breaks!)
  • Scripts, hotkeys, shelves -- Take the time to set them up.

Animate

  • POSES and TIMING (this is what I think it comes down to)
  • As a foundation, I key-all as I straight-ahead
  • Layering and offsetting (not initially, i do it later)
  • Dopesheet (this is where I like to adjust macro timing)
  • Graph Editor (good for polish, good for debugging hitches, just don't get caught up too early)
  • Tangents (I like to jump straight into non-weighted spline or clamped, but use what YOU'RE comfortable with)

Polish

  • Be smart - prioritize and layer it
  • Finesse arcs, tangents, curves, etc.
  • Get "free-form", get "dirty" if you need to
  • Get feedback
  • Step away and come back with a fresh eye.
  • Slip the supervisor a 20 so your shot could be approved.

_______________________________________________________

Final thoughts

Most of the stuff I've talked about works pretty well for me regarding action-oriented animations. As for acting and dialogue--that's a huge topic by itself, one that I'll be saving for a future post. I have an acting/dialogue workflow that I consider to be "in-the-works", since I haven't done as much performance as I have action. I'm still trying to refine that process. I'll let you know all about it in year! or hopefully sooner:)

I hope all of this made at least some kind of sense. I hope I don't look back on this 6 months from now and think, "what the hell was I thinking!"

If anyone has specific workflow habits that you feel works well for you, by all means, let me know! I'd love to hear it! I'm always down to try something new.

In the meantime, have fun, support others, be inspired.

Thanks for reading!

Sunday, February 3, 2008

A Few Good Mel's


Animation can be tricky, so anything that helps to facilitate workflow, I'm all for. Here's a few melscripts that I've found to be quite useful.
__________________________________________________________

pose2shelf
This is the first script you should have in your arsenal. It's a simple little script that allows you to save poses and selection sets to the shelf.

abxPicker
A very robust and versatile script that lets you create your own GUI (Picker) for your puppet.

shotView
Very helpful when animating to a specific camera. No more tearing off panels!

abxSmartKey
Key only what's highlighted in the channel box. Also use it to filter channels in the graph editor. Just don't forget to toggle it off when you don't need it.

snWorldSpaceTool
Copy and paste translate and rotate values regardless of heirarchy. Comes in handy when you need to pick up objects, set'em down, etc.

autoTangent
Quick way to soften tangents and correct overshoot when time is not on your side (esp. for multiple curves).

tweenMachine
Quick way to ease in and out of poses, again when you need to finish that animation by lunchtime. Sure you could just middle-mouse and key, but this is more fun.

cMotionTrail
Better way (in my opinion) to create motion-trails in Maya. I had a friend make a small mod to the script to include a delete (trails) button. E-mail me and I will share.

AnimRange
Good for breaking down long scenes into smaller, workable chunks.

animToolBox
A suite of some sweet tools.

__________________________________________________________
Lastly, I want to make sure I give credit and thanks to all the mel guru's out there that created these scripts and were nice enough to share them with us.