COSC 3P98 Final Project

13
Kalden Anderson COSC 3P98 Final Project Animation: An Odd Measure of Treasure Video link: https://youtu.be/bHsGzmrXn94 Story Rescuing the Forest Sage isn’t going as smoothly as Link hoped it would - Turns out a 7-year nap really messes with your sword hand. Narrowly escaping a fierce battle after losing his grip on the Master Sword (and somehow dropping his shield in the process), the Hero of Time finds refuge inside one of the few saferooms in the Forest Temple. Catching his breath, he realizes he caught a glimpse of something as he was rushing in the room… TREASURE! All thoughts of the mission at hand (and self-preservation) are replaced with a single-minded focus on loot. Unfortunately for Link, the chest seems to have its own agenda; Refusing to open for anyone who doesn’t know its secret. What will it take for him to obtain the unobtainable - And where in Hyrule could his trusty companion be? Concept When the news first came that we could do an animation for the final project, I knew I wanted to animate something humanoid. Unfortunately, finer appendages and facial features require massive attention to detail when animating, and that would not be an option with the workload I already had to deal with. To compound on that, I had no solid idea of what the humanoid would be doing in the animation. My brainstorming was going nowhere until a friend showed me a cute little stop-motion animation ( https://youtu.be/nH08tT4oPJA The first 30 seconds). I knew there was no way I could animate that well as a novice, but the idea of comedic trial-and- error stuck with me. My brain kept mulling around characters and concepts until I reached a clear idea; Since treasure chests are integral to The Legend of Zelda games, to what extent would Link go to open a particularly stubborn one? Pair the concept with simple polygonal models from the late 90’s, and the rest is history.

Transcript of COSC 3P98 Final Project

Page 1: COSC 3P98 Final Project

Kalden Anderson

COSC 3P98 Final Project

Animation: An Odd Measure of Treasure

Video link: https://youtu.be/bHsGzmrXn94

Story

Rescuing the Forest Sage isn’t going as smoothly as Link hoped it would - Turns out a 7-year nap really messes with your sword hand. Narrowly escaping a fierce battle after losing his grip on the Master Sword (and somehow dropping his shield in the process), the Hero of Time finds refuge inside one of the few “safe” rooms in the Forest Temple. Catching his breath, he realizes he caught a glimpse of something as he was rushing in the room… TREASURE! All thoughts of the mission at hand (and self-preservation) are replaced with a single-minded focus on loot. Unfortunately for Link, the chest seems to have its own agenda; Refusing to open for anyone who doesn’t know its secret. What will it take for him to obtain the unobtainable - And where in Hyrule could his trusty companion be?

Concept

When the news first came that we could do an animation for the final project, I knew I wanted to animate something humanoid. Unfortunately, finer appendages and facial features require massive attention to detail when animating, and that would not be an option with the workload I already had to deal with. To compound on that, I had no solid idea of what the humanoid would be doing in the animation. My brainstorming was going nowhere until a friend showed me a cute little stop-motion animation ( https://youtu.be/nH08tT4oPJA The first 30 seconds). I knew there was no way I could animate that well as a novice, but the idea of comedic trial-and-error stuck with me. My brain kept mulling around characters and concepts until I reached a clear idea; Since treasure chests are integral to The Legend of Zelda games, to what extent would Link go to open a particularly stubborn one? Pair the concept with simple polygonal models from the late 90’s, and the rest is history.

Page 2: COSC 3P98 Final Project

Planning

In the initial phases, most of the planning consisted of ideas written on a scrap piece of paper; I knew what I wanted to do, but the specifics were too fuzzy to act on yet. As such, I started coming up with several “failures” for Link to experience on his quest to open the chest. Initially I started with about 5-7 but pared it down to 3-4 after input from Prof. Ross (which was a smart move in hindsight).

1: The rough storyboard I created before even starting to rig/model

After establishing what would be the main content of the animation, I started drawing out a storyboard of Keyframes representing the major events in the plot. I ran into a bit of a mental block while storyboarding regarding the ending sequence, but a few moments of inspiration while animating gave me the ideas necessary to finish.

Page 3: COSC 3P98 Final Project

Software Used

3D Modelling/Animation: Blender.

Thanks to some courses from Niagara College (GAME program), I’ve had decent experience in modelling software with Autodesk’s 3DSMax over the past 3 years. I considered using it for this project given its powerful capabilities, but Blender ultimately won out since its open-source nature means I’ll be able to use it after leaving school (and acclimating to it now will make normal usage easier later). Navigating the interface was a bit alien and inefficient for the first week, but some prior experience in high school, software commonalities with 3DSMax, and a ton of searching through online questions/manuals resulted in good-enough knowledge by the time I needed to animate

Audio Editing: Audacity/Blender.

Audacity is my go-to when it comes to simple audio editing, and it was good enough to deal with tracks that needed cutting, tempo-shifting, echoing, or other editing across the scope of the animation. Surprisingly, Blender also had some sufficient audio editing capabilities that allowed for soft editing many sounds while animating. Blender’s audio-editing capabilities were primarily a part of the next software category.

Video Editing: Blender/Paint 3D*

I never knew Blender had video editing functionalities until the last week of the project; It was fantastic for my needs. The ability to model assets, animate them, render out an image sequence, and then edit the video in the same program was unbelievably useful for organization and efficiency. Aside from the convenience, its capabilities are relatively simple, offering splitting and trimming of clips, basic crossfading of video/audio, and layering of assets on multiple tracks (as well as supporting external Python scripts). Technically speaking, I also used Paint 3D as a video editing tool (that’s how I created the screens with text on them) … *…but I would never recommend anyone use it for any video editing context unless they’re in dire straits. Learn GIMP, or some other professional software instead.

Page 4: COSC 3P98 Final Project

Models

Adult Link

A model of the post-timeskip protagonist from the N64 game Ocarina of Time. This model came pre-textured and skinned (UVs were set up in the proper coordinates) which made it much easier to work with as opposed to texturing it myself. Unfortunately, it was not rigged (think of the model as the skin, and the rig as the bones and muscles that allow movement); My first task was to find out how to rig him properly.

Thankfully, after searching through Blender’s official documentation, I came across a tool that can automatically rig a skeleton armature based on a model’s dimensions (generously created by Nathan Vegdahl). It wasn’t foolproof given Link’s exaggerated proportions, but it did the job in considerably less time than it would’ve taken me (30 seconds vs 4 days). There were a lot of skinning issues created from the automatic nature of the tool, with the bottom of Link’s tunic specifically requiring many weighting adjustments until I had to give up in the interest of time.

3: The Auto-rig generate for Link 2: Skinning issues with Link's tunic

Page 5: COSC 3P98 Final Project

Environment

The setting of this animation is also from a section of Ocarina of Time; Specifically, a room midway through the Forest Temple. Since the chances of finding a model of this room (or at least one that didn’t require importing the whole Temple) were very low, I decided to “Model” it myself; I use quotations here because the overall architecture is basically primitives with fancy textures applied to them. The overall room shape used an 8-sided Icosphere, the pillars were hexagonal prisms, the engravings along the bottom of the room’s walls were one hexagonal prism without its top or bottom, and the door was simply a rectangular prism with a cylinder for

the handle. I did not create the textures myself, but I will explain about the textures in their own dedicated section later Since the camera was outside of the Icosphere, it required removing one of the walls for a specific reason; Not because it couldn’t see into the room (all the outer normals were flipped), but because the lighting during a specific part of the animation became extremely dark since the character reached the corner of the room.

4: A reference shot of the actual room from Ocarina of Time

5: The simple shapes that the environment is composed of

Page 6: COSC 3P98 Final Project

Treasure Chest

The figurative star of the show here. Though simple in design, it taught me a few important things about blender’s tool: Namely, constraints, shader nodes and armatures. The hardest initial issue to deal with was the chest’s textures - They looked very wrong since the image applied to the UV’s was only half of the required image.

Learning how to use the mapping, texture coordinate, and vector math nodes to shift around the UVs programmatically eventually led to it looking better after a bit of work. Texture woes aside, I had trouble figuring out how to get the lid to open without group animating every vertex. This led to learning how to use armatures and constraints: Using armatures allowed me to attach the lid to a “bone” that controlled its rotation, while using constraints allowed me to use a different, more visible bone to control the “lid bone’s” rotation.

6: The chest with no modified materials

Page 7: COSC 3P98 Final Project

Deku Stick

This model’s textures didn’t work very well on the initial import, and I eventually had to use basic colours after some fruitless fiddling yielded mediocre results. Having it “snap” during the animation was also an issue, as I initially animated constraints to achieve this effect: When the constraints for rotation and location were disabled, the free half of the stick returned to its original location in the world instead of staying where I wanted it to (in the front of the chest). Since there was no simple (quick) solution, I instead had to animate the entire stick to appear as if still in Link’s hand while moving it to the preferred position, and then turn off the child constraint of the free half while reactivating the location/rotation constraint on the held half. Bottom line is, it looked weird, and took much longer to set up than I’d have preferred (see the 50s - 51s of the animation for reference).

Navi

The animation’s “treasure” (though I’m sure many would disagree), Navi is composed entirely of sprites - The main, glow-y part of her body is a sprite that’s always facing the camera (aka billboarding), while her wings rotate around like normal 3D objects. This model is also where I learned how to utilize Blender’s “Driver” and “Curve modifier” features. A driver essentially links one property of an object to another (e.g., linking the x-position to x-scale would grow or shrink the object depending on the position), and a curve modifier affects the shape of an animation curve.

Page 8: COSC 3P98 Final Project

In the case of Navi’s model, the y-scale of the bone sticking through her body is linked to each individual wing’s x-rotation by a driver; When the bone’s y-scale increases the wings rotate inward, and when it decreases the wings rotate outward. With this driver setup, I used a modified sinusoidal curve modifier on the bone’s y-scale curve, ensuring that it would continually grow and shrink between a small set of values. This in turn made the wings animate automatically, saving me time and effort on animating minor details.

Keys

These keys are from a few different games - finally not just OoT stuff! (see the resources section to see what exactly was used). A few copies of these were given rigid bodies and simulated in a different scene to create a natural pile of used items for later in the animation - Whether it achieved the intended visual of a messy pile is uncertain – What is certain is that It took much longer than expected to obtain and situate them, all in the name of a single scene. Importing all the objects with disparate properties served as good practice for manipulating origins and fixing textures, as well as setting up rigid bodies for physics simulations. A lesson I learned while setting these up was to weigh my tasks based on importance and remaining time - You’d never know by looking at the animation, but the Kingdom Key (giant key)’s keychain has 3 IK bones that act like a real chain when simulated instead of just remaining straight.

It took about 4 hours to figure out and has no bearing on the animation at all - It wasn’t hard to classify as a bad investment in hindsight.

7: A cool idea that wasn't very important

Page 9: COSC 3P98 Final Project

Textures

Considering my ability in traditional art ability is sorely lacking, I instead opted to search for textures that already existed for the given models. Thankfully, some community packs and mods focused on OoT (credited below in Resources) provided me a wealth of resources to utilize. Of the textures I used, there is one set that I wanted to discuss specifically here: Link’s faces.

Link’s Face Textures

If you’ve noticed it, you’re probably wondering why such a high-definition face texture is attached to the blocky, N64 polygon that is Link in this animation. The answer simply lies in availability; I wanted to have Link’s face swap to other emotions in this game, but there were no easily found sources for the N64 textures of Link’s face. As such, when I came across some of the face textures in the 3DS mod pack I found (cited in resources), I jumped at the chance to use them after a week of fruitless searches. After some trial-and-error with the texture coordinate and mapping nodes, I was able to fit the texture properly to the face; Swapping textures would be the next objective.

8: Link's original (N64) face textures 9: Link's new (3DS) face textures (used in this animation)

Page 10: COSC 3P98 Final Project

To swap textures while the animation was playing, I utilized a node in the shader graph called “Mix shader”, which mixes the output of two materials based on a value between 0 and 1 (At 0 the first material shows, at 1 the second shows, and all values between are a gradient between the two). The mix node only supports two shaders, so I had to link the nodes into a sort of “mixing tree”. Performance was abysmal when I did this (and my PC is no slouch), but it gave the result I was looking for and didn’t slow performance when it came to rendering the video.

10: An example of changing Link's eye/mouth textures by modifying mix node values

Page 11: COSC 3P98 Final Project

Resources/Attributions

Sound Effects Unless otherwise stated below, all sounds were sourced from Freesound, and their listed authors are users of the site Door closing (kicked chest) by “angelkunev” Bonk by “klankschap” Whoosh by “qubodup” Dropped Key by“lucktheone” Sword battle by “freefire66” Man breathing by “jason130178” Door creaking by “Zabuhailo” Locked box by “thebrendanbrown” Gong by“GowlerMusic” Thump door by “theshaggyfreak” Snapping wood and door closing by “InspectorJ” Slam door by “MTjohnson” Scratch head by “eyesonlegs” Wood creak by “Rudmer-rotteveel” Sparkling sound by “opticalillusions” Jingling keys by “GDOG1622” Punch sound by “Merrick079” The Legend of Zelda Ocarina of Time (1998): Character voices, chest opening jingle & secret jingle by Nintendo – Submitted by “Karaimen” (Link voices and Navi voices) to The Sounds Resource

Music Forest Temple - Composed by Koji kondo. The Legend of Zelda Ocarina of Time (1998, Nintendo) Stealthy Zelda - Composed by Koji Kondo, Tōru Minegishi, Asuka Ōta, and Manaka Tominaga. The Legend of Zelda: Spirit Tracks (2009, Nintendo)

Page 12: COSC 3P98 Final Project

Models All imported models were obtained from “game rips” submitted to The Models Resource. Any models not found in this section but present in the animation were modelled manually by me.

Donkey Kong 64 (1999, Rare) – Golden Key submitted by “senjen” Earthworm Jim 3D (1999, VIS/Rockstar/Interplay) – Key submitted by “senjen” Kingdom Hearts (2002, Square Enix/Disney) – Kingdom key submitted by “o0DemonBoy0o” The Elder Scrolls V: Skyrim (2011, Bethesda Softworks) Skeleton Key submitted by “Smakkohooves” The Legend of Zelda: Ocarina of Time (1998, Nintendo) - Chest and Deku Stick submitted “Peardian”. Navi submitted by“alecpike” The Legend of Zelda: Ocarina of Time 3D (2011, Nintendo/Grezzo) – Boss Key submitted by “Irastris” The Legend of Zelda: Link’s Awakening (2019, Nintendo/Grezzo) – Small Key and Nightmare Key submitted by “Centrixe” The Legend of Zelda: Twilight Princess (2006, Nintendo) – Small Key submitted by “TheDude850” Luigi’s Mansion (2001, Nintendo/NLG/Grezzo) – Club Key submitted by “senjen” Sonic Adventure 2: Battle (2001, Sega) – Chao Key and Gate Key submitted by “Models124717” Splatoon (2015, Nintendo) – Vault Key submitted by “Centrixe” Super Mario 64 DS (2004, Nintendo) – Mario Key submitted by “naynaybuggins” WarioWare: Smooth Moves (2006, Nintendo/Intelligent Systems) – Adult Link submitted by “Vert092” Other – Ice Key submitted by “Oakieland”

Page 13: COSC 3P98 Final Project

Textures

The Legend of Zelda: Ocarina of Time (1998, Nintendo) – Obtained from the OoT Community re-texture project The Legend of Zelda: Ocarina of Time 3D (2011, Nintendo/Grezzo) – Obtained from Henriko Magnifico’s OoT3D “4K” texture pack

Fonts

Triforce by an unknown submitter