イトウ先生のTips note【After Effects CC 2019】トレイル(オニオンスキン)


こんにちは、イマジカデジタルスケープの伊藤和博です。
今回は、AfterEffects CC 2019から、エクスプレッションを使用した「トレイル(オニオンスキン)」をご紹介します。
可視化可能なレイヤーの何らかの動きに対して、視覚的な残像(軌跡)をつける動きのことをトレイルと呼んで説明いたしますが、今回は何らかのキーフレーム運動に、軌跡を残すように見せるエクスプレッションの使い方をご紹介します。
トレイルというよりも、オニオンスキンといったほうがわかりやすい方もいらっしゃるかと思いますが、オニオンスキンはAdobe Animate(旧Flash)のタイムラインにある機能で、トゥイーンの途中の動きをステージ上で視覚的に見る機能になります。今回のエクスプレッションは、見た目としてはAnimateのトゥイーンと同じような見え方になります。
いくつかのメソッドを組み合わせて行いますので、それぞれのメソッドについて解説しながら作り方をご紹介していきます。完成形は以下のように残像が残るアニメーションになります(約5秒。音はなりません)。

●さっそくやってみよう!

まずは、Illustratorが使える環境にある方は、モーション用のパスを作成しておきます。Illustratorで新規ドキュメントを1920*1080で作成し、セーフティエリア内にスパイラルを1つ作成し、コピーしておきます。なお、今回はスパイラル運動したかったため、スパイラルを作成するのにIllustratorが便利であるためにIllustratorを使用しているだけで、このパスはAfterEffectsのペンツールなどで作成してももちろんかまいません。

Illustratorで作成したパスはマスクパスとして使用することももちろん可能ですが、アンカーポイントとポジションに対しては、そのままペーストしてモーションパスとして使用することが可能です。ペーストしたパスの途中のアンカーポイントは自動でロービングキーに変換され、デフォルトで2秒間のアニメーションが作成されます。
AfterEffectsでシェイプレイヤーを作成し、位置トランスフォームを選択して、そのままペーストします。このとき、スパイラルはシェイプレイヤーのアンカーポイントがある場所にペーストされるため、シェイプレイヤーそのものとアンカーポイントの両方を、コンポジションの中心に合わせておいた状態でスパイラルをペーストすると、IIllustrartorのアートボード上に作成したスパイラルの位置と同じ位置でアニメートするようになります。コンポジションの適当な位置にシェイプを作成してしまうと、スパイラルのペースト後に手動で位置合わせを行う必要がでてきます。

Illustratorでスパイラルを作成した際、スパイラルの一番外側で描画を終えているため、AfterEffects上でのいわゆる最初の頂点は、スパイラルの一番外側のアンカーポイントになり、最後はスパイラルの中心になります。ペーストしたままだと、スパイラルの外側から中心方向に対してアニメーションするため、時間反転でキーフレームをリバースした後、終了側のキーを3秒の位置に合わせ、アニメーションの尺を3秒間にしてレンダリングしたものが以下のものになります(約5秒。音はなりません)。

●frameDurationとvalueAtTimeメソッド

残像のように見えるようにするには、【現在のレイヤーと同じレイヤーが、少し遅れてアニメーションして現在のレイヤーと同じ動きをし、かつ、残像が増えれば増えるほど、徐々に透明感が高くなる(不透明度の数値が低くなる)】、というように作成するとそれっぽく見えるようになります。
そこで、このシェイプレイヤーを複製し、元のレイヤーの下の階層に移動した後、位置トランスフォームに以下のエクスプレションを書きます。

x = 5;
y = x*thisComp.frameDuration*(index - 1);
thisComp.layer(1).position.valueAtTime(time - y)

1行づつ見ていきます。

x = 5;

xは変数で、今回は仮に5という数字を持たせていますが、この5は「遅れてスタートするためのフレーム数」になります。5という数字に特に意味はなく、10フレーム遅らせたい場合は10といれておきます。xは変数宣言となりますので、JavaScriptの心得がある方はvar xと書いても、予約語以外であればもちろん問題ありません。

y = x*thisComp.frameDuration*(index - 1);

次に2行目は、変数x(この場合は5)に、このコンポジションにある(thisComp)、自身のレイヤー番号から1を引いた数(index-1)に、フレームデュレーション(frameDuration)を掛け算した値を、変数yに代入する、になります。この式をそれぞれのレイヤーに書くと取得できる値は・・

一番上の階層にあるレイヤー:5*(1-1)=0
上から二番目のレイヤー:5*(2-1)=5
上から三番目のレイヤー:5*(3-1)=10

となり、下の階層のレイヤーになればなるほど、5づつ増えていきます。なお、frameDurationは、エクスプレッション言語メニューではCompの下層にあります。

thisComp.layer(1).position.valueAtTime(time - y)

最終行が、この位置トランスフォームに返す値になりますが、これは、このコンポジションの(thisComp)、一番上にあるレイヤー(レイヤー1番)の(layer(1))、ポジションの(position)、現在の時間から変数yの値を引いた値(valueAtTime(time-y))を返す、という意味になります。
xに5を入れているため、このエクスプレッションで取得できる値は6フレーム目から、ということになり、再生ヘッドが6フレームに到達すると、レイヤー1番の6フレーム前の値を返すことで順次動き出す、ということになります。
ここまでを書き出すと以下のようになります(約5秒。音はなりません)。

なお、valueAtTimeは、エクスプレッション言語メニューではPropertyの下層にあります。

●Math.powメソッド

次に、不透明度を設定します。レイヤー1番よりも少しだけ薄くしたいため、複製したシェイプレイヤーの不透明度のトランスフォームに以下のようにエクスプレッションを書きます。

z = 0.75;
Math.pow(z,index - 1)*100

1行づつ見ていきます。

z = 0.75;

zは、これまでのxやyと同じ変数になり、変数zに0.75という数字を持たせています。この0.75は、ゼロをとって.75と書いても問題ありません。この0.75の意味は、参照するレイヤーの75%相当、を意味しています。参照先レイヤーの不透明度が100%の場合、このエクスプレッションを書いたレイヤーの不透明度は75%になる、という意味です。不透明度75%のレイヤーを参照した場合は75の75%のため、およそ56%となります。

Math.pow(z,index-1)*100

Math.powメソッドは、例えばMath.pow(A,B)の場合、AのB乗を返す、というメソッドです。今回はMath.pow(z,index-1)のため、zに入っている0.75に、自身のレイヤー番号から1を引いた数(index-1)だけ累乗する、になります。このレイヤーは上から二番目にあるため、Math.pow(0.75,(2-1=1))となり、0.75の1乗で0.75になります。上から三番目のレイヤーに書いた場合はMath.pow(0.75,(3-1=2))となり、0.75の2乗になるため、0.75×0.75=0.5625、という数値が得られます。この数字に最後に100をかけているため、0.75は75に、0.56は56、という数値になります。
ここまでを書き出すと以下のようになります(約5秒。音はなりません)。後ろからついてくる星の不透明度が75%になります。

Math.powは、エクスプレッション言語メニューではJavaScript Mathの下層にあります。

あとは、このエクスプレッションを設定したレイヤーを好きなだけ複製すれば、複製したすべてのレイヤーが、常にひとつ上のレイヤーより5フレーム遅れてアニメーションがスタートし、また、ひとつ上のレイヤーの75%相当の不透明度になることで、複製したレイヤー全てが残像となって見えるようになります。

最初の複製したレイヤー含め全部で12の複製したレイヤーを設定してレンダリングしたものが最初にご紹介した以下のものになります(約5秒。音はなりません)。

シェイプレイヤーの場合は、リピータープロパティを使用することでこれと同じようなことが可能ではありますが、このエクスプレッションを使うと、シェイプレイヤー以外のレイヤーでもこのような効果を使えること、またエクスプレッションのため、保存して何かの時に再利用が容易になります。いくつかのバリエーションを作成しておき、必要な時にプリセットから呼び出す、というようにすると便利ですので、ぜひ試してみてください。


この記事を読んだ方にオススメの講座はこちら!

▼AfterEffects CC 2018の使い方・基本トレーニング
メインビジュアル:AfterEffects CC 2018の使い方・基本トレーニング

▼AfterEffects CC 2014の使い方・実践トレーニング
メインビジュアル:AfterEffects CC 2014の使い方・実践トレーニング

▼JavaScriptの基礎知識
メインビジュアル:JavaScriptの基礎知識


イトウ先生が、Twitterを始めました!みなさんもぜひ、フォローしてくださいね!
itoh_sensei

イトウ先生のTips noteアーカイブ【2016年~】

○AfterEffects CC 2015:顔のトラッキング
○AfterEffects CC 2015:タイムチューナー
○AfterEffects CC 2015:AIデータはレイヤーに分配で取り込む
○AfterEffects CC 2015:プレビューのコントロール
○AfterEffects CC 2015:スクリプト
○AfterEffects CC 2015:新しくなったMAXON CINEMA 4D Exporter
○AfterEffects CC 2015:マスクリファレンス
○AfterEffects CC 2015:スムーザー
○AfterEffects CC 2015:立体の旗を作る・1
○AfterEffects CC 2015:立体の旗を作る・2(CINEMA 4Dレンダラー)
○AfterEffects CC 2017:強化されたライブテキストテンプレート
○AfterEffects CC 2017:日付のトークン
○AfterEffects CC 2017:マーカーデュレーション
○AfterEffects CC 2017:他のレイヤーのエフェクトをプリコンポーズ無しで参照する
○AfterEffects CC 2017:拡張された平面フォルダ
○AfterEffects CC 2017:レイヤーのあるコンポジションに変換
○AfterEffects CC 2017:現在のフレームから静止画を作る
○AfterEffects CC 2017:最後のフレームでフリーズ
○AfterEffects CC 2017:サウンドの振幅を他のレイヤーで活用する、オーディオ振幅
○AfterEffects CC 2017:カンマ区切りの文字列をランダムに表示する
○AfterEffects CC 2017:CC Light Raysとトラッカー
○AfterEffects CC 2018:パスからヌルを作成
○AfterEffects CC 2018:モーショングラフィックステンプレート
○AfterEffects CC 2018:マスタープロパティ
○AfterEffects CC 2018:プロパティリンクのピックウィップ
○AfterEffects CC 2019:レスポンシブデザインー時間
○AfterEffects CC 2019:パペットベンドピン
○AfterEffects CC 2019:Mocha AE CC プラグイン
○AfterEffects CC 2019:Animate CC FLAファイルの読み込み
○AfterEffects CC 2019:コンテンツに応じた塗りつぶし
○AfterEffects CC 2019:トレイル(オニオンスキン)