Monday, April 20, 2020

Animations!

Hello!

It's been a bit over a month, and I've been busy. I've been working on all the major aspects of the game concurrently. This is a bit odd, because so far I've generally jumped from one aspect to another after a few weeks solid of each. It's been fun to work on the "whole project almost at once, but also confusing and a bit exhausting. I think this experience further cements in my mind that it's better for me to work in a single area for a time, before changing it up. Anyway. Let's get on to what I've been up to:

Sprites!

The first thing I've been up to is hardcore sprite work. I went back and totally redid my Union building sprites for the third time: they've come a long way now and are finally approaching what they should look like now. I have further work still to do on them, especially with the floor tiles that will go around them, but it's great progress and feels good to have made it!

I also did some major work on the natural and interior sprites, but I don't have anything to show here for those yet.

Character animations!

I finally bit the bullet and drew the walk cycles for my characters. Further, I wrote my own animation system in Unity to manage them. Woah woah woah, I know, I know. Unity has an extremely powerful keyframe animation system in it, and I'm fairly comfortable using one after my experience with SFM, so why didn't I use that? The main reason is that I'm lazy and prefer programming to clicking buttons and dragging sliders. The keyframe animator would be wonderful for kinematic rig animation or tweened animations or anything like that, but my animations consist of hand drawn sprites in a spritesheet. To animate them, all I want to do is show a different image each frame. If I were to use Unity's animator I would have to split my spritesheet into individual sprites and then click and drag them on to the animation timeline one by one for each animation. Left_01, Left_02, Left_03, Left_04, adjust the timing, save as player_walk_left. Considering I'm planning on doing unique animations for up to 30 characters, repeating this pattern one by one for each of them is lame. Plus the clutter of files everywhere is just unsightly.

Instead, I import my single spritesheet containing all the animation frames in a specific predefined order:


And then all I have to do is put it in the character folder in Unity. My scripts take care of the rest! Automatically, my animation helper script will load the required files and find the needed frame at any time, displaying them in custom orders and loops to produce the animations in the game. I won't lie, this script was an experience and a half to write (mostly me fighting Unity's coroutines and monobehaviour patterns out of inexperience) but I expect it to save me a lot of time in the future, and the results in-game look great! I don't have a clip of that to show you, but here's a gif of my player's sprites:



Story work! Character designs!
I've continued writing the story of my game this month, with a special emphasis on writing the NPC characters that will appear. It's been a lot of fun fleshing out their backstories and motivations and has been a great chance for me to try some narrative concepts I have developed. Whether they work or not will remain to be seen...

One character I've finished this month is Timo Lahtinen; patriarch of the Teljä Homestead, which is located on the shore to the far northwest of the game's world.

Timo Lahtinen

Timo is a quiet introspective man, uninterested in conflict or grand pretentions. He will present to the player the worldview of an Arcadian who is most like an "ordinary man"; he just wants to live his life in peace with his family. But he is still an Arcadian, and chose the hard life for reasons dear to his heart, reasons which the player may uncover...

Timo's walkcycle


The Central AI:

The central AI's portrait


The other major character I've worked on has been the Central AI of the Union. The Central AI is exactly what it says on the tin. It oversees the Union's resource pipelines, human wellbeing, and general operation. A monumental task for any human, but what the machine was built for. Central is omnipresent in the lives of the Union's people but is never intrusive. Interactive panels in the walls glow softly with the AI's colours, ever ready to be activated by a person, to provide advice, information, or accept orders.

Designing the AI's interface was an interesting challenge. The AI rarely initiates interactions but must always appear ready. It must exude confidence and power without being overbearing or frightening. It must appear obviously non-human, but still personable so as to be 'friendly'. And through all this, it must appear to suit the world - that is, the design must look retro. I'm lucky to work around a lot of UX people, so I've been able to pick up bits and pieces that I think informed my designs.



Two concept interfaces for the AI - note my attempt to create screen colour pixels


I'm not confident the design is finalised yet, but I'm very happy with the current iteration at the moment. I went through a number of designs, some more complex and some simpler, before settling on the existing one. A bit influence was HAL from 2001 A Space Odyssey; with HAL's design principles and design context being similar to my Central AI's.  But obviously, I couldn't design anything too close to HAL or risk the obvious conclusion that my AI must be poised to become the antagonist as well. Ultimately, my AI is the most powerful mind in my universe, but has no ulterior motivations, no complex personality, and is just a very efficient machine. 


A Hal-like interface


Next on my plate is to continue with my character writing. I'm about halfway done. After that I will continue with the sprite work and attempt a few more of the programming challenges that stand before me.

Thanks for having a read!



Also here's a track I've been using to inspire the industrial zone design work I've been doing:

No comments:

Post a Comment