3D Obstacle Course Animation Evaluation

The beginning stages of the assignments consisted of mainly research, where we investigated various animation techniques, tools, and software packages. Tying in with those topics was research regarding the production pipeline of animated films and the jobs thereof, as well as a Pixar short film.

The analysis of the Pixar short film ‘Piper’, and the comparison to another one of their short films (‘For The Birds’), formed a basis for aforementioned research. Investigation into this topic was conducted both through online sources and a more traditional approach; book-based research.

Once the research had been completed we moved onto Development, where we began to plan and develop our animation, as well as the traits our character would possess. Initially, the intended character was meant to be the Fuse model we had modelled after ourselves, dressed in whatever attire we wished. However, the document we were provided with did not support the rig it was imported with and a replacement character was provided for us to use.

Before animating, storyboards and blocking sheets were created in my sketchbook, ensuring that I had a clear understanding of the main keyframes and movements within the obstacle course. Supplementing this are sketches detailing and expanding upon the Fuse character and his traits, of which were to influence his navigation of the course. Filmed references were also gathered and used to help create accurate animations.

This slideshow requires JavaScript.

For the animation we had to set the frame rate to 25 (Television output), with renders exported at 1280×720.

Regarding the actual animating of the character through the course, I made use of various tools and techniques. For the manipulation of the character I used various movement and rotation tools, selecting areas on the rig/skeleton and moving them through space. Once I was happy with the placement and where it sat on the timeline (paying attention to the current frame in relation to the previous, in the context of the set framerate) I set a Keyframe using the shortcut ‘S’.

The Graph Editor allowed me to view the differences in position of the various joints on the character, allowing me a degree of manipulation over the timing of the movements even after keyframing them. However, there are diminishing returns regarding this functionality, especially once the graph editor becomes ‘crowded’ and ‘noisy’ due to the multitude of lines and keyframes present.

To ensure naturalistic movement, I made use of filmed reference, as well as acting out the movements in my room as I was animating them. Fine-tuning and careful manipulations of the joints helped to create more natural movement, with the character seemingly balancing themselves as they move through space.

This slideshow requires JavaScript.

The animation quality improved as the time went on, with the beginning containing many errors that I was unable to fix later due to the graph editor containing a plethora of keyframes, all of which would have needed to be edited. Looking back, I could have vastly improved the animation quality if I had spent more time reviewing each movement and set of keyframes before moving onto the next.

To up the production quality, I found a free lava texture online (of which is referenced below), applying that to the ground. In addition, I added several light sources of varying warm colours, as well as adding a more metallic material (via editing the material properties of a Blinn shader) to the obstacles.

This slideshow requires JavaScript.

For the tracking camera I added it via this method; ‘Create’ -> ‘Cameras’ -> ‘Camera and Aim’ -> ‘Create’ -> ‘Three Point Circular Arc’ -> ‘Constrain’ -> Attach camera to arc via ‘Attach to Motion Path’ -> ‘Constrain’ -> ‘Parent’ or ‘Point’ Camera’s Aim with character -> manually position Camera Aim on character using keyframes, utilising the graph editor to ensure the camera moved at a pace that matched the character’s movement.

This slideshow requires JavaScript.

I initially used a regular Camera and a manually drawn Motion Path, however, the method described above was more efficient.

This slideshow requires JavaScript.

When rendering I ensured that the ‘Renderable Camera’ was set to the one attached to the Motion Path, as well as changing the Frame/Animation extension to ‘name.#.ext’. After applying all the relevant settings, I moved onto exporting, trying out different export types before settling on Targa (tga). Before rendering all the frames, I rendered the first 10, ensuring time was not wasted. I then used FCheck to determine whether the frames were exported correctly, once satisfied I moved onto rendering the entire animation. To get these frames into a proper video format, I imported them into Adobe Premiere as an ‘Image Sequence’, and then finally exporting the final video before uploading to Youtube.

This slideshow requires JavaScript.

Ideally, I would have spent more time on the overall animation, as well as experimented with each movement individually within a separate document to perfect them before moving onto the final animation. However, time was a constraint as the brief had been delivered late. Regardless, I managed to complete the animation in time for the intended deadline. We were then notified of us receiving an extension, however, as mentioned earlier editing of the completed animation would of taken up too much time and other assignments became priorities.


Area by Autodesk. (2007). Lava Shader Effect | Tutorials | AREA by Autodesk. [online] Available at: https://area.autodesk.com/tutorials/lava_shader_effect/ [Accessed 20 Jan. 2018].


Maya Animation Tasks

This slideshow requires JavaScript.


For this task, we had to create a key-frame animation in Maya using three different 3D primitives.

To begin, we set the animation settings to ‘Realtime’ and ’24’ fps, via Windows-> Settings/Preferences -> Preferences. Ensuring that ‘weighted tangents’ was selected, as well as the default set to linear, we were then able to begin the task.

Creating 3 different polygons, cube, sphere and cone, I spaced them relatively evenly apart. Ensuring that the attribute editor is open, I selected the cube and first frame on the time slider. I then navigated to the channel box and right-clicked on the ‘translate X’ option, of which allowed me to click on ‘Key selected’. You are notified of a created key-frame once the box has gone red.

I then moved the time-slider to frame 24, and moved the cube across to the opposite side of the grid plane. I then repeated the earlier process of creating a key-frame, selecting ‘Key selected’ for translate X.

Dragging the range slider to frame 48, as well as repeating the key-frame process for the sphere, allows me to move this object at half the speed of the cube. The same process is repeated for the cone, but this time its end point is reached at the 72nd frame.

Moving the cube back to the start of the grid, a key-frame is created at 48 frames. Moving it to the end again and creating another key-frame, this time at 72 frames, concludes, for now, the animation regarding the cube.

The sphere, at frame 72, is moved to the middle of the grid via the changing of its X translation to 0. Once positioned correctly, a key-frame is created.

Going back to the cube, a key-frame is created at frame 1 regarding Rotate X set at 0. At frame 72, another key-frame is created for Rotate X, however, this one is set to 1080. This configuration causes the cube to spin while moving across the grid.

For the Sphere, a similar process is used. However, Rotate Y is used instead, with the settings at frame 72 being 360 instead of 1080.

For the cone, Rotate Z is used. With the end number for Rotate Z on the 72nd frame being -90. This causes the cone to tip forward as it along the grid.

Navigating to Windows -> Rendering Editors -> Render View will allow you to apply shaders and textures to your objects, of which is the next stage of this task. Selecting Lambert from the Surface shaders is the next step, of which then has a colour applied to it via the menu on the right hand side of the screen. The material is then assigned to the cube via right clicking the material on the top right of the screen and selecting ‘Assign Material To Selection’.

This process is then repeated with various different shaders, materials and colours for the other objects.

We were then tasked with creating three separate animations, tied together via intertwined animation principles and processes.

The three tasks were thus; animate a heavy ball being dropped/bounced, animate a football rebounding off of a wall, and animate a ball bouncing down stairs.

In order to animate the heavy ball falling and bouncing, I had to consider the physics of such an occasion, as well as the possible materials that the ball would be made of. The conclusion was thus; the ball would drop and barely bounce, rebounding shallowly several times in quick succession before settling down.

The process I used comprised of creating a sphere, selecting the first frame, editing the Translate Y and Translate X co-ordinates, and right clicking them to select ‘Key Selected’ in order to create a key-frame. This process was repeated multiple times for all three animations, rather similar as to how the animation earlier in this post was created.

Utilising various animation principles, I planned out and executed the theory or ‘Squash and Stretch’, manipulating the size and rotation of the sphere as it moved through the air and made contact with other surfaces.

The graph editor was used to smooth out the animation, utilising the ‘Break Tangents’ option for finer control.

Heavy Ball Animation:

This slideshow requires JavaScript.

Rebounding Animation:

This slideshow requires JavaScript.

Stairs Animation:

This slideshow requires JavaScript.

We then moved onto another task, this one being lighting-based. We had to apply materials and lighting to a supplied model of a robot. In order to do so, we had to create and place several light sources, and then manipulate said light sources. Changing the distance, intensity and colour of these lights allowed us to create primary, fill and edge lighting, as well as different atmospheres and emotional responses.



Moving on-wards, we did some more animation work, this time experimenting with a rig for a human character. We applied a rig to the supplied model and then manipulated it, moving the skeleton and nodes via Reverse Kinematics and key-frames in order to create an experimentation in animation.



Fuse Modelling/Model Editing Experimentation:

This slideshow requires JavaScript.

In this exercise we composed and edited a 3D model using a variety of preset modular elements and sliders, using our own faces as points of reference for the character. After creating and editing the character, we clothed it via picking from more preset options.

Finally, we uploaded it to a Mixamo Autorigger, allowing us to experiment with a variety of different preset animations that have already been created for open source use.

Maya Column Tutorial

This slideshow requires JavaScript.

For this task, we had to create a pillar in Maya while following a specific tutorial. In order to create said pillar, we had to utilize various primitive 3D shapes, manipulate them, and position them in the correct area in order to create the pillar.

The three main primitives used and manipulated were; the cube, cylinder, and torus.

In order to create the stepped base of the column, we had to edit the mesh via its edge loops, made possible via Edit Mesh -> Insert Edge Loop Tool (-> Options Box). I ensured that two edge loops are created when inserted, pressing the R key and dragging the edge loops, once in place, demarcates space for the steps. Before doing so, however, a cube was created and edited. The properties it received were thus; Scale Y 0.15, (insert other properties).

Once edge loops had been inserted along each edge of the column base, they were edited to ensure accuracy during the Extruding phase. Clicking the middle mouse button over the object allows you to select the central face, of which is then edited via Edit Mesh -> Extrude. Resetting the Extrude options may be helpful, as it might behave in a different way than you desire. The settings to input were; Thickness 0.2, Offset 0, Divisions 1. The process is then repeated multiple times until you are happy with the result, preferably twice more.

This slideshow requires JavaScript.

For the bulk of the column, a cylinder is created and named columnCylinder. This primitive is then given the following settings; Radius 0.4, Height 8, Subdivision axis 32, Subdivision height 1, Subdivision caps 1. Some additional manipulation is required, positioning the cylinder in the correct orientation. Turning on point snapping and holding down the D key allows you to move the pivot point to the base of the column, releasing the D key and then moving the column again allows for finer control.

Afterwards, a torus polygon is created; this primitive is used for near the top of the column, of which will be topped by a modified duplicate of the base. The settings for the torus polygon is thus; Radius 0.4, Section radius 0.1, Twist 0, Subdivision axis 12, Subdivision height 12.

The torus is then placed at the top of the pillar using the move tool, its position edited and finessed in order to eliminate any gaps.

This slideshow requires JavaScript.

Then, ‘columnBase’ is selected, followed by pressing CMD+D in order to duplicate it. The duplicate is then renamed ‘topColumn’, and is moved to the top of the column. Pressing spacebar will allow you to view the scene in four different perspective views and angles. Utilizing these views, carefully place the ‘topColumn’ on top of the torus.

Scaling of ‘topColumn’ may be required, and once everything is in place, you may select all of the objects in the scene. To do so, use the select tool (“Q”) and drag over all of the objects. Pressing CMD+G will group the objects together. Naming the group is helpful, and may be done so via the channel panel.

Once grouped, the column may be moved as a whole, allowing you to duplicate it and create a larger scene.

This slideshow requires JavaScript.