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:)