スクリプト

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

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

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

[チュートリアル動画]

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

[概要]

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

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

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

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

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

これも回避しましょう。

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

[使い方]

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

[注意点]

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

[解説]

JavaScript
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つにすると回避できるという謎な仕様があるので上記のような処理にしています。

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

ダウンロード

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

あったらヤなえかきうた#14【東北ずん子/ナスカズアキ】まみむめもVer.次のページ

ピックアップ記事

  1. フリーランスの開業届提出は開業freeeでとにかく簡単に

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

  3. なぜ?After Effectsのレイヤーをエクスプレッションで効率化

  4. YouTubeで一時停止中のコントローラーを非表示にするブックマークレット

  5. amazonのスポンサー商品(広告)を非表示にするブックマークレット「amazO…

関連記事

  1. スクリプト

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

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

  2. スクリプト

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

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

  3. スクリプト

    文章を分解してテキストレイヤーにするスクリプト「textLayerImporter.jsx」

    1行を1テキストレイヤーに変換するスクリプト。字幕を1つ1つコピペする…

  4. スクリプト

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

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

  5. スクリプト

    セット済みのフェード時間を調整するスクリプト「[batch]@fIn_fOut.jsx」

    既に[auto]fIn_fOut.jsxで追加された自動フェード用のス…

  6. スクリプト

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

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

コメント

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

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

CAPTCHA


PAGE TOP