dA-tools.com

 MultiLayer Follow -1-

 

Sample:/null/ベクトル/Speed

    • マルチレイヤーでパースに合わせて遠近感を出しながらレイヤーの速度に差を付けて引く、いわゆる密着マルチです。
    • ベジェカーブでツメを付けた複数のレイヤーを綺麗に同期させるのは非常に面倒ですよね。その対策として1つのレイヤーだけにキーフレームアニメーションを付けて、他のレイヤーはそれに準じて動くようにします。

 設定

    • パースの基準になる点としてNullを加え、名前を"VP"(消失点 Vanishing Point)としました。
    • 下のExpressionを各レイヤーの「位置」に書きます。
    • 1行目のpの値はレイヤーの速度差の倍率ですから奥行きに合わせて決定します。
    • アンカーポイントを移動してLayer(Book)の位置を調整します。

p=1.2;
(thisComp.layer( "1" ).position-thisComp.layer( "VP" ).position) * p + thisComp.layer( " VP " ).position ;

 解説

    • 消失点から基準レイヤーへのベクトルを求めるために layer( "1" ).positionからlayer( " VP" ).positionを引く。
    • それに変化率pをかけると向きは同じで長さの違うベクトルになる。
    • 変化率pは基準のレイヤーより奥なら0~1の値、手前なら1以上の値にします。
    • 上で求めたベクトルは原点からのベクトルなので、消失点を基準とした位置に移動させるために消失点の位置を加える。
    • 消失点を移動するとこんなことも出来ます。

 

MultiLayer Follow -2-

 

    • 次は基準レイヤーのスピードを元にする方法です。
    • 「スピード」プロパティは方向の情報が無いので、移動がX方向かY方向だけで尚且つ等速度の場合にだけ使える方法です。メリットは消失点を設定する必要が無いということです。単純な「横引き」は結構あるような気がします。
    • 例では基準レイヤーを"bg"として、下のExpressionを移動差を付けたいレイヤーの「位置」に書きます。

p=1.5;
sp=thisComp.layer("bg").position.speed*time*p;
transform.position + [sp , 0] ;

 
解説

    • 1行目のpの値はレイヤーの速度差の倍率ですから奥行きに合わせて決定します。
    • 2行目の"thisComp.layer("bg").position.speed"で基準レイヤーのスピードを求めてそれに倍数をかけています。
    • 最後に現在のレイヤーの位置に「sp」を加算します。
    • この例では配列[ sp , 0 ]を加算しているのでX方向に移動します。
    • Layer(Book)位置の調整はExpressionをOFFにしてレイヤーを移動させます。

注意

    • 座標の負方向に移動する場合は2行目の"+"を"-"にしないと逆に動いてしまいます。