i think your issue is not having enough arguments in your callback function, it takes a SpineSprite, AnimationState, TrackEntry, and Event
jawny

- 22 avr.
- Inscrit 16 mars 2022
great work, I updated my Godot project to 4.2 without a hitch. the draw order folders were a long awaited feature and the physics constraints are very interesting
thanks Mario, getting 20 fps instead of 8 now, so still pretty bad (but better at least). I'll build the 4.2 beta later today and see if that's addressed whatever's going on here.
tested this on another machine and still getting the same issue, so I don't think it's a performance issue with my devices
Hello
I went to update my executable for the game I'm working on, and noticed on the new builds I had poor performance with many SpineSprites. What was previously a 60 FPS, smooth experience using build 4.1 from 7/24/2023, became very choppy when switching to the new version (4.1.2).I tried to do some testing to pin down the issue but was unable to do so. If you run the batch-test scene in the example projects, you will get the same issue. The scene starts smooth, then starts to drop FPS.
smooth version - 4.1
choppy - 4.1.2
(i added a label that prints FPS to the example project to take these screenshots)
however, the Windows export is missing. the others worked, I was able to deploy to Web and Android.
good stuff, was able to download
️
Hi, getting this error when trying to download the 4.0 export templates for godot
- Dans Sonic Fan Project!
There are software tools available for generating normal maps from images.
You can use Laighter (free/open-source https://github.com/azagaya/laigter), I myself use SpriteIlluminator which is has slightly more features but is paid. They use algorithms to generate normal maps based off some parameters you give to it (embossing and beveling mostly).
I'm using it in my RPG game and the results are quite good for how little effort it takes. To get it to work well with Spine, in the atlas export uncheck the Rotation checkbox and add sufficient padding for box-selection. This way everything will be facing the same direction and you can generate a normal map that will perfectly map to the full atlas.
- Modifié
EDIT: this post is incorrect, this workaround did work but I'm not sure why. still looking into it, having custom_skin as a member variable seems to help
I did manage to find a workaround, if you do all the find_skin methods as onready vars, then you can compose the new_skin with any of those variables with no crashing. The new_skin can have as many of the onready vars added to it as are required.
extends SpineSprite var r_true=true var custom_skin var new_skin onready var r_skin= get_skeleton().get_data().find_skin("r") onready var g_skin= get_skeleton().get_data().find_skin("g") func _on_skinswitch_pressed(): if !r_true: custom_skin = new_skin("new") custom_skin.add_skin(r_skin) get_skeleton().set_skin(custom_skin) get_skeleton().set_slots_to_setup_pose() r_true=true else: custom_skin = new_skin("new") custom_skin.add_skin(g_skin) get_skeleton().set_skin(custom_skin) get_skeleton().set_slots_to_setup_pose() r_true=false
The problem comes into play when you try to find_skin and add_skin in the same frame, from what I can tell.
Luckily this workaround is pretty easy, although I guess it requires more memory since you have to load all the skins you want to use for a SpineSprite on creation rather than just when you'd need it. You could also set up the game loop to find_skin, wait a frame, then do new_skin if that's viable.
Sure, I attached the godot project (blobgodot.zip) and the spine project (blobspine.zip).
I did try it on multiple machines and had the same issue.
- Modifié
Hello, I am having problems with the godot runtimes with skins. calling set_skin with a custom skin will randomly cause a crash with no output and no errors in the debugger
I set up a simple example, here is the Spine project:
https://i.imgur.com/1RDC80Y.gif
It's a simple skeleton with 3 skins controlled by a skin placeholder that each show a colored dot.
Here is the godot scene: a Node2D with 2 children, a SpineSprite and a Button to switch skins
https://i.imgur.com/LBeCWlz.gif
The script for reference: (switches between r and g skins, I used mix_and_match example as a template)
extends Node2D onready var r_skin = $skeleton.get_skeleton().get_data().find_skin("r") onready var g_skin = $skeleton.get_skeleton().get_data().find_skin("g") var r_true=true func _on_skinswitch_pressed(): var custom_skin = $skeleton.new_skin("customskin") if r_true: custom_skin.add_skin(g_skin) r_true=false else: custom_skin.add_skin(r_skin) r_true=true $skeleton.get_skeleton().set_skin(custom_skin) $skeleton.get_skeleton().set_slots_to_setup_pose()
When the code in this script is run, it can randomly cause the program to hang and crash with no output/errors
https://i.imgur.com/J7ju4H4.gif
I say random because it can happen after 1 swap, or after multiple swaps.
- Misaki a écrit
hide-license
that's perfect thank you
Misaki a écritIs there any reason why the license information must already be hidden immediately after spine.log is generated? If so, please let us know so we can refer to it.
It's just to cover all bases, if for example there was an issue in exporting and I were to click open log file reflexively/without thinking I could potentially be doxxed. It sounds a bit paranoid but potentially one slip-up would be all it takes for someone to screenshot.
- Modifié
It would be nice to have an option to hide your full name and email on the splash screen and in the log file. I like to stream my Spineing and it could potentially dox me.
- Dans Spine 4.1 released!
Keep up the good work, Spine just keeps getting easier to work with
Very cool tool, had fun once I got it set up. Wouldn't work properly with 4.0+ skeletons, possibly related to the curves using doubles instead of integers.
I ended up just exporting the mouth as a 3.7 file and copying the keys over to the 4.1 skeleton.
Upon further testing it seems that a non-default timeline FPS was causing the issue, not the Spine version.