Ready Player Two

Morvin? …is that you, Morvin? Well, no… but it is a reasonable facsimile of Morvin. Introducing Morvo, the customer service science fair project! Evidently, Morvin built this thing for his Applied Robotics class in Space Kindergarten and he will be using it to make his one-man shifts at the Quickstop a little less overwhelming. This repurposed grill, equipped with state-of-the-art Grease Monkey A.I. and googly eyes, will serve as player two’s avatar in Cosmo’s Quickstop Co-op Mode.

Rather than simply using a recolored Morvin to represent the second player (as seen in our multiplayer announcement gif), we wanted to create an wholly independent character. The idea of using a mechanized Morvin was a perfect solution. Not only was it a great opportunity to design a goofy scrap metal caricature of the protagonist, but the similarity of their bodies allowed us to easily reuse Morvin’s animations to drive the character. This saved us a good amount of production time since Morvin has quite a few animations that would otherwise have to be remade from scratch.

As you can see in the example below, these 3 characters are able to do the same dance in perfect unison since they all share the same skeleton (and showed up to dance practice every week). The character on the right had to be cut from the game since the actor had other contractual obligations.

If I had to say which character was the most fun for me to work on, Morvo would definitely be one of the front runners. From his spatula feet to his hamburger tongue, the whole grill motif of this knock-off Morvin was really enjoyable to develop. Plus I am quite fond of robots, especially janky ones!

This initial concept of Morvo pretty much nailed it, so I went straight into the modeling phase afterwards. A few tweaks occured here and there and we decided to replace those creepy R2-D2 eyes with something more akin to a pet rock. That is googly eyes of course! Not wanting to hand animate or simulate physics to achieve the googly effect, I developed an inexpensive shader to approximate the jiggling pupils, which I’ll explain a bit for the technically curious.

Basically, the shader takes the eye’s position in the 3D world, adds together the values of each axis and feeds that into 2 offset waveforms so as the player moves, the shader progresses through the waves. Since the wave outputs are added to the textures UV coordinates, the pupil textures jiggle back and forth as the waves progress. I put in some minimum and maximum offset values to keep the pupils from flying outside of the UV space and I amplified the Y axis input to give the jiggle more sensitivity when the character’s head bounces up and down. While not perfectly accurate, this method is much cheaper on processing power than using a physics-based approach and it succeeds in adding a bit of extra character to Morvin’s robotic counterpart.

-Bryan