ExposedCat's blog
68 subscribers
377 photos
43 videos
3 files
227 links
πŸ‘¨β€πŸ’» IT & Life by @ExposedCat

Check out also @LevelNine

πŸ‡ͺπŸ‡ΊπŸ‡ΊπŸ‡¦πŸ³οΈβ€πŸŒˆ
Download Telegram
#TIL you can align post previews in Instagram (hold post > options)
🀯1
Animations in Godot: late evening findings I

Given a model skeleton (e.g. arms + body + legs) and some animations for it, we can setup a simple Start β†’ Idle pipeline so that model goes into Idle animation on start.

For movement animation, we need to blend 4-5 animations into one based on character's direction and speed, and there is a BlendSpace2D node that does exactly this: given calculated blend position it's mapped onto a 2D space with sideways animation on the negative/positive X, forward at the negative Y and backwards at the positive Y, blending those into a final one based on the input.

Now, with
Start β†’ IW

and
         Backwards
οΈ²
Sideways β€’ Idle β€’ Sideways
οΈ²
Forward

we will have a smooth movement animation by providing a point on this chart which will represent character's movement state
2
Animations in Godot: late evening findings II

That being said, we can easily add a short one-time animation such as Cheering, by doing
Start β†’ IW ←⇒ Cheer

where Cheer is being manually fired and automatically returned to the IW once finished.

This will, however, result in a character sliding on a floor like a penguin on ice if we try to walk while cheering, because Cheer animation doesn't have legs movement.
2
Animations in Godot: late evening findings III

To solve this, there is a BlendTree node that provides a way to build more complex pipelines. Moving BlendSpace2D into BlendTree as Locomotion start node and connecting it to tree's output will result in same behavior space had; then we can use a OneShot node which takes two sources (in and shot), optional skeleton filters (e.g. arms only) and, when fired, overwrites filtered skeleton parts of in with shot.

I.e. by putting Locomotion and Cheer animation into OneShot
Locomotion β†’ Cheer_OS β†’ output
^
Cheer_A

we can have a nicely slapped Cheering animation on top of smooth movement πŸ’ƒ

To add more one-shot animations we can basically chain OneShot nodes since they return untouched in animation when not fired, i.e. only fired node of chain will be played

P.S. I wrote a ton about animations in private chats so decided to drop it here, πŸ‘Ž if I should stop doing this since I will have a lot to post while replicating the SneakOut
πŸ‘2
β πŸ† Wall-through outlines and highlights in Godot

Not that good for outlines (insanely simple but has requirements to the model), but highlight is really nice and performant thanks to utilizing Godot internal rendering system

P.S. A nice outline shader by community
πŸ‘2πŸ‘Ž1😁1
Media is too big
VIEW IN TELEGRAM
πŸͺ‘ Godot + Steam + SneakOutℒ️

Took me about a week of daily LLM talks, FAAFO in editor, a few YT videos, a few articles, a ready-made asset pack and 250 hours in SneakOutℒ️. Open-source & coming out to Steam soon.

Amazing engine for your amazing game ideas.

GitHub
9
Godotiki

Migrating to 4.5 for stencil features

P.S. Stencil is goated
❀1
AoC 2025 and on will have only 12 days, ending mid-December.

Why did the number of days per event change? It takes a ton of my free time every year to run Advent of Code, and building the puzzles accounts for the majority of that time. After keeping a consistent schedule for ten years(!), I needed a change. The puzzles still start on December 1st so that the day numbers make sense (Day 1 = Dec 1), and puzzles come out every day (ending mid-December).
🀯4
@AdventCodeBot is up and ready for 2025 in the same leaderboard (starts in 1 week)
1
This media is not supported in your browser
VIEW IN TELEGRAM
#TIL editor.cursorSmoothCaretAnimation preference enables smooth cursor animation in VSCode(s)
πŸ‘6