スクリプト

現在時間のレイヤーを選択するスクリプト「selectCurrent.jsx」

AEでも前方選択するスクリプト「selectForword.jsx」」の亜種です。

[概要]

シーンを丸ごと前後にスライドしたい場合、今見えてるレイヤー全部というか、再生インジケーターがある箇所のレイヤーを狙って選択したい。

コンポジションパネルで全画面をグリっとドラッグ選択してもいいのですが、画面外の遠くにあるレイヤーがあるとドラッグ範囲に漏れてしまいます。

非表示のレイヤー、ロックが掛かったレイヤーは省いていいです。

目視、手作業では漏れが発生するので、現在時間でアクティブなレイヤーが分かれば、選択状態にするだけです。

となると意外と簡素に出来ました。

[使い方]

  1. 選択したいレイヤーにかかるように再生インジケーターを移動する
  2. スクリプトを実行する

[解説]

var actCmp=app.project.activeItem;

function f_selectCurrent(){
    for(i=1;i<=actCmp.layers.length;i++){
        actCmp.layer(i).selected=false;
        if(actCmp.layer(i).active==true){
            actCmp.layer(i).selected=true;
        }//if
    }//for
}

app.beginUndoGroup("undo");
    f_selectCurrent();
app.endUndoGroup();

まず、for文が1から開始になっています。

当サイトで多用している選択中のレイヤー(app.project.activeItem.selectedLayers)であれば、配列に入るので[0]開始ですが、今回はアクティブコンポジションのレイヤーを上からチェックしてきます。

レイヤー番号は1から始まるのです。そのため繰り返し条件は”最後のレイヤー番号=レイヤー数を「含める」”必要があり、「<」でなく「<=」です。

i=1;i<=actCmp.layers.length

ここだけエラーくらい易いところなのでメモしておきます。

「.active」でレイヤーが現在時間にアクティブかどうかを返してくれます。

「true」か「false」で帰ってきます。

trueの場合に「.selected=true」で選択状態をtrueに書き換えられます。

ただし!アクティブでもロックが掛かってれば「.selected」を「true」にできないようで、ちょうど希望通りの処理になりました。

もしロックが掛かったレイヤーも強制ロック解除して選択したい場合は、8行目(if文の中)に

actCmp.layer(i).locked=false;

を追加してください。

ダウンロード

フェードイン・アウトをエクスプレッションで自動化する前のページ

フェードイン・アウトを自動化するスクリプト「[auto]fIn_fOut.jsx」次のページ

ピックアップ記事

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

関連記事

  1. スクリプト

    なぜ?After Effectsの操作を「スクリプト」で効率化

    出来る範囲はマウスやキーボードで編集者が直接できる操作に限られますが、…

  2. スクリプト

    レイヤー名かフッテージ名末尾に連番を振るスクリプト「sequentialNumRenamer.jsx…

    連番管理したいレイヤーかフッテージを選択した順に連番でリネームするスク…

コメント

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

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

CAPTCHA