We've started work on an official Godot plugin but that's still a bit away from release. There's a 3rd party spine-godot plugin, which ours is based on, as the author has generously donated it to us. You could give that a try in the meantime. But note that we are changing quite a few things around.

The original plugin: https://github.com/rayxuln/spine-runtime-for-godot
Ours can be found in the spine-godot branch (based on spine-runtimes 4.0) on GitHub: https://github.com/EsotericSoftware/spine-runtimes/tree/spine-godot

Related Discussions
...

Thanks for the response! Before jumping into Godot, I realize there isn't much tutorials about Godot and Spine 2D runtimes. I think for now, I will continue to play with the trial version until I feel comfortable using it with Python. But I will check the forum once in a while to see what the progress is on an official Godot runtime release. Thanks!

2 mois plus tard

Looking forward to the official Godot support.

We are making good progress with the Godot runtime lately. It's turning out very nice!

That's great to hear! I ended up purchasing Spine Pro and have been using rayxuln's runtime. Is there a difference if I were to switch over to Esoteric's runtime?

Yes, they won't be compatible. You can follow the changes in the 4.2-beta branch. It's not ready for use in projects yet, but ready enough to play around with it and give feedback. V1 will try to cover all the basics as well as possible. V2 will the focus on things like AnimationPlayer support, possibly spatial support (currently it's only for canvas), and more.

Sounds great! Keep me updated! I check in once in a while. I'm open to switching everything over once there is a stable official release, but I still love hearing about progress. Thank you for your dedication to this project.

4 jours plus tard
6 jours plus tard

Hey. I'm also following progress on Spine runtime for Godot. I just want to report that I can't build Web version. Emscripten throws some errors and warnings when compiling Spine runtime.

If it helps, Rayxuln's spine-module-for-godot (linked above) compiles for web with no issues (on my end, at least). I'll be using that while the official support spends some more time in the oven.

If there's one thing I really hope the official Godot support adds, it's an easier way to attach arbitrary Godot objects to Spine attachment slots. I mean, it works, I can use it, but it's really clumsy and unintuitive. (And undocumented, IIRC - I only figured out how it worked by looking at the code itself!)

@tasco exports to non-desktop platforms, that's a big item on my todo list. I want to make sure everything else is good first.

@Ryusui that's actually what I spent most of my time on 🙂 They way attaching other nodes is planned to work is like like this:

  1. In the inspector for SpineSprite, you have a dedicated section where you can specify which node should be rendered before/after which slot. It's not using the standard array or dictionary inspector UI, but a custom UI with drop downs for slots and node paths.
  2. In code, you will have setters to add/remove nodes from slots.

Actually, I just gave the WASM build a quick try, fixed the compilation error, build the export tempalte, and tada:

16 jours plus tard

I noticed the spine-godot directory on github is gone. Is there still a way to try spine in godot?

It works almost perfectly. I am eagerly waiting for the "Export Templates".

Can you elaborate on the "almost" part?

  • In AnimationPlayer Node I click on "Add Track > Property Track", choose the SpineAnimationTrack, but i can't see the properties "animation_name" or "loop" (like used in example 08-animation-player)
  • When I click on "Search Help" (Reference documentation in Script Tab), Godot crashes.
  • The External Editor (Visual Studio code with godot-tools extension) cannot connect to the GDScript Language Server.

I build on my Mac with "./setup.sh 3.4".

Cheers! Issues 2 and 3 are likely due to the fact, that the build generated by setup.bat/.sh is a minimal editor buildmwith many modules disabled. I do this so iteratiom times on recompiles while working on the code are minimal. When we publish editor builds, they'll have all the default modules that come with Godot. You can fix this locally if you remove all lines from custom.py and recompile the engine/editor via setup.sh/.bat (build.sh/.bat will not work, as setup.sh/.bat configures the build).

Issue 1 is a documentation problem 🙂 You don't want to create a track the SpineAnimatiomTrack in the animatiom editor, but the AnimationPlayer child of the track. Sadly, Godot's AnimationPlayer and editor don't allow custom track types, so this is a workaround. As a bonus you see the animation durations and names tho, which is MUCH better then only seeing a little diamond for a key.

Mario a écrit

Cheers! Issues 2 and 3 are likely due to the fact, that the build generated by setup.bat/.sh is a minimal editor buildmwith many modules disabled. I do this so iteratiom times on recompiles while working on the code are minimal. When we publish editor builds, they'll have all the default modules that come with Godot. You can fix this locally if you remove all lines from custom.py and recompile the engine/editor via setup.sh/.bat (build.sh/.bat will not work, as setup.sh/.bat configures the build).

Issue 3 "GDScript Language Server" solved! :yes:

Issue 2 "Search Help" NOT solved. Godot still crashes :no:


Mario a écrit

Issue 1 is a documentation problem 🙂 You don't want to create a track the SpineAnimatiomTrack in the animatiom editor, but the AnimationPlayer child of the track. Sadly, Godot's AnimationPlayer and editor don't allow custom track types, so this is a workaround. As a bonus you see the animation durations and names tho, which is MUCH better then only seeing a little diamond for a key.

Unfortunately, your explanation did not help me. Perhaps I have expressed myself unclearly.

How did you manage the following? animation_name and loop do not appear in the selection. I tried to enter the entries manually, but of course it doesn't work.

Finally, in another AnimationPlayer, I want to put together the individual animations: