myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

PS : Save As TGA

理由は良く分からないけどCG業界ではTARGA(TGA)フォーマットが良く使われているので、フォトショップでTGAを保存することが多い。

確かにプログラム的に読み込みやすくて、圧縮が掛かっていないため画質が綺麗です。

まぁ、それはどうでも良い。

しかもゲーム業界だとNW4C-TGAもあるから、ちゃんと選ばないと違うTGAになってしまいます!
(自分は要らない時にNW4Cプラグインをプラグインフォルダから外してるけど)

なので便利なアクションを使って、ボタンをぽちっと押すだけでTGA保存してくれるアクションが簡単に出来ますね。
アクションって良いですね。

しか~し。アクションだとフルパスになってしまうので、違うフォルダにあるファイルを開くと、さっき作ったアクションが使えなくて、アクションを修正するか、作り直すことになっちゃいます。

こんな時にこのスクリプトが役に立つかもよ!


同じフォルダにTGAを保存するという単純なスクリプトでございます。

コメントも書いておいたのでjavascriptがあんまり出来なくても簡単に編集が出来ると思います。
見れば分かると思いますが、// を書くとその列が無効になります。

以下のコードをメモ帳にコピペーして、「js」という拡張子で保存すればOK:

javascript

// 現ファイルのパス
var docRef = app.activeDocument
var docPath = app.activeDocument.path.fullName
// 現ファイルの名前
var docName = app.activeDocument.name
// 拡張子無しのファイル名を取得(fileName)
var fileName = docName.substring(0,(docName.length-4));
// パスを細かく分ける。(例:一つ前のフォルダを取得)
// var splitPath = docPath.split("/")
// var PathName = splitPath[0]
// for (i=1; i<(splitPath.length - 1); i++)
// {
// PathName = PathName.concat( "/", splitPath[i] )
// }
// PathName は 一個前のフォルダになります。

// TGA 設定
//--------------------------------------------------------
targaSaveOptions = new TargaSaveOptions()
// 色深度: 24bit = TargaBitsPerPixels.TWENTYFOUR(アルファ無し)
// 32bit = TargaBitsPerPixels.THIRTYTWO (アルファ付き)
targaSaveOptions.resolution = TargaBitsPerPixels.THIRTYTWO
// アルファチャンネルを保存(32bitの場合はここにfalseにすると、空のアルファになる)
targaSaveOptions.alphaChannels = true
// RLE圧縮:
targaSaveOptions.rleCompression = false
//--------------------------------------------------------

// 画像の解像度変換(リサイズ) (例:解像度を半分にする):
// var resizeWidth = docRef.width /2
// var resizeHeight = docRef.height /2
// docRef.resizeImage (resizeWidth, resizeHeight)

// パス+ファイル名。拡張子無しの名前になっているから、好きにリネームが出来ます
var newFileName = new File (docPath +  "/" + fileName + ".tga")
// 実行コマンド:
app.activeDocument.saveAs(newFileName, targaSaveOptions, true, Extension.LOWERCASE)


スクリプトのインストール方法:
フォトショップフォルダ内のPreset (プリセット)のScript (スクリプト)に入れると自動に登録されます(ファイルメニュー / スクリプト に出てきます)。
これをアクションで保存するとスクリプトのショートキーを作ることが出来ます。

PS : Photoshop Incremental Save Script

この間自作のPhotoshop AutoBackupスクリプトを紹介して、本当はMayaのインクリメンタル保存のようなものが欲しかったと書いたんですね。色んなところ探してみたけど、やっぱないよね・・・。

ありそうでないね、この機能。

Photoshopスクリプトの全く初心者なんだけど、JavaScript だとハードディスクにあるファイルの細かい情報が取得出来ない(多分)。このスクリプト作成するのは難しいよな、僕には無理でしょうねぇと思った・・・けど!、昨日PS-Scriptsを久しぶりに見ていたら、Photoshop上でJavaScriptファイルからVBSを実行する方法が書いてあった!これだ!VBScriptなら行ける!と思って、早速VBSで作り始めました。

そして、出来た~! これで保存イベントに繋げれば、フォトショップファイルを保存する時に別のフォルダにバックアップを保存してくれる!(mayaみたいに…XSIのBackup機能も似たようなものだけど)。

mPS Incremental Save

どんな機能?なにをする?説明しろよ!と思っているあなたに

ステップbyステップ!:

・開いているファイルの拡張子を確認して、PSDなら実行
・開いているファイルが保存されているかどうか確認、保存しているなら次へ

ここからは、[file.psd]というファイルが開いているケースにしましょう。

・バックアップフォルダがあるか確認して、ない場合フォルダ作成。
・バックアップフォルダに[file_001.psd]が保存されているか確認。ない場合、保存。
・[file_001.psd]が存在する場合、[file_002.psd]で保存する。
・[file_002.psd]が存在する場合・・・などなど、[file_005.psd]まで。
・[file_005.psd]を超えると、最後に保存されたファイル名を+1にする。例えば、file_005.psdの場合は
[file_001.psd]を上書きする。

デフォルトでは「5」ファイルまで設定していますが、VBSなので、maxfilesというところに好きな数字を入れ替えればすぐにインクリメンタル数を増やしたり減らしたりすることが出来ます。

細かい設定の説明はダウンロードページに。

これでMayaと同じようにファイルを保存するたびにインクリメンタル保存されるので、当然保存する時間が倍になってしまいます。しかも、Mayaと違ってファイルが結構重い場合もあるので、500Mb以上のファイルだとちょっとうざくなるかもしれない。特に一般ハードディスクの場合。


注意:
重いファイルを保存する時に、保存している途中に何かしようとすると(例えば、他のソフトをいじったり)、デバッグエラーが出てくる可能性があります。出たら適当に閉めておけば大丈夫です。
直し方が分かり次第スクリプトを更新します。

Topic:Design - Genre:Other

PS : Photoshop AutoBackup

同僚のパソコンの調子が悪くて頻繁にフリーズしていて、フォトショップのデータが消え、何分何時間の作業が台無し!

オートバックアップツールがあるんじゃないかと思い、ネットで調べてみたら有料のアプリ何個が出てきた: €5 、  $19、 $19.95 。ちょい高いかもな~。€5ぐらいは良いけど、フリーのが欲しい~。

もっと探してみたら、結構良さそうなフリーアプリがありました。オートセーブとオートバックアップ機能が付いていて良さそうなツールだけど、残念ながら自分のPCで上手く動かなかった。「File not find」とか出て何も出来ません。残念。

Auto Save なツールもあったけど、フォトショップで色々試している時に自動に上書きされるのは嫌だからNG。

VBScriptをちょっとしか触ってない自分がなんかスクリプトでバックアップ作れるかな~と思って「WScript.Sleep」というコマンド発見してこれで行けるかも!と思って作ってみた。

作った後に満足して、めったに使っていませんw
それでも、良かったら試してみてください。

因みに、パソコンの調子が悪かった原因はハードディスクでした。CrystalDiskInfoでSMART状況を確認したら赤くなっていた。幸いPCの保障がまだ期限が残っていたので、数日後まだスクリプトが終わっていなかった頃に新しいHDDが届いてきました。勉強になったから無駄ではなかったが、自分も含めて多分誰もこのスクリプトを使っていないw

でも、本当に作りたかったのはBackupじゃなくて、MayaみたいなIncremental  SaveだったけどJavascriptがハードディスクの中身を確認できないからIncrementalの番号が感知できません。なんとかならないかな。

Francesca Luceさんの「Incremental Save」はアクティーブなファイル名の番号を感知しているからファイル名が変わってしまうのでテクスチャを描いてる時には使えません。

UPDATE:
Incremental Save スクリプトも作りました: http://myara.blog.fc2.com/blog-entry-11.html


mPS AutoBackup
Japanese
同じフォルダに、何分ごとに同じファイル名+「_backup_番号」で自動的にバックアップされる。5回超えると、1つ目のファイルを上書きする。デフォルトは10分。
何分後とにチェックして、ファイルが開いていなければ、停止のダイアログウィンドウが出てきます。

使い方
:VBScriptなので、フォトショップ内で実行出来ません。ウィンドウズエックスプローラでダブルクリック。オートバックアップの時間間隔を入力する。

強引終了したい場合はタスクマネージャで「wscript.exe」を停止して下さい。

English
Autosaves active document every "n" minutes in a different file with the same
filename + "_backup_#" format.
Autosaves 5 times and then rewrites the first backup file.
Every n minutes autochecks if a file is opened. If not, a quit dialog appears.

Instructions: Just Double Click it and enter the interval time (in minutes) you want to auto backup. Read more

Topic:Design - Genre:Other