[概要]
240816改修版。以前の「[_nn]seqNumRenamer.jsx」からアップデートしました。
連番管理したいレイヤーかフッテージを選択した順に連番でリネームするスクリプト。<指定した名前>+<連番>を振る。
[使い方]
- 連番を振りたいオブジェクトを選択順に注意して選択する
- スクリプトを実行する
- 開いたプロンプトにベースとなる名前を指定する
- 続いて開いたプロンプトで開始番号を指定する
[オプション]
- 開始番号入力時に「001」など冒頭に0を入力すると桁数をゼロパディングできる
- スクリプトでリネームすると、エクスプレッションで参照しているレイヤー名、フッテージ名は自動で追いかけてくれないので、リンクが切れてエクスプレッションエラーを吐く点は注意して使用する
- 開始番号を0からでも1からでも50からでも振れる
- これはいずれ紹介する「タイムリマップで複数のオブジェクトを管理」する場合に活躍する→追加されました「タイムリマップでレイヤー管理するスクリプト(フリーズフレーム)「tRemapSelectorSetter@freeze.jsx」」「タイムリマップでレイヤー管理するスクリプト(2フレーム以上)「tRemapSelectorSetter@time.jsx」」「選択レイヤー名末尾の数値を#で始まるエフェクトに適用する補助スクリプト「numSliderSetter(#).jsx」」
[解説]
var actItm = app.project.activeItem;
var sel="";
var baseName=null;
var baseNum=null;
function f_baseNameCheck(){
if(actItm instanceof CompItem){//タイムライン
sel = actItm.selectedLayers;
selectobj="レイヤーの";
}else{//プロジェクトウィンドウ
sel = app.project.selection;
selectobj="フッテージの";
}
if(sel.length>0){
baseName = prompt(selectobj+"ベース名を入力", sel[0].name);
}else{
alert("レイヤーかフッテージを選択して実行してください");
}
return baseName;
}
function f_baseNumCheck(){
baseNum = prompt("開始番号を入力", "1");
if(baseNum==null)return;
baseNum=baseNum.match(/\d/g).join("");
return baseNum;
}
function f_seqNumRenamer(){
if(baseNum==null)return;
keta1=baseNum.length;
var selectobj="";
var keta=0;
var num=0;
var padding="";
for(var i=0;i<sel.length; i++){
num=Number(baseNum)+i;
}
keta=Math.max(keta1,String(num).length);
for(i=0;i<keta;i++){
padding+="0";
}
for(i=0;i<sel.length; i++){
num=Number(baseNum)+i;
nameNum=padding+num;
sel[i].name=baseName+nameNum.slice(-keta);
}
}//function SequentialNumRenamer
baseName=f_baseNameCheck();
if(baseName!=null){
baseNum=f_baseNumCheck();
if(baseNum!=null){
app.beginUndoGroup("seqNumRenamer");
f_seqNumRenamer();
app.endUndoGroup();
}
}
バラバラの名前のaiファイルを複数読み込んでいる場合など、全部キャラクターのイラストならばレイヤー名は「男性_01」など統一されていたほうが管理がしやすく、リネームするくらいならばと連番で管理するようになった際に作ったスクリプト。
案の定その日からずっと活用しています。
選択順に連番を振るため、積み上げ式でレイヤーを管理している方は下から上へ選択。吊り下げ型でレイヤーを管理している方は上から下へ選択と選べます。
末尾をゼロパディングしているのは、連番管理では視認性も管理効率に直結することから。桁数が繰り上がる数を扱う場合の見やすさが全く違います。
また、以下の他のスクリプトと合わせて使うことも想定しています。
この記事へのコメントはありません。