Home Technical Talk

qSave - Photoshop plugin to quickly save textures

134
polycounter lvl 13
Offline / Send Message
Chai polycounter lvl 13
Description
This script is written for texture artists. It automatically saves image from your PSD, appended with a custom suffix which can be assigned to different hotkeys.
for example _diffuse, _specular, _normal, etc... all can be assigned to different hotkeys.

Currently supported formats : .TGA, .PNG, .BMP, .TIF, .DDS

It was inspired by vTools (by James A. Taylor), but with simpler functionality for those who want to export one texture at a time.
I thought some of you might find it useful, feel free to post feedback here.

Download
Download qSave v2.5 here 
Download qSave v2.4 here  (old)  
To install, simply extract to your photoshop directory.

qSave_prefsjpg
qSavejpg



Donate
If you wish to support development of plugins, please click donate link here, thank you !

Version 2.5 Updates
• proper error message if export path doesn't exist
• added DDS 8.8.8.8 support (thanks JN)
• rgb/a packer automatically creates alpha channel if needed
• fixed error when using rgb/a packer with alpha channel selected
• toggleable mipmap for dds
Version 2.4 Updates
• • added automatic rgb/a packer on export
Version 2.3f Updates
• • fixed rare bug where tga was written regardless of local format
Version 2.3d Updates
• • fixed issue where only global format was read
Version 2.3c Updates
• • fixed issue where TIFF files saved as layers
Version 2.3b Updates
• • fixed bug with layer name tag enabling when it shouldn't
Version 2.3a Updates
• • export format can now be either saved with PSD or a global setting
• • removed global depth, no longer needed and was just clutter
Version 2.2 Updates
• • added option to name export based on selected layer name
Version 2.1 Updates
• • added support for PSB files (high resolution PSDs)
Version 2.0 Updates
• • fixed bug where TIFF ignored alpha (24/32bit) settings
• • top uvs layer name is no longer case sensitive
Version 1.9 Updates
• • fixed bug where qSave wouldn't fire off due to upper case PSD file extension
• • top uvs layer name is no longer case sensitive
Version 1.8 Updates
• • added support for SuperPNG (freeware)
Version 1.7 Updates
• • added support for TIFF, DXT1, DXT3, DXT5, DXT5-NM formats
Version 1.6 Updates
• • added support for relative paths
Version 1.5 Updates
• • fixed setup bug when no docs are open, instead only global prefs will be changable
• • fixed "defaultPrefs isn't a function" bug
Version 1.4 Updates
• • added global tick per setting, useful for variation of file syntax
• • psd now supports saving each file appends/bitdepth
• • removed psd save button, instead save prefs will save both current psd/global prefs
• • added support for custom global path
• • reserved PSD saving of fileformat/bitdepth (disabled and forced global for now)
Version 1.3 Updates
• • added uvs hider option, to hide topmost uv/uvs layer from exports. (thanks Funky Bunnies)
Version 1.2 Updates
• • can now choose alpha on a per file basis, with option to use global depth.
Version 1.1 Updates
• • qSave5 now works properly
• • added support for BMP format (thanks Talon)
Version 1.0 Updates
• • added support for target paths, which is stored along with PSD's

Replies

  • Shogun3d
    Offline / Send Message
    Shogun3d polycounter lvl 11
    Awesome!! I'll have to check this out!
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    Hey this is great! Thanks Chai.

    I have groups for my different maps in my PSD (D for colour map, N for normal map, etc). I combined this script with the isolate function (alt-click on a group or layer) into a photoshop action, so now with one key press, all my maps are savec correctly ready to be imported in game!

    One prob though, your script doesn't seem to want to save 32 bit TGAs, it's always saving 24bit, even if I have an Alpha channel. Could you add something to chose that in the script configuration? Or check if there's an alpha channel and save it to 32 bit if that's the case?
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    thanks for the comments, glad you guys like it.

    Bal. ye I can definitely do something like that but I'm extremely busy so it might take a week or so for me to get to it ..
    Also nice to hear you used the isolate function with my script, wouldn't work for me though as I tend to make specular a group of layer effects on top of diffuse.
  • renderhjs
    Offline / Send Message
    renderhjs sublime tool
    the next step for me would be to integrate this into a custom panel so I do not have to configure all kinds of scripts to shortcuts but instead have everything in 1 GUI spot.
    adobe_configurator.jpg
    like using the adobe configurator or a custom as3 swf file
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Released Version 0.9.

    Bal took me a while, but I've finally got around to enable switching between 24bit and 32bit.
    Although I like the idea of being dynamic, I can't see myself finding time to implement it any time soon ..
  • Uly
    Offline / Send Message
    Uly polycounter lvl 13
    hey man, just saw this in your signiature, can't wait to try it out.
    we have a script like this at work, but it doesn't work at home, saves a lot of time. :]
  • Eric Chadwick
  • Farfarer
    Offline / Send Message
    Farfarer Polycount Sponsor
    Nice stuff. Modified it a little so it does BMP too and woop, no more dicking around with save as copy dialogs :D
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Glad to hear you guys are finding it useful !

    Cool Talon, if you're in a charitable mood - post or pm the BMP code, and I'll be sure to add it to the script for others to enjoy, cheers :)
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Released version 1.0

    I've added support for target paths, stored along with the PSD's.
    This should help those of you, who want to export straight to the ingame content dirs.
  • leechdemon
    Very sweet tool. Works quickly, doesn't jumble my layers up or anything... I'm a fan!

    I'm having trouble getting the save path to change, though; it keeps defaulting back to the PSD's location, even after setting it differently. Do I need to enter in something other than the file path, or is this a bug?
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    leechdemon wrote: »
    Very sweet tool. Works quickly, doesn't jumble my layers up or anything... I'm a fan!

    I'm having trouble getting the save path to change, though; it keeps defaulting back to the PSD's location, even after setting it differently. Do I need to enter in something other than the file path, or is this a bug?

    Cheers leechdemon !
    The save path is stored with the PSD, when you click "save PSD prefs".
  • leechdemon
    Hey Chai, I tried that, and then decided to just start saving my layered files anyways. Because of that, I just use the "same as PSD path", and everything is fine. Thanks!

    I ran into a new issue though. I added a few more maps to the list and shortcutted them. I'm not sure if this is a mixup on my end or what, but anytime I use qSave5, it does the same naming as qSave6. The shortcuts show them in the right places, and they're both named differently...they just do the same thing. Any hints?
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    cheers leechdemon, I've fixed it in the new version. :)

    Released version 1.1
    • qSave5 now works properly
    • added support for BMP format (thanks Talon)
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    This still rocks, use it all the time, thanks so much Chai. :)
    Unfortunately my new job requires me to work directly with DDS files... Any chance of supporting those? (I save 8.8.8.8 ARGB systematically, but it wouldn't matter if I had to just hit enter on the DDS output screen during the save process).
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    cheers Bal !

    Ah working directly with DDS, sounds like a pain - usually I use .TGA for development and use a batch file to convert those to .dds at the end.

    Been really busy here as usual, but I had a quick look and I couldn't find any way to display the save dialogue.
    Adding DDS options will take hours, though if its really important to you I could make a version just for you but it might take a week or so for me to get around to it.
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    Chai, yeah it's a bit annoying, wish I could script photoshop to convert the files automatically to DDS 8.8.8.8 ARGB each time I save them out, the game tools only accept DDS, and recompress them afterwards.
    If you're bored sometime and find the time to do it, that would be great, no worries otherwise if it's too much trouble. :)
  • SimonT
    Offline / Send Message
    SimonT interpolator
    this could be a really great plugin! i have to test it!
  • Farfarer
    Offline / Send Message
    Farfarer Polycount Sponsor
    Bal: Here's a version with the option for DDS. Overwrite your current qSave.jsx with the one in this zip.

    NOTE: It'll only export ARGB 8888 at the moment. The settings for the DDS dialog are confusing as hell and I don't have time to fidget with it trying to figure out what it all does :P

    qSave 1.1 with DDS ARGB 8888 support.
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    Awesome, thanks alot Talon! Exactly what I needed.
    Kinda strange it doesn't work when there's no Background layer in the PSD, but that's no biggy (I just make sure one exists via script).
  • Farfarer
    Offline / Send Message
    Farfarer Polycount Sponsor
    *edit;

    So long as you've got more than one layer, it'll work alright.

    Not sure why, but the "Save as Copy" option gets disabled with DDS saving. So if there's only one layer it'll save the current image as a .DDS rather than save a separate .DDS and retain the current image as a .PSD.
  • Vrav
    Offline / Send Message
    Vrav polycounter lvl 11
    Really sweet tool. Seems much more flexible than using actions alone, especially with the ability to save a directory for each PSD. Thanks. (:
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Cheers Vrav, glad you find it useful :)
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    Is it possible to enter a relative path for the files? Can't seem to get it working.
    My psds are in a "PSD" folder, I want it to come back a folder, and go save the files in a "sourceimages" folder.
    Can't use a global path, cause each asset has it's own Maya project, using always the same folder structure.
  • Farfarer
    Offline / Send Message
    Farfarer Polycount Sponsor
    Can you use \.. in the path? That should send it up a level and you can fill in a new directory. Not sure if it'll work, mind.

    \..\newfolder\
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    Nah that doesn't seem to work, it saves to the root of c: when I put \.. =\
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Ye I know what you mean, but it will require a fair bit of work Bal, sorry mate I wish I had some extra time for that kind of stuff :|
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    No prob Chai, these kind of extra features are just icing on the cake really, the plugin is already awesome and a great time saver as is, thanks. :)
  • tristamus
    Offline / Send Message
    tristamus polycounter lvl 9
    Hey guys,

    Sorry but, I don't know how to get this going. I put qSave in my Photoshop directory etc, and can get the GUI running inside photoshop etc, but the process of setting up the shortcut keys to save out the different maps is puzzling me.

    Can some1 just direct me to how really quick?
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    tristamus, you can use the Photoshop Actions to create a small saving script for each map (or one Action to save them all out depending on how you want to do it).
    Just create a new action, it'll start recording, then save your map with qsave from the plugin menu, then stop the recording. You can then add an ctrl/shift/F# shortcut in the action's options (double click on it).
    Hope that helps, try finding some basic tutorial on photoshop actions otherwise.

    The only downside to this is that Photoshop limits you to the F# keys for the shortcuts.
  • tristamus
    Offline / Send Message
    tristamus polycounter lvl 9
    Hey Bal, thanks for the reply....

    Thing is, I know how to use actions, it's the actual "saving" part....I dont know how to use qSave to actually save out the maps. I can't do it normally to record it, so therefore can't make an action. Maybe I placed it in the wrong folder?

    I put qSave in my photoshop cs5 directory (the directory where the plug-ins, etc folder is.) I didn't put it inside the plug-ins folder. Was I supposed to? He doesn't say in the installation readme..
  • Bal
    Offline / Send Message
    Bal polycounter lvl 12
    Normally if you can get the GUI to show up in photoshop (in File>Scripts>qSave), saving should work, you just want to click on the qSave01, qSave02, etc that are under.
    The correct path is in the .rar file, so it should be fairly obvious where the files have to go (should have a qsave folder in Presets\Scripts).
  • tristamus
    Offline / Send Message
    tristamus polycounter lvl 9
    That did it Bal =)

    Now all the save options appear under File>Scripts. Grazie =)
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    tristamus - did you check the readme.txt that comes with the plugin ?
    Once you install the scripts (copy it to photoshop directory), you'll have new menu shortcuts in file->scripts like I have shown in the first post screenshots.

    The idea is the main file->script->qSave is setup to specify each texture suffix.
    than you can use the individual qSaves (e.g. file->script>qSave1) to save out each separate texture.

    Finally you would map those to hotkeys via Edit->Keyboardshortcuts, so you can export textures in a click of a button.

    edit: looks like Bal beat me to it ;)
  • Mio
    Offline / Send Message
    Mio polycounter lvl 13
    that's very useful! thanks for sharing!
  • Joshua Stubbles
    Offline / Send Message
    Joshua Stubbles polycounter lvl 15
    It's been mentioned before, but I'd like to see format options per layer. Like a little checkbox or something near the QAsave name that says 24bit or 32bit. We usually have 32bit diffuse because our alpha is spec and 24bit normals. Otherwise, nice and very useful tool. Thanks! :)
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Joshua things have been a bit hectic as of late .. but since I need this for myself as well, I should implement it sometime in the next few months :)
  • MoP
    Offline / Send Message
    MoP polycounter lvl 16
    The way I implemented it at work was just to have my script check for any channels with the same name as an exported layer group.
    That way you can link up any number of channels with any type of exported texture - if the script finds a name match, it saves the TGA as a 32-bit image with only that alpha channel, if not, it just saves it as a regular 24-bit TGA.

    Not too difficult to implement, and probably the easiest way to do it IMHO (no extra UI or anything needed).

    Cool stuff!
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    MoP wrote: »
    The way I implemented it at work was just to have my script check for any channels with the same name as an exported layer group.
    That way you can link up any number of channels with any type of exported texture - if the script finds a name match, it saves the TGA as a 32-bit image with only that alpha channel, if not, it just saves it as a regular 24-bit TGA.

    Not too difficult to implement, and probably the easiest way to do it IMHO (no extra UI or anything needed).

    Cool stuff!

    Ah that's interesting, so the idea is that way you can have multiple different alpha channels in the same file ?

    Cheers
  • megalmn2000
    Offline / Send Message
    megalmn2000 polycounter lvl 10
    Nice! Thanks for that plugin Chai! :D
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    Released Version 1.2
    can now choose alpha on a per file basis, with option to use global depth.
  • vertigo__
    Offline / Send Message
    vertigo__ polycounter lvl 11
    Awesome Chai! When I launched Photoshop and tried to configure it before loading a file there was an error. But other than that it appears to work as advertised.
  • Chai
    Offline / Send Message
    Chai polycounter lvl 13
    vertigo__ wrote: »
    Awesome Chai! When I launched Photoshop and tried to configure it before loading a file there was an error. But other than that it appears to work as advertised.

    cheers mate, noted and should fix it for the next version probably.
  • passerby
    Offline / Send Message
    passerby polycounter lvl 9
    i like.

    a lot better than having to setup export actions at the start of every new texturing project.

    might be killing the simplicity a bit but being able to save stuff in the alpha of a other image would be cool.
  • moose
    Offline / Send Message
    moose Polycount Sponsor
    Necro Bump!

    Wanted to say thanks for this Chai, have been using it lately and when coupled with UDK's auto-reimport textures, it has sped my workflow up 1000000%! I made an action that alt-clicks a layer group, saves, then alt clicks it again - as long as i set my group names up the same i dont have to show/hide stuff anymore when saving because qsave is so fucking fast!

    Highly recommend everyone everywhere use this! :)

    thanks again!
  • gsokol
    Offline / Send Message
    gsokol Polycount Sponsor
    Awesome! I'll have to check this out when I get home.

    I usually just set up photoshop actions to save out files, but manually changing where they save out to is a pain.

    Looks great!
  • passerby
    Offline / Send Message
    passerby polycounter lvl 9
    gsokol wrote: »
    Awesome! I'll have to check this out when I get home.

    I usually just set up photoshop actions to save out files, but manually changing where they save out to is a pain.

    Looks great!

    saves out the the location of the parent psd which makes things a lot easier.
  • moose
    Offline / Send Message
    moose Polycount Sponsor
    yeah, best part about it is the appending of extensions imo, well that and that it is so fast :) I can be working on 3 or 4 textures for something at once, and use the same hotkey to save out every diffuse w/o any fuss of having file names baked into the action.

    this easily is now one of my "must have for photoshop" tools!
  • Farfarer
    Offline / Send Message
    Farfarer Polycount Sponsor
    Chai wrote: »
    Released Version 1.2
    can now choose alpha on a per file basis, with option to use global depth.

    Magic, dude. Been meaning to set it up to do that for ages but never got around to it. Thanks!
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 13
    I have been saying to myself that I will adopt an auto file save function for months now. I finally did, today. Good stuff.
134
Sign In or Register to comment.