• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!
  • Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Question - IDE Spine integration black alpha

S

Stiel

Guest
I've been using Spine with GMS2 without much troubles so far, but elements were always separated.
Now I'm doing a simple animation with overlapping elements and black lines are appearing instead on the alpha.
I tried all the export options from Spine and all the graphic options in the IDE, and the sprite actually looks as expected in the room editor, but not at runtime.
I browsed all the posts about similar issues, use bleeding, reload, delete, load texture first, premultiply, change interpolation... nothing helps.
I might have missed something, somewhere...

There is no relevant code to give because the issue happens even with no code running.

Spine version : 3.6.53
GMS IDE version : 2.2.5.481
GMS Runtime version : 2.2.5.378
Platform : Windows 10

gms_question.jpg

Example file (with Spine 3.4 but same issue) : https://gofile.io/d/d95dHd

Any help would be much appreciated.
 
I believe I had this problem before. I think it had to do with the export options. I know you have messed around with the export options but try doing the options I have attached in the image below.

Also, why is the Spine version 3.6.53 and not 3.7.94? You can go up to 3.7.94 and it will work for GMS2.

Edit: So I downloaded your spine files and added them into my game, and it works perfectly when I play the game. You must not be setting something right in your GMS2 project. Try setting your GMS2 settings to the attached picture below.
 

Attachments

Last edited:
S

Stiel

Guest
Thanks a lot, it fixed everything in new projects and most of my current one !

The issue remains everytime I'm not using shaders.
I narrowed it down and realized that to the redrawing of the application surface is enough to fix the problem but makes the UI and shaders usage much harder to manage.

So I recreated the whole cameras and views system I got in my game, and concluded that these functions (together) are breaking the Spine sprite :
camera_set_view_mat
camera_set_proj_mat
matrix_build_lookat
matrix_build_projection_ortho

Now I would fix it by drawing the application surface twice but it seems quite weird and feels more like a band aid than a real solution.
I tried following some tutorials about a better usage of the camera_set functions, no success so far.
 

Kyon

Member
Thanks a lot, it fixed everything in new projects and most of my current one !

The issue remains everytime I'm not using shaders.
I narrowed it down and realized that to the redrawing of the application surface is enough to fix the problem but makes the UI and shaders usage much harder to manage.

So I recreated the whole cameras and views system I got in my game, and concluded that these functions (together) are breaking the Spine sprite :
camera_set_view_mat
camera_set_proj_mat
matrix_build_lookat
matrix_build_projection_ortho

Now I would fix it by drawing the application surface twice but it seems quite weird and feels more like a band aid than a real solution.
I tried following some tutorials about a better usage of the camera_set functions, no success so far.
I have this problem with using vectors too.
I used to solve it by drawing the application surface twice.
The true problem is in that gamemaker still doesn't handle vector graphics that good.
I also mostly put draw_set_swf_aa_level(1); to 0.5 or something, that fixes some of it too.
Anyway yeah, idk, if you find a better solution I'll be watching this post.
 
Thanks a lot, it fixed everything in new projects and most of my current one !

The issue remains everytime I'm not using shaders.
I narrowed it down and realized that to the redrawing of the application surface is enough to fix the problem but makes the UI and shaders usage much harder to manage.

So I recreated the whole cameras and views system I got in my game, and concluded that these functions (together) are breaking the Spine sprite :
camera_set_view_mat
camera_set_proj_mat
matrix_build_lookat
matrix_build_projection_ortho

Now I would fix it by drawing the application surface twice but it seems quite weird and feels more like a band aid than a real solution.
I tried following some tutorials about a better usage of the camera_set functions, no success so far.
You downloaded Spine 3.7.94 and are exporting from that with the correct Spine and GMS2 settings?
 
S

Stiel

Guest
You downloaded Spine 3.7.94 and are exporting from that with the correct Spine and GMS2 settings?
Yes, the exact settings from your screenshots. It works on new projects really well.
As soon as I'm doing the camera and matrix things I need redraws to compensate for the alpha parts on overlaps suddenly displaying wrong (after further testing the color of the unwanted line is not connected to the IDE background fill which is behind layers and layers of game assets anyway)
 
I have actually been experiencing a similar issue to this, but only when I am drawing my Spine sprite to a surface. After finding this post I have managed to correct it by drawing the surface it is on twice. This of course is not a satisfying solution and would be interested to find a true answer to the problem.
 
S

Stiel

Guest
Hey, I got some news about the issue.

Working on something absolutely unrelated I came across draw_enable_alphablend and decided to throw it on my application surface drawing event, so instead of the multiple redraws I now have :
GML:
draw_enable_alphablend(false);
draw_surface(application_surface,0,0);
draw_enable_alphablend(true);
and it fixed the issue for me.

I don't have a clear idea why this is a solution and I don't know if it's going to work for you.
Please let me know !
 
Top