Godot

5920 readers
68 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

[email protected]

Credits

founded 1 year ago
MODERATORS
151
394
Solodev life (i.redd.it)
submitted 6 months ago by [email protected] to c/godot
 
 
152
 
 

This is just a question.

In case you don't know, motion matching is the term for animating characters... basically in a way that smoothly blends minor and even major animations into each other, such that characters are animated much closer to life.

It is most notable in scenarios where a character rotates their axis of movement dramatically, or speeds up or stops suddenly. Instead of the more old school instant rotation or sudden transition from running to stationary, you get a dynamic and procedural animation. Perhaps most notably, feet and legs actually take steps, instead of gliding, during transitions.

It is not the same as inverse kinematics. That basically just matches feet and legs to the geometry they are standing on, for stairs or inclines. (You can use it with arms for things like adjusting arms during arm anims to better match individual weapons or other things, etc.)

Unity, Unreal and O3DE all have freely available motion matching plugins, and I know Unreal and O3DE have freely available prepackaged humanoid animation libraries. Unity probably does as well, though more expansive anim sets cost some money.

So... question is: Is motion matching even possible in Godot? Is there some plugin hidden in GitHub or somewhere that does this?

From what I've been able to figure out... the YMAA project... apparently? claimed to be working on this, but their repo has not been updated in months, their current release does not even have half the features they show off on their youtube channel, and they appear to now be making a machinima or something so who knows.

That is all I have really been able to find. A few other github devs and youtube channels have extremely rudimentary procedural animation in demos, but either they have not listed their code anywhere or its been abandoned for months or years, sometimes since before Godot 4.

So yeah, anyone know if there is a Godot Motion Matching plugin?

153
 
 

Hi everybody! In this video, I would like to create a simple and effective shader that can significantly change the appearance of a selected sprite or even the entire screen. The effect you are seeing now can certainly have many uses, such as disabling a specific UI element or simulating an image in an old newspaper article. Let's do it.

154
 
 

I have been trying to make receiving file paths really easy, with this method in an autoload:

func file_dialog_path(extentions:PackedStringArray = [], dialog_type:FileDialog.FileMode = FileDialog.FileMode.FILE_MODE_OPEN_FILE) -> String:
	var new_dialog:FileDialog = FileDialog.new()
	new_dialog.min_size = Vector2i(400, 400)
	new_dialog.access = FileDialog.ACCESS_FILESYSTEM
	new_dialog.file_mode = dialog_type
	for i in extentions:
		new_dialog.add_filter(i)
	get_tree().current_scene.add_child(new_dialog)
	new_dialog.popup_centered()
	var file_path:String = ""
	new_dialog.file_selected.connect( func receive_path(path:String):
		file_path = path
		print("file path from within the signal: ", path)
		return path)
	file_path = await new_dialog.files_selected
	print("this is the file now", file_path)
	
	#while file_path == "":
		#await get_tree().create_timer(0.1)
	return file_path

I commented out the while loop, as it froze the entire game when I do this.

I have tried this many times now, but the method always seems to get stuck somewhere. Right now, it gets stuck in the "receive path" function, where it will print the path, but not actually return. I am receiving the output from the file_dialog_path method like this:

var file:String = await file_dialog_path(["*.mml"], FileDialog.FileMode.FILE_MODE_SAVE_FILE)
print("This is the filepath for our level ", file)

Could anyone help me with this? The best idea I have right now would be to let that commented while loop run on a thread, but that seems unneccessarily difficult for such a simple problem.

155
17
submitted 6 months ago* (last edited 6 months ago) by dai0 to c/godot
 
 

Hi there everyone!

As the title suggests I'm having some problems with PopupMenus and could use a bit of guidance from people more familiar with the engine.

I tried looking through documentation and repo issue discussions but neither of those managed to clear things up for me though it might simply be a case of me being a dumdum. Here's what I'm struggling with:

Issue #1

I'm working on a pixel art title and chose a pretty small screen size as a target (1280x1120 with the scale of 5 so I'm working on 256x224).

Because of this I use font size 11 for most of the text elements but for some reason this does not work well with PopupMenu lists, as options there end up blurry and unreadable.

I read that these elements are scaled somehow differently (or used to anyway) so my question is: is there a way to make it consistent with all the other UI elements? If so, how should I go about it?

Issue #2

I'm adding an optional CRT shader to the game. It works great with both stages and all UI elements except for PopupMenus which simply aren't affected.

Here's my scene setup. CurrentScene is a parent node to the active scene (main menu or one of the stages). I use ZIndex property to draw the CRTShader over other elements.

Any ideas would be greatly appreciated.

Edit: I forgot to mention I'm using Godot 4.3 dev3 and the PopupMenus are automatically created for all OptionButton objects.

Edit #2, in case someone has a similar issue/question: Looks like PopupMenus are rendered as separate windows rather than part of the base one. Writing my own implementation will most likely be the easiest solution to sidestep both issues.

156
 
 

I made a really simple 2D platformer yesterday using @godot and following a tutorial.

It's all assets I downloaded and steps I followed, but it's something I never thought I'd actually be able to do!

It was interesting and I definitely want to learn more in the future!

This is the most fulfilled I've felt in months.

157
17
I made an SDF Control Tool (files.catbox.moe)
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/godot
 
 

I made a Node which allows for very quick coloring and animating of signed distance field textures. In the linked video, a short demo shows what one can do with this Node and some signed distance field textures. Here is a little tour of the usage of the Node. Should I put it on the asset library, or is this kind of stuff too specific to be useful?

158
 
 

Hi everybody! I recorded this video after a few experiments with color changes using a shader on a sprite. Let's take a look at the options we have available.

159
55
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/godot
 
 

I've been working on this game in my free time, and I'd love to hear what you think. This is my first release in Godot, and I have to say I learned quite a lot about how the engine works even if it is very UI-centric.

Hex-A-Guess is a colour guessing game for graphic designers, web developers, and nerds who like hexadecimal numbers. Can you guess one of sixteen million colours in only five attempts?

You can play it free in browser, or download it DRM-free and own it forever at no cost.

https://bougiebirdie.itch.io/hex-a-guess

160
26
submitted 6 months ago by popcar2 to c/godot
161
 
 

Greetings to all fans of fractals, shaders, and the Godot Engine. Once again, I've prepared one of many algorithms for creating interesting effects that you can add to your game or perhaps use as a live background for a music video. Let's see how it works.

162
163
144
submitted 6 months ago* (last edited 6 months ago) by mac to c/godot
164
165
 
 

I didn't make any changes in the project settings or something, but I did change some GDScript. After I did that, every time I open a different scene in the scene dock the Engine crashes. This right here is the backtrace:

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.2.2.stable.official (15073afe3856abd2aa1622492fe50026c7d63dc1)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x3c050) [0x7fbfbac9c050] (??:0)
[2] godot::SceneTree::get_edited_scene_root() const (??:0)
[3] OrchestratorMainView::_on_scene_tab_changed(int) (??:0)
[4] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x3b38b48] (??:0)
[5] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x3ba02d0] (??:0)
[6] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x15aca36] (??:0)
[7] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x3ba02d0] (??:0)
[8] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x2391ef6] (??:0)
[9] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x23a255d] (??:0)
[10] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x20cdda5] (??:0)
[11] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x2126a2e] (??:0)
[12] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x212884e] (??:0)
[13] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x21376e9] (??:0)
[14] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x420ac0e] (??:0)
[15] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x493d3f] (??:0)
[16] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x3963f82] (??:0)
[17] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x396575f] (??:0)
[18] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x497bfd] (??:0)
[19] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x41e8a6] (??:0)
[20] /lib/x86_64-linux-gnu/libc.so.6(+0x2724a) [0x7fbfbac8724a] (??:0)
[21] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7fbfbac87305] (??:0)
[22] /home/marty/Schreibtisch/Godot_v4.2.2-stable_linux.x86_64() [0x42a59a] (??:0)
-- END OF BACKTRACE --
================================================================

I can also share the project files if that would be useful (I plan on open-sourcing it either way). I am using Debain 12 (GNU/Linux) using Gnome. In the backtrace I used Godot 4.2.2, but until just now where the crashes set in, I was using the latest Godot 4.3 dev6 build. So these crashes don't occur because of the dev builds.

166
167
38
submitted 6 months ago* (last edited 6 months ago) by mac to c/godot
 
 
  • Pest Apocalypse
  • Tempus Bound
  • Path of Achra
  • Croakoloco
  • TDark Souls Concept
168
77
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/godot
 
 

I've started the CGF some years ago to learn Godot and to provide something to the community. I even made a few FOSS games with it.

Sadly my work with my other FOSS projects and the fediverse doesn't give me enough time to keep it up to date and to migrate it to Godot 4 and since the engine is picking up a ton of speed, I think it's a shame people have to keep rediscovering the card game wheel.

I know a lot of people avoid it due to the AGPL3 license, so I am thinking of switching to an MIT license instead in the hopes that others will help carry the torch until I find time to circle back to it. There's always pitfalls with MIT of course, such as some company trying to enclose it and sell it as a service, but perhaps peer pressure would be enough of a deterrent at this time.

Anyway. Just opening this up for discussion.

169
 
 

A small gamejam game I made with Godot. Playable in the browser, let me know what you think!

170
 
 

I have tried myself at using Expressions for quickly throwing together some simple functionality right in the editor, without opening the script editor. I just export an array of Strings. But apparently assignment is not allowed in these expressions! Method calls are fine, but assignment doesn't seem to be okay. Here is what this looks like:

The method calls actually work perfectly fine here, but the assignments (with = in the line) do not seem to work. It seems to complain about there missing another = even though it is already there. Does someone have an idea on why this might happen?

171
29
submitted 6 months ago* (last edited 6 months ago) by mac to c/godot
 
 
  • Chordioid
  • Free Stars: Children of Infinity
  • Would You Still Love Me If I Was A Worm
  • Immersive Home
  • They Came From Dimension X
172
 
 

Hi everyone! Do you remember the video about detecting edges using the Sobel operator, which we enhanced by using Gaussian blur? One of the drawbacks of Gaussian blur is that it's somewhat computationally intensive, which can pose some performance issues for our game if we want to apply such an effect in real-time. In this video, I will demonstrate a much faster way to blur our sprite or the entire screen.

173
 
 

Child Polygon2Ds of a nav mesh by default act as obstacles, so the nav mesh avoids them. However, I just want to use the Polygon2D as the source for the nav region and remain its own node so I can do stuff like, modulate it when the player hovers over it with their cursor.

174
 
 

An interesting project I quickly threw together after finding out that Godot can call javascript's "eval" function. You can really do anything with this engine.

Source code here: https://gitlab.com/Sockman/godot-checkbox-renderer

175
38
submitted 6 months ago by mac to c/godot
view more: ‹ prev next ›