Photoshopスクリプティング、はじめました

CS3を購入*1したらやりたかったことの一つが、スクリプティングによる自動化。
CSになってから、illustratorphotoshopjavascriptなどを使ったマクロ的スクリプトが書ける、というのは聞いていたけど、持ってなかったし、やる機会がなかったのです。
で、今やっている作業で、非人間的な作業がちょっと出たので、「今だ!」とばかりにちょっと時間を割いて挑戦してみました。
やりたいことをまとめると、以下のようになります。

  • "0"と一文字記入されているテキストレイヤーのドキュメントを開いている状態で、
  • 現在選択しているテキストレイヤーをコピーして、
  • テキストの内容を書き換え、
  • という感じで、1〜18のテキストを持つレイヤーを作成したい

以下のコードを適当なテキストエディタで書き、genNumberLayers.jsxと名づけて保存します。

// genNumberLayers.jsx
var orgLayer = app.activeDocument.activeLayer;
for( var i=1; i<19; i++ ){
  dupLayer = orgLayer.duplicate();
  if( dupLayer.kind == LayerKind.TEXT ){
    dupLayer.textItem.contents = i.toString();
  }
}

これをPhotoshopから呼び出して実行します。
「ファイル」メニュー→「スクリプト」→「参照」でスクリプトを選ぶと実行されます。

読みやすいヘルプ、リファレンス

今回調べてみて思ったことが、付属のドキュメントPDFが割としっかりしていて、とても分かりやすい、ということ。ちょっと初心者を突き放している感はあるが、普通のプログラマなら問題ないレベル。
まず、ドキュメントのタイトルが分かりやすいので、どれから読めばいいのか検討がつく。複数のヘルプファイルがある場合には中身を想像できるタイトルにすることはとても重要です。
リファレンスはとても簡潔にまとめられている表になっていて、リンクも十分あるので、次々と読める。このリファレンスの体裁は他のAPIドキュメントとかは是非参考にすべき。
そんなヘルプは以下の場所にあります。

以上の確認環境。

Photoshop CS3 Extended, Windows XP SP2.