スクリプト

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

「タイムリマップでレイヤー管理するエクスプレッション(2フレーム以上)」で作ったフレーム選択エフェクト追加+タイムリマップのON+秒数の指定+エクスプレッション適用をスクリプト化。

[チュートリアル動画]

あったらヤなチュートリアルを作りました。スクリプトの動きと概要を掴めます。

[概要]

複数の整列させるレイヤーの管理を効率化するエクスプレッションを仕込むスクリプト。補助スクリプトも合わせて使用する。

[使い方]

  1. 別コンポジションにアニメーションを均等秒数で配置する
  2. 整列させるメインコンポジションに配置する
  3. レイヤー名の末尾に「1」や「01」とリネームする
  4. 該当レイヤーを選択状態でスクリプトを実行する
  5. 開いたプロンプトで再生させたい秒数を指定する
  6. コンポジションレイヤーを複製する(自動連番になる)
  7. 補助スクリプト「numSliderSetter(#).jsx」を実行する

[解説]

function f_timeRemapSelectorSetterT(){
    var actCmp=app.project.activeItem;
    var sel=actCmp.selectedLayers;
    var frm=actCmp.frameDuration;
    var seconds=prompt("1セットの秒数",1);

    for(i=0;i<sel.length;i++){
        if(sel[i].canSetTimeRemapEnabled==false){
            alert("タイムリマップ可能なレイヤーを選択してから実行");
            return;
        }else{
            sel[i].property("ADBE Effect Parade").addProperty("ADBE Slider Control");
            sel[i].property("ADBE Effect Parade")("ADBE Slider Control").enabled=false;
            sel[i].property("ADBE Effect Parade")("ADBE Slider Control").name="#リマップ番号";
            sel[i].property("ADBE Effect Parade")("#リマップ番号")(1).setValue(1);
            sel[i].timeRemapEnabled = true;
            sel[i].timeRemap.removeKey(2);
            sel[i].timeRemap.setValueAtTime(sel[i].inPoint,0);
            sel[i].timeRemap.setValueAtTime( sel[i].inPoint+(Math.round(seconds/frm)-1)*frm,(Math.round(seconds/frm)-1)*frm);
            

            sel[i].timeRemap.expression=
            'dur='+seconds+';//リマップ長さ秒;\r'+
            'value+(effect("#リマップ番号")("スライダー")*dur-dur);\r';
        }
    }
}

app.beginUndoGroup("timeRemapSelectorSetter@time");
    f_timeRemapSelectorSetterT();
    alert("コンポジションの中は30fpsか確認\r29.97など小数点あるとズレ発生");
app.endUndoGroup();

選択したレイヤーに「#リマップ番号」という名前のスライダー制御を追加し、タイムリマップON状態にし、プロンプトで指定された秒数分だけキーフレームを設定する。

タイムリマップの数値を変更しようとすると、2つのキーフレームを変更することになり非常に煩雑になるため、エフェクトには入力用(表示させるフレーム選択用)の「#リマップ番号」というスライダーエフェクトを追加する処理にしている。

注意点

ただし、コンポジションレイヤーを複製したところで全てのタイムリマップが0秒スタートのままとなるため、連番で入力されて欲しいわけです。

そのため「レイヤー名末尾の数値を吸い上げ、#リマップ番号の数値を書き換えるスクリプト」をセットで使用するという案に落ち着きました。以下の2つのスクリプトは一連のセッティング動作の中で2つとも使用します。

ダウンロード

タイムリマップでレイヤー管理するエクスプレッション(2フレーム以上)前のページ

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

ピックアップ記事

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

関連記事

  1. スクリプト

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

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

  2. スクリプト

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

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

  3. スクリプト

    tRemapSelectorSetterした2つのリマップ番号を入れ替えるスクリプト「numSlid…

    「タイムリマップでレイヤー管理するスクリプト(フリーズフレーム)「tR…

  4. スクリプト

    タイムリマップでレイヤー管理するスクリプト(フリーズフレーム)「tRemapSelectorSett…

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

  5. スクリプト

    オーディオのフェードイン・アウトを自動化するスクリプト「[auto]volfIn_fOut.jsx」…

    オーディオレイヤーの音量のフェードイン・フェードアウトをエクスプレッシ…

  6. スクリプト

    1コンポでアニメーションパターンを管理するスクリプト「tRemapPlayer@Selector.j…

    1コンポにまとめたアニメーションパターンの何番目を再生するかキーフレー…

コメント

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

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

CAPTCHA