• Editor
  • open spine animation in to previous version

  • تم التحرير
Related Discussions
...

Somehow I didn't check the spine version and save some animation files to 3.8.64 which was needed for 3.7.87
and now developer couldn't open these files in the unity project or export it as a previous version. please help me to save a lot of work 🙂

Hello!

In order to import a json exported with Spine v3.8 into v3.7 you will need to use the JsonRollback tool.

  1. Export a json with "Nonessential data" checked in the export settings, otherwise the mesh information might be lost.

  2. Download Skeleton Viewer from this page: Skeleton Viewer

  3. Make sure to have java installed and up to date: http://www.java.com/

  4. Copy skeletonViewer-beta.jar in the folder where you saved the json exports

  5. Launch the command line, then type this command, structured as follows:

    java -cp "skeletonViewer.jar" com.esotericsoftware.spine.JsonRollback "the-file-to-convert.json"  "3.7" "the-file-destination.json"  

    For example, in my case I launched this command:

    java -cp "C:\Users\Admin\Desktop\json\skeletonViewer.jar" com.esotericsoftware.spine.JsonRollback "C:\Users\ Admin\Desktop\json\oldfile.json"  "3.7" "C:\Users\Admin\Desktop\json\3.7\newfile.json"

(you can also save this text in a file and rename it with a .bat extension, then double click it to execute it)

  1. downgrade Spine to v3.7 and import the generated json

The command line is located in different places depending on your operating system: https://arian-celina.com/windows-cmd-macos-terminal-navigation/

شهر واحد لاحقا

Hi! Not sure what I am doing wrong, but I am getting these errors.

PS C:\Users\kate> java -cp "C:\Users\kate\Documents\TESTESTESTEST\skeletonViewer.jar" com.esotericsoftware.spine.JsonRollback "PiggyButton.json" "3.7" "PiggyButton2.json"
Exception in thread "main" com.badlogic.gdx.utils.SerializationException: Error reading file: PiggyButton.json
at com.badlogic.gdx.utils.Json.fromJson(Json.java:758)
at com.esotericsoftware.spine.JsonRollback.main(JsonRollback.java:64)
Caused by: com.badlogic.gdx.utils.SerializationException: Error parsing file: PiggyButton.json
at com.badlogic.gdx.utils.JsonReader.parse(JsonReader.java:78)
at com.badlogic.gdx.utils.Json.fromJson(Json.java:756)
... 1 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: PiggyButton.json (Absolute)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:150)
at com.badlogic.gdx.files.FileHandle.reader(FileHandle.java:169)
at com.badlogic.gdx.utils.JsonReader.parse(JsonReader.java:76)
... 2 more
Caused by: java.io.FileNotFoundException: PiggyButton.json (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:146)
... 4 more

Any idea how to fix this? Cheers

Hi! It looks like the JsonRollback can't read the json. Did you export it from v3.8 with "Nonessential data" checked?
Did you use the latest version of the jar to launch it?

That is correct. Exported with 3.8.72 and using Skeleton Viewer, v3.8.61. Attached is a picture of what my export settings look like...

You don't need to check pretty print in this case. Did you get any warning on export? did you use features not present in older versions of Spine, such as skin bones?

There are other skeletons in the project that use skin placholders, but not on the specific skeleton I am using the json of... No warnings on export.

You need to run this command from the folder where your .json file is, or specify the full path to the input .json file. Taking a guess based on your info above, that path is likely C:\Users\kate\Documents\TESTESTESTEST\PiggyButton.json.

It worked!!! Thank you!

8 أشهر لاحقا

don't convert path const percentage and mix parametrs on last Skeleton Viever from 3.8 to 3.7

7 أشهر لاحقا

I'm trying to convert my Spine animation jsons from 3.7 to 3.6
using this instrution (and skeletonViewer 3.7), and it doesn't work.

It creates a file with a plain name "3.6" (no extension), and it's a json with previous version.

@momijigari With the JsonRollback tool you can specify either 2.1 or 3.7 to perform the following conversions:

2.1: supports going from version 3.3.xx to 2.1.27.
3.7: supports going from version 3.8.xx to 3.7.94.

It's been a long time, but if I remember correctly, there's not much (or any) difference between 3.7 and 3.6 JSON. Are you sure you need to do a conversion?

Thank you, Nate.

So I can convert to just 2 versions of Spine?

My problem is that we have been doing all animations in Spine 3.7.94
But my customer's game engine supports 3.6.53, and they require exports for 3.6.53
And not all animations can be manually converted to 3.6 (by exporting JSON from 3.7 and then importing those into 3.6 Spine), some just don't import.
So I'm tryin to find a solution here.

We would have to first determine why your 3.7 JSON doesn't import into 3.6. Can you post or email one of the problematic JSON files? contact@esotericsoftware.com

12 أيام لاحقا

Hi, I'm trying to export json file from the spine 4.0.51 to 3.8, but I am getting this result on terminal here on my mac:

Error: Could not find or load main class com.esotericsoftware.spine.JsonRollback
Caused by: java.lang.ClassNotFoundException: com.esotericsoftware.spine.JsonRollback

Sorry, you cannot go from 4.0 to an earlier version. 4.0 stores the curve information in ways that cannot be represented in older versions.

Hi, I'm trying to convert a file from version 3.8.99 to 3.7, but it gives me the following error:
Error: Could not find or load main class com.esotericsoftware.spine.JsonRollback

I have the skeletonViewer-beta.jar file in the same folder as the file I want to convert and I just installed Java

@javier_mh94 Sorry about that, we've uploaded Skeleton Viewer 4.0.53-beta which fixes that problem.

Thanks Nate! Now it works perfectly

@jhonatanssilva We have updated JsonRollback in Skeleton Viewer 4.0.54-beta to support specifying a version of 3.8 to go from 4.0.xx to 3.8.99. However, there are some drawbacks: all curves will become linear, separate translate, scale, shear, and color timelines are lost, and constraint translate Y and shear Y are lost.

We have updated JsonRollback in Skeleton Viewer 4.0.54-beta to support specifying a version of 3.8 to go from 4.0.xx to 3.8.99.

So that means we can go back from 4.x to any 3.8.x maybe even 3.7.x?

p.s. Cant open beta jar, Java updated

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/badlogic/gdx/ApplicationAdapter has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
11 أيام لاحقا
Nate wrote

@[محذوف] Sorry about that, we've uploaded Skeleton Viewer 4.0.53-beta which fixes that problem.

Hello, Skeleton Viewer 3.8.99 lacks the JsonRollback functionality too.

Hello everyone! We are trying to downgrade from version 3.8 to an older one. Prints a lot of errors. Then we tried to view the animations separately using skeletonViewer 3.8.99 - the black screen blinked and nothing happened. Java is updated.
As a test, the old 3.6 file with skeletonViewer-3.6.53 works perfectly

Hello, what errors are you getting precisely? did you already try to downgrade the project following these instructions?
Open project in an older version

Resolved

Hi! I'm trying to downgrade a json from 3.8.99 to 3.7 and having issues. I'm an animator, so I'm struggling with these kind of things.

I exported the .json with Nonessential data checked (and everything else unchecked).

I downloaded the Skeleton Viewer 4.0.54-beta from this site: http://de.esotericsoftware.com/spine-skeleton-viewer and put it into a folder on my desktop named "json" together with the .json I need downgraded.

I downloaded and installed the most recent Java version (Version 8 Update 281 Build 1.8.0_281-b09). I also checked, there is only one installed and it's version 8.

Then I ran this command:

java -cp "C:\Users\kerst\Desktop\json\skeletonViewer-beta.jar" com.esotericsoftware.spine.JsonRollback "C:\Users\kerst\Desktop\json\MainChara.json" "3.7" "C:\Users\kerst\Desktop\json\MainChara-2.json"

But I'm getting the attached error. What does it mean?

EDIT: I found the issue! I had the wrong Java version. I downloaded regular old java from java.com, but the correct one is the Java Development Kit you can find here: https://www.oracle.com/de/java/technologies/javase-downloads.html . You need to install it, reboot and then it should work.

Noody! THANK YOU!!!! With the Java SE Development Kit 15.0.2 it works!

2 أشهر لاحقا
warmanw wrote

We have updated JsonRollback in Skeleton Viewer 4.0.54-beta to support specifying a version of 3.8 to go from 4.0.xx to 3.8.99.

So that means we can go back from 4.x to any 3.8.x maybe even 3.7.x?

Sorry I missed this. Yes, you can. However, as of 4.0.68-beta we've made it easier: you can choose an older version when exporting JSON.

Image removed due to the lack of support for HTTPS. | Show Anyway

This is equivalent to using the JsonRollback tool, but is easier. Going back to an older version may still lose data and may still require manual fix up, such as deleting attachments or constraints that do not exist in the older version. Exporting to an older version is still not a recommended workflow, it is provided only to help recover work after from the catastrophic situation where a newer Spine version was used unintentionally.

Thank you, Happy tears.

4 أشهر لاحقا

Hello, I have around 300+ spine exports, And the project i need to update is very old, spine 3.x. I Don't think i'll be able to find all the spine projects.
I need to update it to 3.8.
Is there a way to change all the json files (assuming only changing the json will make it work).

@bilalmirza The process is: run 3.8, convert JSON to a project (.spine), run 4.0, export JSON from the project.

You can write a script to do it. I recently posted more information and the commands here:
Spine-Unity 3.8 to 4.0 Upgrade Guide

5 أيام لاحقا

Thanks! just what i needed.
Sorry I missed that post, my bad.


All files were converted via tool you mentioned. Everything works perfect except for 1 file. Any idea why it could be?

Great! I can't tell from the problem from the screenshot, sorry.

In 3.8 when a constraint is applied, it may revert the changes made to bones by a previously applied constraint. In 4.0 that has been improved, but means your skeleton may not look the same as in 3.8 if you were relying on the constraint revert behavior. If that is the case, it will look wrong in both the editor and at runtime. To fix it you just need to find the constraint that you don't want applied and set the mixes to 0.

شهر واحد لاحقا

Sorry, I wasn't able to work on this for a month, It seem like the problem is related to skins(maybe) and not constraints, Or maybe the export itself.
I've removed meshes, constraints and skins in the following image. The scarf is exported as the fan.

I'm afraid I can't make much sense of what is going on, as I'm not familiar with your project. Does it look right in the editor? Have you tried rebuilding the atlas? Does it look right in Skeleton Viewer?

It looks right in the editor, and the skeleton viewer. Atlas rebuild doesnt work. I guess the problem is in the runtime on cocos2d-x end.

You'll need cocos2d-x to use the 4.0 runtimes if you are exporting from the 4.0 editor. If you are using the 4.0 editor to create an atlas for the 3.8 runtimes, you'll need to check Legacy output.

7 أيام لاحقا

im on coocs2d-x 4.0. Spine v4 export crash, 3.7 crashes, and only one that works is 3.8 but with weird skin results mentioned above.

The spine-cocos2dx runtimes crash, or the Spine editor crashes? You can not use an export from e.g. version 3.8 in a Spine Runtime of version e.g. 4.0. Please make sure the Spine Editor version you exported from and the Spine Runtimes version match. If that is the case, and the Spine Runtimes still crash, then please send us the exported files and we can see if there's a bug in the runtime.

7 أيام لاحقا