# data[].attributes.body
With the primary learning of the 12 principles of Animation, I've got a basic understanding of what it aims to show and how it is supposed to apply in the real workflow of wether 2D and 3D animation.

However, it contains a lot of aspects that an animator should pay attention to, including drawing, timing arrengment, shape  changing and so on. So I 'd like to devide these complex principles into four parts by the following elements: Speed, Force, Inertia and Expressiveness.

These four elements in my opinion are the underlying logic that produce 12 principles, in another word, they explain why animators are supposed to draw or make the motion in the way Frank Thomas and Ollie Johnston said, and also why 12 principles make motion not only closer to real life but also more attractive.

Speed

I'd like to say that speed determines the basic frame of action, so by adjusting the speed of object animators can convey the basic information of what is happening now, like how long the object moves and how fast it moves.

In my opinion, the principle of [Slow in & Slow out] and [Timing] are the most two related to speed controling out of 12.

To make motion slow in and slow out is actually adding more humanity by declining the speed of the start and the end of the motion. By doing so can make the moving object less like a machine even though it's not a human. 2D animators can achieve this by narrow done the distance between the position on every frame of start and end, while in 3D context,  the spline curves can do it automatically.

As for timing of animation, I think it's a way to control the basic speed and its changing to express what's going to happen clearly. With adjusting the density of key frame in a specific period of time animators can arrange the rhythm and pace of animation like conductor. Such as when doing extremely fast-paced motion, I can choose to sat more key frames to help people see what's going on more clearly, also I can choose to decline key frames to show how fast it is. With same speed but different timing animators can express different effect.

Force

Force is the reasong why the motion happens and changes,  also the reason why the shape changes. So I would like to put [Anticipation] and [Squash&Stretch] into this collume.

The most important thing about making anticipation is to make character/object prepared. On the one hand, before the motion start character needs to act in opposite direction to accumulate power, or to say to produce a force to motivate itself to do the next move, such as the arm will be bent backward before punching; On the other hand, anticipation is also a clue for next movement, the aim of doing it is making this preparetion visible, so that audience can be aware of the change of motion.

Squash&Stretch is the principle of making object's shape changes reasonable. And the reason why object changes is force, such as the bouncing ball will be squashed a little after touching the floor and stretching a little when its bounced upward, that's all because of the reflaction force from the floor. It may seems like a little different when we strecthing character's facial expression, but the exaggeration can still origin to the force character using to do the expression.

Inertia

When it comes to complex object combined by a lot of single parts, inertia explains why they seem like moving saperately. Pyhsically speaking, inertia is a character that object refuse to change the motion when there is a force happening. The attached part always follows the movement of the main part, starts after the main body and refuse to end when the main body stopped.

Principle [Follow Through & Overlapping Action] emphasizes the same thing with Inertia. This principle can be broke down to three kinds of phenomenon: Follow through, which describes the continueing trend in the same direction the attached part does after the main body stoped; Overlapping, or to say an offset of timing between the attached part and main body; Drag, the delaying happening on attached part after the main body started to move. All the three above happens when the motion change and inertia starts to work, that's why they are basically different aspects of same thing.

Expressiveness

The rest of principles is actually all talking about how to improve the expressiveness of animation. And it can be considered by two dimensions which are information and attraction.

[Staging] and [Secondary action] are the approaches to add more information to the motion. In the perspective of staging, animators can build up what they want the audience to know by using specific camera position, related surroundings, or adjusting the order of appearance and motion of characters. Also, with secondary action, animators are able to add more emotion to make how the character feel more visible for audience.

As for [Arcs] [Exaggeration] [Solid Drawing] and [Appeal], they are all talking about how to attract audience by optimizing drawing. Whether it is to add more curves in motion trajectory, make facial expression and movement more intensive, or try to draw the frame more realistic, design the character more interesting, all above are the ways to make the visual result of animation more convincing.

However, in the context of 3D animation, I think what's lying behind these  is more complex and multiple than just drawing. We can polish animation by adjusting the curve and exaggerate character's facial expression by adding more skeleton to control the deformation of the model, but also we can make the graphic more attractive by lighting and designing the texture.  I think the application of 12 principles in 2D animation is about guiding animators to focus on good effect and high efficiency of drawing, but in 3D animation they are related to a lot of stages in workflow.

# data[].attributes.body
In the first practinc task we are supposed to do a short animation clip of a ball with tail jumping over the gap. Following the turorial I found that Maya allowed user to adjust the pace and acceleration of the object's motion in a curve window, what I used to do is just adding more and more key frame on the timeline to make my motion natural, which did help but very limited. Using the tangent and optimizing the curve finally makes my motion smoothy like what I saw people post on the Internet.

# data[].attributes.body
Before I started to do the motion in Maya, I firstly drew a little motion board to help me understand what I was going to do better.

I marked the motion trajectory and the deformation on the board. However when I tried to copy it in Maya, I realized the board I drew is relying on my 2D animation experience, ignoring the influence of reflaction force from the ground. Also the skeleton doesn't allow me to change the shape of ball as the way I though when I drew the board. That made me feel the difference between 2D world and 3D world. So the final version of my ball is also not same as my motion board.

# data[].attributes.body
Here's another interesting discovery for me.

When I was doing the deformation of the shape, I originally planned to squeeze the ball at the exact frame when ball touched the ground. But the result didn't act well as I thought. After a whlie of adjusting, I realized that the bounce of the ball happend because of the reflaction force from the ground, so the deformation is supposed to happen after it touched the grouen, which means the squeezing frame should be staged after the touching frame. And that made the motion way more natural than it was.

# data[].attributes.body
I also found it a little difficult to adjust the tail when the ball jumping over the gap, so I took the suggestion of professor to find some reference like cat.

I watched some slowmotion vedio of cat jumping. Turns out the tail would curl up to accumulate power before cat jumps. And in the first half part of jumping, the tail will stretch again and keep itself on the same direction as the main body. On the second half when the cat falling, tail would curl again, which I'm still not sure wether it is aming to keep balance or just because of inertia.

Anyway, considering the reference of cat jump did help my jump motion acting more fluently.

# data[].attributes.body
I picked a screenshot from KungfuPanda to analyse the multiple forces in this scene. In this occasion Pao is pulling two big boat floating on the water to let his parterner tie them up. At this moment the boats and Pao himself reached a while of still, so in the contexe of force analysis, it must be some kinds of force balancing each other.

I marked the force functioning in this occasion, and choose one side( one boat, one hand, one foot )to analyse why are they balanced. Started with Pao, the powere motivated from his body produced the force of his hand and foot to pull these boat closer. However what's againsting it is the buoyancy from water giving to the boat. The buoyancy is a force straight come back from water surface, but  the pulling from his hand and foot has a little angle, which means he should pull harder than the buoyancy to keep it balanced. Considering of the influence of gravity and friction, it can be concluded as the little graph I drew on the upper right coner of the screenshot:

Buoyancy(water)-Gravity(boat+crew)+Friction(rope)=Pulling(hand)+Pulling(foot)+Gravity(Pao)

# data[].attributes.body
For the balanced poses this week I picked three different poses with obvious arc, so that I can analyse their balanced forces easier with the hint of this arcs.

I think their gravity center is on the line of the reaction force's direction, so that the gravity of the character and the reaction force from the floor could reach to a balanced station to make the pose stand firmly.

Except for that I also think that the gravity center is supposed to locate at where the arcs across each other. All of this balanced poses can be break down to two main acrossing acrs, that's how the character makes itself balanced in the perspective of direction.

This is how I figure out where the gravity center of the referenc is, also I use these two above constraints to check whether my bony reached balanced both in the front and side view.

# data[].attributes.body
This pose can be simpelized into two arcs, the acr combined with the main body and legs, and the arc of his arms.

Intersection of two lines is sat on his chest, and the intersection of the straight line started from this point to the floor and the surface line also locates at his standing foot, which means this point is the gravity center.

# data[].attributes.body
In this pose of ballet actress, it can be concluded into two arcs, one is the arc of her right arm and leg, the other is her left arm and leg. These two arcs acrossed with each other at the hip of the actress, and if we draw a line straight to the contact surface of her foot and floor, it would also across the same point on her hip, so that should be the location of her gravity center.

# data[].attributes.body
For this pose the two main arc is the arc of this man's arms, and the arc combined with his legs and main body.

Those two arc acrossed each other at the middle of his chest.

The vector arrow represents the reaction force from floor started with the contacting point between his hand and the stone also reached to the middle point of his chest, so that should be where the gravity center is

# data[].attributes.body
Based on the blog of Ray Chase, I can tell that useing ball to imitate the movement of character is a way to test wheather the timing and spacing of this animation is reasonable. It can exposed many problem in the previous stage of animation making in case that would be very complicated to fix in very later stage when lots of work already been done.

Actually when I was doing the ball animation to replace the character in the provided scene, I found that the ball is way more dynamic to imitate person than I used to imagine. The controllers on it's top and bottom can express the movement of the character's head and feet, as a result of it by seeing the stretching and deformation of ball we can tell how the character was jumping over the tower and climbing up on the wall.

Also the stripe on the ball can show the deriction of the character, and by adding key frame on the ball it's easy to control the acceleration and deceleration when the character was jumping over in the air, which make it possiable to check wheather the character's jumping is realistic.

Reference Material:

https://www.animationmentor.com/blog/3-reasons-why-every-animator-should-master-the-bouncing-ball-with-ray-chase/

# data[].attributes.body
I broke down the whole lifting process into 9 phases including 6 necessary move according to Williams' graphic reference and more specific 3 part additionally in my reference vedio.

Because in the reference vedio I found the character has an adjustment of his pose and attaching point of his hand after lift begin before lift extreme.

# data[].attributes.body
What forces are involved in the lift?

The whole motion is an upwards moving, so the forces upwards are more than the forces downwards.

The upwards force is the raising force motivated by this man himself, and the downwards forces is the gracity of himself and the heavy rock.

Basically the man is lifting himself and the rock together by his power produced by his muscles.

However on the horizontal level, the rock barelly didn't move before he pushed it on the platform, which means the force of the man pulling the rock to himself kept balanced with the reaction force and part of the gravity of this rock.

What muscles are being used to generate the movement?

This move is a whole body exercise with different part of muscles being responsible for different forces.

Abdominal and thigh muscles produced the power to raise up, which is the main force in the whole process.

Biceps, triceps on the arms and chest muscles generated the force of pulling rock to make it close attached to the man in case it fall down. And this part of muscles also pushed the rock onto the platform at last moment.

What is the line of action?

The motion line of the rock can be devided into two C curves, one is the line the man picked it up before lift begin, and the second is the motion trail of the lifting to the extreme.

The changes of the character's curves can be described as a curled up bowstring being unfurled, it finally hit to a big C curve at the extreme of the lifting.

Where is the centre of gravity?

The centre of gravity is always kept as the same level horizontally with the hip of the man, vertically it locates at the middle point between the man and the rock.

# data[].attributes.body
Among these five balls, I set up several sets of controlled experiments.

For ball 1 and 2 as gourp 1, I made them doing uniformly accelerated motion by staging the spacing bigger and bigger per every frame. When they hit the wall, both of them bounced back a little and decelerate to still.

For ball 3 and 4 as group 2, I added an anticipation before they moving forward. Also instead of adding more key frames on transition, I added more keys to control its deformation and made them stop and stick to the wall when they hit it.

By the comparation of Group 1 and 2, it's obvious to find that the balls in group 1 are more likely to do the movement by external force, while balls in Group 2 seem like to move motivated by internal force.

In Group 1, ball 2 has more exaggerated deformation than ball 1, which makes ball 2 seem to be made in softer material.

In Group 2, ball 4 has more exaggerated deformation and less key frames on spacing, which makes ball 4 more cartoonish.

# data[].attributes.body
For the main task of this moudle I decided to make an animation clip of a duet dancing. As the choice of the reference, I need it to be clear to analyses and able to achieve by the basic animation skill I learned in this semester. So I watched a lot of types of duet dance, including ballet, tango and latin, considering about the frequancy that two characters touching each other and the difficulty of their gesture, I finally choose a clip of modern dance. The touching part between two dancers is not that complex as the others, and the position of their touching basically stays on a same point. Also the turning of their body is quite limited, the most challenging part in the clip is the male dancer holding female one turning for just one round.

# data[].attributes.body
I broke the whole dancing into 4 strongest poses and a turning part.

For the 4 main poses before the final turning part, I drew the analyses graphic to find their gravity center and make sure how they keep balanced.

In these poses, I think what needs to be paid attention to is the placement of the two characters’ feet and the support of forces between them. In some movements, the female dancer needs to use the strength of the male dancer to stand up or lower her waist. The supporting may influence the position of their gravity center and make two dancers combined together and keep balanced as a whole object but not keep balanced individually.

# data[].attributes.body
Before I started to add keys on the characters, I organized when to active the constrain relationship between their hands and body previously.

First of all, I sat a locator for each of their hands, because although the position of the contacting point is very stable, still there are some micro movements when they are holding each other.

I tried to bind the hand and the opponant's geomatry or some specific vertex, but none of the above two methods worked out, so I bind their hand to the nearest controler of the opponant's body such as the wrist and the shoulder at the end, although it's not the same way that the tutorial vedio in learning material, this kind of way still successed to get the dancers connected.

# data[].attributes.body
I made blocking from the strongest poses, and then added more keys to make it working fluently.

But when I finished the blocking I found that there were a lot of sudden pops in a consequent movement. For example in the turning part, the more keys I added the more pops happened on the famale's head, and it made the whole movement very unstable.

So I stopped adding keys blindly, and thought about which keys need to be kept when I started to spline the whole animation.

# data[].attributes.body
I post my blocking on Shotgrid and talked about it on the lecture with Claire and classmates. They gave me some feedback about the motivation of two characters.

Apparentally now it seems like the male character is carrying the female character moving around, but not the female one is motivated by herself, especially in the turning part, the female character was more like a doll who is carried by others. However in the reference video, although the female one was supported in some movement, still we can feel her subjective initiative.

To solve this problem, I dragged the keys of the female one in some particular part forward to make offset between those two characters, so that the beginning of a move for each one can have a micro time gap, which means they started a same move by different time.

With this adjustment, some parts in the whole animation, such as when the female dancer standing up by herself with the support of the male dancer, became more reasonable than they used to be.

# data[].attributes.body
At the beginning when I was doing the blocking for the animation, I left both of the dancers' hands as IK in order to connect the non-constrain part with the constrain animation better. But the result of doing so produced lots of sudden frame skipping on their elbows. Also it made the following animation of the hands when they need to move on the same direction of shoulder or the whole upper body more difficult to spline. Same thing happened on the legs of female dancer when she was carried and turning on the air.

So I started all over on those frames where the limbs follow the movement of the main body, changed the dancers' hands from IK to FK. With that transition I can drag frame to make some offset between neighboring controllers, which will make the animation more dynamic and reasonable.

# data[].attributes.body
When I started to spline the animation I found a very serous problem happened on almost every controllers that contains rotating simulation on three dimensions, especially on the female dancer. Her wrist and hands sometimes rotate by a very exaggerated angle between two neighbboring similar key poses . On the curves graph, when this kind of chaos occurs, a huge gap is inexplicably created between two similar key frames.

Turns out it's a common problem in Maya called Gimble Lock. It happens because in the way that Maya simulate the rotation of an object there is always a set order for dimension x, y and z. Or in another word, the three dimension are simulated layer by layer. For example in my task's scene dimension z is the inner layer, x is the secondary and y is the outermost layer. So when I rotate on dimension x, except for the object itself dimension z will be rotated too. In some occasion two dimensions may coincide with each other, that's when Gimble lock happens.

The trick to solve it is to find the direction the object is least likely to face and make it the outermost layer in three dimensions. However as for my female character, especially her waist, basically she doesn't have a direction where she didn't face at all. So what I can fix is to delete the frames that suddenly jumped up or fell down and reset them. When I reset those keys I try to rotate them by the order of z, x, y and totally adjust them on the graphic, avoiding to use the controller, to keep them reasonable. As for those parts that still cannot be solved, keyframes can only be set frame by frame to ensure smooth movement visually.

referenced material:

https://youtu.be/zc8b2Jo7mno?si=IiL9_YKcrwZDbSaG