- Modifié
Spine and runtime bugs after upgrading to 3.0
Hi!
We have encountered problems with the latest version of Spine and the libgdx runtime. Up to version 3, we have had no problem with either.
Editor:
Spine keeps re-downloading 3.06 upon launch. This takes time and causes concern about whether something is broken in the version we are running. I have attached a spine.log.
libgdx run-time, updated to latest version:
- Loading binary exports using SkeletonBinary fails with complaints about bone name being null. There are no warning/errors in Spine, and no null bone names in the JSON export. Is there any detection in binary serialization/deserialization that the versions match up correctly? (see stack trace a the end of this message).
- The JSON export works, but we have problems in-game with stuff rendering different from the editor. Looks like maybe stuff isn't being rotated/scaled as it used to. Are there any changes to Inherit Scale / Inherit Rotation? We have fixed all files to not use flip as noted in the release notes.
Caused by: java.lang.IllegalArgumentException: name cannot be null.
at com.esotericsoftware.spine.BoneData.<init>(BoneData.java:50)
at com.esotericsoftware.spine.SkeletonBinary.readSkeletonData(SkeletonBinary.java:127)
at com.bipbip.trainingquiz.SpineAssetLoader.loadAsync(SpineAssetLoader.java:39)
at com.bipbip.trainingquiz.SpineAssetLoader.loadAsync(SpineAssetLoader.java:1)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:74)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:34)
at com.badlogic.gdx.utils.async.AsyncExecutor$2.call(AsyncExecutor.java:58)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Thanks for the log. We are looking into why the editor thinks it needs to download a new updates. I know it is a small waste of time but don't be alarmed, the downloaded update for a particular version is the same each time.
Your projects need to be exported again after you update the runtimes. Sometimes JSON can get by without doing this, but binary is more sensitive to changes. Compatibility happens at the project level so the export formats don't have to worry about it. You can use the Skeleton Viewer to make sure your JSON or binary files can be loaded by the reference runtime implementation (spine-libgdx).
Yes, inherit scale and rotation works a bit differently due to the new scale. It should work at runtime as it does in the editor. Can you demonstrate the problems you are seeing by posting a simple project?
All projects were re-exported and updated multiple times trying to work out the problem. I have also double checked that my SkeletonBinary file is the same as the current one in github. I have attached an example skeleton file which I can't load.
I would love to try the Skeleton Viewer, but the file links seems to be currently broken.
And just to let you know, I really appreciate the project and your work. I know it must be stressful with all the bug reports flooding in when doing a big release like this
Sorry, the Skeleton Viewer link is fixed now.
I've committed a fix for SkeletonBinary, sorry again! :drunk:
Thanks. It's OK when the bugs are relatively easy to fix. When the bugs are a bad problem that is complicated and has no reproduction steps, that is the real frustration.
Thank you! All problems resolved here