Home Creators Posts Import Register Favorites Logout
haven't archived this post yet. have a subscription? use the importer!

Content

Sept 21

GLB files don't properly save which character animations should loop and I spent days trying to fix that issue via code, which was doable but highly inefficient and inappropriate. Yesterday I learned that Godot automatically loops all animations whose name ends in '-loop', so today I sanitized Dame Ternera's Blender file, ensuring that all 60+ animations are properly key-framed and labeled, and removing all leftover garbage animations from the file. Now it takes 10 seconds to export, while yesterday it took 50. And that feels so good.

Sept 22

Godot blend spaces don't adjust animation lengths and that is disgusting. I have managed to simulate decent blending through an obscene amount of time scale nodes and a few lines of codes, but this is impossible to reuse for other characters unless I build the whole node structure by hand.

I've been looking into programming my own custom animation nodes, but it seems that Godot 4's UI isn't compatible with them. They better fix that asap. In the meantime, I'll see if I can at least modify a regular blend space node through code so it actually freaking blends.

Sept 22 bis

Modifying animation nodes via code was also impossible, because Godot allows programmers to change anything within the nodes EXCEPT for their output, which you'd guess is kind of important. This is due to a bug, not by design.

I went back to manually building the whole node structure, but then saving it so I can easily reuse it as many times as I need. It took me unreasonably long because forum users are as confused as I am, but I managed to find a way to safely instance saved structures. With that done, I believe we're safe to start building the movement state machine.

Time Scale nodes 'a_time' to 'c_time' normalize the lengths of animations 'a' to 'c' to 1 second. Time Scale node 'out_time' undoes this normalization proportionally to the blending value.

Sept 23

The toon and outline shaders were much easier than expected, even working on a language I hadn't seen before. The algorithms I was using before worked perfectly.

  • Toon shader: Albedo = Texture ; Diffuse = Color x round(Normal · Light)
  • Outline shader: unshaded, single color, front culling ; Vertex += thickness x Normal

However, there is an issue: Godot does not do projected shadows on compatibility mode, which I was using so I could post the game on itchio as playable on browser. That's fine, I can either take that loss and disable the compatibility mode, or go full 90s and program the shadows myself, which I know how to do because that was my final project for my computer science degree.

Which option would you prefer?

Files

Previews only

Comments

drjavi

That they did, but how long until the higher-ups get greedy again? I don't trust them anymore. If Godot fails me, I'll just make it an interactive comic instead.

Karl Maurer

If programming the shadows don't impact clockcycles/framerate too much, vs amount of code it requires, vs hassle of it all... program the shadows yourself. Especially if it allows you to make the shadows show things like 'unseen corruption' or 'possession', etc.