スクリプト

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

関連記事

  1. スクリプト

    使用エフェクト一覧をテキストファイル出力するスクリプト「exportFxName.jsx」

    使用エフェクト一覧を、開いているaepファイルと同じフォルダにテキスト…

  2. スクリプト

    選択順にレーザー線で繋ぐスクリプト「fakePlexus.jsx」

    有料プラグインの「Plexus」を模した「レイヤーとレイヤーを線で繋ぐ…

  3. スクリプト

    アイソメトリックビューを簡易的に実現するスクリプト「isometricCamera.jsx」

    インフォグラフィックスにも相性のいいアイソメトリックビュー風カメラを手…

  4. スクリプト

    グリッド状に均等配置するスクリプト「posGridAlign.jsx」

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

  5. スクリプト

    ソーステキストをスプレッドシートで一括管理するスクリプト+aep「aepSyncer@TSV.jsx…

    aep内の置換したいテキストを表計算で管理→一括置換できるスクリプトで…

  6. スクリプト

    これ以上ヌルレイヤーを増やしたくない人へのスクリプト「smartNuller.jsx」

    平面レイヤーフォルダに並ぶ複数のヌルレイヤーが気になる方へのスクリプト…

コメント

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

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

CAPTCHA