• Bugs
  • Export not work for file type GIF and PNG

Greetings Spine,

I am running into an issue with version 1.6.37. When I try to export the frames or sequence to GIF or PNG it only export the first frame and nothing less. When I try JPG it works as expected. Is there something that I am missing?

I have also notice that on Export there is a setting for animation but the drop-down only provides "none", what is the purpose of this setting?

Thank you,

JCP_13

Related Discussions
...
  • 編集済み

If you have "Type: Frame" it will only export a single frame. Are you choosing "Type: Sequence"? The "Animation" setting for JPEG and PNG export sets what animation to export a sequence from. "None" is the only option if exporting a frame.

Yes, I have tried both ways and it does not export, is there an additional settings that I am not aware of?

Thanks,

JCP_13

Exporting to GIF and PNG works for me. I assume you still aren't choosing to export a sequence? For PNG I get multiple images, and for GIF (head is deformed with a mesh! 😃):

HTTPS をサポートしていないため、画像は非表示になっています。 | まだ表示する

Nate wrote

(head is deformed with a mesh! 😃):

This goblin took a massive beating!

Yes, I did follow your instructions. I have attacked a few snapshots so you can see the settings.

Thank you,

JCP_13

Well that is bizarre. Could it be that you have no animation selected or that no images are visible during the animation (eg maybe you haven't made a skin visible, if you're using skins). Otherwise I'm at a loss, only think I can do is take a look at the project. Could you send the project file and images? contact@esotericsoftware.com

Sorry for the trouble!

I met the same question when I update to 1.6.41, this bug can't be reappeared at every turn,
it seems that when I have many skeleton in one project, it have more chance to appear.
when I create a new project and import the skeleton from the old project, sometimes I can export image normally
when spine crash , I am reminded to check "spine.log", and I did do it, got this
Spine Launcher 1.4.7-full
Licensed to: xxxxxx, xxxxxx
Windows 7 x86 6.1
Java 1.7.0-u6-unofficial Oracle Corporation
OpenJDK Server VM
Up to date: 1.6.41
Spine 1.6.41 Professional, LWJGL
NVIDIA Corporation
GeForce 8500 GT/PCIe/SSE2
3.3.0
Started.
java.lang.IndexOutOfBoundsException: index can't be >= size: 3 >= 1
at lm.a(SourceFile:127)
at add.a(SourceFile:541)
at add.G(SourceFile:375)
at adf.a(SourceFile:213)
at bbz.a(SourceFile:191)
at bbz.b(SourceFile:186)
at bbq.run(SourceFile:164)
at bbz.e(SourceFile:199)
at bbw.a(SourceFile:154)
at com.esotericsoftware.spine.editor.Editor.b(SourceFile:786)
at at.run(SourceFile:227)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:711)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:681)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
java.lang.IndexOutOfBoundsException: index can't be >= size: 3 >= 1
at lm.a(SourceFile:127)
at add.a(SourceFile:541)
at add.G(SourceFile:375)
at adf.a(SourceFile:213)
at bbz.a(SourceFile:191)
at bbz.b(SourceFile:186)
at bbq.run(SourceFile:164)
at bbz.e(SourceFile:199)
at bbw.a(SourceFile:154)
at com.esotericsoftware.spine.editor.Editor.b(SourceFile:786)
at at.run(SourceFile:227)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:711)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:681)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
java.lang.IndexOutOfBoundsException: index can't be >= size: 3 >= 1
at lm.a(SourceFile:127)
at add.a(SourceFile:541)
at add.G(SourceFile:375)
at adf.a(SourceFile:213)
at bbz.a(SourceFile:191)
at bbz.b(SourceFile:186)
at bbq.run(SourceFile:164)
at bbz.e(SourceFile:199)
at bbw.a(SourceFile:154)
at com.esotericsoftware.spine.editor.Editor.b(SourceFile:786)
at at.run(SourceFile:227)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:711)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:681)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
java.lang.IndexOutOfBoundsException: index can't be >= size: 3 >= 1
at lm.a(SourceFile:127)
at add.a(SourceFile:541)
at add.G(SourceFile:375)
at adf.a(SourceFile:213)
at bbz.a(SourceFile:191)
at bbz.b(SourceFile:186)
at bbq.run(SourceFile:164)
at bbz.e(SourceFile:199)
at bbw.a(SourceFile:154)
at com.esotericsoftware.spine.editor.Editor.b(SourceFile:786)
at at.run(SourceFile:227)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:711)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:681)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
java.lang.IndexOutOfBoundsException: index can't be >= size: 3 >= 1
at lm.a(SourceFile:127)
at add.a(SourceFile:541)
at add.G(SourceFile:375)
at adf.a(SourceFile:213)
at bbz.a(SourceFile:191)
at bbz.b(SourceFile:186)
at bbq.run(SourceFile:164)
at bbz.e(SourceFile:199)
at bbw.a(SourceFile:154)
at com.esotericsoftware.spine.editor.Editor.b(SourceFile:786)
at at.run(SourceFile:227)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:711)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:681)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
java.lang.IndexOutOfBoundsException: index can't be >= size: 3 >= 1
at lm.a(SourceFile:127)
at add.a(SourceFile:541)
at add.G(SourceFile:375)
at adf.a(SourceFile:213)
at bbz.a(SourceFile:191)
at bbz.b(SourceFile:186)
at bbq.run(SourceFile:164)
at bbz.e(SourceFile:199)
at bbw.a(SourceFile:154)
at com.esotericsoftware.spine.editor.Editor.b(SourceFile:786)
at at.run(SourceFile:227)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:711)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:681)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

by the way, this is really the most powerful 2d skeleton animation tool I have met, thanks for your hard working!keep going!

Ah, I believe I've fixed that crash in 1.6.42. Thanks!

Hi Nate,

I have just sent you an invite to my dropbox.

Thank you,

JCP_13

6日 後

Hi Nate,

any update on this issue?

Thanks.

I just checked out the project. The only difference I see from other projects is the fact that your images are huge 82 images at 975x1080. It might have something to do with it. Nate will be looking into it hopefully tomorrow.

Ok a small update on this. The crash happens because the image is too big to write to the FBO and the GPU can't handle it. The file size it is trying to write on for example the Claw-Swipe animation is 5789x5800 on one of the Idle-Shooting animations I have no idea how large it would be, but I can imagine it will be massive, probably something like 15000x15000 due to the beams moving away from the character.
I don't know yet if this is something we can fix entirely (Nate will know more), being able to set a frame size for the gif should help, and we can probably prevent the crash by telling the user that the FBO size is simply too large and halting the export operation. I'd suggest whitespace trimming your images so they aren't so huge, as for the shooting animations, you won't be able to export a gif at that size, you could move the beams to a different skeleton and do the translation of EnergyWave-group at runtime.

Hi Shiu,

Thank you for looking into this, question if that was the case it would affect all file types, right?
but why does it work when using the JPG settings but not the others?

Thanks,

JCP_13

Unfortunately I'm not familiar enough with this so I can't say for sure. I spoke with Nate about it earlier, we're ready to release meshes, it's pretty likely we will be able to do so within the next 24 hours, then Nate will be able to take a better look at it. Sorry for the wait.

Thank you both for looking into this, we will remove the beam graphics that is causing the large image. As stated it would be very helpful if users could get a warning when the export graphics is too large.

I would still like to know why does it work for one format but not for others?

Thank you again for the help and I love the product. Please keep up the fantastic work!! 😉