After effectsでエクスプレッションを用いて素材を均等に並べる最速の方法
今回はエクスプレッションを使って素材を等間隔にすばやく並べてみたいと思います!
イメージはこんな感じ↓
別に複製いっぱいしてそのあと位置調整したらいいじゃん!そう思った方、その通りです
ただなんか、エクスプレッション使いたいじゃないですか(笑)
とりあえずやっていきます!エクスプレッションの練習にもなるのでがんばりましょう!
エクスプレッションが分からない方はこちら↓
まずは準備
コンポジションを作成して(1920×1080,デュレーションは何でもいいです)、シェイプレイヤーを使って正円(サイズは100×100)を作ります
正円のアンカーポイントは中心に(選択した後にCtrl + Alt + home)、位置は[300,200]にします
まずは一行作る
正円の位置のストップウォッチをAltを押しながらクリックし、エクスプレッションを打てる状態にします
そしてそこに
var x = thisComp.layer(index+1).transform.position[0] + 200;
var y = thisComp.layer(index+1).transform.position[1];
[x,y]
と入力します
そして、正円を6個複製(Ctrl + D)します
これは、「一つ下のレイヤーとy座標は同じで、x座標は+200の位置にする」というエクスプレッションを打っているので複製でこのような配置にできます
もう少し詳しく書くと、
thisComp(同じコンポジション内にある).layer(index + 1)(1つ下にあるレイヤーの).transform.position[0](X座標) + 200(に200を足す) → これをxに代入
ちなみに、座標はposition[] = [x座標,y座標,z座標]という感じで配列に格納されています
yはxとほぼ同じで、下のレイヤーと同じということです
この代入されたxとyをレイヤーの位置[x,y]に入れているので、結果的にこのような配置になるって感じです
また、エクスプレッションのエラーが出ているので一番下の正円のエクスプレッションを消去しましょう
2行目~も作っていく
まずは今あるレイヤーを全てプリコンポーズします(全選択してCtrl + Shift + C)
そして、今プリコンポーズしたコンポジションの位置に
var x = thisComp.layer(index+1).transform.position[0];
var y = thisComp.layer(index+1).transform.position[1] + 200;
[x,y]
とエクスプレッションを打ちます
これは、さっきと似ていますがy座標を+200するという意味です
最後に、さっきと同じで一番下のもののエクスプレッションを削除して完成です!
最後に
どうでしたか?割と簡単なエクスプレッションだったのでわかりやすかったと思います!
最後に、途中でシェイプレイヤーとプリコンポーズで戸惑った人用に過去記事を貼っておきます!