Animation Fundamentals Submission

Showreel:

Interpretation:Below is the hyberlinks of my challenges and other practice. Since I update my blog nearly once a week, each post may covers several things. For example, a post covers challenge, practice and research. Therefore, you may find some of links below is repeated. I have added subheadings in every post so you can easily find what you want to check.

Challenges Hyberlinks:

Challenge 1: 12 Principles of Animation research/analysis

Challenge 1: Good & Bad Animation research/analysis

Challenge2: Bouncing Ball with Travel

Challenge3: Bouncing Ball Obstacle Course

Challenge4: Solid Posing

Challenge5: Ball & Tail Animation

Challenge6: Walk Cycle

Challenge7: Finding/Recording Reference Footage

Challenge8: Body Mechanics Animation Part01

Challenge8: Body Mechanics Animation Part02

Challenge9: Advanced Body Mechanics Animation

Challenge10: Lip Syncing

Challenge10: Performance Animation (Pre-Viz)

Additional Works Hyberlinks:

Tracking shots and Render farms

Match Moving

IK FK Switch

Camera Rig & Gimbal Lock Research

Camera Animations

Week_10: Camera Rig & Gimbal Lock Research & Performance & Camera Animation

Camera Rig

This week we learned how to rig a camera which can be controled more precisely than the original one. The main idea is data transfer, inherit and attribute connection.

Firstly, set up camera and groups(create+rename):

Create attributes on controler. Use connection editor to connect translation attributes and controler attributes:

Create attributes
Connect attributes

Create nurbs plane, set materials, using driven key to connect focal length attribute and plane’s translation:

Set driven key

Remember, set the graph editor line to linear.

Final result:

Camera View, viewport and attributes

Gimbal Lock

I also did a further research of gimbal lock. The reason why gimbal lock happens is quite easy to be understand: two rotation plane coincide with each other. But what will happen in animation when there is a gimbal lock?

I find a great video, which solves my problem:

This video mentioned several things, which are quite important:

  • In maya, local object rotation mode is just a visual guide to demonstrate rotation more clearly, under the hood the software is still using Euler System to calculate data.
  • Gimbal lock always exist, we can just change the layer of x, y and z axis to decrease its probability.
  • In maya, Z-X-Y is a better axis arrangement, which can effectively prevent gimbal lock from happening.

From the video we can know that when gimbal lock happens, the rotation of object will have some problem. When people using local rotation to animate one of the demensions(for example, rotate 40 degrees in local z axis from frame 0 to 20 when gimbal z is locked), object will rotate not in a straight direction but a strange arc because the system has no access to the real z axis. Therefore, all axis need to change to fit the animation requirement, which causes the strange arc. That’s why preventing gimbal lock is important.

So how to prevent gimbal lock?

The answer is, find the direction the object is least likely to face and put this axis in the middle layer. For example, in maya ZXY or YXZ are recommended for cameras, since cameras seldom rotate 90 degrees on x axis.

This theory can also be applied on character rigging. When the rigging system used XYZ as the principle, people should use Y axis as the limb bones direction, since human body never rotate his arms or legs in 90 degrees (or the body will hurt itself). by setting Y axis as the limb bones direction, the rigging can avoid gimbal lock.

Camera Animation

Pan Shot:

Roll Shot:

Pitch Shot:

Dolly (and Pan) Shot:

Crane Shot:

Focal Length (Contra Zoom):

Performance & Pre-Viz

Since I did some of my character performance last week. This week I focused more on the details of character performance.

I showed my animation to my classmates and they suggested me to add some breathing animations to the character so his body movements can be more realistic. I also talked with Alan and he suggested me to add more variations on the weight, or the body controler. Their suggestions are quite important and accurate because normally human chest should keep moving because they need to breathe all the time. Also, when people talking or just standing on the ground, the centre of they weight should keep changing, which can make people feel more relax.

Therefore, I used animation layer to add a infinite breathing cycle animation on character’s chest controler. I adjust few times to make sure breathing animation can be noticed but still not quite apparent.

Then I added more variation to the body controler. When character’s upperbody moving forward, the body controler moving forward, too. The weight centre of character also keep changing when character is talking.

I finally checked my mouth animation one more time and find out that some of the mouth movements are too fast. Therefore, I deleted several keyframes on jaw controls and optimized the whole animation to make it looks more natural.

Here is the final result:

Week_09: Phonemes and performance

Research:

Facial animation can be one of the most important parts of 3D animation. Unlike body performance, facial animation focus more on details and emotions rather than body mechanics. How to accurately express character’s emotional feelings and match the shape of mouth with lines are facial animation’s targets.

Facial expressions:

To create organic facial expressions, one of the most important things is to keep all parts of face moving. Sometimes animaters just focus on animating one part of character’s face when they are making facial animations. However, each part of character’s face should affect each other. For example, character’s eyebrows, nose and ears should also move when it’s mouth moving.

Another important thing is paying attention to the shapes, especially the shapes of mouth and eyebrows. Good shapes can clearly express the feeling of characters.

Some other techniques are also useful. For example, exaggeration, squash and stretch, etc.

mouth expressions

Reading Lines:

Animating lines is also an important part of facial performance.

There are two ways to animate lines:

  • Animate by layers (step by step): starting with jaw, then the corner of mouth, then the open or close of lips, then tongue and teeth, then other parts of face.
  • Animate by parts (finish the whole shape and then turn to another one).

Some tips on animating lines:

  1. Analysis the dialogue before animating. Breakdown the line, trying to find the most apparent changes of mouth shape. For example, the shape of sound “Oh” or “Ah”
  2. Do not breakdown the line by “words” (For example, A, O, I), focus on the “sound”.
  3. Don’t make mouth moving crazy. Do not simply make every shape of sound and then connect them together, mouth is lazy when people talking. Find the transtions between each words and animate them naturally.
The relationship between mouth shapes and words

Challenge 10: Phonemes & Performance (Lip Syncing & Facial Animation)

Part 01: Find audio clip

To make the lip syncing and facial animation, I recorded the audio clip of a line from game The Last of Us. The audio and acting performance in this game is great, which can be a good reference for practice.

The Last of Us (2013) by NaughtyDog Studio

Here is the audio reference:

Below is the original performance, great facial animation (Naughty Dog does all facial animation by hand)

Part 02: Audio clip breakdown

I tried to breakdown the line and analyse it before I make the animation, which can help me to find out what result I want in this animation.

The line is:

Do you even realize what your life means? Huh? Running off like that. Putting yourself at risk… it’s pretty goddamn stupid.

I listen the audio clip for several times and stratify the emotional statement of this character:

Do you even realize what your life means? Huh? Running off like that. Putting yourself at risk… it’s pretty goddamn stupid.

First layer: Angry, but trying to control his emotion

Second layer: Let off some steam

Third layer: Quite angry

Fourth layer: Angry, and slightly mocking

This can be a guidance for me to record reference footage and adjust my animation.

Part 03: Jaw animation

I firstly add the Jaw Bounce animation to build up the framework for this animation, which can help me to get the rhythm of it.

Jaw Bounce animation

Jaw_animation:

Part 04: Animate mouth shape

After that, I spend more time to animate the shape of character’s mouth to strengthen the emotion of him. When the character speaks angrily, his mouth should move more obviously.

Part 05: Animate nose & tongue & teeth

Then I add some details to my facial animation. For example, add tongue actions, teeth animations and nose animations. This part of animation can make the whole mouth animation look more natural.

Adding mouth details

Part 06: Animate eyebrows and eyeballs

After jaw and mouth are animated, I start to focus on eyebrows. From the audio clip we can realize that the speaking person is quite angry. Therefore, eyebrows animation should demonstrate this mental statement.

I record an acting video by myself based on the audio reference.

Bad performance actrually,

Let me die, man

Anyway, it is still quite useful as a reference.

By using this visual reference, I add more details to character’s eyybrows and mouth. Then I animate some small movements to the eyeballs to make the character more realistic.

Eyebrows and eyeballs animation

Part 07: Animate eye blink and adjustment

Then I add eyes blink to make the character looks more natural. Setting blink attribute to 0.7 can get a good result. However, it seems that the character’s eyeballs and his eyelids clips when the character is blinking. In order to fix that problem, I use the crash correction attribute on eye_head control to adjust the radius of eyeball.

Here is the final result of facial animation:

I also animate the upper body of this character to make the animation more interesting.

Version_01 (still need to be polished):

Recent problems: I think the second half of the mouth animation still has some problem. The jaw animation, which is the fundamental of this animation, is still need to be adjusted. As Alan said in his recordings, jaw animation is really important, which is the guidance of the whole animation. I will check my animation this week and spend more time to practise making jaw animation in the following weeks.

Update01 (09/12/2021):

I add the final part of the animation and adjust a little of the mouth animation. Here is the Version02 video:

Version02:

Week_08: IK FK Switch & Advanced Body Mechanics

Research:

Advance body mechanics can be an upgrade of body mechanics, which covers more complex animations. Characters need to interact with the surrounding environment more frequently, and a more flent actions is required.

It seems quite difficult to animate an advanced body mechanic animation (I will call it ADV animation in later parts of this research). However, the methodology of ADV animation is almost the same of body mechanic animation. We should also follow the steps like:

  • 1: Find or record video reference
  • 2: Blocking the animation
  • 3: Polishing the animation

When making ADV animation, people should spend more time to adjust their blockings to make sure each part of the character moves correctly.

Sometimes poeple need to switch Ik and FK to get a better result of their animation. Remember to duplicate the body as a guidance so that people can match character’s body after switching IK and FK. Some characters may have seamless IK&FK switching attributes, which may accerlerate the process that I mentioned above. However, in most of situations, Ik&Fk seamless switching is achieved by using plugins or scripting (expression nodes, mel or python), which is too complex for us to learn. Therefore, mastering the first solution can be a better choice.

To sum up, ADV animation is more like a summary of foundamental animation, which requires us to use all the techniqes that we learned in the past few weeks. It is more challenging. However, it can also take our techniques to another level if we learned something from it.

IK&FK Switch

This week we learned how to rig an IK&FK switch system. The main idea is using parent constrain, creating new control parameters and then using driven key to transfer data.

I used to rig the IK&FK switch system and I find out a better way to rig this system. The main idea of this new method is transfering data by using the node editor in maya instead of setting driven keys.

Firstly, rig and blend skin, then using parent constrain to blend main skeleton, IK system and FK system.

blend main skeleton, IK and FK systems

Secondly, build out controlers, then using group to store tranfer and rotation data. Keep the controller data clean.

add group and controller, locate position

After that, adding IK&FK switching parameter, using node editor to transfer the output of switching data(0 or 1) to the input nodes of parent constrains and IK&FK controllers visibility node. Inverse node is applied to reverse 0 or 1.

connect parameter input and output

Therefore, when switching the switch node, the visibility of IK&FK controllers and the statement of constrains will change. By using this method we can even add IK or FK font to the switch controller and control their visibilities, which can make the switch system more handy.

I also did a leg rig practice, which covers ik fk switch, 360 degrees foot controler, a followed knee controler (which let knee controler to follow when the foot is moving upward or downward) and basic skinning. You can see the final result in this short clip:

P.S.

Another common ik&fk blending rigging is using blend color node in maya, which is faster than parent constrain in calculation.

Just connect the rotation and translation information of ik and fk to the blend color RGB channel inputs and then output them to the main skeleton system. Then connect the output of ik&fk switching attribute to the input of blending to control the bias. It is a quite simple way to achieve ik&fk switching, which is much faster and easier to be understood.

Challenge 9 : Advanced Body Mechanics

This week we did advanced body mechanics, which means that the animation covers at least two actions. For example, a run&jump animation or a walk&sit animation.

I searched reference online and finally decided to make a run&jump animation. Below is my reference video:

reference video

I firstly added keyframes inside maya, then I blocked out the animation to make the animation more detailed. After that I started to smooth the animation in graphic editor and then added more details to it.

Version01: after smooth

Camera01
Camera02

However, I realize Version01 still has some problem. When one of the character’s foot touches the ground, the action is not quite right. I adjust the foot movements of these frames and get a second result, which is a little better:

Version02:

Version02

Atfer that I added some environment(cliff, fog, sky) in the scene to make a better rendered video. I used Redshift Render to render the final animation and added motion vector layer in AOV, which can help me add motion blur in After Effect later.

Here is the final result:

Final Render

Week_07: Body Mechanics: Challenge 8 (Part 2) & Match Moving

Challenge 8 (Part 2): Body Mechanics

Add breakdown&smooth

After I added the throwing ball animation breakdown I realized that character(Ray)’s controllers are too complexed to be controlled (too many secondary controllers). What’s more, the complexity of character controllers make the adjustment of knees’ shaking quite difficult. Therefore, I turned to animate the default weightlifting animation.

I added breakdown to the character, increased some arm stretch and then adjusted the graph editor to make the actions smoother. I also added a little bit of shaking when the body stays still. Then I added some lights and ground plane to help demonstrate the animation better.

Problems: I think the weight of animation still need to be improved. The action is not power enough when the character is raising the barbell, which looks a little bit unnatural.

Render&Motion Blur

I used Redshift Render to render the final animation and added motion vector layer in AOV, which can help me add motion blur in After Effect later.

Motion Vector layer

After rendered the EXR files, I put them into After Effect and adjust the timing and color balance. Here is the result without motion blur:

Then I added the motion vector layer to RSMB, which is a motion blur plugin for AE:

Here is the final result:

Match Moving

This week Dom taught us how to track the scene to build a camera and then let a 3D model follow the character in the scene. The main idea is build a camera by tracking the background and then track the character to get data of movements.

As usual, we rebuild the camera by using tracking points. We firstly added several tracking points to the background. At first tracking the static objects is quite easy. However, there are some people walking in the background, which adda some difficulties to tracking. We used another tracking method to solve this problem, which is forward and backward tracking .

Track the background

After optimized the background tracking points, I then focus on the head tracking. I added another point group and rename it to “Obj_points” to seperate it to the camera points group. When adding points to the head, I focus on man’s forehead, ears and nose. Tracking head really takes plenty of time and energy. Finally, I got something like this:

Head Tracking

After that I optimized the scene again and then loaded ironman mask model into the scene. Firstly I turn to frame 1 to match the mask with man’s head in 3D space. Then I clicked the buttom on the top slide, ironman mask automatically matched the points on man’s face. There is no shaking when mask is moving. I’m satisfied with the result.

Then I export Mel file and sequence to Maya. When the Mel file loaded, a camera with animation and a tracked ironman mask has already been added in Maya. After loading sequence as image plane and adding some materials to the ironman mask, we get the final result.

Loading Mel and sequence in Maya

Here is the final result:

Week_06: Tracking shots and Render farms

Tracking shots

This week we turned to learn tracking shots with Dom. The main target of this class is to track a scene and then rebuild the original camera with moving data on it, which can help people adding other 3D models to do VFX in the future.

We used another software to finish this challenge, which is 3D-Equalizer, a professional industry leading tracking solution.

3D-Equalizer

I firstly loaded the sequence that we need into this software. Then I start to track the scene by adding tracking points. Tracking points can automatically calculate the scene and then build a camera in 3D space, which almost matches the same camera that we used in real life.

To track the scene more accurately, I adjusted the color of the scene to make sure there is more contrast. We only track the part of scene which has great contrast.

After we tracked the whole scene, we got a lot of points in the scene, then we moved to calculate and rebuild the camera.

After I entered the data of lens, I started to calculate the distortion of lens. The software will automatically calculate the data of distortion and add it on the camera. After all of the calculations we can get an accurate camera. We can even add some box to the scene, which will stay still in the scene without shaking or shifting.

Calculation
Add Box

After we built the camera, we can export a Mel file to Maya, which will help us build the tracked camera in a scene and load these points as locators. Therefore, we can use these locators as reference to rebuild the whole scene by modeling.

Here is final result:

Load Mel in Maya

Week_05: Challenge 7&8 (Part 1): Footage, Setting Up Maya, Exploring Rigs & Blocking Out Body Mechanics

Challenge 7 : Footage

Since my shooting equipments are not quite good and space for shooting is limited, I turned to search animation references online.

For the basic body mechanic exercise, I choose to make a throwing-ball animation. I searched for footage and finally used this one:

Challenge 8 (Part 1) : Settings & Rough Blocking

Following with tutor’s guidence, I choose a model called Ray as my character animation trainning asset. Ray’s body is fit, his arm and legs are long enough to represent a good body movements.

Ray

Ray’s rigging is quite complicated. Therefore, I used Mel script to make several simple plugins to help me select these controls. I also set up image planes and import my footage inside maya, which helps me to make poses.

I did roughly blocking of the main actions of (every 8 frame) and spent more time to optimize my poses. I tried to make the throwing action looks more powerful and make sure that body mechanics of the character is correct. I think this blocking may still have some little problems so I will keep adjusting this animation when I am free.

Ray_ThrowingBall_View01
Ray_ThrowingBall_View02

I trying to add breakdowns, smooth the graphic editor to check the animation. I realized that the left knee and his head has a little bit shaking (especially the left knee)when the character’s body comes back after he threw the ball. I tried to figure out the reason but the shaking still remains.

What’s more, it looks a little bit unnatural when the body comes back after throwing the ball (upper body, especially spine and shoulder). I still need to check each controler later.

Week_04: Walk Cycle & Emotional walking

Research:

Walk animation is an important part of 3d animation practice. Walk animation can be veriable depending on the characters emotions, jobs and other elements, and it is the fundation of character running, sitting and other related animations. Therefore, the practice of walk animation should follows the whole life of an animator.

For 2d animation, the walk cycles can be separated into four basic stages: Forward Contact PointRecoilBack Contact Point, and High Point. This method can also be applied into 3D area. In 3d walk animation, 4 key poses are required:

In a normal walk cycle animation a character takes two steps in 1 second (24 frames). But the first and the last step hook up into the same pose so that it can be looped again and again.

It is important that each part of character should be active to make the character walking lively. The highest point of the character should also be a fluent curve (more like a sin/cos curve), the weight point of the body should keeping up and down/shift to right or left during the whole animation to keep balance and energy.

Challenge 6 (Part 1): Walk Cycle Blocking & Emotional walking

Following with the timing and key poses guidance, I made a rough blocking walk cycle.

In this part, adjusting key poses to avoid knee popping is quite important.

  • Rough-blocking walk cycle:
Rough-blocking walk cycle
Wireframe version
  • Emotional walk:

I animated a walking alien warrior. He whips out his weapons and then walks quickly towards his enemy. I tried to make him looks angry. His upbody leans quite forward and maintains sharp vigilance.

Angry Warrior

Challenge 6 Part 2: Walk Cycle Splining & Clean Up

After roughly blocked the walking animation, I added body squash & stretch, cleaned the graph editor and made a moving forward walking cycle. I used copy and paste to drive my character moving forward and used locators to check whether cahracter’s feet are located in the right positions.

I then added lights, cameras and ground to better demonstrate this animation. Below is the version01 of my walking cycle:

Walking cycle
Side View

Alan told me that the sense of weight is not enough, which means the body movement should be more apparent. Therefore, I exaggerate and adjust the body movements on Y axis (world Y). I also add some squash and stretch on character’s legs to avoid knees’ popping when character moving forward.

Below is the final result:

Walking cycle
Side View

Week_03: Ball & Tail Animation Challenge

This week I used a ball & tail model to animate a “jump up stairs” animation.

I firstly made a simple step-to-step jumping forward animation. Then I moved some stairs to the left and others to the right. I adjust the main body movements of that character so that it will turn its body before jumping to another stair.

Make simple jump first

I paid more attention to the tail movements. The tail should not only move upward or downward but also turn right or turn left when the character is in the air. After blocking the basic tail animation I then modified curves in graphic editor and added some overlapping to it.

Body movement and tail movement

Below is the animation, shoted by 2 cameras.

View01
View02

Problems: From my perspective, I think the tail animation between stair1 and stair2 may has some problem. That part of animation is still not quite fluent. What’s more, I think the body-turning movement is not quite natural, which I am still looking for methods to solve.

I then talked with Alan and he think the final part of the animation has some problem. For example, body should turn its direction after it hits the ground, not just turning in the air. What’s more, the tail should stop much slower, which can be more real.

I adjust the body part and using exaggerate tools to extend the time of tail-stopping part.

Here is the final result:

View01
View02

Week_03: Solid Posing Challenge

I used Bony Character Rig to pose 6 poses, which including playing football, jumping, punching action poses and sitting, fear and happy drama poses.

I firstly searched human poses on the internet. After selected poses that I am satisfied with, I then analysed the anatomy of these poses. I paid more attention to the rotation of clavicle, hip, waist and the center of gravity.

The secong part is building poses. When I creating action poses, I tend to move the center of gravity away from main body, which can help people feeling the weight of actions. When I creating drama poses, however, I paid more attention to the balance among different parts of the body and make use of body gestures to show charactor’s emotion status.

After making the prototype of poses I then spent more time to polish them. I adjusted these poses again and again to get proper silhouettes, which are quite essential for the level of appearance of poses. I also made some small objects like football and sofa, putting them in proper positions to make character’s actions clearer than before.

Then comes to the lighting part. I used an Ai dome light and three Ai area lights to illuminate my scenes.

lighting & Staging

Below are my six poses. Rendered with Arnold:

Action Poses/References:

Playing Football Pose:

Playing Football Pose
Reference

Jumping Pose:

Jumping Pose
Reference

Punching Pose:

Punching Pose
Reference

Drama Poses/References:

Sitting Pose:

Sitting Pose
Reference

Fear Pose:

Fear Pose
Reference

Happy Pose:

Happy Pose
Reference