正面カメラと中央の背景で、素材寸法からスケールを求める
この式は、正方形ピクセルのコンポと素材、正面から見た回転のない背景平面を対象にします。
カメラが斜めを向く場面や、親付き・回転付きの背景には対応しません。
別名保存した1920×1080の練習コンポを作り、960×540の所有素材またはソリッドを背景として置き、3DスイッチをONにします。
背景のアンカーポイントを480,270,0、位置を960,540,0、方向とX/Y/Z回転を0にし、親を付けません。
正面向きのカメラを作り、位置を960,540,−1000、ズームを1000にします。
カメラの種類や注視点によって向きが変わるので、アクティブカメラで背景が正面に見える状態を先に確認してください。
背景の元のスケール、キー、式を記録し、キーも式もない練習レイヤーの「スケール」へ下のエクスプレッションを入力します。
var cam = thisComp.activeCamera;
if (!cam) { throw new Error("Create an active camera."); }
if (hasParent || orientation[0] != 0 || orientation[1] != 0 || orientation[2] != 0 ||
rotationX != 0 || rotationY != 0 || rotationZ != 0) {
throw new Error("Use an unparented, unrotated background plane.");
}
var cp = cam.toWorld([0, 0, 0]);
var axis = normalize(cam.toWorldVec([0, 0, 1]));
var right = normalize(cam.toWorldVec([1, 0, 0]));
var eps = 0.001;
if (Math.abs(axis[0]) > eps || Math.abs(axis[1]) > eps || axis[2] < 0.999 ||
right[0] < 0.999 || Math.abs(right[1]) > eps || Math.abs(right[2]) > eps ||
Math.abs(cp[0] - thisComp.width / 2) > eps || Math.abs(cp[1] - thisComp.height / 2) > eps ||
Math.abs(position[0] - cp[0]) > eps || Math.abs(position[1] - cp[1]) > eps ||
Math.abs(anchorPoint[0] - width / 2) > eps || Math.abs(anchorPoint[1] - height / 2) > eps ||
Math.abs(anchorPoint[2]) > eps || thisComp.pixelAspect != 1 || thisLayer.source.pixelAspect != 1) {
throw new Error("Use centered layers, square pixels and a front-facing camera.");
}
var depth = position[2] - cp[2];
var zoom = cam.zoom;
if (!isFinite(depth) || !isFinite(zoom) || depth <= 0 || zoom <= 0 || width <= 0 || height <= 0) {
throw new Error("Check depth, zoom and source dimensions.");
}
var fit = Math.max(thisComp.width / width, thisComp.height / height);
var percent = fit * depth / zoom * 100;
[percent, percent, 100];
この入力例の奥行きは1000、ズームは1000で、素材がコンポの半分の寸法なので期待するスケールは200,200,100です。
背景のZ位置を1000へ変えると奥行き2000になり、期待するスケールは400,400,100です。
元の式は素材寸法の比を含まず、半分の素材でも100%になるため、コンポを覆う大きさになりませんでした。
修正版は幅・高さの必要倍率の大きい方を使って均等拡大するため、縦横比が違う素材ではコンポの外へはみ出す部分が生じます。
画面にぴったり収めてすべての素材を見せるfitではなく、余白が出ないように覆うcoverの計算です。
カメラ原点と背景のX/Y中心、背景のアンカーポイント、正面方向、ピクセル比、正の奥行きとズームを確認し、条件を外れると式のエラーで知らせます。
カメラ名を固定せずアクティブカメラを参照するので、途中でカメラを切り替えた場合も条件を照合してください。
掲載式を実機で確認した結果
1920×1080・30fps・3秒のコンポに960×540の青い平面を置き、上記の位置・アンカーポイントで3D化しました。
クラシック3D、正方形ピクセル、親なしの条件です。
2ノードカメラの位置を960,540,−1000、注視点を960,540,0、ズームを1000にし、背景のスケールへ掲載式をそのまま設定しました。
背景のZ位置0ではスケール200,200,100、Z位置1000では400,400,100になりました。
どちらも式のエラーはなく、AEから保存した1920×1080のPNGはピクセル単位で同一でした。
背景を遠ざけると実寸が倍になり、カメラから見た大きさを維持しています。
Z位置1000のままズームを2000にすると、スケールは200,200,100になりました。

画像下部では背景の位置960,540,1000とスケール400,400,100を確認できます。
コンポパネルは全体表示にし、アクティブカメラの画角と背景の境界を比較しています。
旧記事の人物入り画像とは異なり、この画面は掲載式を使用した検証結果です。
ただし、保存したPNGの外周には半透明のピクセルがあり、左上のアルファ値は143/255でした。
外周1pxを除いた内側はすべて255です。
計算上の枠との一致を、そのまま「出力の全ピクセルが完全不透明」と解釈しないでください。
端まで不透明にする必要がある場合は、最終出力のアルファを確認し、背景の余裕を別途調整してください。
その調整量は今回検証していません。
適用条件を外す試験では、背景のY回転を15度にすると回転に関するエラー、X位置を961へずらすと中心位置などに関するエラーになりました。
条件を元へ戻して式を有効にすると、400,400,100へ復帰しました。
値が100%へ戻って見えるときは、式が無効になっていないか、エラー表示も確認してください。
正常な状態で式だけを無効にすると、今回の元値100,100,100へ戻りました。
再有効化では400,400,100へ戻ります。
評価後の400%を固定したい場合は、次の手順どおり数値を記録して入力し直す必要があります。
今回、カメラの途中切替・親付き・非正方形ピクセル・異なる縦横比・他バージョンは実機確認していません。
式の追従を止めるときと、元に戻すとき
式を有効にしている間は奥行きやズームの変化に合わせてスケールも変わり、正面の背景がコンポを覆う大きさを保ちます。
カメラ移動で背景を拡大して見せたい場合は、固定したい時刻の評価後のスケール数値を記録してから式を削除し、記録した数値を手動入力します。
式を削除するだけでは、式を入れる前の基礎値へ戻るため、評価後の数値を固定したことにはなりません。
固定操作を試す場合もキーのない練習コピーを使い、元の状態へ戻すときは記録した元のスケールと式なしの状態を照合します。
Ctrl+Z/Command+Zで戻る操作数は式の入力・削除・数値入力の回数によるため、別名保存したコピーが確実な比較元です。
2026年10月14日にWindows 11 Pro(10.0.26200)・After Effects 26.5(Build 89)で、掲載式のスケール値とPNG描画、式の無効化/再有効化を確認しました。
Ctrl+Zによる取り消しは今回未検証です。
| 入力・条件 | 操作・結果 | 確認する点 |
|---|---|---|
| 1920×1080/960×540・奥行き1000 | スケール200% | 正面・中央・ズーム1000 |
| 奥行き2000・ズーム1000 | スケール400% | 縦横比の違いではみ出しあり |
| 斜め・親・中心ずれ | 式のエラー | 適用条件へ戻す |
資料確認日:2026年10月14日。
Adobe公式リファレンスではzoomをピクセル単位のカメラズーム値、toWorldVecをレイヤー空間からワールド空間へのベクトル変換と定義しています。
本文の式はこれらを使い、適用可能な正面方向かも調べています。
旧記事の引用符が壊れたjsxと、既存キーを削除するベイク処理は、この手順から外しました。
旧記事の参考資料
今回はスケール値の算出にエクスプレッションを用いましたが、より多機能なツールとして「pt_Multiplane」というスクリプトも公開されています。
参考:https://aescripts.com/pt_multiplane/
旧実装の参考コードはGitHubに残っていますが、本稿の修正版とは内容が異なります。
以下の3点は旧記事に掲載していた参考画像で、撮影日時は今回確認できておらず、現在掲載している正面カメラ用の式やAE2026の実機検証結果を示すものではありません。
画像中の旧式は素材寸法を考慮していないため、現在の掲載コードとして転記しないでください。

旧記事の参考画像:人物・背景・カメラを置いた構成です。

旧記事の参考画像:背景に設定した当時の式と位置の画面です。

旧記事の参考画像:人物と背景の動きの見え方を示した画像です。
関連記事
対象の異なる操作は、以下の記事で確認できます。





よくある質問:After Effectsでカメラ奥行きに合わせて背景スケールを自動計算するとき
この式は、何のための式ですか?
正面カメラと中央の背景で、素材寸法からスケールを求める式です。
式を有効にしている間は、奥行きやズームの変化に合わせてスケールも変わり、正面の背景がコンポを覆う大きさを保ちます。
どんな条件で使えますか?
正方形ピクセルのコンポと素材、正面から見た回転のない背景平面を対象にします。
カメラが斜めを向く場面や、親付き・回転付きの背景には対応しません。
カメラ原点と背景のX/Y中心、背景のアンカーポイント、正面方向、ピクセル比、正の奥行きとズームを確認し、条件を外れると式のエラーで知らせます。
練習の準備として、何を用意しますか?
別名保存した1920×1080の練習コンポを作り、960×540の所有素材またはソリッドを背景として置いて3DスイッチをONにします。
背景のアンカーポイントを480,270,0、位置を960,540,0、方向とX/Y/Z回転を0にし、親を付けません。
正面向きのカメラを作り、位置を960,540,−1000、ズームを1000にします。
期待するスケールの値を教えてください。
記事の入力例では、奥行き1000、ズーム1000で、素材がコンポの半分の寸法なので期待するスケールは200,200,100です。
背景のZ位置を1000へ変えると奥行き2000になり、期待するスケールは400,400,100です。
縦横比が違う素材でも、使えますか?
使えますが、はみ出します。
修正版は幅・高さの必要倍率の大きい方を使って均等拡大するため、縦横比が違う素材ではコンポの外へはみ出す部分が生じます。
画面にぴったり収めてすべての素材を見せるfitではなく、余白が出ないように覆うcoverの計算です。
カメラを切り替えたときは?
カメラ名を固定せずアクティブカメラを参照するので、途中でカメラを切り替えた場合も条件を照合してください。
カメラの種類や注視点によって向きが変わるので、アクティブカメラで背景が正面に見える状態を先に確認します。
式をやめて、スケールを固定するには?
カメラ移動で背景を拡大して見せたい場合は、固定したい時刻の評価後のスケール数値を記録してから式を削除し、記録した数値を手動入力します。
式を削除するだけでは、式を入れる前の基礎値へ戻るため、評価後の数値を固定したことにはなりません。
固定操作を試す場合もキーのない練習コピーを使い、元の状態へ戻すときは記録した元のスケールと式なしの状態を照合します。
この式は、実機で確認済みですか?
2026年10月14日にWindows 11 Pro・AE 26.5(Build 89)で、掲載式の奥行き/ズーム追従、PNG描画、回転と中心ずれのエラー、式ON/OFFを確認しました。
PNG外周の半透明ピクセルも記録しています。
取り消し・途中のカメラ切替・他版などは未検証です。
旧記事の式は素材寸法を考慮していないため、旧記事の参考画像の式は現在の掲載コードとして転記しないでください。
より多機能なツールとして、pt_Multiplaneというスクリプトも公開されています。
