【Illustrator】文字単位で交互に色を変更するスクリプト

illustrator-alternates-colors-character-by-character

テキストの特定の部分の色を変更出来ないか挑戦してみました。

本当はPhotoshopで作成したかったのですが、実力不足でイラレで作成しました。

[Photoshop] 文字色を変えるスクリプト

テキストまるごと色を変えるだけなら簡単です。

layer = app.activeDocument.activeLayer;

layer.textItem.color.rgb.red = 0;
layer.textItem.color.rgb.green = 255;
layer.textItem.color.rgb.blue = 0;

[Photoshop] 文字をカウントするスクリプト

一応、文字数を数えたりはできました。

var words = "あいうえお";
words = words.replace(/(\r\n|\n|\r)/gm," ");
while (words.indexOf("  ") != -1) {words = words.replace("  ", " ")};
var endSpace = /\s$/;
words = words.replace(endSpace, "");
var charCount = words.split(" ").join(" ").length;
alert ("\n "+ charCount + " Characters");

あとは選択したレイヤーの文字を配列にいれたら良いのですが、ここから先、文字単位で色を変えるにはScriptingListenerで解析すればよいのですが、行数が長くて諦めました。

[Illustrator]文字単位で交互に色を変更するスクリプト

ということでイラレなら文字単位で編集できるのでこちらで、文字単位で交互に色を変更するスクリプトを書いてみました。

※RGBで指定とかは入力時は面倒でイラレは描画色・背景色みたいなものはなく、オブジェクトから色をとることになるので、スウォッチから色を取ることにしました。

Illustrator ▶ Photoshopへコピペ

テキストツール選択時にコピペすれば、テキストのままペーストされます。

まとめ

AEとPhotoshopとIllustrator、ぜんぜん勝手が違うので、同じような挙動のスクリプト書くのは大変だということがわかりました。

時間かければ出来なくなさそうですが…。良いリファレンスがあったらまた挑戦してみようと思います。