見出し画像

【レイヤーによるレンダリング順の違いについて】

AfterEffectsのレイヤーには「ラスターレイヤー(平面レイヤーや画像ファイル)」と「ベクターレイヤー(テキストやシェイプレイヤー)」の2種類が存在し、それぞれレンダリング順序(エフェクトやマスクなどの要素が適用される順番)が異なることはご存じでしたか?

「ラスターレイヤー(平面レイヤーや画像ファイル)
マスク>エフェクト>トランスフォーム>レイヤースタイル

「ベクターレイヤー(テキストやシェイプレイヤー)
マスク>トランスフォーム>エフェクト>レイヤースタイル

上記の通り、2つのレイヤーでは「トランスフォーム」と「エフェクト」のレンダリング順序が逆になります。

この違いはディストーション系のエフェクトが一番分かりやすいです。
上記の動画は画像ファイルとテキストにそれぞれ「タービュレントディスプレイス」を適用してwiggleで動かしているのですが、エフェクトのかかり方が異なっているのが分かると思います。

左の画像ファイルはタービュレントディスプレイスの結果が固定されているのに対し、右のテキストは動かすことで結果が変わっています。

これは先ほど説明した通りエフェクトとトランスフォームの処理順の違いによって起こる現象です。


「じゃあベクターレイヤーにタービュレントディスプレイスを適用した時、結果は固定出来ないの?」

あります!!突破口!!


それは、「エフェクト>ディストーション」内にある「トランスフォーム」を使用することです。

エフェクトは基本的に上から順に処理されるため、タービュレントディスプレイスの下にトランスフォームを適用することで、ラスターレイヤーと同じように結果を固定したまま自由に動かすことが可能になります。やったね!


余談

トランスフォームの位置は「次元に分割」が使用出来ず、イージングの適用もイージング系のプラグインを使う必要があります。
しかも、緩急のキツいイージングを適用するとグラフが下記のような意図しない形状になってしまうためかなり使い勝手が悪いです。原因が分からないのでAE七不思議の1つとしています。(多分二次元のままなのが良くない…?)

初級者向けの解決策としては、画像のようにX軸とY軸を制御するスライダーを追加して、トランスフォームの位置にエクスプレッションを記述、とかでしょうか…?

いちいち作るのはめんどくさいですがプリセット化してしまえばある程度は楽だと思います。


質問やリクエストなどございましたらこちらからどうぞ!


この記事が気に入ったらサポートをしてみませんか?