• Runtimes
  • GameMaker Studio 2 issues with Spine file.

I have sent a Spine file recently to a programmer, and there has been a lot of different visual glitches, related to the bone position and transform constraints. However, these problems seem to be isolated to GameMaker Studio 2, because the Skeleton Viewer and Unity displays the Spine sprite correctly with no issues.

The Path Constraint has been the major problem, with what seems to be the bones not properly spaced correctly (somewhere around 60% instead of 100%)

The other problem are the Transform Constraints, with so many bones being improperly positioned that it is almost impossible for me to pinpoint the root cause.

I tried to key some of the unnecessary keys, but that seems to not work. So, I'm at complete loss on how to troubleshoot my issue further, because several hours looking into it has produced no result.

Spine version: 4.0.62 Pro

GameMaker Studio 2 runtime version: 2022.2.1.491

Unable to share the screenshots or file.

Related Discussions
...

Sorry for the trouble. YoYo Studios, creators of GameMaker Studio 2, are the ones maintaining the GameMaker Spine integration. I believe they are still on Spine Runtimes 3.8. As such, if you use exports from Spine Editor version > 3.8, you will get all kinds of broken animations and rendering. The Spine Editor major.minor version you export from (e.g. 3.8, 4.0, etc.) must match the Spine Runtimes major.minor version.

Mario wrote

Sorry for the trouble. YoYo Studios, creators of GameMaker Studio 2, are the ones maintaining the GameMaker Spine integration. I believe they are still on Spine Runtimes 3.8. As such, if you use exports from Spine Editor version > 3.8, you will get all kinds of broken animations and rendering. The Spine Editor major.minor version you export from (e.g. 3.8, 4.0, etc.) must match the Spine Runtimes major.minor version.

Incorrect. GMS2 currently supports Spine 4.0 runtime. https://help.yoyogames.com/hc/en-us/articles/227860547-GMS2-Required-SDKs

Ah, didn't see the update. They are using spine-cpp or spine-c as the underlying core. If you can send me exports and project files, I can see if the issue is in our code or theirs.

21日 後

I created a test project and demonstrated the issue in the GMS forums. https://forum.yoyogames.com/index.php?threads/spine-4-0-file-has-several-constraints-problems.94182/

I also attached the test file I sent to my programmer.


Some things I found out. The Path Constraint does not work properly when the Spacing is set to Proportional. However, Spacing set to Percentage works properly.

The Transform Constraint, however, is basically unusable in GMS2, which confuses me why this has not been addressed properly when they released the 4.0 runtime. Whenever I mix the Translate 100%, the bone is somehow misplaced above the target bone. This is forcing me to do a more manual approach to my animations for GMS2.

There was a bug in parsing the skeleton JSON file, which was not present in the binary skeleton file parser. I've pushed a fix to the 4.0, 4.1-beta, and 4.2-beta branches on GitHub. YoYo will have to update their copy of spine-cpp. Thanks for reporting!

Thanks. Please don't forget the Transform Constraints as well. That one is pretty important.

5日 後

I can't reproduce any issues with the transform constraint with our or your examples. Please post a project file/exports that show the issue.

I am unable to apply any sort of Transform Constraint because of a persistent issue with a bone improperly Translated to the Target bone. I reproduced the glitch with a project that is supposed to have the weapon stick on the hand, and I'm not sure what is happening.

What it looks like in the Editor: https://gfycat.com/shortmeangoat

What it looks like in GMS2: https://gfycat.com/mixedsardonicbufeo

Referring to my earlier post, the issue is visible with the legs, too: https://gfycat.com/mediocreglitteringbluemorphobutterfly

I also posted a .zip containing our project file and the Editor file.

Ah, apologies, I did not notice the issue on the legs. I'll check it out.

https://github.com/EsotericSoftware/spine-runtimes/issues/2067


I've tested your asset with the latest commit to the spine-cpp runtime on the 4.0 branch.

https://www.youtube.com/shorts/hLHJHWMaHQc

The transform constraint behaves as it should both the JSON and binary exports. My guess is that GMS is using an older 4.0 runtime which may have a bug in the transform constraint code. Yoyo has to update their integrated spine-cpp runtime, I'm afraid that's not something we can fix on our end.