こんにちは、レタッチチームのめいです。
今回はJavaScriptでPhotoshopを自動化する方法を
プログラム初心者の方向けに分かりやすくご紹介したいと思います。
私自身、JavaScriptは独学で浅く触った程度なので、専門的な解説はできないことを前置きしておきます。
目次
アクションと何が違うの?
Photoshopの自動化といえば、アクションを思い浮かべる方が多いのではないでしょうか。
アクションについてはみたかさんの下記記事をご覧ください☆
Photoshopのアクション機能
操作した内容をのまま記録してくれるアクション機能はとても便利ですよね!
ですがアクション機能だけではどうしても補えない操作があります。
例を挙げると、ファイルの保存処理、条件での分岐など。
「画像が○○サイズ以下の場合は○○の操作をさせる。」なんていう操作、アクションでは実行不可ですが、JavaScriptを使用すれば可能になります!
でもJavaScriptとかよく分からないし…
今回私がご紹介する方法は、JavaScriptの細かい知識は必要ありません。
事実、私もJavaScriptについて無知識で始めました。
(今もよく分かっていません…笑)
なぜ必要ないかは次回の記事で詳しくご説明しますが、JavaScriptという言葉に「うっ…」ときた方も、構えずに最後まで読んでいただけたら嬉しいです♪
それでは早速…
JavaScriptファイルの作成からPhotoshopでの実行まで実際にやってみましょう。
①jsxファイルを作成
基礎の基礎からご紹介。
メモ帳(テキストエディタならなんでも)を起動し、下記のスクリプトをコピペして下さい。
// Hello Word Script
// Remember current unit settings and then set units to
// the value expected by this script
var originalUnit = preferences.rulerUnits
preferences.rulerUnits = Units.INCHES
// Create a new 2x4 inch document and assign it to a variable
var docRef = app.documents.add( 2, 4 )
// Create a new art layer containing text
var artLayerRef = docRef.artLayers.add()
artLayerRef.kind = LayerKind.TEXT
// Set the contents of the text layer.
var textItemRef = artLayerRef.textItem
textItemRef.contents = "Hello, World"
// Release references
docRef = null
artLayerRef = null
textItemRef = null
// Restore original ruler unit setting
app.preferences.rulerUnits = originalUnit
※上記は『Photoshop CS5 Scripting Guide-J.pdf』に記載されているサンプルスクリプトです。
入力が完了したら、テキストファイルの拡張子を「.jsx」に変更して保存します。
名称はなんでも構いませんが、今回は「test.jsx」としました。
※「.jsx」とはJavaScriptファイルの拡張子です。
②jsxファイルをScriptsフォルダに配置
作成したjsxファイルをPresets\Scriptsの中に配置します。
- 私のPCの場合は下記の場所にScriptsフォルダがありました。
- ..Program Files\Adobe\Adobe Photoshop CS5.1 (64 Bit)\Presets\Scripts
※私はWinPCを使用しているので、Macの場合は違う場所にあるかもしれません。
③スクリプトを実際に起動
Photoshopを起動します。
既にPhotoshopを起動していた方は、再起動して下さい。
メニューの「ファイル」→「スクリプト」を開くと先ほど作成した「test」という項目が追加されています。
こちらを選択し、実行してみて下さい。
自動で「Hello, World」というテキストが配置されたファイルが生成されました。
う、う、動いた~~~っ!
サンプルのJavaScriptをコピペしただけとはいえ、、
実際にPhotoshopが自動で動くと感動しますよね!
ちなみに先ほどのJavaScriptの解説を簡単に行うと、
var originalUnit = preferences.rulerUnits
preferences.rulerUnits = Units.INCHES
(単位をインチに設定)
var docRef = app.documents.add( 2, 4 )
(横2inch、縦4inchの新規ドキュメントを作成。)
var artLayerRef = docRef.artLayers.add()
artLayerRef.kind = LayerKind.TEXT
(新規テキストレイヤーを作成。)
var textItemRef = artLayerRef.textItem
textItemRef.contents = "Hello, World"
(テキストレイヤーの内容を設定。
テキストレイヤーに「Hello, World」と入力。)
docRef = null
artLayerRef = null
textItemRef = null
(リリース参照。)
app.preferences.rulerUnits = originalUnit
(オリジナル定規の単位設定を復元。)
後半難しい言葉が並んでおりますが、(リリース参照ってなんぞや…)「Hello, World」を違う文章に書き変えて実行してみたり、数値をいじってみたり、色々と実験してみて下さい。
まずはjsxファイルに慣れることが第一目標です!
次回にひっぱります~!
次回は基礎編②として、初心者でも簡単にできるJavaScriptの書き方をご紹介します。
玄人の方には見苦しい書き方かもしれませんが、そこはご愛嬌ということで…!
↓基礎編②はこちら↓
さらにさらに熱意のある方は「Photoshop CS5 Scripting Guide-J.pdf」というPhotoshopに付属しているスクリプトの解説書がありますのでそちらを読んでみて下さい!
- 私の場合は下記に保存してありました。
- ..Program Files\Adobe\Adobe Photoshop CS5.1 (64 Bit)\スクリプティングガイド
それではまたお会いしましょう☆