Extension-spine

Since we’ve now (version 1.3.0) officially moved our Spine support to the extension-spine native extension, it might be good to have a topic here about it.

Please continue reporting issues in the github repository

For the latest release, see the releases page

10 Likes

We’ve released version 2.0.7:

  • Added support for animation start offset
  • Added support for attachment colors
7 Likes

At this point, how reasonable is it to in the future support Spine’s clipping features? It would enable a lot of creativity.

Clipping attachments - Spine User Guide

2 Likes

The component/render api is now added to the dmsdk, so in theory, I think it should work. We use this for the stencils in the Rive extension.

2 Likes

We talked about missing support for clipping in a meeting yesterday as something the community might request soon. And sure enough, here’s the request! :slight_smile:

Now that Spine has been moved to an extension we hope for community contributions to improve Spine support further to free up valuable development time for us.

6 Likes

Now that Defold games can be used in casino games (as all source is available and can be audited / the license no longer prohibits it) it may be possible to get some of those kinds of gaming companies to sponsor Defold / some specific additions. Tools like Spine are currently heavily used in the design of slot machines. Think of the animated reels. So may be worth doing some outreach to the big gambling gaming companies and seeing if they would be interested in sponsoring Defold.

My game uses gui.set_spine_scene(), which seems to have been deprecated. Is there a way to change a gui spine scene at runtime with the new extension?

No, it hasn’t?
Are you experiencing issues with it?

I think initially I had just forgotten to refresh the Spine dependency and the function wasn’t found.

Now this code:
gui.set_spine_scene(node, "lime_blob")

Causes a crash:

Assertion failed: (Capacity() - Size() > 0), function Push, file array.h, line 501.
INFO:CRASH: Successfully wrote Crashdump to file: /Users/niclasaberg/Library/Application Support/Defold/_crash
ERROR:CRASH: CALL STACK:

# 0 pc     0x30bd7d libxpc.dylib _sigtramp+29

I’ve double checked that there is a spine scene with the lime_blob id.

I can’t find the gui.set_spine_scene() in the reference anymore, maybe because of the Spine move?

Update: It seems the crash only happens when the node has been cloned.

This works:

local node = gui.get_node("character")
gui.set_spine_scene(node, "lime_blob")

This crashes:

local node_to_clone = gui.get_node("character")
local node = gui.clone(node_to_clone)
gui.set_spine_scene(node, "lime_blob")
1 Like

It’s because we haven’t come up with a way to present the spine+gui documentation.

The “ground truth” is here, in the code:

2 Likes

For bugs and issues, pleas open a ticket in the extension repo.

2 Likes
3 Likes

There’s now a pull request with a fix awaiting review. Should be in today.

3 Likes

Amazing! :fire:

2 Likes

I understand gui.set_spine_attachment is not implemented?
No way to change attachment on the GUI level?

If anyone has worked on implementing I’m interested for any pointer. thanks.

3 Likes

I added a ticket for this:

3 Likes

We’ve released version 2.1.0 of the extension-spine, with a fix for support of with Defold 1.3.4.

It has to do with how atlas paths are generated by bob nowadays.

EDIT: Sorry, I meant Defold 1.3.4!

10 Likes

We’ve released version 2.3.1 of the extension-spine.

It fixes a compile issue when used with the Defold 1.3.7 beta.
It was an old deprected struct name that was accidentally used within the extension.

5 Likes