Sunday, 17 February 2013

Project 2 - PART ONE: Weblog journal entries


Final Project 2

1. Character 

My robot name is Jerry.

Jerry work scope is stacking up stock boxes, he works from Monday to Friday, 8a.m to 6p.m daily and he have to stack 5000 of boxes each day. His workplace is at Woodland and he lives at Tampines, which he spends 2 hours in travelling back and forth. He wake up at 5.30a.m each morning and will only reach back home at 8p.m.

This 2 weeks is the hot season week as it is Chinese New Year festival so Jerry have to work everyday from Monday to Sunday at the same timing, he do not have any off days. Today is the 8th day that Jerry had been working consecutively.

Current situtation

Is going 6p.m now, Jerry is feeling so exhausted, he is so lacked of sleep nowadays that every morning he always face challenge of waking up. All he is looking forward to, is finish stacking the 5000 boxes. The more boxes he stacked, the more tiring he feels. Each time, he has to force himself to bend down his arm and stack the boxes. This thought "How many more is left to stack..." had been going through Jerry's mind umpteen times.

2. Storyboard 


3.   Self-Critique 

I am quite happy with my final result. As everything goes according to plan even thou the process of doing it is not easy and I faced some difficulties completing it. The problem I faced are, time management, adjusting the key frames, animating the emotions of the robot and the stretch and squash technique. However, after a couple of times of trial and error and also seeking help from my classmates and teacher, I managed to do all the requirements!

The most important things to do in this project is the key-framing and animating emotions. For example, Jerry is feeling exhausted so the speed of picking up the boxes will definitely be slow as he is tired so the time frame in between before he pick up the box and when he pick up the box will be a long period of time.

As for the emotions of the robot, at the start the Joint4 is all the way facing down when he picks up the 2 boxes in front, so after he picked up the 2nd box, I adjust the Rotate X wanting to show the emotion of the robot sighing. It give the impression of looking up to sigh then look down again, as if saying that "How many more..."

Lastly, I added the stretch and squash technique to the ball to make it look more realistic. As in a real ball in will all stretch and squash when it is hitting something. Squash is used when it is hitting something and stretch is used when it bounce off.

So, that's all for my Project 2!

Sunday, 10 February 2013

Week 12 Exercise 1 - Beach Ball Animation


Firstly, set a new project so that this beach ball will have its own document folder. Next, set the preferences which is the default settings and the change the size of the grid.

Next, create a ground using the polygon primitives and select at the 200 value. Now, choose the NURBS primitives and scale the ball to 15. Move the boxes and enclose the scene and now I can hide the camera.

Create a camera for rendering. Go create > camera > camera & aim. After that, add the resolution gate so that it chooses the place where you put to see, outside the resolution gate, nothing will be chosen. Now, I assign new material to the ball by when i right click it and go to assign new material > blinn. Change the setting attributes and choose create render node and choose 2D texture and ramp. Next, assign new material for the ground also. After assigning, now I add a bump map.

Next, to animate the ball, station the ball out of the camera view, rotate the ball and freeze the transformations. Go into the graph editor and edit it using break tangents to edit individually and now the ball is bouncing smoothly.

To make a squash & stretch effect, create deformers > non linear > squash. Go under attribute editor and the "Factor" determines the effect. Now, link the squash handle to the ball. Click on the squash handle then the ball and press "p". To set the key frame, I just select keyframes and and it. To manage the time of the animation, I can use dope sheet and manipulate it. Window > animation editors > dope sheet.

To add lighting, create > lights > directional lights. Then move the light out of the ground and rotate it to whichever lighting suits. Choose the ray trace shadows then change the shadow to grey. Now the ball has a dark side so to make it look better, choose ambiance lights and put it below the ground.

Final Product:

Week 14 - Digital Character Animation


For the video above, it is the Anticipation. The video shows a person process of kicking a ball.
The reason why it is suitable for Anticipation is because, it show a person natural way of gaining momentum before an action (kick the ball) begins. A natural way of gaining momentum in this video is, the person slowly lift out her leg to kick the ball.


This video is about Creating Holds. Creating holds mean keeping a pose on the screen for a specified period of time. In this video, the person hold a ball for a period of time before placing it down on the floor. Similarly, the person waited for a short period of time before picking up the ball again.


This video is Follow-Through. Follow-Through is when a character comes to a stop, not every part of the body will stop at the same frame. In this video, the person stop in a position but her hair is still flying/moving.

This video is Overlap. For overlap, it is similar to Follow-Through but the different between them is that in Overlap, it happens during the motion while in Follow-Through, it happens only at the end of the motion. In this video, when the person let off the ball, it first bounce and continue bouncing till a stop.

This video is Squash and Stretch. For Squash and Stretch, it simply means the object will change it shape as you apply force to it. In this video, the person first squash the ball using force then the ball will stretch off by to it original shape when the force is removed.

This video is Secondary Action. For secondary action, it means that after the primary action, secondary action will happen. For example, in this video, the primary action is the person throwing a ball but as she throws the ball, her hairs and jacket are both moving so this is the secondary action we are talking about.

Monday, 4 February 2013

Week 13 - Exercise 4


Pixar Short: Luxo Jr. HD

1)  Apart from their different sizes, it is obvious from Luxo Jr. that the big lamp is “older” and that the small lamp is “younger”. 

How is this communicated by the animation? Give at least THREE examples.
Do NOT say because the small lamp is playing with a ball, or that its name is Luxo Jr. – you should be looking at the animation, how the lamps move and emote (emote means to express emotions).


Apart of their different sizes, here are 3 examples that show the big lamp is "older" and that the small lamp is "younger":
  1. When the ball first hit on the big lamp, it did not play with it but instead it kick the ball away.
  2. When the big lamp saw the small lamp playing with the ball, it did not really join in the fun but just look at the small lamp playing with it.
  3. The big lamp is calm unlike the small lamp which is playful. In the last part, it end with the big lamp shaking it head when it saw the small lamp found another new big ball to play with as if saying that the small lamp never learn it action.
2)  Give an example from Luxo Jr of how timing is used for comic effect. Explain how the timing decisions contribute to the humour.

At 1.25, the small lamp start to walk off after bursting the small ball but after 8 seconds, in 1.33, the small lamp came back with a big ball! The timing is just right, it wasn't too long nor short. In 1.25, many of the viewers might have think that it is the end of the video but just as we thought it gonna be the end, the small lamp came back which kinda of surprised the viewer pleasantly!

Also, in 1.31, it shows that the big lamp is looking at the small lamp which is at the other side of the room but after 2 seconds later, in 1.33, the big lamp flip up, giving off the shock and surprised that the small lamp came back with a much bigger ball! The effect given is funny and cute as well ^^

3)   When you create a joint chain, these form a hierarchy, with the first joint at the top and the last joint at the bottom. Explain why this is necessary for the joints to work properly.

I had mentioned in Week 13 - Exercise 2 post, the order of selection is important. You want to select the child node first, and then Shift-select the item that will become the parent node second. It is because it will follow the same direction of where it is moving from the first joint at the top till the last joint at the bottom. In another word, the joints below the top first joint will follow the movement of the top joint!

This Week 13 exercises is quite manageable just that it is a bit tedious to do but overall, it is interesting and fun! Specially, the Pixar Short: Luxo Jr HD youtube video! The video is cute and it make the exercises more interesting as well! ^^

Week 13 - Exercise 3



1) Animate the box moving at a linear speed past the robot.

2) Animate the crane lifting the box. 

For both video, it is just about moving and placing the model and box and set it at the timeline. It is a easy and fun exercise, it can be finished in less than an hour! It's a interesting experience to see how your Maya work can turn into an animation video.

Sunday, 3 February 2013

Week 13 Exercise 2

In this exercise 2, we are given instructions from http://download.autodesk.com/us/maya/2011help/index.html?url=./files/Inverse_kinematics.htm,topicNumber=d0e17823 we can just follow the instructions at the website and do it step-by-step. As this is still something new to us, our teacher was there to guide us when we are doing this exercise.

First, we open up the file of IK_MechArm.mb then in the next step is to do the hierarchical relationship between the model and the IK system. Hierarchy means "A system or organization in which people or groups are ranked one above the other according to status or authority." - information taken from https://www.google.com.sg/search?hl=en&tbo=u&biw=1280&bih=685&q=hierarchy&tbs=dfn:1&sa=X&ei=MjsOUdujFMrVrQf-4oDYCQ&ved=0CCoQkQ4

In Maya, hierarchies are structured in a top-down manner, with one node at the top (the parent node or root node) and other nodes (child nodes or leaf nodes) attached and interconnected beneath the top node.


The benefits of hierarchies is when we are selecting the parent node at the top of the hierarchy, it selects the items contained in the hierarchy below. When we are selecting a child node lower in the hierarchy, it selects any child nodes that are lower in the hierarchy. Also when the parent node of the hierarchy moves, the rest of the model (child nodes) also moves. It helps us save a lot of trouble when we are doing complex structures with relationships between components.


To view the hierarchy for the mechanical arm, use the Hypergraph (Panels > Hypergraph Panel > Hypergraph.).


One of the first step we did was, create a skeleton hierarchy. From the main menu, select Skeleton > Joint Tool. The Tool Settings window for the Joint Tool appears. The Joint Tool is used to create the joints and bones for a skeleton.


Then, click in the center of each pivot pin on the mechanical arm to place four joints as shown in the image above. When we are done with the placement of the last joint, press Enter to indicate that the last joint has been placed.


When we are done, it will appear as the image shown above. In the Hypergraph, when we select the joint1 node, the entire skeleton becomes selected but if we only select joint2, any rotations that we make on this node affect only joint2 and nodes below joint2 which does not include joint1 (above joint2).


The next step is Parenting a model into a skeleton hierarchy. First, in the Hypergraph, select the node named ArmEnd and Shift-select the node named joint4 then in the main menu, select Edit > Parent (Hotkey p). Take note: The order of selection is important. You want to select the child node first, and then Shift-select the item that will become the parent node second.


The next step is Applying IK to a skeleton hierarchy. The key point of IK is to allows users to control the joint rotations in a skeleton using an IK handle. From the main menu, select Skeleton > IK Handle Tool, click on the skeleton joint at the base of the mechanical arm and click on the skeleton joint at the tip of the mechanical arm like the image above (left). In the Hypergraph menu, select View > Frame All. In the Hypergraph, two new nodes appear in the hierarchy that represent the IK chain: an IK Handle node and an end effector node as shown in the image above (right).


Then, create a control object for an IK system as using the IK Handle to pose an IK chain is not a good practice.  The IK Handle can be challenging to select in the scene view, a better practice is to create a control object. In the Hypergraph, select the ArmControl node then in the main menu, select Create > Annotation, a input window will appear. Type in ArmControl and click OK. In the scene view, the word ArmControl appears near the locator/control object. In the Hypergraph, two new nodes appear in a hierarchy beneath ArmControl as shown in the image above.

Before
After

Next, constraining an IK system meaning constrain the IK Handle to the control object (ArmControl) using a point constraint. A point constraint allows the transformation attributes of one object to be controlled by the transformations of another object.


Then, limit the range of motion of an IK system. Limit the range of motion of the arm to ensure that the IK system poses in a predictable manner. Lock the Translate X channel for ArmControl and lock the Rotate X and Z channels for SwivelBase. To lock, right click on the specific box then a drop-down menu will appear. From the drop-down menu, choose Lock Selected and it will be in dark blue color as shown in the image above.


The number of nodes in the IK system’s hierarchy at this point is way too long and it can be quite confusing so now, we have to simplify the display of the hierarchy. In the Hypergraph, right-click on joint1, and choose Collapse from the pop-up menu. The child nodes below joint1 disappear, simplifying the display of the hierarchy. The small arrowhead on the corner of the joint1 node indicates that a hierarchy exists below joint1. If you later need to view or select these nodes you can expand them again by right-click and click on expand.


Now, we apply parent constraints on an IK system. In the Hypergraph, with ArmControl still selected, Shift-select the CargoBox node. Take Note: The order of selection is important when you apply constraints. You must select the constraining object first, and the item to be constrained second.
In the main menu, select Constrain > Parent. Now, CargoBox is constrained to ControlArm. A new constraint node has been created below the CargoBox node in the Hypergraph. If you reposition the mechanical arm, CargoBox moves with it because of the constraint that is now applied.

Finally, we are done with this exercise! Next up will be doing an animtaion for an IK system. This exercise took 2 lessons to complete. It is quite long and tedious but it is a new learning experience for us!