エクスプレッションを使えば、他のレイヤーのプロパティを参照することが出来ましたね。
複数のレイヤーを同じ色にしたい、同じ動きにしたいといった場合、一つのレイヤーにプロパティを集約し、一括制御できると便利です。
今回はヌルオブジェクトを一括制御用のコントローラーにするアイディアと、疑似親子、また別のコンポジションを擬似ミラーリング関係にするアイディアをご紹介します。
目的を整理する
それでは、今回はエクスプレッションでプロパティを参照する、3つのアイディアを学んでいきましょう。
1.一括制御できるコントローラー用のヌルを作成するアイディアと、2.エクスプレッションで擬似的に親子関係にするアイディア、そして3.エクスプレッションで異なるコンポジションのレイヤーを繋ぐ擬似ミラーリングをご紹介します。
1.一括制御できるコントローラー用のヌル
まずはコントローラーとしてヌルオブジェクトを用意し、他のレイヤーを一括制御してみます。
必要なレイヤーを用意する
では早速必要なレイヤーを準備します。
- コントローラー用のヌルオブジェクト
- 例としてシェイプレイヤーをまず1つ
こちらを準備してください。
コントローラーを準備
一括制御したいプロパティに合わせて、コントローラーにエクスプレッション制御エフェクトを追加します。
- 色→カラー制御
- サイズ→スライダー制御
今回はこれらを用意します。サイズは縦横比同じでいいので、幅用、高さ用2つでなく、1つだけで十分でしょう。
エクスプレッションを適用
一括制御されたいシェイプレイヤーから、用意したヌルオブジェクトのエフェクトを参照していきます。
ヌルオブジェクトを選択し、[e]キーを押しエフェクトを表示しておきます。この際、右向き三角をクリックしてエフェクトの数値まで開いておきます。
続いてシェイプレイヤーのカラーにあるストップウォッチアイコンを[Windows:alt / Mac:option]を押しながらクリックし、エクスプレッションエディターを起動します。
元々入っているエクスプレッションを削除したら…
今回は計算式ではなく、別のプロパティを参照したいだけなので、「ピックウィップ」を使ってみましょう。
渦巻きアイコンから、ヌルのカラー制御までドラッグします。線(ウィップ:鞭)が伸びて該当プロパティを選択(ピック)できます。すると「」というエクスプレッションが自動で入力されました。
他のプロパティをエクスプレッションに取り込みたい場合は、手打ちするよりもこのようにピックウィップを使用すると早く、誤字なく入力でき便利です。
同じようにサイズも、ヌルのスライダー制御をピックウィップで参照したら完成です。
2.疑似親子
次はエクスプレッションで擬似的に親子関係にするアイディアです。最終的にはレイヤーが同じコンポジションになくとも親子関係を繋ぐ「疑似ミラーリング」としても応用してみます。
レイヤーを準備する
親と子、最低限2つのレイヤーがあればテスト可能です。シェイプレイヤーを2つ用意します。
エクスプレッションを適用
子レイヤーから、親レイヤーにエクスプレッションを繋げるプロパティ全てを繋ぎます。
その際、子レイヤーは個別に数値を変えたいので、「value+」を挟みます。これで親レイヤーのプロパティに追従させながら、自身のvalueも反映させられます。
自身のvalueは0となることで親レイヤーのプロパティ値と一致するので、本来の親子付けとは値が異なりますが、イメージしやすい関連性になっています。
3.擬似ミラーリング
2.疑似親子の応用となります。本来の親子関係はコンポジションをまたげませんが、子レイヤーのエクスプレッションを「thisComp」でなく「コンポジション名を含めたプロパティ指定」にすることで、他のコンポジションに移動してもリンクを繋げたままにする方法です。
レイヤーを準備する
2.疑似親子と同様に、親と子、2つのレイヤーがあればOKですが、せっかくの紹介記事なので趣向を変えてみます。
- カメラレイヤー
- 3Dシェイプレイヤー
- 3Dテキストレイヤー
- ライト
を準備します。
ライティング、カメラ位置は一例ですが、ここでは下記のようになりました。
ここで問題が発生です。テキストもフォーカスの影響を受けてしまいますので、シェイプレイヤーはそのままに、テキストレイヤーはフォーカスを切りたいと思います。
同じコンポジション内では無理ですね。そこで擬似ミラーリングが活躍します。
カメラ、テキストをプリコンポジション
カメラレイヤーを複製し、複製したカメラレイヤーとテキストレイヤーをプリコンポーズします。
これで、アングルが一致したシェイプレイヤーがあるコンポジションAと、テキストレイヤーがあるコンポジションBとに分かれました。
コンポジションBのカメラの被写界深度をオフにすれば、見やすいテキストの完成です。
ただしこのままではカメラアングルを変えるとテキストが取り残されてしまいますね。そこでコンポジションBのカメラレイヤーからAのカメラレイヤーのプロパティをエクスプレッションで参照します。
疑似親子と同じですが、今度はコンポジションが別なので、「thisComp」でなく「comp(“コンポジション A”)」に指定が変わります。
エクスプレッションを適用
すると、コンポジションAにBが完全に一致します。コンポジションBのテキストレイヤーは被写界深度の影響を外したいので、コンポジションBのカメラ設定から、被写界深度をオフにすれば完成です。
コンポジションAでアングルを変えてみてください。被写界深度のあるシェイプレイヤーに、被写界深度のないテキストレイヤーが同じ3D空間に配置されて見えます。
これらがエクスプレッションでのプロパティ参照をそのまま使う例です。
一括制御、疑似親子、擬似ミラーリングと、応用の効くアイディアですので、是非自身のプロジェクトでも活用してみてください。
この記事へのコメントはありません。