After Effectsで、矢印や目線を、動く対象へ向け続けたいときは、lookAt を使います。
Adobe公式の本文を確認し、引数と戻り値、親子付けした対象を参照するときの条件を整理しました。
- lookAt(fromPoint, atPoint) の形で書く
- fromPointは向きを変えたいレイヤーの位置、atPointは向けたい先の点
- 戻り値は3つの値で、レイヤーの向き(Orientation)に使う
- カメラに使うときは、自動方向をオフにする
2026年10月3日にAdobe公式「Expression language reference」の本文を確認しました。
実機での再現は含みません。
仕様は、公式ページで確かめてください。
lookAtの引数と戻り値
| 項目 | 内容 |
|---|---|
| fromPoint | 向きを変えたいレイヤーの、ワールド空間の位置(3つの値) |
| atPoint | 向けたい先の、ワールド空間の点(3つの値) |
| 戻り値 | 3つの値。Orientationのプロパティに使え、レイヤーのZ軸がatPointを向く |
カメラとライトで、特に役立つとされています。
公式の例
スポットライトの向き(Orientation)に、次のエクスプレッションを書く例が載っています。
lookAt(position, thisComp.layer(1).position)この短い公式例は、向ける側と対象側の位置をワールド座標として扱える場合の例です。親の異なるレイヤーでは、位置をそのまま比較すると座標が揃いません。レイヤー1が式を貼ったライト自身になっていないことも確認します。
親子付けした対象を参照する練習
別名保存した練習プロジェクトで、向ける側は親なしの3Dレイヤーにし、X・Y・Z回転を0にします。
別の3Dレイヤーを「対象」と名付け、向ける側のOrientationへ次の式を貼ります。
親なしの向ける側はpositionを使い、対象のアンカーポイントはtoWorldでワールド座標へ変換します。対象の親に向ける側やその子を指定すると、向きと対象位置が相互に依存するため避けます。
var target = thisComp.layer("対象");
var result = value;
if (!hasParent && target.index != index) {
var fromPoint = position;
var atPoint = target.toWorld(target.anchorPoint);
if (length(fromPoint, atPoint) > 0.0001) {
result = lookAt(fromPoint, atPoint);
}
}
result;この式は向ける側に親があると元の向きを返します。
ワールド座標で求めた向きを、親の回転を含むローカルOrientationへそのまま使わないためです。
対象が自身、または両点が重なる場合も元の値を返します。
| 練習入力 | 確認する結果 | 適用条件 |
|---|---|---|
| 対象を別の場所へ動かす | Z軸が対象の方向を向く | AEでのプレビューが必要 |
| 対象に親を付けて親を動かす | 対象のワールド位置を参照 | 位置の数値だけでは比較しない |
| 向ける側に親がある・両点が同じ | 元の向き | この式の適用条件外 |
カメラは元のAuto-Orient設定を保存してオフにしてから試します。
方向が違うときは貼付先、親、他の回転、絵の軸を順に確認します。
戻すときは式を無効にし、保存した回転とAuto-Orientを戻します。
AE本体の再現は未検証です。
使うときの注意
- カメラに使うときは、自動方向(Auto-Orient)をオフにする
- OrientationのプロパティにlookAtを書く
- 向ける先のレイヤーが動けば、向きもそれに合わせて変わる
式は3Dレイヤー・カメラ・ライトの「向き(Orientation)」に貼ります。2Dレイヤーの回転へ3要素の戻り値をそのまま貼る例ではありません。
lookAtはレイヤーのZ軸を対象へ向ける関数です。矢印の絵がX軸方向を向いている場合、絵の向きとZ軸の向きは一致しません。
