At our core, we are a two-man team - one programmer.(Dan Jeffery) and myself; the ‘artist’. I still don’t feel comfortable saying ‘artist’... My background is purely animation. I spent eight years working at Sony London Studio on a range of projects as an animator, from cute cartoon creatures to photo-realistic sharks and gangsters for the upcoming Playstation VR Worlds.
I wanted to share my experience of going from animator in a big team in a studio, to a solo animator/artist/designer in a bedroom. I wanted to pick out a few problems that I encountered, and the solutions I found (eventually!) that worked for me on this project.
To this... less people, more flamingos.
Starting point… exactly how am I going to do this?
I knew what I’m (hopefully!) good at: animation. I knew what I have very limited knowledge of: VFX and Texturing/Rendering. My modeling skills are... ‘functional’. I also knew I had a year to go from nothing to everything - not a huge amount of time!
Featherpunk Prime is a 2D side scroller, but I wanted to make the assets in 3D then render out to 2D sprites. I created a pipeline that worked (although not a very flexible one - more on that later). I had the theme; Robot Birds (I just have a thing for avian creatures!). Now it was time to make art stuffs!
I wanted to focus my effort on animation as much as possible. My thinking was that if the characters and world had energy and life through great animation, then it would make up for any lack of finesse on the models themselves. ‘Animate Everything’ was my initial remit. That changed some way through the project, which I will cover later.
So, with only a year to Do This Thing, it meant any characters/objects had to be quick to model, texture and rig. Two areas where I could save time were immediately apparent; skinning and texturing. I chose the theme of robots so that there would be very little soft skinning required; objects could even be parented, not needing a rig in some cases. Though I still gave the Flamingo a scarf. Because… why not.
As the objects were rendered to sprites, the meshes didn’t need to work in the engine (we used Unity). If it looked ok in the render, then it would work in-game! I applied solid colours to each part of the mesh - I didn’t UV Unwrap anything. This may have resulted in a simplistic look, but I felt with a good lighting setup and enough detail in the meshes, any shading would accentuate the detail.
Now, back to that pipeline. I won’t share the details; I’m not sure there’s a single person out there who would view it as ‘good practice’. But it worked for me. In it’s simplest form it was:
The first supervisor I had at Sony (hey Jim!) had the motto of ‘just get it in-game’. Once it’s in game, you can work out what's working and what isn’t. It’s pretty industry wide practice. Get a simple greybox version in, and iterate on it from there. However… this 3D model to 2D sprite pipeline I had made was a long process. It was more efficient to do as much animation as possible on a character, then render all of it, than to make a render of each animation one at a time.
The best compromise I found was to create a greybox character and use it for all the enemies that we wanted to prototype, as well as the main character. I made the animations for all characters in one file. I made them quickly, concentrating on strong key poses. Then in After Effects I could simply alter the colours of the renders, for different characters. There was still some iteration going back and forth, but using one character for everything was a great way to do it. When we were happy with an enemy's behavior, the final character could be build and animated, using the greybox animations as a base.
One-character-fits-all: Simple animations to get the feel right.
Final Cyber-Flamingo in action!
After Effects was a vital part of the process. I used it for colour correction and adding motion blur to animations once they were working well in-game. But also the various effects helped get more life from objects. Adding a Turbulent Displace cycle to a static floating orb for example, gave it more energy, and was a lot quicker than making a complex shader or rig in the original 3D asset!
We went with a simple lighting setup in-engine, with no real time effects/shadows/normal maps, just one big direct light. But there were are sections where the lights dip and flicker (Maintenance rooms and Boss fights mainly), where I wanted the neon of the characters to stand out. For this to work, everything needed two render layers - Diffuse and Glow. The diffuse sprites has a material that was lit by the scene light, the Glow sprites had an 'unlit' material. As a result there's some great sections where the neon claws and beaks of the characters puncture the dark areas, lending an atmosphere I’m really happy with. The downside is that everything had to be rendered twice, and sometimes complex masking/painting was required. Again - After Effects was vital here!
With the images split into Diffuse and Glow layers, I could animate the opacity and colour of the Glow layer additively in Unity. The flamingo has various indication animations to communicate different events to the player. For example, when the players health is low, neons flash white. When the Overdrive power-up is in use, the neons glow yellow. This became part of the process for all characters; when enemies are about to attack, their ‘Glow’ layer flashes red. It was a clear method of feedback for the player and allowed us to keep a minimal HUD for the whole game.
Each colour communicates a different state to the player
The self imposed rule to 'animate everything' turned out to not be a bad idea when it came to the environments. Our levels are procedurally generated, so each room is made from a set of ‘blocks’ and each environment has its own set. I decided to make simple geometry that can be made fairly quickly, but animate it all. I thought I would play to my strengths.
But there were a numbers of problems with this. Feedback was that it was too distracting, the screen was too busy and hard to pick out enemies against the noise. And I agreed. It also looked too simplistic. It was clear that this wasn’t working well. I’d made 3 environments by this stage, so it was a hard decision to throw it all away. But it was for the greater good!
An early environment. Too simple, too distracting. Not good enough!
So what did I want and need from the environments? Well, they needed to be less distracting, but I wanted some kind of life to them still. So I applied the same technique that had worked for the characters; a Diffuse and Glow layer. They would be static images, but I could animate the colour/visibility of the Glow layer, so it would flicker on and off. The theme of technology fitted well with this, so I made screens, cables and wires and created a system where they randomly pulsed and flickered. Great! It has some life to it, but it’s not too distracting.
The other issue was the simplicity. Well, without the need for everything to be animatable, I could spend more time crafting detail and texture to make one static image. I wanted to use repeated patterns to cut down on modeling time. For inspiration I turned to Alien; or more specifically the work of Hans Giger. Ridges, spinal columns, pistons; the repeating shapes became the foundation of each environment block, and they were all things my low level modeling skills could craft. And it turned out to be a fairly quick process. The game world transformed into a dense, bio-mechanical world. I felt it had found its identity!
The final element topped it off nicely; a range or organic tentacles that grow around the environment as the player explores. It added another splash of life to the world, while not distracting the player. We set the opacity to gradually increase the further up the tower the player progresses. They appear as ethereal and ghostly plants. Do they fit the rest of the theme? Perhaps not, but they added a burst of visual variety that really accentuates the atmosphere.
And so, the Cyber-Flamingo, Avian Warbots and biomechanical structures combine to give Featherpunk Prime its' look. I set out to make an interesting world, full of character. At this point in time, being so close to the project, I’m not sure how close I got to achieving that goal. But I’m happy with what I’ve created, and super excited to finally be releasing Featherpunk Prime! Oh, did I mention it has a Giant Mech-Hawk that fires Laserballs?! Lock, load, Flamingoooo!!
Thank you for taking the time to read my first post! I would love to hear from you. You can reach me at [email protected]