終了

【Illustrator】レイヤー名のリネームのスクリプト探しています(After Effects読み込み用)

エクスプローラー ,
Aug 10, 2024 Aug 10, 2024

リンクをクリップボードにコピー

コピー完了

 IllustratorでAfter Effectsに読み込むためのイラスト(人物など)を作成することがあります。

その際、レイヤー名を整頓しておいて、After Effectsで読み込んでからの作業がしやすいようにしたいです。

そこで、下記のようなレイヤー名に一括変更できるスクリプトを探しています。

「01_head」

「02_arm」

「03_body」

事前に「head」「arm」「body」は手打ちで変更しておき、パーツ分けが済んだ後に一括で連番を振れるようなものがいいです。

自分で探したところ、

デザインのメモさんの「rename.jsx」が近かったのですが、「(指定したプレフィックス)01」でリネームされるので、headやarmなどのようにバラバラのパーツ名で連番できません。

三階ラボさんの”アートボード用”のリネームスクリプトのレイヤー版のようなものがあれば最高です。

※mac /Illustrator2024で使用します

よろしくお願いいたします・・!

キーワード
Mac , スクリプティング , ツール , 手順・操作方法

表示

871

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

Community Expert , Aug 11, 2024 Aug 11, 2024

ふくろうさんさん、こんにちは。

 

スクリプトを実行した後、レイヤーを追加したり順序を入れ替えたりする可能性があるな〜と思ったので、重ねがけにも対応してみました。

アートボード 1.png

 

(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
...

投票

翻訳

翻訳
Community Expert ,
Aug 10, 2024 Aug 10, 2024

リンクをクリップボードにコピー

コピー完了

 

 

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さんが添削してくれるのを待ちましょう。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Aug 11, 2024 Aug 11, 2024

リンクをクリップボードにコピー

コピー完了

ありがとうございます!

やってみたのですが「エラー25」が表示されました。

そもそもスクリプトの入れ方が間違っているかもしれません。。。

こちらのテキストをテキストエディタにコピペして、拡張子を.jsxに変更したものを

Illustratorのフォルダの中のスクリプトに入れるだけではつかえないでしょうか?

お手数おかけいたします。。

 

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Aug 12, 2024 Aug 12, 2024

リンクをクリップボードにコピー

コピー完了

すみません,実機で確認の上,5~6箇所訂正しました(ひどい)

返信にあるスクリプトを編集済みですので再度お試しください。

 

それはそれでUske_Sさんが書いたやつのほうが便利になってますねえw。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Aug 19, 2024 Aug 19, 2024

リンクをクリップボードにコピー

コピー完了

返信に漏れましたが、スクリプトの使用方法は、おっしゃった内容で合っています。

その後、いかがでしょうか。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Oct 10, 2024 Oct 10, 2024

リンクをクリップボードにコピー

コピー完了

ajabon grinsmith様

ご返信が大変遅くなり申し訳ございませんでした。。!

下記のスクショのように連番を振ることができました!嬉しいです!

スクリーンショット 2024-10-10 22.44.14.png

こちらで十分なのですが、

「03_02_01」の「02_01」の部分を無くすことはできたりしますでしょうか?

(使い方が間違っているかもしれません・・

新規レイヤーを作成→スクリプト適用

を3回繰り返したらスクショのようになりました)

どうぞよろしくお願いいたします!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Oct 10, 2024 Oct 10, 2024

リンクをクリップボードにコピー

コピー完了

あーすみません、学習目的も込みと履き違えてしまい、自分からは一旦最低限動作のものを出してしまってたのでした。

結果おーらいですね。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Oct 11, 2024 Oct 11, 2024

リンクをクリップボードにコピー

コピー完了

最新

ajabon grinsmith様 

ご返信をありがとうございます!

スクリプト書けると色々と効率的に作業できそうですね。全くわからないので尊敬します!

今後ともどうぞよろしくお願いいたします!

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
Community Expert ,
Aug 11, 2024 Aug 11, 2024

リンクをクリップボードにコピー

コピー完了

ふくろうさんさん、こんにちは。

 

スクリプトを実行した後、レイヤーを追加したり順序を入れ替えたりする可能性があるな〜と思ったので、重ねがけにも対応してみました。

アートボード 1.png

 

(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

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Oct 10, 2024 Oct 10, 2024

リンクをクリップボードにコピー

コピー完了

Uske_S様

ご返信が遅くなり大変申し訳ございません・・!

スクショのように連番できました!

再実行も無事にできました!ありがとうございます!

これからたくさん活用させていただきます。

スクリーンショット 2024-10-10 23.01.34.png

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines