unoh.github.com

Photoshopのスクリプトを気軽に複数ファイルに適用する

Mon Dec 27 21:56:45 -0800 2010

みなさんこんにちは。11月に入社したデザイナーの935です。

デザインの仕事をしていると「バッチ処理ではできない複雑な作業を複数のファイルに一度に適応したい」という気持ちになることがありませんか?そんなとき私はjsflなんかと比べると若干マイナーな感のあるphotoshopのスクリプトを愛用しています。

でも、photoshopのスクリプトってメニューからだと「一度に開いたファイル一つ」にしか適応できないですよね?そうすると、せっかくスクリプト書いたのに「それってなんか片手おちじゃない?どうせなら一度にやってよ」という気持ちになるわけです。

そこで今回はドロップレットを使って複数のファイルにスクリプトを適用する方法をご紹介したいと思います。

まあ、特定のフォルダのファイルリストを取得してforで回すようなスクリプト書いてもいいんですが、今回はドロップレットを使って気軽にやってみましょう。

1.スクリプトの準備

まず簡単なスクリプトを用意してみましょう。

fName = activeDocument.name.slice(0,1);
colObj = new SolidColor();

if (fName == "a") {
	colObj.rgb.red = 255;
	colObj.rgb.green = 0;
	colObj.rgb.blue = 0;
}else if (fName == "b") {
	colObj.rgb.red = 0;
	colObj.rgb.green = 0;
	colObj.rgb.blue = 255;
}

activeDocument.activeLayer = activeDocument.artLayers[activeDocument.artLayers.length-1];
activeDocument.selection.selectAll();
activeDocument.selection.fill(colObj,ColorBlendMode.NORMAL, 100, false);

ファイル名がaから始まれば背景を赤に、bから始まれば青に塗りつぶすだけのスクリプトです。これを「サンプルスクリプト.jsx」という名前でPhotoshop.exeのあるフォルダの\Presets\Scripts以下に保存します。

Photoshopを起動し直すとスクリプトメニューに「サンプルスクリプト」が追加されます。

1_1.jpg

ついでに、このスクリプトを適応するファイルも用意しました。

yamane1_2.jpg

2.スクリプトをアクションに登録

そしてこれをアクションに登録します。新規のアクションを作ってスクリプトを実行しましょう。

yamane1_6.jpg

これでスクリプトを実行するアクションができました。

3.ドロップレットを作る

先ほど作ったアクションからドロップレットを作成([ファイル]-[自動処理]-[ドロップレットを作成])します。

yamane1_3.jpg

ここでは試しに「サンプルドロップレット.exe」を作成しました。

4.バッチファイルを作る

フォルダを作って処理したいファイルを入れ、さらに3で作ったドロップレットにフォルダを渡すバッチファイルを作ります。

サンプルドロップレット.exe C:\sample\psd

↓サンプルで作ったフォルダの中身はこんな感じです。

yamane1_4.jpg
C:\sample
    \psd
      処理したいファイル群
    サンプルドロップレット.exe
    サンプルバッチ.bat

これで、バッチファイルをダブルクリックするだけでフォルダの中身全部にスクリプトが適用されるようになりました!あとはゆっくりコーヒーでも飲んでいれば、Photoshopがかいがいしくファイル処理をしてくれますよ~。

yamane1_5.jpg

補足

よく考えてみればフォルダをドロップレットにドラッグ&ドロップするだけでもできるんですよね。...ドロップレットなんだから...。

それではみなさんよいお年を!