《レイヤー空間!コンポジション空間!》空間座標を簡単に変換する方法

AfterEffectsにはいくつかの空間座標があります。この中の、レイヤー空間と、コンポジション空間の座標を相互変換する方法について解説したいと思います。

力技で調整することもできますが、解決方法を知っていると簡単に対応できるので、作業を効率化できます。

※ 本記事は1920×1080のコンポジションを想定した説明です

空間座標について

まずは各空間について簡単にまとめてみます。

  • レイヤー空間・・・シェイプレイヤー内のコンテンツなどの空間
  • コンポジション空間・・・コンポジション内で扱う一般的な空間
  • ワールド空間・・・3D空間

この中のレイヤー空間とコンポジション空間について説明をすすめていきます。

空間座標の具体的な違い

レイヤー空間座標

例えば、「シェイプレイヤー – コンテンツ – 位置」がレイヤー空間座標です。

このレイヤー空間の中心座標は、[0, 0] です。

※ シェイプレイヤーはデフォルトのアンカーポイントが[0, 0]のため、上記の位置になります。

コンポジション空間座標

例えば、平面レイヤーの「レイヤー – トランスフォーム – 位置」がコンポジション空間座標です。

このコンポジション空間の中心座標は、[960, 540] です。

※ 平面レイヤーはデフォルトのアンカーポイントが[960, 540]のため、上記の位置になります。

このように、それぞれ別の座標空間を持っているため、同じ場所を示す座標が異なる場合があります。その場合は座標変換が必要になります。

例えば、中心から右に500px移動した場合は、レイヤー空間座標 [500, 0] 、コンポジション空間座標[1460, 540]となります。

この位置が固定なら手動計算できますが、動いた場合はエクスプレッションでの計算が必要になります。

これを簡単に解決する方法をご紹介します。

空間座標の変換方法

ここで登場するのがエクスプレッションの「toComp」「fromComp」メソッドです。

  • toComp・・・レイヤー空間からコンポジション空間に座標変換
  • fromComp・・・コンポジション空間からレイヤー空間に座標変換

このエクスプレッションの引数に変換したい座標を入れれば自動的に座標を変換してくれます。

toComp

レイヤー空間座標を引数に指定することで、コンポジション空間座標に変換できます。

例えば、toComp([0, 0])を実行すると、[960, 540]が返ってきます。

具体例として、シェイプレイヤーのコンテンツの中心に回転エフェクトの中心を合わせる方法をが以下です。

※ toCompの詳しい仕様はこちらをご覧ください

fromComp

こちらはtoCompの逆で、コンポジション空間座標を引数に指定することで、レイヤー空間座標に変換できます。

例えば、fromComp([960, 540])を実行すると、[0, 0]が返ってきます。

具体例として、回転エフェクトの中心にシェイプレイヤーのコンテンツの中心を合わせる方法が以下です。

※ fromCompの詳しい仕様はこちらをご覧ください

まとめ

「座標変換」と聞くとハードルが高い印象を受けますが、仕組みが理解できるととても便利な機能です。

「toComp」「fromComp」を使うことで、シェイプレイヤーにエフェクトを適用する場合など、簡単に中心を合わせることができます。

レイヤー空間とコンポジション空間の座標を簡単に連携できると、表現の幅が広がると思いますので是非お試しください。

空間座標を簡単に変換する方法
最新情報をチェックしよう!
>Aeをもっと便利に。「COLOR CODE - AE」

Aeをもっと便利に。「COLOR CODE - AE」

AfterEffectsをもっと便利に使う為のコンテンツを制作・発信しているブログです。YouTube「COLOR CODE - AE チャンネル」では、エフェクト、エクスプレッション、プリセット、プラグインのリファレンス動画を公開しています。チャンネル登録もお待ちしています!

CTR IMG