コンポをループさせるベストな方法

AfterEffects

AfterEffectsで素材をループさせたいなと思う時があると思いますが、
初心者が実際にやってみると簡単にできない罠があります。

【ベストな例】(手打ち勢は全員これを使ってくれ)

昔twitterに書いてあった内容の引用です。
ループさせたいコンポを選択後に下記のexpressionを記述

loopOut(type="cycle");
if(time==key(numKeys).time) {key(1)}else{loopOut(type="cycle");};


gifが見切れてますが、
右クリックでタイムリマップ後に、エクスプレッションをコピペしてるだけです。

あとで説明するやり方のようにキーフレームを打たなくてもちゃんとループします。

loopOut(type ="cycle")%(timeRemap.key(2));

でも可能なようです。こっちの方が短いので覚えやすい?
自分の場合はCliborっていうコピペ拡張ツールに登録して使ってます。

【よくある例】(別にこれでもいいけど手順が多い)

素材は0~59の60枚でループするものとします。
下記画像のようにタイムリマップ後に最終フレーム前のフレームと最初のフレームを打ってから
(キーフレームが1、59、1と3つ必要です)

loopOut(type ="cycle", numKeyframes = 0);


を記述

こうすることで0~59がループします。が、
手順が増えるので効率的ではない気はします。
ただこのやり方のスクリプトはいろいろあるので別に悪いわけじゃないです。

【だめな例】(ってかちゃんとループしてない)

AfterEffectsでタイムリマップをかけた場合に最終フレームがタイムリマップに含まれています。
例えば0から画像がスタートして60枚あるとすると最後は59になるので、60というのは
実際にはになってします。例えば、

https://www.cg-method.com/aftereffects-loop-composition/

ここに書かれてるやり方を実践すると最終フレームが1つ消えることに気づくと思います。
(素材が60枚あるとして61枚分タイムリマップがかかる)

検索上位にあがってくる説明が実は間違ってる説明なのはとても悲しいものです…。

最終フレームが消えるのはバグではなく、
タイムリマップ時に最終フレームの1つ後ろのフレームもタイムリマップに含まれてるから
だと思っています。

AE上は問題なくてもデータを出力してしようする場合、正しい指定がされていないと、
絵が消えたりするので注意が必要です。

コメント

タイトルとURLをコピーしました