loopOut|少ないキーで繰り返すAEエクスプレッションとcycle・pingpongの使い分け

loopOut。cycleは先頭へ戻り、pingpongは往復する動きを、丸と矢印で表した作例入りサムネイル。

同じ動きを何度も使いたいとき、キーフレームをコピーし続ける必要はありません。loopOutを使うと、作った動きを最後のキーの後も繰り返せます。回り続けるマークや、ゆっくり拡縮するカードに便利です。

AEエクスプレッション集の第2弾は、先頭へ戻るcycleと、往復するpingpongの使い分け。基本の位置比較から、回転・スケールへの応用まで順に紹介します。

この記事で使用したAEプロジェクトを無料ダウンロードできます。ダウンロードは記事の最後から。

目次

まずは完成形:キーだけ・cycle・pingpongを比べる

上:キーだけ/中央:cycle/下:pingpong。同じ位置キーで比較。 8秒・音声なし。再生ボタンで動きを確認できます。

3つの丸は、0.5秒のX350から1.5秒のX1050へ、1秒かけて移動します。キーだけなら右で停止。cycleは左へ戻って再開し、pingpongは右から左へ戻ります。片道1秒なら、cycleの1周期は1秒、pingpongの往復は2秒です。

コピーして使えるコード

先頭に戻って繰り返すときは、適用先のプロパティに次の1行を貼り付けます。

loopOut("cycle");

行ったり来たりさせるときはこちら。2つを同時に貼らず、目的に合う1行を使ってください。

loopOut("pingpong");

引用符は半角の " を使います。loopOutのOは大文字です。上のコードはテキストなので、選択してコピーできます。

使う場所と基本の再現手順

項目今回の設定
環境After Effects 26.5(26.5×89)/macOS/JavaScriptエクスプレッションエンジン
コンポジション1280×720/30fps/8秒/8bpc
基本例の素材直径64pxの丸。外部素材・追加プラグインなし
位置キー0.5秒[350, 410]→1.5秒[1050, 410]/リニア
フォントHiragino Sans W6/Arial Bold。未導入なら差し替え
  1. 8秒のコンポジションに丸を作り、位置のキーを上の値で2つ打ちます。
  2. キーの時間補間をリニアにし、横へまっすぐ移動する状態にします。
  3. 位置のストップウォッチを、MacはOption、WindowsはAltを押しながらクリックします。
  4. 開いた式の入力欄へ loopOut("cycle"); を貼り付けます。
  5. 1.5秒より後を再生し、移動が繰り返されることを確認します。
  6. cycleをpingpongへ変え、同じキーのまま往復する動きに切り替えます。

loopOutはエフェクトメニューから追加する機能ではありません。繰り返したい値そのものに式を入れます。位置を動かすなら位置、回すなら回転、拡縮するならスケールです。

After Effectsの実プロパティパネル。POSITION_1の位置はX886.7、Y410。
実際のAEプロパティパネル。2秒8フレームでは、cycleで位置Xが約886.7になっています。最後のキー1050で止まっていないことがわかります。

cycleとpingpong、どちらを選ぶ?

種類繰り返し方使いやすい場面
cycle最後まで進んだら先頭へ戻る360度の回転、始点と終点が同じ見た目の動き
pingpong最後まで進んだら逆向きに戻る左右移動、ゆっくりした拡縮、往復運動

cycleは、始点と終点が違う位置だとつなぎ目で跳びます。基本例では違いを見せるため、そのまま左へ戻しています。位置を滑らかにつなぎたいならpingpong、同じ向きに回し続けたいならcycle、と使い分けると考えやすくなります。

速さを変える:キーの間隔を動かす

速さ専用の引数を足すのではなく、元のキーの間隔を広げたり狭めたりします。同じ移動距離なら、間隔を半分にすると2倍の速さ、2倍にすると半分の速さになります。

cycleでキー間隔0.5秒、1秒、2秒を比較したAE作例。
0秒のX350からX1050まで、キーの間隔だけを変更。すべて2.25秒の静止画です。静止画の位置だけでは速さを判断できないので、配布AEPのCOMPARE_SPEEDも再生してみてください。
キー間隔cycleの周期pingpongの往復周期
0.5秒0.5秒1秒
1秒1秒2秒
2秒2秒4秒

最後の一部分だけ繰り返す:numKeyframes

第2引数は「何回繰り返すか」ではなく、最後のキーから、いくつのキー区間をさかのぼるかです。省略または0は全キー。1なら最後の2つのキーの間だけを繰り返します。

loopOut("cycle", 1);
numKeyframesを0、1、2に変えた位置の比較。
キーは0秒X350・1秒X700・2秒X1050の3個。2.25秒では、0と2は全2区間を繰り返すので約437.5、1は最後の1区間だけなので約787.5です。

「最初に登場して、その後の小さな動きだけを繰り返す」ときに役立ちます。numKeyframes=2はキー2個ではなく、2区間=キー3個分です。

実践1:回転し続けるマーク

8つの丸をまとめたマークを、同じ向きに回し続ける。 8秒・音声なし。再生ボタンで動きを確認できます。
設定値
対象02_SPIN_MARK内のLOOP_ROTATION/回転
キー0秒0度→2秒360度/リニア
式loopOut("cycle");
1周2秒

丸を円状に並べ、1つのプリコンポジションにまとめます。アンカーポイントをマークの中心に置き、回転のキーを0度から360度へ設定してcycleを適用。基本例から変えるのは適用先が位置から回転になる点です。

数値は360度から0度へ戻りますが、見た目は同じ向きなのでつながります。一定速度で回すため、ここではリニアを使います。イージーイーズを付けると、毎周加速・減速する動きになります。

実践2:呼吸するように拡縮するカード

文字と背景をまとめたカードを、ゆっくり大きく・小さくする。 8秒・音声なし。再生ボタンで動きを確認できます。
設定値
対象03_BREATHING_CARD内のLOOP_SCALE/スケール
キー0秒[96, 96]%→1.5秒[104, 104]%
補間両端にイージーイーズ
式loopOut("pingpong");
往復3秒

背景・文字・アクセント線を640×230のプリコンポジションにまとめ、親コンポジションで中央に配置します。スケールの2つのキーにイージーイーズを付け、pingpongを適用すると、切り返しが柔らかくなります。基本例から変えるのは、適用先・数値・キー間隔・補間です。

大きく動かしすぎると文字が読みづらくなります。まずは96〜104%程度で試し、落ち着いた動きにしたいなら98〜102%へ狭めてください。

動かない・つなぎ目が跳ぶときの確認

症状確認すること
繰り返さない同じプロパティに2つ以上のキーがあるか、最後のキーより後を再生しているか、式が有効かを確認。
途中で見えなくなるレイヤーのアウト点やコンポジションの長さを確認。loopOutはレイヤー自体の尺を延長しません。
cycleで位置が跳ぶ始点と終点が違う位置なら先頭へ戻ります。往復させたいならpingpongに変更。
pingpongの切り返しが急リニアなら端で方向が急に反転します。柔らかくしたいなら両端のキーにイージーイーズ。
2回だけ繰り返したい第2引数は回数指定ではありません。終了時刻を条件にする別の式が必要です。
映像や文字内容をループしたいこの例は位置・回転・スケールの数値を繰り返すものです。映像の再生にはタイムリマップ等の別設定が必要。ソーステキストやシェイプパスにはそのまま使えません。

動きの仕組みと引数の仕様はAdobeのエクスプレッション言語リファレンスでも確認できます。まずcycleとpingpongの2種類を使い分けられれば、少ないキーでも繰り返しの表現を増やせます。

作例プロジェクトをダウンロード

基本比較・回転マーク・カードの拡縮・周期と範囲の比較を収録しています。キーの時刻や値、式を変えて試せます。

項目内容
版・容量v1.0/76,540バイト(約75KiB)
内容編集可能なAEP、expressions.txt、はじめに.txt
制作環境After Effects 26.5×89/JavaScriptエクスプレッションエンジン
必要フォントHiragino Sans W6/Arial Bold。フォント本体は同梱していません。
利用条件学習・個人制作で利用と改変可。商用利用は個別相談。

商用利用はお問い合わせページからご相談ください。

止まり際に余韻を加えたいときは、慣性バウンスの使い方もどうぞ。ほかのコードはAEエクスプレッション集から探せます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランスとしてPASを運営し、モーションデザインや映像制作を中心に活動しています。

映像をつくることだけでなく、情報をどう捉え、どう組み替え、どう伝えるかという「編集」に関心があります。

また、越境学習に関わる現場にも参加し、対話や問いを通じた学びの場づくりにも取り組んでいます。

コメント

コメントする

目次