After EffectsのlookAtは、3DレイヤーのZ軸を対象の位置へ向けるエクスプレッションです。対象に親がある場合は、位置をワールド座標にそろえて計算します。平面に描いた矢印の先端をそのまま向ける機能ではありません。
引数・戻り値をAdobe公式資料で確認し、2026年10月14日にWindows 11 Pro・After Effects 26.5(Build 89)で親付き対象を参照する式と適用条件を検証しました。
- lookAt(fromPoint, atPoint) の形で書く
- fromPointは向きを変えたいレイヤーの位置、atPointは向けたい先の点
- 戻り値は3つの値で、レイヤーの向き(Orientation)に使う
- カメラに使うときは、自動方向をオフにする
2026年10月3日にAdobe公式「Expression language reference」の本文を確認しました。
撮影したAfter Effectsの画面で、lookAtの式と平面の向きを確認しました。
仕様は、公式ページで確かめてください。
lookAtの引数と戻り値
| 項目 | 内容 |
|---|---|
| fromPoint | 向きを変えたいレイヤーの、ワールド空間の位置(3つの値) |
| atPoint | 向けたい先の、ワールド空間の点(3つの値) |
| 戻り値 | 3つの値。Orientationのプロパティに使え、レイヤーのZ軸がatPointを向く |
カメラとライトで、特に役立つとされています。
公式の例
スポットライトの向き(Orientation)に、次のエクスプレッションを書く例が載っています。
lookAt(position, thisComp.layer(1).position)この短い公式例は、向ける側と対象側の位置をワールド座標として扱える場合の例です。親の異なるレイヤーでは、位置をそのまま比較すると座標が揃いません。レイヤー1が式を貼ったライト自身になっていないことも確認します。
3Dレイヤーの「方向」に、式を入れた画面です。

式は「lookAt(position, thisComp.layer(“Target18751”).position);」で、評価された方向は141.3°・32.0°・208.0°でした。
左が方向を固定した平面、右がlookAtで対象(オレンジの点)に向きを変えた平面です。

親子付けした対象を参照する練習
別名保存した練習プロジェクトで、向ける側は親なしの3Dレイヤーにし、X・Y・Z回転を0にします。
別の3Dレイヤーを「対象」と名付けます。向ける側を選んでRキーを押し、「方向」(Orientation)のストップウォッチをAltキーを押しながらクリックして、次の式を貼ります。「X回転」「Y回転」「Z回転」への貼り付けではありません。
親なしの向ける側は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を戻します。
今回の実機確認は3D平面と3Dヌルの親子付けです。カメラ・ライト、親の非等方スケール、複雑な親子階層は今回の検証対象に含みません。
親付き対象のWindows実測
960×540・30fps・3秒のコンポで、向ける平面を[480,270,0]へ置きました。平面に親はなく、X・Y・Z回転は0、式を使う前の方向は[10,20,30]度です。対象は3Dヌル「対象の親」の子にし、対象のローカル位置と親ヌルのアンカーポイントを[0,0,0]にしました。親の回転は0、スケールは100%です。
| 親ヌルの位置=対象のワールド位置 | 平面の方向(度) |
|---|---|
| [480,270,300] | [0,0,0] |
| [780,270,300] | [0,45,0] |
| [780,570,300] | [315,35.2644,30] |
対象自身のローカル位置は変えず、親ヌルを移動すると平面の方向が変わりました。3条件とも、平面のZ軸をワールド座標へ変換した方向と、平面から対象へ向かう方向の内積は約1でした。見た目の傾きだけでなく、Z軸が対象へ向いていることも確認しています。方向の数値は今回の座標・回転条件での結果です。

対象を平面と同じ[480,270,0]へ移すと、方向は式を使う前の[10,20,30]度に戻りました。向ける平面に親を付けた場合と、参照先を平面自身へ変えた場合も元の値を返しました。式を無効にした場合も[10,20,30]度です。条件外で止まるのは、この練習用コードのガードによる動作です。
「対象」という名前のレイヤーがない場合は、冒頭のレイヤー参照でエラーになります。このガードは名前の入力間違いを処理するものではありません。式とタイムラインのレイヤー名を一致させてから、親子関係と方向を確認してください。
使うときの注意
- カメラに使うときは、自動方向(Auto-Orient)をオフにする
- OrientationのプロパティにlookAtを書く
- 向ける先のレイヤーが動けば、向きもそれに合わせて変わる
式は3Dレイヤー・カメラ・ライトの「向き(Orientation)」に貼ります。2Dレイヤーの回転へ3要素の戻り値をそのまま貼る例ではありません。
lookAtはレイヤーのZ軸を対象へ向ける関数です。矢印の絵がX軸方向を向いている場合、絵の向きとZ軸の向きは一致しません。
Adobe公式「Expression language reference」のlookAt(2026年10月14日確認)では、2つの引数をワールド空間の点とし、戻り値をOrientationへ使用してZ軸を対象へ向けると説明しています。カメラでは自動方向をオフにする指定もあります。
