スクリプト

ワンクリックでループするタイムリマップを仕込むスクリプト「tRemapLooper.jsx」

コンポジションをloopOut()した際のちょっとした手間を削減するスクリプトです。

エクスプレッションで簡単ループ」のスクリプト化です。

[チュートリアル動画]

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

[概要]

動画はプロジェクトウィンドウでループ化できますが、コンポジションはループ設定がないため、タイムリマップでループさせることになります。

実際に行ったことがある方はお分かりかと思いますが、コンポジションにタイムリマップを適用すると、最終フレームのキーフレームはコンポジションの最終フレーム+1(存在していない空のフレーム)となってしまうため、最後から1フレーム前にキーを追加し、最終フレームのキーフレームを削除、最後にエクスプレッション「loopOut()」を仕込むことになります…。

なんでなの?ねぇなんでなの?

さらにこの状態だとたまにループ状態のどこかのフレームが飛ぶ謎の仕様があります。

なんでなの?ねぇなんでなの?

これも回避しましょう。

案件中はこの時間も惜しいと感じてきますので、スクリプト実行だけで済ませましょう。

[使い方]

  1. ループさせたいレイヤーを全選択する
  2. スクリプトを実行する。

[注意点]

  • 選択レイヤーの内、タイムリマップを適用できないレイヤーはスキップされます
  • 元素材のフレームレートは配置する使用コンポジションと一致させてください

[解説]

var actCmp=app.project.activeItem;
var sel=actCmp.selectedLayers;

function f_tRemapLooper(){
    for(i=0;i<sel.length;i++){
        if(sel[i].canSetTimeRemapEnabled==true){
            var out=sel[i].outPoint;
            sel[i].timeRemapEnabled = false;
            sel[i].timeRemapEnabled = true;
            sel[i].timeRemap.addKey(out-(actCmp.frameDuration));
            sel[i].timeRemap.setValueAtTime(out,0);
            sel[i].timeRemap.expression=
            'loopOut();';
        }
    }//for
}
app.beginUndoGroup("tRemapLooper");
    f_tRemapLooper();
app.endUndoGroup();

「.canSetTimeRemapEnabled==true」で選択レイヤーがタイムリマップに対応している場合のみ処理をしてエラーを回避します。

また、すでにタイムリマップで停止したキーフレームが設定されているなど、意図しない処理になることを防ぐため、「timeRemapEnabled = false;」「timeRemapEnabled = true;」で一瞬タイムリマップを解除し再度タイムリマップをデフォルト状態で適用します。

「addKey」でタイムリマップをONにした直後の最後のキーフレームから1フレーム前にキーフレームを追加し、元々ある最後のキーフレームには「0」を設定し直します。

これで1秒(0~29フレーム)のコンポジションに、0、29、0という3つのキーフレームが設定されました。

直感的にはキーフレームは0、29の2つのみでいいのですが、これでloopOutするとどこかで1フレーム飛ぶ可能性があるのです。

キーフレームを3つにすると回避できるという謎な仕様があるので上記のような処理にしています。

稀にこれでも飛ぶフレームがある場合、キャッシュが悪さをしていることが多いです。キャッシュを削除してみてください。

ダウンロード

エクスプレッションで簡単ループ前のページ

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

ピックアップ記事

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

関連記事

  1. スクリプト

    ウィグルを簡単に適用するスクリプト「posWigglr_V2.jsx」

    位置へのウィグルエクスプレッション適用時に、スライダーを噛ませることで…

  2. スクリプト

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

    「AEでも前方選択するスクリプト「selectForword.jsx」…

  3. スクリプト

    リンク切れフッテージのファイルパス一覧をテキストファイル出力するスクリプト「exportDeadLi…

    ソースが「不明」なリンク切れファイルと、最後にリンクしていたファイルパ…

  4. スクリプト

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

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

  5. スクリプト

    レイヤーを自動で拡大・縮小させるスクリプト[auto]scaleAnimator.jsx

    選択レイヤーのインポイントからアウトポイントにかけて、指定した%サイズ…

  6. スクリプト

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

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

コメント

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

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

CAPTCHA