スクリプト

tRemapSelectorSetterした2つのリマップ番号を入れ替えるスクリプト「numSliderSwapper(#).jsx」

タイムリマップでレイヤー管理するスクリプト(フリーズフレーム)「tRemapSelectorSetter@freeze.jsx」」もしくは「タイムリマップでレイヤー管理するスクリプト(2フレーム以上)「tRemapSelectorSetter@time.jsx」」で作ったフレーム選択エフェクト「#リマップ番号」の値を、選択した2つのレイヤー間で入れ替えるスクリプトです。

[概要]

tRemapSelectorSetterした後でコンポジション上の並び順を変更したい場合、取りまとめたコンポジションを開いて入れ替えれば良いのですが、編集後半で元コンポジション内での順番は変えたくなく、見た目上の順番だけ変えたいといった場合が該当します。

入れ替えたい2つのレイヤーの#リマップ番号を手作業で入れ替えますよね。

手間だしレイヤー名についてる番号と齟齬が生じて見た目上管理が行き届かなくなります。

ありますよ。こんなとき用のスクリプト。

「#リマップ番号」とレイヤー名を同時に入れ替えます。

[使い方]

  1. 入れ替えたいレイヤーを2つ選択状態でスクリプトを実行する

のみ。

[解説]

function f_numSliderSwapper(){    
    var sel=app.project.activeItem.selectedLayers;
    if(sel.length>1){
        var selName0=sel[0].name,selName1=sel[1].name;
        var fxName0,fxName1,fxVal0,fxVal1;

        var numFx0=sel[0].property("ADBE Effect Parade").numProperties;
        for(i=1;i<=numFx0;i++){
            fxName0=sel[0].property("ADBE Effect Parade").property(i).name;
            if(fxName0.search(/^#/)==0){
                fxVal0=sel[0].property("ADBE Effect Parade")(fxName0)(1).value;
                break;
            }
       }//numFx
        var numFx1=sel[1].property("ADBE Effect Parade").numProperties;
        for(i=1;i<=numFx1;i++){
            fxName1=sel[1].property("ADBE Effect Parade").property(i).name;
            if(fxName1.search(/^#/)==0){
                fxVal1=sel[1].property("ADBE Effect Parade")(fxName1)(1).value;
                break;
            }
       }//numFx
                sel[0].property("ADBE Effect Parade")(fxName0)(1).setValue(fxVal1);
                sel[1].property("ADBE Effect Parade")(fxName1)(1).setValue(fxVal0);
                sel[0].name=selName1;
                sel[1].name=selName0;
    }//if(sel.length<=1)
}//function numSliderSwapper

app.beginUndoGroup("numSliderSwapper");
    f_numSliderSwapper();
app.endUndoGroup();

9行目「if(sel.length>1){」で選択したレイヤーが2つ未満ならメイン処理はスキップします。

そして念の為、選択レイヤーにエフェクトを独自に追加している場合などを考慮し、「[レイヤー].property(“Effects”).numProperties」で一旦適用されているエフェクトの数を取り出し、for文で「#」で始まるエフェクト名を探します。概ね「#リマップ番号」以外でエフェクト名を「#」で始まる名前にリネームしていることはないと想定し、これの値(value)を保存しておきます。

そしたら「1個目の選択レイヤー名+#リマップ番号の値」と「2個目の選択レイヤー名+#リマップ番号の値」を入れ替えたれば終わりや。

注意点

「#」で始まるエフェクト名が見つかったら以降のエフェクト名は検索しないので、「#リマップ番号」以外に「#」で始まるエフェクト名がある場合は「#リマップ番号」エフェクトは一番上にしておくと安全です。

ダウンロード

タイムリマップでレイヤー管理するスクリプト(2フレーム以上)「tRemapSelectorSetter@time.jsx」前のページ

選択した2つのレイヤーソースを入れ替えるスクリプト「swapSource.jsx」次のページ

ピックアップ記事

  1. なぜ?After Effectsの操作を「スクリプト」で効率化
  2. amazonのスポンサー商品(広告)を非表示にするブックマークレット「amazO…
  3. フリーランスの開業届提出は開業freeeでとにかく簡単に
  4. YouTubeで一時停止中のコントローラーを非表示にするブックマークレット
  5. なぜ?After Effectsのレイヤーをエクスプレッションで効率化

関連記事

  1. スクリプト

    マーカーでリズムを刻むスクリプト「keyframePlayer@Marker.jsx」

    事前に用意したキーフレームをマーカーごとに再生させる「マーカーでリズム…

  2. スクリプト

    放射状に配置するスクリプト「posCircleAlign.jsx」

    複数のレイヤーを放射状に整列させるエクスプレッションを仕込むスクリプト…

  3. スクリプト

    選択レイヤーのソーステキストを編集するスクリプト「textLayerEditor.jsx」

    選択した全テキストレイヤーのソーステキストを取り込み、テキストエリア上…

  4. スクリプト

    レイヤー名かフッテージ名末尾の数値を足し引きするスクリプト「numAddSubRenamer.jsx…

    開いたプロンプトに数値を入力すると、全選択オブジェクトの元の名前末尾の…

  5. スクリプト

    選択レイヤー名末尾の数値を#で始まるエフェクトに適用する補助スクリプト「numSliderSette…

    複数の整列させるレイヤーの管理を効率化するエクスプレッション連動スライ…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA