spine-runtimes icon indicating copy to clipboard operation
spine-runtimes copied to clipboard

[godot] Getting "Signal 'skeleton_data_changed' is already connected to given callable ..." error when opening scenes with SpineSprite

Open yoont4 opened this issue 11 months ago • 6 comments

When I open/reload a scene that contains a SpineSprite, I get a ton of these errors printed out: Signal 'skeleton_data_changed' is already connected to given callable 'SpineSprite::on_skeleton_data_changed' in that object. image

It doesn't happen every time, but it seems that once it starts, it will do it every time for that particular file.

There isn't anything particular that I've noticed causes it either. It's happened to me when the scene is the only place a SpineSprite is referenced, and sometimes it happens in large scenes where SpineSprite might be part of another imported scene.

This seems to happen both in the editor as well as running the game.

yoont4 avatar Mar 06 '24 23:03 yoont4

Just to be clear, both editor and running scene work fine despite thos errors?

badlogic avatar Mar 07 '24 19:03 badlogic

Somewhat. The spine sprite sometimes freezes on load instead of playing the default animation, and these flood my console when I only have 2-3 spine sprites in a scene (the number is prints seems to scale with time). Hard reloads can usually clear the issue of freezing but that inconsistency makes it hard to know what bugs are from Spine and what is elsewhere.

yoont4 avatar Mar 08 '24 01:03 yoont4

@yoont4 sorry for the late reply. Could you possibly create a simple demo project for me to reproduce this? Ideally, you could just add a new scene to the existing spine-godot/example-v4/ project in this repository?

badlogic avatar Mar 19 '24 15:03 badlogic

Hey @badlogic, no worries. I'll try to make one sometime tonight or tomorrow and upload a zip.

yoont4 avatar Mar 20 '24 00:03 yoont4

@badlogic I've found a very minimal repro (it's not the only scenario I've run into, but it's the most repeatable, and my intuition is that it's the root cause):

  1. Create a scene with a SpineSprite node
  2. Create a consuming scene with a few copies of that other scene
  3. Make sure all scenes are closed
  4. Open the consuming scene first
  5. Open the source scene
  6. Error appears for every instance of the source scene was in the consuming scene.

I've made 2 example scenes that match these already:

  • signal-error-demo/source_scene.tscn
  • signal-error-demo/consumer_scene.tscn

sample_project.zip

This repros both the signal error as well as the animation freezing in the consumer scene.

yoont4 avatar Mar 20 '24 20:03 yoont4

@badlogic Just wanted to bump and confirm if the sample project repro was what you're looking for.

yoont4 avatar Mar 29 '24 05:03 yoont4