ChatGPTにIllustratorで使えるスクリプトを書いてもらうことができました。
// ダイアログを表示して入力値を取得する
var userInput = prompt("複製するレイヤーの数を半角英数で入力してください:", "");
var layerCount = parseInt(userInput);
// 選択したオブジェクトをコピーする
var doc = app.activeDocument;
var selection = doc.selection;
// 選択したオブジェクトが存在するか確認する
if (selection.length > 0) {
var copyItem = selection[0].duplicate();
var currentLayerName = getSelectedLayerName();
// レイヤーを複製し、オブジェクトをペーストする
for (var i = 0; i < layerCount; i++) {
// 新しいレイヤーを作成する
var newLayer = doc.layers.add();
newLayer.name = currentLayerName + "-" + (i + 1);
// オブジェクトを新しいレイヤーにペーストする
doc.selection = null;
app.activeDocument.activeLayer = newLayer;
copyItem.duplicate(newLayer, ElementPlacement.PLACEATBEGINNING);
}
// 初期の選択状態に戻す
doc.selection = null;
selection[0].selected = true;
} else {
alert("オブジェクトが選択されていません。");
}
// レイヤー名を取得する関数
function getSelectedLayerName() {
var doc = app.activeDocument; // アクティブなドキュメントを取得
var selection = doc.selection; // 選択されたオブジェクトを取得
if (selection.length > 0) {
var selectedLayer = selection[0].layer; // 最初の選択オブジェクトの所属レイヤーを取得
return selectedLayer.name; // レイヤー名を返す
} else {
return "選択されたオブジェクトがありません。";
}
}
実感としては、いきなり手数の多い処理を書いてもらおうとするとうまく動作しないことが多かったので、機能ごとにスクリプトを書いてもらって、それを自分で組み合わせる。というやり方が良いと思いました。
お時間有りましたら↓の続きを読むをクリックして全文を読んでいただけると嬉しいです。
続きを読む