Related Discussions
...
un mois plus tard

Will there ever be the possibility of swapping attachment images from disk like you can in the Unity mix and match example for runtime skin creation purposes? The docs mention attachment API is not exposed to GDScript - will this continue to be the case for future versions of the runtime and Godot engine?

The specific use cases I have in mind are mod support and also for performance reasons when a character can have hundreds of equipment items which would produce rather huge atlases with a significant memory footprint if loaded at once. It would be preferable to create a base Spine character with a template skin for each equipment type and then grab the images from disk later when necessary.

I sure would like to support that, but currently see no technical way to achieve it easily. The issue is that accessing files outside of the package Godot creates when you export, which is possible, but not in a way that'd make it easy to use for end users.

5 jours plus tard

Hello ! 🙂

I downloaded the latest Godot editor provided by the spine-godot runtime documentation, but the performance is very bad ^^"
The editor runs at something like 10-20 fps, is not responsive, and is kind of unusable.
This is the editor version : "Godot Engine v3.5.stable.custom_build [991bb6ac7]"

Is it a known issue ? I can provide more information if that can help.
(I'm evaluating whether I'd prefer using Godot or Unity for a prototype of Spine integration)

5 jours plus tard
midiphony-panda a écrit

Hello ! 🙂

I downloaded the latest Godot editor provided by the spine-godot runtime documentation, but the performance is very bad ^^"
The editor runs at something like 10-20 fps, is not responsive, and is kind of unusable.
This is the editor version : "Godot Engine v3.5.stable.custom_build [991bb6ac7]"

Is it a known issue ? I can provide more information if that can help.
(I'm evaluating whether I'd prefer using Godot or Unity for a prototype of Spine integration)

Looks like it's been recently reported: https://github.com/EsotericSoftware/spine-runtimes/issues/2226

Sorry, been out sick and before I got sick, I had to change the build system so GitHub actions start working again. Sadly, I have not yet figured out what's causing this regression. I'll update the issue once I've figured it out.

18 jours plus tard

I tried compiling Godot 3.5 branch mono editor by following the official compiling guidelines here.

But when trying to enable the Mono module per steps described in the link, the process fails due to presence of godot_spine module. Is the spine runtimes module fundamentally incompatible with the mono editor, or am I doing something wrong?

I can enable Mono module without godot_spine module present. Same issue when I attempt to "Generate the glue" per instructions.

I'm compiling on Windows for Windows.

The runtime is not fundamentally incompatible. We just don't ship pre-compiled binaries as it's a pain to set up a build pipeline for Mono integration for all platforms.

What specific errors are you getting?

    Mario

    PS C:\GameDev\GodotEngine\Godot_3_5_Src\godot> scons module_mono_enabled=yes
    scons: Reading SConscript files ...
    Automatically detected platform: windows
    Auto-detected 24 CPU cores available for build parallelism. Using 23 cores by default. You can override it with the -j argument.
    Found MSVC version 14.2, arch x86_64
    Building for platform "windows", architecture "x86_64", target "editor".
    Checking for C header file mntent.h... (cached) no
    scons: done reading SConscript files.
    scons: Building targets ...
    [ 3%] Compiling main\main.cpp ...
    [ 3%] main.cpp
    [ 3%] Compiling modules\register_module_types.gen.cpp ...
    [ 3%] register_module_types.gen.cpp
    [ 18%] Compiling modules\gdscript\register_types.cpp ...
    [ 18%] register_types.cpp
    [ 18%] Compiling modules\gdscript\language_server\gdscript_extend_parser.cpp ...
    gdscript_extend_parser.cpp
    [ 18%] Compiling modules\gdscript\language_server\gdscript_language_protocol.cpp ...
    [ 18%] Compiling modules\gdscript\language_server\gdscript_language_server.cpp ...
    gdscript_language_protocol.cpp
    gdscript_language_server.cpp
    [ 18%] Compiling modules\gdscript\language_server\gdscript_text_document.cpp ...
    [ 18%] Compiling modules\gdscript\language_server\gdscript_workspace.cpp ...
    gdscript_text_document.cpp
    gdscript_workspace.cpp
    [ 20%] Compiling modules\gltf\gltf_document.cpp ...
    [ 20%] gltf_document.cpp
    [ 20%] Compiling modules\gltf\register_types.cpp ...
    [ 20%] register_types.cpp
    [ 20%] Compiling modules\gltf\editor\editor_scene_exporter_gltf_plugin.cpp ...
    [ 20%] Compiling modules\gltf\editor\editor_scene_importer_blend.cpp ...
    [ 20%] editor_scene_exporter_gltf_plugin.cpp
    [ 20%] Compiling modules\gltf\editor\editor_scene_importer_fbx.cpp ...
    [ 20%] Compiling modules\gltf\editor\editor_scene_importer_gltf.cpp ...
    editor_scene_importer_blend.cpp
    editor_scene_importer_fbx.cpp
    editor_scene_importer_gltf.cpp
    [ 26%] Compiling modules\navigation\navigation_mesh_generator.cpp ...
    [ 26%] navigation_mesh_generator.cpp
    [ 34%] Compiling modules\spine_godot\GodotSpineExtension.cpp ...
    GodotSpineExtension.cpp
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\GodotSpineExtension.h(32): fatal error C1083: Cannot open include file: 'spine/Extension.h': No such file or directory
    [ 34%] Compiling modules\spine_godot\SpineAnimation.cpp ...
    SpineAnimation.cpp
    [ 34%] Compiling modules\spine_godot\SpineAnimationState.cpp ...
    SpineAnimationState.cpp
    [ 34%] Compiling modules\spine_godot\SpineAnimationTrack.cpp ...
    [ 34%] Compiling modules\spine_godot\SpineAtlasResource.cpp ...
    SpineAnimationTrack.cpp
    [ 34%] Compiling modules\spine_godot\SpineAttachment.cpp ...
    SpineAtlasResource.cpp
    [ 34%] Compiling modules\spine_godot\SpineBone.cpp ...
    [ 34%] Compiling modules\spine_godot\SpineBoneData.cpp ...
    SpineAttachment.cpp
    SpineBone.cpp
    SpineBoneData.cpp
    scons: *** [modules\spine_godot\GodotSpineExtension.windows.editor.x86_64.obj] Error 2
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAnimation.h(34): fatal error C1083: Cannot open include file: 'spine/Animation.h': No such file or directory
    scons: *** [modules\spine_godot\SpineAnimation.windows.editor.x86_64.obj] Error 2
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAtlasResource.h(36): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
    scons: *** [modules\spine_godot\SpineAnimationState.windows.editor.x86_64.obj] Error 2
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAtlasResource.h(36): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
    scons: *** [modules\spine_godot\SpineAtlasResource.windows.editor.x86_64.obj] Error 2
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAtlasResource.h(36): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
    scons: *** [modules\spine_godot\SpineAnimationTrack.windows.editor.x86_64.obj] Error 2
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineAttachment.h(33): fatal error C1083: Cannot open include file: 'spine/spine.h': No such file or directory
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineBoneData.h(34): fatal error C1083: Cannot open include file: 'spine/BoneData.h': No such file or directory
    scons: *** [modules\spine_godot\SpineAttachment.windows.editor.x86_64.obj] Error 2
    scons: *** [modules\spine_godot\SpineBone.windows.editor.x86_64.obj] Error 2
    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\SpineBoneData.h(34): fatal error C1083: Cannot open include file: 'spine/BoneData.h': No such file or directory
    scons: *** [modules\spine_godot\SpineBoneData.windows.editor.x86_64.obj] Error 2
    scons: building terminated because of errors.
    [Time elapsed: 00:00:16.617]
    PS C:\GameDev\GodotEngine\Godot_3_5_Src\godot>

    The process I've followed so far:

    1. Cloned Godot 3.5 branch.
    2. Cloned Spine Runtimes.
    3. Copy/pasted spine_godot folder from Runtimes to engine source in godot/modules.
    4. Then followed compiling with mono instructions up until the "Enable the Mono module" step where I get the above error.

    I have not run any of the included spine shell scripts as I'm unsure if/when I should do any of that.

    EDIT: Assuming I have to go the shell script route where I have to modify the scripts to include the mono steps, I've been unsuccessful in running the default scripts as well:

    The world of compiling from source, shell scripts and everything else related is completely foreign to me.

    Here's the reason things don't compile for you:

    C:\GameDev\GodotEngine\Godot_3_5_Src\godot\modules\spine_godot\GodotSpineExtension.h(32): fatal error C1083: Cannot open include file: 'spine/Extension.h': No such file or directory

    You don't have to use the shell scripts that come with spine-godot, but you need to copy over the folder spine-runtimes/spine-cpp/spine-cpp to your copy of the spine_godot folder.

    Here's what that looks like:

    The errors you get when executing the Bash scripts in spine-godot are due to the spaces in your path. I'll fix that up on our end. But I strongly suggest to never use spaces in your files and/or folder names as many (programming) tools don't deal with those properly.

      Mario I've copied spine-runtimes/spine-cpp/spine-cpp folder to spine_godot folder:

      But I'm still experiencing issues:

      C:\GameDev\GodotEngine\Godot_Src\godot>scons p=windows tools=yes module_mono_enabled=yes mono_glue=no
      scons: Reading SConscript files ...
      Auto-detected 24 CPU cores available for build parallelism. Using 23 cores by default. You can override it with the -j argument.
      Configuring for Windows: target=debug, bits=default
      Found MSVC version 14.2, arch amd64, bits=64
      Note: Building a debug binary (which will run slowly). Use target=release_debug to build an optimized release binary.
      Checking for thread_local support... supported
      Found Mono root directory: C:\Program Files\Mono\
      Checking for C header file mntent.h... (cached) no
      scons: done reading SConscript files.
      scons: Building targets ...
      [ 4%] generate_modules_enabled(["modules\modules_enabled.gen.h"], [OrderedDict([('bmp', 'modules/bmp'), ('bullet', 'modules/bullet'), ('camera', 'modules/camera'), ('csg', 'modules/csg'), ('cvtt', 'modules/cvtt'), ('dds', 'modules/dds'), ('denoise', 'modules/denoise'), ('enet', 'modules/enet'), ('etc', 'modules/etc'), ('fbx', 'modules/fbx'), ('freetype', 'modules/freetype'), ('gdnative', 'modules/gdnative'), ('gdscript', 'modules/gdscript'), ('gltf', 'modules/gltf'), ('gridmap', 'modules/gridmap'), ('hdr', 'modules/hdr'), ('jpg', 'modules/jpg'), ('jsonrpc', 'modules/jsonrpc'), ('lightmapper_cpu', 'modules/lightmapper_cpu'), ('mbedtls', 'modules/mbedtls'), ('minimp3', 'modules/minimp3'), ('mobile_vr', 'modules/mobile_vr'), ('mono', 'modules/mono'), ('navigation', 'modules/navigation'), ('ogg', 'modules/ogg'), ('opensimplex', 'modules/opensimplex'), ('opus', 'modules/opus'), ('pvr', 'modules/pvr'), ('raycast', 'modules/raycast'), ('regex', 'modules/regex'), ('spine_godot', 'modules/spine_godot'), ('squish', 'modules/squish'), ('stb_vorbis', 'modules/stb_vorbis'), ('svg', 'modules/svg'), ('tga', 'modules/tga'), ('theora', 'modules/theora'), ('tinyexr', 'modules/tinyexr'), ('upnp', 'modules/upnp'), ('vhacd', 'modules/vhacd'), ('visual_script', 'modules/visual_script'), ('vorbis', 'modules/vorbis'), ('webm', 'modules/webm'), ('webp', 'modules/webp'), ('webrtc', 'modules/webrtc'), ('websocket', 'modules/websocket'), ('webxr', 'modules/webxr'), ('xatlas_unwrap', 'modules/xatlas_unwrap')])])
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Animation.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AnimationState.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AnimationStateData.cpp
      Animation.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Atlas.cpp
      AnimationState.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AtlasAttachmentLoader.cpp
      AnimationStateData.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Attachment.cpp
      [ 45%] Atlas.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AttachmentLoader.cpp
      AtlasAttachmentLoader.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\AttachmentTimeline.cpp
      Attachment.cpp
      [ 45%] AttachmentLoader.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Bone.cpp
      AttachmentTimeline.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\BoneData.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\BoundingBoxAttachment.cpp
      Bone.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\ClippingAttachment.cpp
      BoneData.cpp
      [ 45%] modules\spine_godot\spine-cpp\src\spine\AnimationStateData.cpp(30): fatal error C1083: Cannot open include file: 'spine/AnimationStateData.h': No such file or directory
      [ 45%] modules\spine_godot\spine-cpp\src\spine\AttachmentTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/AttachmentTimeline.h': No such file or directory
      Compiling ==> modules\spine_godot\spine-cpp\src\spine\ColorTimeline.cpp
      modules\spine_godot\spine-cpp\src\spine\Atlas.cpp(30): fatal error C1083: Cannot open include file: 'spine/Atlas.h': No such file or directory
      BoundingBoxAttachment.cpp
      modules\spine_godot\spine-cpp\src\spine\Animation.cpp(30): fatal error C1083: Cannot open include file: 'spine/Animation.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\Attachment.cpp(30): fatal error C1083: Cannot open include file: 'spine/Attachment.h': No such file or directory

      modules\spine_godot\spine-cpp\src\spine\AttachmentLoader.cpp(30): fatal error C1083: Cannot open include file: 'spine/AttachmentLoader.h': No such file or directory
      modules\spine_godot\spine-cpp\src\spine\AnimationState.cpp(30): fatal error C1083: Cannot open include file: 'spine/AnimationState.h': No such file or directory
      modules\spine_godot\spine-cpp\src\spine\AtlasAttachmentLoader.cpp(30): fatal error C1083: Cannot open include file: 'spine/AtlasAttachmentLoader.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\BoneData.cpp(30): fatal error C1083: Cannot open include file: 'spine/BoneData.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\Bone.cpp(30): fatal error C1083: Cannot open include file: 'spine/Bone.h': No such file or directory
      [ 45%]

      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\ConstraintData.cpp
      ClippingAttachment.cpp
      [ 45%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\CurveTimeline.cpp
      ColorTimeline.cpp
      [ 45%] ConstraintData.cpp
      Compiling ==> modules\spine_godot\spine-cpp\src\spine\DeformTimeline.cpp
      [ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\DrawOrderTimeline.cpp
      CurveTimeline.cpp
      [ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Event.cpp
      DeformTimeline.cpp
      [ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\EventData.cpp
      DrawOrderTimeline.cpp
      [ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\EventTimeline.cpp
      Event.cpp
      [ 46%] Compiling ==> modules\spine_godot\spine-cpp\src\spine\Extension.cpp
      EventData.cpp
      modules\spine_godot\spine-cpp\src\spine\DeformTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/DeformTimeline.h': No such file or directory
      modules\spine_godot\spine-cpp\src\spine\BoundingBoxAttachment.cpp(30): fatal error C1083: Cannot open include file: 'spine/BoundingBoxAttachment.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\ConstraintData.cpp(30): fatal error C1083: Cannot open include file: 'spine/ConstraintData.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\ColorTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/ColorTimeline.h': No such file [ 46%] ctory

      modules\spine_godot\spine-cpp\src\spine\ClippingAttachment.cpp(30): fatal error C1083: Cannot open include file: 'spine/ClippingAttachment.h': No such file or directory
      modules\spine_godot\spine-cpp\src\spine\Event.cpp(30): fatal error C1083: Cannot open include file: 'spine/Event.h': No such file or directory

      [ 46%] open include file: 'spine/CurveTimeline.h': No such file or directoryerror C1083: Cannot
      Compiling ==> modules\spine_godot\spine-cpp\src\spine\IkConstraint.cpp
      modules\spine_godot\spine-cpp\src\spine\DrawOrderTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/DrawOrderTimeline.h': No such file or directory
      EventTimeline.cpp
      Extension.cpp
      modules\spine_godot\spine-cpp\src\spine\EventTimeline.cpp(30): fatal error C1083: Cannot open include file: 'spine/EventTimeline.h': No such file or directory
      modules\spine_godot\spine-cpp\src\spine\EventData.cpp(30): fatal error C1083: Cannot open include file: 'spine/EventData.h': No such file or directory
      IkConstraint.cpp
      [ 46%] Compiling ==> modules\navigation\register_types.cpp
      scons: *** [modules\spine_godot\spine-cpp\src\spine\CurveTimeline.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\BoundingBoxAttachment.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\AnimationStateData.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\Atlas.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\AttachmentTimeline.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\ConstraintData.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\AtlasAttachmentLoader.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\Bone.windows.tools.64.obj] Error 2
      register_types.cpp
      scons: *** [modules\spine_godot\spine-cpp\src\spine\ClippingAttachment.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\AnimationState.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\Event.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\DrawOrderTimeline.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\EventData.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\Attachment.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\Animation.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\ColorTimeline.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\DeformTimeline.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\AttachmentLoader.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\EventTimeline.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\BoneData.windows.tools.64.obj] Error 2
      modules\spine_godot\spine-cpp\src\spine\IkConstraint.cpp(30): fatal error C1083: Cannot open include file: 'spine/IkConstraint.h': No such file or directorymodules\spine_godot\spine-cpp\src\spine\Extension.cpp(30): fatal error C1083: Cannot open include file: 'spine/Extension.h': No such file or directory

      scons: *** [modules\spine_godot\spine-cpp\src\spine\Extension.windows.tools.64.obj] Error 2
      scons: *** [modules\spine_godot\spine-cpp\src\spine\IkConstraint.windows.tools.64.obj] Error 2
      scons: building terminated because of errors.
      [Time elapsed: 00:00:04.263]

      I did manage to resolve the shell script issue, thank you for the Path tip.

      Ah, you are copying the Spine module into the Godot source tree. We keep the Spine module outside the Godot source tree. Have a look at the spine_godot/SCsub file, lines 5 and 8. The paths given there are relative to the godot/ directory. I think if you change them to spine-cpp/include it should work.

      5 mois plus tard

      Now that Godot 4.1 is out, it would be great to see the signal name conflicts resolved as well as the other ongoing Godot 4 issues like mesh culling and 3D support.

      GDExtension also has a backwards compatibility system in place now and no breaking changes are expected in the future. Perhaps the implementation could be ported to GDExtension?

      I was on vacation last week, so couldn't fully check the 4.1 release yet.

      I'm not sure 4.1 has any new means for us to fix mesh culling as described here: EsotericSoftware/spine-runtimes2248

      3D support is independent of the Godot version. I just currently lack the time to work on it, as I have other runtimes to update/create. I'd welcome pull requests in that area.

      I'd love to go GDExtension for the plugin, but that's still not well documented, especially for mobile and web platforms. I see what changed in 4.1.

      5 jours plus tard

      I would also very much appreciate a GDExtensions version of the runtime, as a c# programmer the mono/.NET version of godot is the only way I can code with c#. I'm not particularly knowledgeable about more backend heavy things so I'm currently learning how to compile the godot editor from source but to be honest it seems like a major pain to get going, not to mention having to go through that whole process every time there's an update for the engine. If I have to compile it myself I will but I hope in the future it will be a much smoother process because I adore spine and just want to integrate it properly with godot without too much headache. That being said thank you for keeping up with godot 4.1 and continuing to update the runtime, I'm sure it's difficult to manage all these different game engines with their unique infrastructures.

        Alyria I'm fairly sure the GDExtension system doesn't have any C# hooks yet so you'd still have to control Spine via GDScript and then interop that with C#, which might be slow depending on what you're doing. Still, it would at least eliminate the engine compilation step.

          Yeah, that's also my last info on GDExtension and C#. I'll look into GDExtension-ifying spine-godot in the near future once I'm done with other runtime work. One of the issues we'll face is that not everything we need is exposed via GDExtension and godot-cpp, e.g. AnimationPlayer.

          T.Fly() oh gotcha, well in that case I'll just set it up myself, it seems you were able to get it working after some troubleshooting, have you had any major complications using your custom build once you got it working? I plan on using the current 4.1 version of godot so hopefully the process won't be too different.

            Alyria I went back to Unity for now. Both Godot 4 and Spine-Godot runtimes need time to mature for my purposes. Also, the project I'm working on now makes heavy use of the attachment API where I can set up template skins in Spine, but grab images from other sources like in the mix-and-match example scene. Godot implementation is limited in this use case, as it does not have access to the attachment API. Everything has to be done in Spine, which has load time and memory usage implications as well as a lot more manual labor.

              The runtime can only mature if people give us feedback based on their real-world usage scenarios. Your use case is a good one, and we should definitely implement support for it. I've opened an issue here:
              EsotericSoftware/spine-runtimes2322

              That said, the runtime can only mature if we get this kind of feedback. So keep it coming please.