2025-03-12

選択したオブジェクトにランダムに色を塗るスクリプト/Illustrator



選択したオブジェクトにランダムに色を塗ってくれるスクリプトをChatGPTちゃんにお手伝いしてもらいながら作成しました。

素人が作ったものなので、使ってみて何か問題が起こっても責任は取れません。
動作の正確性や安全性についても保証はできないので、使うのはあくまで自己責任でお願いします。


【使い方】


色を塗りたいオブジェクトを選択して、「色をランダムに塗る.jsx」スクリプトを起動する。


【ダウンロード】 


Googleドライブです。右上のダウンロードボタンからDLしてください。


右上にこんな感じのボタンがあります。



オブジェクトを選択した状態で、ダウンロードしたスクリプトをドラッグ&ドロップしても使えます。

ちなみに、テスト用に上みたいなタイルを作りたいという時は、適当に四角を書いた後「オブジェクト」-「パス」-「グリッドに分割」を使うと便利です。




塗った色を変えたいときは、「編集」-「カラーを編集」-「オブジェクトを再配色」を使うと便利です。



コードはこんな感じ。

#target illustrator

/*
===============================================================
選択したオブジェクトにランダムに色をつけることができます
===============================================================
*/




// パステルカラーの配列を定数として定義
const PASTEL_COLORS = [
    [255, 209, 220], // パステルピンク
    [255, 231, 181], // パステルイエロー
    [208, 244, 222], // パステルグリーン
    [199, 206, 234], // パステルブルー
    [255, 218, 193], // パステルオレンジ
    [215, 192, 250], // パステルパープル
    [255, 223, 211], // パステルピーチ
    [191, 243, 255], // パステルスカイブルー
    [230, 230, 250], // ラベンダー
    [253, 245, 230], // オールドレース
    [240, 255, 240], // ハニーデュー
    [255, 240, 245], // ラベンダーブラッシュ
    [245, 255, 250], // ミントクリーム
    [240, 248, 255], // アリスブルー
    [255, 250, 205], // レモンシフォン
    [250, 235, 215], // アンティークホワイト
    [255, 228, 225], // ミスティローズ
    [245, 245, 220], // ベージュ
    [255, 228, 196], // ビスク
    [255, 222, 173]  // ナバホホワイト
];

// メインプログラム
function applyPastelColors() {
    if (app.documents.length > 0) {
        var activeDoc = app.activeDocument;
        var selectedObjects = activeDoc.selection;

        if (selectedObjects.length > 0) {
            try {
                applyColorsToSelection(selectedObjects);
                alert("多様なパステルカラーの適用が完了しました。");
            } catch (e) {
                alert("エラーが発生しました: " + e.message);
            }
        } else {
            alert("オブジェクトが選択されていません。");
        }
    } else {
        alert("ドキュメントが開かれていません。");
    }
}

// 選択されたオブジェクトにパステルカラーを適用する関数
function applyColorsToSelection(selectedObjects) {
    for (var i = 0; i < selectedObjects.length; i++) {
        if (selectedObjects[i].typename === "PathItem") {
            var randomColor = getRandomColor(PASTEL_COLORS);
            applyColorToObject(selectedObjects[i], randomColor);
        }
    }
}

// ランダムな色を選択する関数
function getRandomColor(colors) {
    return colors[Math.floor(Math.random() * colors.length)];
}

// オブジェクトに色を適用する関数
function applyColorToObject(object, color) {
    object.filled = true;
    var fillColor = new RGBColor();
    fillColor.red = color[0];
    fillColor.green = color[1];
    fillColor.blue = color[2];
    object.fillColor = fillColor;
}

// プログラムの実行
applyPastelColors();