[エクスプレッション]動くものを矢印で動かすには?

動いている被写体の向きにずっと向かせるにはエクスプレッションのatan2が便利です。

Math.atan2(y, x)

このような感じで動く被写体(厳密にはアンカーポイントですね)を追いかけるようにするにはMathメソッドのatan2を使うと便利です。この構文は上のアニメーションでいうと

  • 矢印を原点[0,0]として、星の位置の角度を計算するもの

atan2は円の弧の長さから角度(ラジアン)を求める方法です。Aeでよく使う角度(度数法)とは考えからが違うので注意してください。

  • 通常の角度とは違うやつ

ってだけ覚えておくといいと思います。なので最後に通常に角度に戻してあげないと行きません(ここが大事)

注意点

中にある機能(引数)は2つありますが書き方が(y位置,x位置)tp逆になっているので注意してくださいね

書き方例

最初にやった矢印が星に向かう式でお話していきます。これは矢印レイヤーの回転に記入しています。

n = thisComp.layer("star").transform.position - position;
a = Math.atan2(n[1],n[0]);
radiansToDegrees(a)

3行になってますね。

  • 1行目では矢印の位置から星の位置を引き算して星が移動しても常に矢印から星の距離が出るようにしています。それをnという箱にいれています
  • 2行目では矢印の位置を原点にして、星の座標から矢印までの角度(ラジアン)を計算しています。ラジアンは円でいうと一番右の部分が0度です。上に上がるとマイナスになって下に下がると角度がプラスになります。この処理をaという箱に入れています。

3行目には今まで計算していた角度をラジアンからAeの角度に変換する処理になっています。

これで座標から角度を取り出す事が出来るようになります。(y,x)だけ注意すればあとは簡単に使えますので是非お試しを^^

エクスプレッションを使って快適なAe生活を^^

https://everydayskillshare.jp/