コンポジションの尺を数値で指定するなら「コンポジション設定」、選択したレイヤーの終了位置に合わせるなら下のスクリプトを使います。
時間の長さと画面の縦横サイズでは、使う操作が異なります。
| やりたいこと | 方法 |
|---|---|
| 数値を入れて変える | コンポジション設定(Ctrl + K/Command + K) |
| 選んだレイヤーに合わせる | この記事のスクリプト |
| 縦横のサイズを中身に合わせる | 選択したレイヤーの境界にコンポジションをトリミング |
尺と縦横のサイズは別の話です。
「はみ出している」のがどちらなのかを先に決めてください。
入れ子のコンポジションでは、子の尺だけでなく、親のデュレーションと子を配置したレイヤーの終了位置も確認します。

下のスクリプトは、開いているコンポジションで選択したレイヤーのアウトポイントを読み、最も遅い終了時刻へ尺を合わせます。
開始位置を詰める処理や、親コンポの尺を変更する処理は含みません。
選択した2枚の終了時刻で尺を確認する練習
プロジェクトを別名保存し、960×540・10秒・30fps・開始タイムコード0の練習用コンポジションを作ります。
開始位置0のソリッドを3枚置き、アウトポイントを1秒・6秒・8秒に設定します。
タイムラインで1秒と6秒の2枚だけを選択してください。
8秒まであるソリッドは未選択のまま残します。
実行前のデュレーションが0:00:10:00であることをコンポジション設定で確認します。
下のコードをUTF-8のduration.jsxとして保存し、対象のコンポジションを開いて「ファイル」→「スクリプト」→「スクリプトファイルを実行」から実行します。
複数選択では、選択したレイヤーの最大のアウトポイントへ尺を合わせる例です。
実機ではデュレーションが0:00:06:00になりました。
30fpsでは180フレームの長さです。
ワークエリアが開始0・長さ10秒だった今回の条件では、ワークエリアの長さも6秒になりました。
未選択の8秒のソリッドは削除されませんが、6秒より後はコンポジションの範囲外になります。
未選択も含めて全体の尺を残したい場合は、必要なレイヤーをすべて選択します。
開始タイムコードの表示とコンポ内の秒数を混同せず、ここでは開始タイムコード0で確認します。
空選択・終了時刻が0以下・上限超過では変更しません。
親のコンポジションの尺と、子を配置したレイヤーのアウトポイントは別々に確認してください。
今回、開始0・アウトポイント10秒の子レイヤーを持つ親コンポは10秒のままでしたが、その子レイヤーのアウトポイントは6秒へ変わりました。
「親コンポの尺が変わらない」ことと「親の中のレイヤーが変わらない」ことは同じではありません。
実行後にCtrl+Kで6秒を確認したら、設定画面をキャンセルして閉じ、Ctrl+Zを1回押します。
Windows実機ではコンポの尺とワークエリアが10秒へ戻り、親に置いた子レイヤーのアウトポイントも10秒へ戻りました。
取り消し結果が違う場合は、別名保存した実行前のプロジェクトを開き直してください。
| 確認すること | AE 26.5での実測 | 違ったとき |
|---|---|---|
| 選択の終了1秒と6秒 | デュレーション6秒 | 選択した対象を確認 |
| 終了1.001秒・30fps | 約1.033333秒(1秒1フレーム) | フレームレートを確認 |
| 未選択の終了8秒 | 3枚とも残り、未選択素材のoutPointは8秒のまま | 必要なら選択に加える |

端数の検証では、スクリプトからアウトポイントに1.001秒を設定しました。
AEから読み戻した値は約1.001009秒で、本文のスクリプト実行後は31/30秒、約1.033333秒になりました。
これは通常のフレーム単位のトリミング操作と区別した、端数入力の検証です。
レイヤーを何も選ばずに実行すると「Open a composition and select one or more layers.」と表示され、10秒のデュレーションは変わりませんでした。
対象コンポを開き、タイムラインのレイヤーを選択してから実行します。
2026年10月14日、Windows 11 Pro(10.0.26200)・After Effects 26.5(Build 89)で、本文のjsxを変更せず実行し、尺・未選択レイヤー・親との連動・Ctrl+Z・端数入力・空選択を確認しました。
スクリプトのAPIはLayer・CompItem・Applicationの参照先も掲載しています。
Mac・他バージョン・タイムリマップやストレッチ付き素材・書き出し結果は未検証です。
選択したレイヤーの長さに合わせてコンポジションの尺を変更するスクリプト
(function () {
var comp = app.project && app.project.activeItem;
if (!(comp instanceof CompItem) || comp.selectedLayers.length === 0) {
alert("Open a composition and select one or more layers."); return;
}
var layers = comp.selectedLayers, end = 0;
for (var i = 0; i < layers.length; i++) {
if (!isFinite(layers[i].outPoint)) { alert("Invalid outPoint."); return; }
end = Math.max(end, layers[i].outPoint);
}
var frame = comp.frameDuration;
if (!(frame > 0) || !isFinite(frame) || end <= 0) {
alert("A positive end time and frame duration are required."); return;
}
var duration = Math.ceil(end / frame - 0.0000001) * frame;
if (duration < frame || duration > 10800) { alert("Duration is outside the allowed range."); return; }
app.beginUndoGroup("Match duration to selected layers");
try { comp.duration = duration; } finally { app.endUndoGroup(); }
})();
コンポジションの尺を合わせたいレイヤーを選択して実行するだけです。
複数選択では最大のアウトポイントへ合わせ、フレーム境界まで切り上げます。
After Effectsのほかの操作は、まとめからご覧いただけます。

手で変える場合
コンポジション設定は Ctrl + K(Windows)または Command + K(macOS)で開きます。
コンポジション/コンポジション設定 からでも同じです。
デュレーションの欄に、目的の長さを入力します。
コンポジションの尺は最長で3時間です。
それより長いフッテージも置けますが、3時間以降は正しく表示されません。
なお、解像度・開始タイムコード・デュレーションは、コンポジション設定のプリセットには保存されません。
尺も再利用したい場合は、元になるコンポジションを複製して使う方法があります。
縦横のサイズを中身に合わせたい場合
尺ではなく、余白を詰めたい場合もあります。
タイムラインで対象の2Dレイヤーを選び、コンポジションメニューから「選択したレイヤーの境界にコンポジションをトリミング」(英語表示:Crop Comp to Selected Layer(s) Bounds)を選びます。
選んだ2Dレイヤーの表示領域に合わせて、コンポジションのサイズが変わります。
小さく切り詰めることも、全部が入るように広げることもできます。
SNS向けに書き出すときなど、余白を消したい場面で使えます。
コンポジション全体を拡大縮小したい場合は、ファイル/スクリプト/Scale Composition.jsx があります。
このスクリプトは、レイヤーがロックされていると失敗します。
実行前に、すべてのレイヤーのロックを外してください。
尺の上限、プリセットの保存対象、サイズ変更の標準機能は、Adobe公式「コンポジションの基本」を2026年10月14日に確認しました。
サイズのトリミングとScale Composition.jsxは、今回の尺変更の実機検証には含めていません。
コンポジションを複製したり、サイズや尺を揃えたりするスクリプトは、ほかにもあります。




よくある質問:After Effectsでコンポジションの尺を調整するとき
コンポジションの尺の変え方には、どんな方法がありますか?
尺を数値で指定するならコンポジション設定(Ctrl + K/Command + K)、選んだレイヤーの終了位置に合わせるなら記事のスクリプトを使います。
「選択したレイヤーの境界にコンポジションをトリミング」は、時間ではなく縦横のサイズを変える操作です。
数値を入れて尺を変えるには?
コンポジション設定をCtrl + K(Windows)またはCommand + K(macOS)で開きます。
コンポジション/コンポジション設定からでも同じです。
デュレーションの欄に、目的の長さを入力します。
コンポジションの尺の上限はありますか?
コンポジションの尺は最長で3時間です。
それより長いフッテージも置けますが、3時間以降は正しく表示されません。
毎回同じ尺にするプリセットを、保存できますか?
コンポジション設定のプリセットにはデュレーションが保存されません。
尺を含む設定を再利用したい場合は、元になるコンポジションを複製し、素材や内容を変更する方法があります。
解像度と開始タイムコードも設定プリセットの保存対象外です。
選んだレイヤーに合わせて尺を変えるスクリプトの動きを教えてください。
複数選択では、選択したレイヤーの最大のアウトポイントへ尺を合わせます。
記事の練習(10秒・30fps、終了時刻が1秒と6秒のソリッドを選択)では6秒になり、1.001秒の終了時刻は次のフレーム境界である31/30秒へ切り上げます。
未選択の8秒のソリッドは削除されませんが、6秒より後はコンポジションの範囲外になります。
未選択のレイヤーも含めて、全体の尺を残したいときは?
必要なレイヤーをすべて選択します。
空選択・終了時刻が0以下・上限超過では変更しません。
今回の実機では親コンポの尺は10秒のままでしたが、そこに置いた子レイヤーのアウトポイントは6秒へ変化しました。
親の尺と子レイヤーの終了位置を両方確認してください。
縦横のサイズを、中身に合わせたいときは?
選択したレイヤーの境界にコンポジションをトリミングします。
選んだ2Dレイヤーの表示領域に合わせて、コンポジションのサイズが変わり、小さく切り詰めることも、全部が入るように広げることもできます。
SNS向けに書き出すときなど、余白を消したい場面で使えます。
コンポジション全体を拡大縮小したいときや、スクリプトが失敗するときは?
コンポジション全体を拡大縮小したい場合は、ファイル/スクリプト/Scale Composition.jsx があります。
このスクリプトは、レイヤーがロックされていると失敗するため、実行前にすべてのレイヤーのロックを外してください。
仕様は2026年10月14日にAdobe公式ヘルプで確認しています。
今回の実機検証は尺を変える本文スクリプトが対象です。
