Building and Animating a 3D Character in Godot
My initial goal was to create a blockout of the Digimon World game, starting with File City. However, I got sidetracked by various learning experiences along the way. First off, exploring a level without a character is not a thing, right? I could have easily built or borrowed a free-floating camera script that would have taken no time, but what’s the point?
A character in a 3D world needs a few things: a rigged model, a running animation, and a script to control movement. Those are the basic steps, but starting from scratch, both inside and outside of Godot, can be a lot of work to get a good result. After some research, I discovered the excellent Gobot from the talented team at GDQuest:
Interestingly, this little robot can blink. Why is this noteworthy, you might ask? Well, the blinking wasn’t functioning correctly. After some investigation, I found that certain animations were resetting the eyes’ albedo material, rendering the blinking code ineffective. Since I didn’t need these animations, I carefully removed the unnecessary code, allowing the little robot to blink properly (and that’s pretty cool):
Once this side quest was completed, it was time to make the character move! The animation and script for Gobot were well-prepared, making it easy to call each animation. After binding some inputs, here we go:
Another aspect worth mentioning is that lighting a scene can be overwhelming for a beginner. There are so many fancy acronyms: SSR, SSAO, SSIL, SDFGI, and so on. I just wanted a blue sky, a yellow sun, and a nice atmosphere. How do I achieve that? That’s when I stumbled upon the lighting genius, also known as passive star, and in particular, this article: How to Light Scenes. Although I’m far from fully understanding what I’m doing, I started getting renders I was happy with for now.
I also picked up two addons from the Godot Engine assets: Prototype CSGs and Phantom Camera. They work well and save me time on tasks I didn’t want to focus on just yet.
I embarked on another side quest regarding assets to block out environments, where I picked up assets from Syntystore and converted them from Unity to Godot. But I’ll talk about this in another article.
This time, for real, my next goal is to block out File City!