After Effectsで要素に追従するアニメーション、徐々に遅れて要素に追従するアニメーションの作成手順を紹介します。
After Effectsを開き、コンポジションを作成し、画像を2つ配置します。
1つ(大きい星)はパスに沿って動くアニメーションを作成し、もう一つ(小さい星)は大きい星を追従するアニメーションにします。
パスを描画して、大きい星をパスに沿って動かします。
詳しくはこちらの記事を参照してください。
レイヤー名を利用するため、わかりやすいレイヤー名に変更します。
大きい星のレイヤーを"star"、小さい星のレイヤーを"star follow"に変更します。
タイムラインパネルで[star follow]のレイヤー項目を展開し[トランスフォーム]の[位置]の項目をクリックして選択します。
右クリックしてポップアップメニューを表示します。[エクスプレッションを編集]の項目をクリックします。
エクスプレッションの編集エリアが表示されます。
以下のコードをエクスプレッションのエリアに入力します。
var target = thisComp.layer("star");
var delay = 0.5;
var targetTime = time - delay < 0 ? 0 : time - delay
var targetPos = target.transform.position.valueAtTime(targetTime);
targetPos;
starレイヤーの要素を取得します。
var target = thisComp.layer("star");
追従に遅延する秒数を設定します。遅延がないと、大きい星と同じ位置で移動するため、追従にはなりません。
0.5秒遅れで追従する設定とします。0.5秒遅れの targetTime が負の値にならないチェックを入れています。
var delay = 0.5;
var targetTime = time - delay < 0 ? 0 : time - delay
追従元の要素の0.5秒前の位置を取得して、自分の位置とします。
var targetPos = target.transform.position.valueAtTime(targetTime);
targetPos;
タイムラインパネルの[現在の時間インジケーター]をドラッグする、またはプレビュー再生して、 大きい星に追従して小さい星がアニメーションする動作を確認します。~
徐々に遅れて追従するアニメーションにする場合は、アニメーションが進むにしたがって、
遅延する秒数を増加させるコードにします。
エクスプレッションのコードを以下のコードに変更します。
var target = thisComp.layer("star");
var initialDelay = 0.2;
var delayRate = 0.15;
var currentDelay = initialDelay + delayRate * time;
var targetTime = time - currentDelay < 0 ? 0 : time - currentDelay
var targetPos = target.transform.position.valueAtTime(targetTime);
targetPos;
starレイヤーの要素を取得し、初期の遅延時間と一秒ごとの遅延秒数を設定します。
今回は、初期の遅延は0.2秒、1秒ごとに0.15秒遅延する設定にしました。
var target = thisComp.layer("star");
var initialDelay = 0.2;
var delayRate = 0.15;
遅延する秒数を決定します。負の値にならないためのチェックも入れます。
var currentDelay = initialDelay + delayRate * time;
var targetTime = time - currentDelay < 0 ? 0 : time - currentDelay
追従元の要素の遅延秒数前の位置を取得して、自分の位置とします。
var targetPos = target.transform.position.valueAtTime(targetTime);
targetPos;
タイムラインパネルの[現在の時間インジケーター]をドラッグする、またはプレビュー再生して、
大きい星に追従して小さい星がアニメーションし、徐々に距離が開いていく動作を確認します。
作成した動画は以下です。