リンクをクリップボードにコピー
コピー完了
IllustratorでAfter Effectsに読み込むためのイラスト(人物など)を作成することがあります。
その際、レイヤー名を整頓しておいて、After Effectsで読み込んでからの作業がしやすいようにしたいです。
そこで、下記のようなレイヤー名に一括変更できるスクリプトを探しています。
「01_head」
「02_arm」
「03_body」
事前に「head」「arm」「body」は手打ちで変更しておき、パーツ分けが済んだ後に一括で連番を振れるようなものがいいです。
自分で探したところ、
デザインのメモさんの「rename.jsx」が近かったのですが、「(指定したプレフィックス)01」でリネームされるので、headやarmなどのようにバラバラのパーツ名で連番できません。
三階ラボさんの”アートボード用”のリネームスクリプトのレイヤー版のようなものがあれば最高です。
※mac /Illustrator2024で使用します
よろしくお願いいたします・・!
ふくろうさんさん、こんにちは。
スクリプトを実行した後、レイヤーを追加したり順序を入れ替えたりする可能性があるな〜と思ったので、重ねがけにも対応してみました。
(function () {
if (app.documents.length === 0) {
alert("ドキュメントが開かれていません。ドキュメントを開いてから実行してください。");
return;
}
var lay = app.activeDocument.layers;
for (var i = 0; i < lay.length; i++) {
lay[i].name = ("0" + (i + 1)).slice(-2) + "_" + deletePrefix(lay[i].name);
}
})();
alert("終了しました。");
// 先頭の数字2桁+アンダーバーを削除する関数
function deletePrefix(str) {
if (/^[0-9]{2}_/.test(str)) {
str = str.replace
...
リンクをクリップボードにコピー
コピー完了
var lys = app.activeDocument.layers;
for(var i = 0; i < lys.length; i++){
lys[i].name = padding(i + 1, 2) + lys[i].name;
}
function padding(num, len){
var str = num.toString();
while(str.length < len){
str = "0" + str;
}
return str + "_";
}
スマホから書いてみました。
テストしてないので動かなかったらTen Aさんが添削してくれるのを待ちましょう。
リンクをクリップボードにコピー
コピー完了
ありがとうございます!
やってみたのですが「エラー25」が表示されました。
そもそもスクリプトの入れ方が間違っているかもしれません。。。
こちらのテキストをテキストエディタにコピペして、拡張子を.jsxに変更したものを
Illustratorのフォルダの中のスクリプトに入れるだけではつかえないでしょうか?
お手数おかけいたします。。
リンクをクリップボードにコピー
コピー完了
すみません,実機で確認の上,5~6箇所訂正しました(ひどい)
返信にあるスクリプトを編集済みですので再度お試しください。
それはそれでUske_Sさんが書いたやつのほうが便利になってますねえw。
リンクをクリップボードにコピー
コピー完了
返信に漏れましたが、スクリプトの使用方法は、おっしゃった内容で合っています。
その後、いかがでしょうか。
リンクをクリップボードにコピー
コピー完了
ajabon grinsmith様
ご返信が大変遅くなり申し訳ございませんでした。。!
下記のスクショのように連番を振ることができました!嬉しいです!
こちらで十分なのですが、
「03_02_01」の「02_01」の部分を無くすことはできたりしますでしょうか?
(使い方が間違っているかもしれません・・
新規レイヤーを作成→スクリプト適用
を3回繰り返したらスクショのようになりました)
どうぞよろしくお願いいたします!
リンクをクリップボードにコピー
コピー完了
あーすみません、学習目的も込みと履き違えてしまい、自分からは一旦最低限動作のものを出してしまってたのでした。
結果おーらいですね。
リンクをクリップボードにコピー
コピー完了
ajabon grinsmith様
ご返信をありがとうございます!
スクリプト書けると色々と効率的に作業できそうですね。全くわからないので尊敬します!
今後ともどうぞよろしくお願いいたします!
リンクをクリップボードにコピー
コピー完了
ふくろうさんさん、こんにちは。
スクリプトを実行した後、レイヤーを追加したり順序を入れ替えたりする可能性があるな〜と思ったので、重ねがけにも対応してみました。
(function () {
if (app.documents.length === 0) {
alert("ドキュメントが開かれていません。ドキュメントを開いてから実行してください。");
return;
}
var lay = app.activeDocument.layers;
for (var i = 0; i < lay.length; i++) {
lay[i].name = ("0" + (i + 1)).slice(-2) + "_" + deletePrefix(lay[i].name);
}
})();
alert("終了しました。");
// 先頭の数字2桁+アンダーバーを削除する関数
function deletePrefix(str) {
if (/^[0-9]{2}_/.test(str)) {
str = str.replace(/^[0-9]{2}_/, "");
}
return str;
}
リンクをクリップボードにコピー
コピー完了
Uske_S様
ご返信が遅くなり大変申し訳ございません・・!
スクショのように連番できました!
再実行も無事にできました!ありがとうございます!
これからたくさん活用させていただきます。