BLOG

Hey there! Here in the blog section of the site, I’ll be posting updates and longer form written content.

Most of these posts are from my final year at Champlain College. During that time, I posted weekly about my work in the Senior Production capstone class.

Senior Production Weeks #11 & #12

April’s here, and so we’re inching closer and closer to the end of the semester. This week’s the Beta milestone and in addition to that, we’re bringing Keeper to PAX East. I’ve been attending PAX for the last four years, so I’m stoked to finally be showing a game there. Ironically, this is the first year I’ve decided not to go to the expo. I knew this month would crammed with work and deadlines, so it wasn’t really an option for me. But Alex, Maggie, and Steven will be there representing the team at the MassDigi booth on Saturday!

On the animation side of things, I’ve rigged and created first pass animations for our final two characters; Alder the red-spotted newt, and Myrtle the monarch butterfly. Alder’s this sleepy artist-type, who arrives at the garden midway through the game. And Myrtle is this old wizard-type who appears in the new meadow area at the end of the game.

alderRig

myrtleRig

For Alder, I’ve created four different animations. He has the standard idle and talk animations, as well as two transitional animations.

alder_idle

alder_idleToTalk

alder_talk

alder_talkToIdle

And Myrtle just has the standard idle and talk.

myrtle_idle

myrtle_talk

I also worked on bees this week. Several weeks ago I rigged and animated our standard honey bee. But there’s going to be more than just honey bees in this garden. Christie’s modeled seven unique looking bee species. So using the rig of the basic honey bee, I’ve weight-painted the rest of the bees to use the same joint skeleton.

weightbees

bee_noweights

bee_noweights2

In-engine, we’ll be able to tie each bee model/rig to the honey bee’s animations. This way we can have each bee species look unique (like the small carpenter bee and long-horned bee above), without having to recreate animations for each one.

Senior Production Week #10

Team-wise these last two weeks have been kinda off, with Spring break having happened last week, and GDC having happened this week. While some teams only had a member or two heading off to San Francisco for the conference, our team was cut in half.

So essentially we haven’t had a full team meeting in over 2 weeks. We’ll finally be having the whole team together on Monday, and we’re going to really need to come to terms with that will and what won’t be able to make it into the game with the time we have left.

Animation wise, I had a lot of fun this week rigging and animating Bramble the goldfinch. She arrives to the garden once the player’s grown some sunflowers. Rigging Bramble was pretty straightforward, and animating this character was a blast!

bramble_rig

Birds are super twitchy, and I wanted to get that across with Bramble, but I also toned that down a bit for the sake of readability.  Here we have the first pass of her basic idle and talk animations:

bramble_idle

bramble_talk_2

I’m looking forward to polishing these up, and eventually making a few more idles. Next week I’ll be rigging and animating Alder, a red-spotted newt that arrives to the garden shortly after Bramble!

Senior Production Week #9

“Spring” break arrived this week, and with that I had a little extra time to work on first pass animations for two more characters. First off we’ve got Titania, which I rigged last week.  For now, Titania has two animations; an idle and a talk.

titania_idle2

titania_talk2

I also worked on the mosquito character! In-game, there are 4 mosquito siblings; Donnie, Darwin, Nigel, and Eliza. While the base model will be the same between them, Christie made some great items that work to differentiate each character. They’re a real classy group:

26f88b2ee6a933e9e0a2a41c3e8316d2

I rigged the mosquito base model, and animated the mosquito’s basic idle, talk, and fly.

mosquito_rig

mosquito_idle_NEW2

mosquito_talk2

mosquito_flying2

Next week I’m pretty psyched to be rigging & animating Bramble, a punk/artsy bird that the player meets partway through the game.

Senior Production Week #8

It’s good to have the team back together after MassDigi!  And I’m super impressed by the connections the team was able to make while over there. Plus, Micropup & Keeper now has a bit more of an internet presence after Maggie has set up, and is maintaining, a twitter (micropup’s twitter).

Animation wise, this week was all about Bonsai. I’m looking forward to giving him even more character during the polish weeks. In that time, I definitely want to add several more idles that’ll infuse more personality into the character. More specifically, I’m looking to create some animations that connect to the dialogue “spoken” by the character.

Steven and Laura were able to set up a cool dynamic dialogue system in which the content of the sentence is given an emotional tone. And with that, the character’s voice plays to match that (in animal crossing-style critter noises). So with that already implemented, I’m planning on making idles that fit certain moods, which can be tied to the corresponding dialogue.

For now, I have the appear, idle, and disappear animations:

bonsai_appear

bonsai_idle

bonsai_disappear

I also got to rigging the queen bee herself, Titania. My goal this week was also to get started on the character’s animations, but  unfortunately that didn’t end up happening.

titania_rig

So next week I’ll actually get to animate Titania. And also I’ll be rigging and animating the mosquito characters.

Senior Production Week #7

While there’s still more to do with Sprout’s animations, this week I got started on animating a couple new characters! Keeper’s got a whole roster of characters for the player to interact with. So over the next few weeks I’ll be creating some basic animations for each of them. To start I set up the rig for the basic honey bee.

bee_rig

There’s going to be a wide variety of interesting bee species in the game, so Christie is making sure to keep the proportions and geometry consistent from bee to bee. That way, each bee will share the same joint skeleton, and weight painting will be a fairly quick copy & paste. This ensures that only one set of bee animations needs to be created, and they’ll be shared among all the bees.

For now, bees will have two animations; an idle animation and a flying animation.  For the wings we’re using a slick VFX animation that Christie made. This gets connected to the bee’s skeleton in-engine. The gifs here are taken from Maya, so there’s no VFX. So here we have the first pass of the bee’s idle, and below is the bee’s fly animation:

bee_idle

bee_fly

Without the horizontal movement, the fly animation looks a bit weird, but I tested it out with some root translation and it worked really well! I’m excited to get these setup in Unity so we can give them those WINGS.

I also got another character rigged; Bonsai the star-nosed mole! He’s an interesting character to rig, since the main points of articulation are the front paws and the snout.

bonsai_rig

I also got started on one of Bonsai’s animations. The player interacts with his dirt mound/hole to talk to him, so we needed an animation of him surfacing. This was also a nice way of getting used to the rig. Here I have the first pass at that particular animation.

bonsai_appear

This animation’s still pretty rough, but it’s a good start. Plus, I’m really looking forward to create the rest of Bonsai’s animations. That’s next week.

In other Keeper news; our game competed in the MassDigi 2018 Game Challenge. A large gathering of game developers, both student and professional, gathered at Becker College in Worcester, MA. Teams were able to show off their games and compete to win awards and prizes. The competition took place last Friday & Saturday (March 2nd & 3rd).

Unfortunately I wasn’t able to attend, since I had to go to a critique  on Friday. But the rest of the team went and did an amazing job networking and showing off our game.

AND Keeper ended up winning two awards! We won Best in the Serious Games Category, which was selected by judges. And we won People’s Choice, voted by the attendees.

Senior Production Week #6

With project deadlines in other classes snatching up most of my time this week, I was only able to get working on a few of Sprout’s animations. With that in mind, the main task I wanted to tackle this week was redoing the “harvest” animation.

I mentioned this in my last post, but “Harvesting” is broken up into two parts. The first being the idle, in which Sprout waits for player input. And then the “shake” which occurs when the player mashes x to actually shake the plant and collect resources.

After getting some great feedback from the team, it became super apparent that we needed an animation that was a little more versatile than the first pass. When I first animated the motion, I added one of Christie’s flower meshes to the project scene as reference. The harvest animation is supposed to show the player that Sprout is shaking the flower to collect seeds and petals. So I included the flower in the Maya project scene so I could line up Sprout’s hand with a swaying motion of the stem.

All-in-all, it wasn’t a super successful animation. There’s a bit of jitter, plus I goofed up the weight and feel of the motion itself. I posted this gif in the last blog post:

sprout_harvest_shake

This animation definitely could work (with some polish) if that particular flower was the only type of flower in-game, but that’s not the case. Christie has made a whole bunch of cool looking flowers ranging in size and scale (each based on the look and scale of actual real-life flowers). So we’ve got a variety of flower heights, and stem sizes to work with. In addition, the motion of the flower itself will be done programatically in-engine. And as it works in game now, it’s more of a general shake than a hinged vertical rotation, like in the above gif.

So we needed a harvesting motion that was general enough to work for a plant of any scale, but specific and fast enough to read as “shaking” the plant. We talked about making it a two handed motion, but I had concerns about how Sprout’s leaf would interact with that sort of quick gesture. It was a kinda tricky process, and for my second passes, I decided to bring Sprout closer to the base of the plant. I made a few different versions.

1ylDtCz

kmgE2nW

wYFZR54

While I found these animations to be more successful motion-wise, they don’t do a very good job of representing the intended action. They range from “uprooting” to “pulling” to “digging”. And we’re trying to go for “give the flower whiplash”.  I had some really helpful conversations with Alex and Christie, and from those talks I decided to try out the two handed harvest that had been brought up before.

sprout_harvest_frontsprout_harvest_back

I definitely need to address a few things during the second pass (like the motion of the leaf), but I think that overall it reads well as shaking. We’re going adjust the animation speed in-engine, but  we agreed that this was closest to the intended motion.

While it took a few tries to get to this point, this process is a big reason why I really enjoy animating for games. When creating animation for games, sometimes you’re hit with constraints and caveats that exist because of the game’s design or code. While this can definitely be annoying in some ways, I think it’s a cool challenge. You have to take the motion you want to create, and figure out how that could work within the context of the game’s design. It turns animation into an interesting puzzle.

Senior Production Week #5

A big part of this week was tweaking and modifying a few of the animations from the last few weeks, so they work a bit better in engine. But I also worked on a few new animations too.

Swimming is now a thing! Instead of just being booted back to a respawn point if you fall in the pond; Sprout will be able to cruise around in the water. Because sometimes Sprout’ll be carrying quest items, having a spot for that when swimming was also important.

sprout_swim_idle

sprout_swim

I’m definitely going to make some adjustments to the leg motion for swimming. I also worked on some gardening related animations, including planting and some harvesting. Harvesting is broken up into two parts, the first being the idle, in which Sprout waits for player input. And then the “shake” which occurs when the player mashes x to actually get more resources.

sprout_planting

sprout_harvest_idle

sprout_harvest_shake

In general, I’m not super happy with how the animations turned out this week, so I’m really looking forward to giving a few a these a second pass this weekend.  I really want to revisit the harvesting shake animation and the swim.

Senior Production Week #4

I worked on a pretty random assortment of animations this week ranging from jumps, to glides, to ledge hanging. Another big part of this week was actually implementing animations in engine, which was super exciting. I went through and exported out the joint motion of all the individual animations, as well as exporting Christie’s new Sprout model with the rig. After getting those exported, I tossed them right into unity.

Actually getting them working was a whole other thing, but we’re getting close. Laura and Jake did some great work setting up the animations in a pretty sprawling state machine, and from there it was just tweaking the animation timing and transitions. This is something we still need to spend a lot of time tweaking, but I’m really glad we’re at this stage.

In terms of animations, most of these are holdover from last week’s jump and glide focus. So we’ve got our first pass at the double jump (spin?), the gliding updraft (when Sprout catches a gust of wind), and the in-air gliding end. I’m looking forward to giving these a second pass, but for now they should work pretty well.

sprout_jump_double

sprout_glidingUpdraft

sprout_glidingEnd

I also got to the ledge related animations, including the ledge hang, and the “pull up”. We wanted the pull up to be real snappy as opposed to a more tedious climb. Getting these working in engine is going to be an interesting process, but I’m psyched to get more animations in-game!

sprout_ledge_pullUp

sprout_ledge_hang

Senior Production Week #3

After getting some great feedback from the team last week, I went back and tweaked and polished up the idle, walk, and jog animations.  And I’m pretty happy with how they turned out:

95

94

93

I changed up the idle quite a bit. My first version of the animation had Sprout kinda hunched over, breathing heavily. This definitely didn’t fit right with the walk and run, but more importantly, it didn’t fit Sprout as a character.  Maggie and Steven have been doing some great work on the narrative side of things with the narrative bible.  It’s super helpful to me as an animator, because I can base each character’s motion on an established personality.

In addition to revisiting the idle, walk, and jog, I was able to get working on the jump and gliding animations. In games, a jump is typically broken up into separate segments, and in-engine these are strung together with code. This way, jump height and fall height, on the Y-axis, can be be affected by player input.

Here are the jump animations, from jump start, to in-air loop up, to in air loop down, and then jump land.

92

9

8

7

And here are the gliding animations, from gliding start, to gliding in-air loop, and gliding land.

5

3

2

I still need to create a gliding end, which is the transition from gliding loop to jumping in-air loop. This occurs when the player stops gliding, but is still in-air. I’m looking forward to implementing this stuff into engine, which we’re planing to start doing soon!

 

Senior Production Week #2

After rigging Sprout over the weekend, this week I actually got around to animating the character. On the docket this week was basic locomotion; idle, walk, run, and jump. I only got to the first three, so I plan on pushing the jump to next week.

This was a first pass at the motion. There’s still a good amount of clean-up and smoothing left to do, but for this week, here’s the result:

sprout_idle
Idle

sprout_walk
Walk

sprout_jog
Run

Overall, not too bad! I’m planning on overhauling the idle animation to make the stance a bit more relaxed;  because right now Sprout looks like she’s a bit pissed off.  I also plan on toning down the leaf’s movement for the walk cycle. Plus, like I mentioned, smoothing out some of the motion.

The biggest challenge with animating Sprout is definitely that leaf. It’s been real tricky to nail down that reactionary motion. For a good part of this I felt like I was fighting against the rig to get the movements that I wanted.  It’s going to take some practice and iteration for sure.