- Edited
I made an ultimate export script alternative.
- Edited
Hello everybody, I am Nick.
Have you ever complaint about the export script being too slow or having a feeling that it is missing something? Or do you think that it is a little crazy to pay Adobe every month just to their Photoshop to export your PSD file? I primarily use Clip Studio Paint and has been suffering for quite a while. It get to a point that my programmer self could not resist and decided to code my own export tool! Today, I am happy to announce that it is kind of ready to face the public.
Here is the highlight of the features:
1.Super fast export speed. (It is 50x faster in tutorial-1 sample PSD compared to PS export script.)
2.Toggle layer settings with just a click or a key press.
3.Save layer export settings as external project file leaving original PSD file clean and unmodified.
4.Detect and warn or even auto-fix duplicated layer name.
5.Intuitive and easy to use layer searching/filtering.
6.Exclusive pixel adjustment layer. It can treat any normal layer like an adjustment layer and cast the pixel down to other layers.
7.Support exporting same layers to multiple skins.
Watch Spritato in action:
(For part 2 and part 3 of this tutorial series, please visit the tutorial post in the Tutorial section of this forum.
( [Video] Using Spritato to speed up PSD export to spine. )
Isn't it amazing? However, it take me quite a lot of time to get this app to the current state and I am just an individual indie developer who don't even get a steady income. So decided to put this app to Microsoft Store with free trial. After free trial, you can still use it but with a few restrictions. If you are interested, give it a try. If you enjoy using it, you can own it forever with just a one time fee. This also support my work.
Note about those who use Photoshop as their primary drawing app.
If you use Photoshop as you primary drawing tool, and you use a lot of the PS exclusive features. The PSD file you saved may not be processed by Spritato correctly. For example Spritato only support two types adjustment layer (Brightness and Contrast, Hut/Sat/Lum). If you have other adjustment layers such as Gradient Map, Spritato will ignore it unless you encapsulate them in Smart Object or convert them to normal layers before saving the PSD. Thus, Spritato may not be suitable to you because of compatibility issue.
Microsoft Store page. (only available to Windows users)
https://www.microsoft.com/en-us/p/spritato/9n7s13tc32qj
Thanks for reading.
Update:
A very home made User Guide:
https://docs.google.com/document/d/1Sp-KELGOIkePrs_Ire8hQC_tOi4GD-1HZ2PRBl7c_l8/edit#
Cool, thanks for sharing Nick!
Does it help Spritato to read PSDs that use fancier Photoshop features if you save the PSD in compatibility mode? That stores a bitmap for each layer in the PSD, so Spritato may be able to work.
We are also unhappy with the current state of the Spine export scripts. We don't like that Photoshop is the script with the most features. We also don't like that the Photoshop script is so slow. There is a way to make it faster, but it's difficult, makes the code messy, requires rewriting the script which is a lot of work, may not work as well with older Photoshop versions, and even after all that it still doesn't help with the first issue: we don't want to force Spine users to use Photoshop.
As an alternative, we are considering having Spine process a folder of images. The images would come from an image editor script, but it would be very simple, only saving a full frame image for each layer and keeping the "groups" as a directory structure. Spine would see tag names in the image file names and process them similar to the Photoshop script, trim the images, and write the new images elsewhere. This means each image editor script doesn't need to do so much, as all image editors could benefit from using tags.
Does it help Spritato to read PSDs that use fancier Photoshop features if you save the PSD in compatibility mode? That stores a bitmap for each layer in the PSD, so Spritato may be able to work.
I think this could help if it is a text layer other layer don't get to know. For adjustment layer, unfortunately, saving in compatibility mode does not auto apply them to the normal layers down below. The only work around is to encapsulate them into SmartObject or merge them directly to normal layer.
We are also unhappy with the current state of the Spine export scripts. We don't like that Photoshop is the script with the most features. We also don't like that the Photoshop script is so slow. There is a way to make it faster, but it's difficult, makes the code messy, requires rewriting the script which is a lot of work, may not work as well with older Photoshop versions, and even after all that it still doesn't help with the first issue: we don't want to force Spine users to use Photoshop.
Agree. It sucks when I only use CSP to draw but require me to have PS to do the export. The best case is to have full control of the export tool without depending on any other software like Photoshop not just because it require a monthly fee but Photoshop also limited what can be done. That's why, I decided to do it from ground up. Since I got full control of the app, I can do whatever I want when writing the app. The reason I could get the export speed so fast is because I could make use of many optimization techniques which is not possible when running a script inside Photoshop.
Beside export speed, I created the tools primarily for the Pixel Adjustment Layer feature which is very cool.
It solved an annoying export scenario that I feature requested a year ago ( Just an idea about a new tag for the PS export script ). When a normal layer of any kind of blend mode is placed across different attachments, I just need to tag that layer as pixel adjustment and it will be treated like a adjustment layer. It will auto merge with the attachments below it. This feature save me a lot of time when dealing with the export. I think it can also be done in the export script too.
As an alternative, we are considering having Spine process a folder of images. The images would come from an image editor script, but it would be very simple, only saving a full frame image for each layer and keeping the "groups" as a directory structure. Spine would see tag names in the image file names and process them similar to the Photoshop script, trim the images, and write the new images elsewhere. This means each image editor script doesn't need to do so much, as all image editors could benefit from using tags.
It will only work for some drawing software. For an instance, the Clip Studio Paint I use don't even have the option to export each layers as standalone image. The only way is to save to PSD because the (.clip) file format they use don't even have a file specification available.
Nick wroteFor adjustment layer, unfortunately, saving in compatibility mode does not auto apply them to the normal layers down below.
Ah, that's a bummer. Photoshop is pretty bad in many ways.
Nick wrotethe Clip Studio Paint I use don't even have the option to export each layers as standalone image. The only way is to save to PSD because the (.clip) file format they use don't even have a file specification available.
Some of our team members use CSP. We contacted them about Spine export, but they wouldn't add it and don't have a plugin system. However, it may be much easier to get them to add exporting layers to full frame images. That is less work than writing some Spine-specific JSON and can be useful for many things besides Spine.
I finally understand your "pixel adjustment layer" concept. It looks very useful!
Nate wroteit may be much easier to get them to add exporting layers to full frame images.
Did you forget that you need extra information to recreate the result? :smirk:
At least you need to know the blend mode used for each exported layers which is not saved inside the png file. Not to mention any folder mask clipping is also lost because it does not export to anything.
There are a handful of features needed in the image editor, sure (blend mode, [merge]
tag), but layer to full frame images could give a good portion of the functionality. A bigger issue is losing the order of layers in a group/folder.
It's still a half baked idea, it would just be great to move most of the logic into Spine so it doesn't need to be duplicated in image editor scripts. Another option is to write layer images and a data file for metadata (groups, layer order, blend modes, etc), though this loses some of the simplicity.
Nate wroteAh, that's a bummer. Photoshop is pretty bad in many ways.
Statement of the year: I've been drawing for over 30 years, now (yes, I'm that old ) and I do believe that using Photoshop for drawing purposes (let alone animating) should be considered a crime
As for Spritato. I gave it a try and I thought about sharing some feedback:
1. The software automatically hides folders with the [ignore] tag, so you need to make sure your source file has none before opening it into Spritato;
For the love of me, I couldn't get the "origin setup" feature to work. I can visualize the custom origin on the canvas, but it always exports at 0,0 (default);
GUI makes impossible to edit path once set. So if for whichever reason you need to change it, there's no other way but to restart Spritato;
- Black font on a Dark theme is... Please don't :tear: (and is there a way to change it, anyway);
That's it for now. As a Clip Studio Paint user, I've always wished upon a working exporting tool (sparing me the "convert to psd>export to spine" chore), so I really root for Spritato!
Hi TheWorst, Thank you for trying out the app.
Let's me response to the issues one by one.
1- The software automatically hides folders with the [ignore] tag, so you need to make sure your source file has none before opening it into Spritato;
You can open the setting dialog (via menu or just press F3) and turn off "Skip loading layers with [ignore] tag". It is on by default to increase performance.
2- For the love of me, I couldn't get the "origin setup" feature to work. I can visualize the custom origin on the canvas, but it always imports it at 0,0 (default);
I actually got this bug fixed yesterday. You can update to the latest version (1.0.25) via Microsoft Store. I also added update notification in the latest version. The next time when there is a new version, users will get notified.
3- GUI makes impossible to edit path once set. So if for whichever reason you need to change it, there's no other way but to restart Spritato;
Oops. I am going to fix this...Didn't expect this to happen.
4- Black font on a Dark theme is...Just don't (and is there a way to change it, anyway);
This is the 1st time I saw this happen. I wonder it is related the color theme of the windows OS. Is your windows running in light mode? I am using dark mode all the time so this could be related. Anyway, I am going to fix color in the next version.
Thank you for your feedback.
Just a tip for CSP user, don't forget to set the profile in setting dialog from "Photoshop" to "Clip Studio Paint" if you use Hue/Sat/Lum adjustment layer in the file. Normally even if you save your work in PSD and export in Photoshop, some color could be off from the original color you see in CSP. This is because their calculation of Hue/Sat/Lum filter is different. In this case, Spritato is producing more accurate color for PSD saved in CSP when you choose the right profile. 8)
Nick wroteYou can open the setting dialog (via menu or just press F3) and turn off "Skip loading layers with [ignore] tag". It is on by default to increase performance.
Awesome, thanks!
And speaking of performance, I forgot to mention: exporting 92 files took this little monster under 0.8 secs... I've never seen anything like that, congrats
Nick wroteThis is the 1st time I saw this happen. I wonder it is related the color theme of the windows OS. Is your windows running in light mode? I am using dark mode all the time so this could be related. Anyway, I am going to fix color in the next version.
Hm, not sure it's related. Both "windows mode" and "default app mode" were set on "Light", tho.
Gonna download the update, thanks for now!
@[deleted]
Version 1.0.26 is live with the text color and export dialog issues fixed.
Btw, I also noticed one weird thing from Microsoft Store. I try to update my app from another PC via MS store. Although it looks like to have downloaded from the store UI, it actually didn't get installed. I have to uninstall the app completely and reinstall it from the MS Store to have it to update to the latest version. :confused: I don't know if this is also happening to other user. Thus after update, please check the version from top menu [ About | Version Information ] to see if it is really the latest version.
Nick wroteVersion 1.0.26 is live with the text color and export dialog issues fixed.
Great news, congrats!
As for updating Spritato: I know this is probably not gonna fall in the "constructive critique" ballpark, but I gotta tell you this: do yourself a favor and dump MS store.
Seriously, I guess even itch.io would be a better place to share your gem with the world. Because:
- Yes, I can confirm that I couldn't update to 1.0.26;
- and no, I couldn't install Spritato anymore after uninstalling it;
Not sure this is due to the "free trial" nature of my version, but the way MS store deals with the whole installing process is "shady", to say the least: no progress bar, no "done installing" prompt, nothing.
You just have to assume that it's done installing the app and search it on your computer, as it doesn't even bother creating a shortcut or something...
However, i know this is not gonna fall in the "constructive critique" ballpark, but I gotta tell you this: do yourself a favor and dump MS store. Seriously, I guess even itch.io would be a better place to share your gem with the world. Because yes:
Its good to know anything that can improve the situation. Unfortunately, Spritato is developed based on the UWP (Universal Windows Platform) SDK, which means it is tied to the Microsoft Store. The work to detach it from MS Store could be huge. :tear: I am contacting their staff asking about the update issue and still waiting for their response. I hope this is just something that I did wrong causing the update to fail as this is the first time I made and published an UWP app. I do agree that the experience of using MS Store is not very good.
Not sure this is due to the "free trial" nature of my version, but the way MS store deals with the whole installing process is "shady", to say the least: no progress bar, no "done installing" prompt, nothing.
It should not be related to the free trial nature. :think: I am also just installing the free trial from my other PC.
Can you tell me more exactly what you mean you couldn't install the app anymore?
It there a warning message saying that you cannot install the app or is there an error pop up with an error code?
Normally, once you uninstalled the app via "Add or Remove programs", there should be no issue to install it again from MS Store. It should just be like installing a new app.
Nick wroteIts good to know anything that can improve the situation. Unfortunately, Spritato is developed based on the UWP (Universal Windows Platform) SDK, which means it is tied to the Microsoft Store. The work to detach it from MS Store could be huge. :tear: I am contacting their staff asking about the update issue and still waiting for their response. I hope this is just something that I did wrong causing the update to fail as this is the first time I made and published an UWP app. I do agree that the experience of using MS Store is not very good.
I see. Well, who knows, maybe MS it's just a necessary early testing step towards better places.
As for the installation process:
- I've right-clicked on Spritato icon in Start menu and clicked "uninstall" (not the standard "add/remove" procedure, but still);
- install on my devices > selected my PC > Install now > Thank you! Weโre attempting to install on your selected device(s) > clicked "OK" > nothing happens;
Typed "Spritato" in windows start (like i usually did to find the app), but this time I've found nothing.
- install on my devices > selected my PC > Install now > Thank you! Weโre attempting to install on your selected device(s) > clicked "OK" > nothing happens;
It sounds different from what I see. Is that you are using the website version of MS Store?
If you use the MS Store app right from the Windows start menu,
you should be able to see something like this image:
and you just need to click the [ Install Trial ] button. No need to select device or anything.
Nick wroteyou just need to click the [ Install Trial ] button. No need to select device or anything.
Done. Works now, and it's updated. Thanks
:grinteeth:
Hey Nick, was Spritato taken down from the MS Store? I tried to buy it and the MS Store doesn't display it anywhere. I even tried searching your publisher name.
@[deleted]
I can still found it from MS Store in my PC and the page (https://apps.microsoft.com/store/detail/spritato/9N7S13TC32QJ?hl=en-us&gl=us) is also showing correctly. I don't know why it doesn't show up in your store.
Btw, if you just want to skip the Adobe subscription fee and use the official export script, you can also consider using the Adobe Photoshop Elements version which don't require a monthly free. It just that it require the user to drag the script to the application to initiate the export which is not as convenient as the subscription version but it still works the last time I tried it (~ year ago before I wrote Spritato).
@[deleted]
Can you help me lock this thread and let it sink? move it to Off-Topic sub forum is also fine.
I don't want it to occupy any space on the Editor sub-forum.
Before this gets lost into oblivion, I just wanted to say thanks Nick for your work, I'll surely give this a try!