Amazonで商品を見るセール会場へ

After Effectsの境界線サイズをスクリプトで変更する|レイヤースタイル

After Effectsの選択レイヤーに追加済みのレイヤースタイル「境界線」を、スクリプトで指定サイズにそろえる方法です。

以下のコードは静的なサイズを変更するもので、境界線の新規追加や、文字パネル・シェイプ内の線の変更は行いません。

2026年10月3日、WindowsのAfter Effects 26.5×89日本語環境で、テキストレイヤーのサイズ変更とスキップ条件を実機で確認しました。

目次

実行前に境界線を追加する

プロジェクトを別名保存し、対象のコンポジションを開いて、変更したいレイヤーを選択します。

境界線がないレイヤーには「レイヤー」→「レイヤースタイル」→「境界線」で、先にスタイルを追加してください。

タイムラインの「レイヤースタイル」→「境界線」を開き、サイズを変更する対象が有効になっていることを確認します。

エフェクトの「線」や、文字パネルのストロークは別の設定なので、このコードの対象にはなりません。

境界線のサイズを変更するスクリプト

先頭のWIDTHを目的のサイズに変更し、UTF-8のテキストファイルとして拡張子.jsxで保存します。

例ではWIDTHを8にし、「ファイル」→「スクリプト」→「スクリプトファイルを実行」から実行します。

/* 追加済み・有効なレイヤースタイル「境界線」の静的なサイズだけを変更します。 */
(function () {
    var WIDTH = 8;
    var comp = app.project ? app.project.activeItem : null;
    if (!(comp instanceof CompItem)) {
        alert("対象のコンポジションを開いてから実行してください。"); return;
    }
    if (typeof WIDTH !== "number" || !isFinite(WIDTH) || WIDTH < 0) {
        alert("WIDTHには0以上の有限な数値を指定してください。"); return;
    }
    var layers = comp.selectedLayers;
    if (!layers.length) {
        alert("境界線を変更するレイヤーを選択してください。"); return;
    }
    var targets = [], skipped = [], unchanged = 0;
    for (var i = 0; i < layers.length; i++) {
        var layer = layers[i], reason = "", size = null;
        if (!(layer instanceof AVLayer) && !(layer instanceof TextLayer) &&
            !(layer instanceof ShapeLayer)) reason = "対象のレイヤー形式ではない";
        else if (layer.locked) reason = "ロック中";
        else {
            try {
                var styles = layer.property("ADBE Layer Styles");
                var stroke = styles ? styles.property("frameFX/enabled") : null;
                if (!stroke || !stroke.canSetEnabled) reason = "境界線が未追加";
                else if (!stroke.enabled) reason = "境界線が無効";
                else {
                    size = stroke.property("frameFX/size");
                    if (!size) reason = "サイズが見つからない";
                    else if (size.numKeys > 0) reason = "サイズにキーフレームがある";
                    else if (size.expressionEnabled) reason = "サイズに式がある";
                    else if ((size.hasMin && WIDTH < size.minValue) ||
                             (size.hasMax && WIDTH > size.maxValue)) reason = "サイズの許容範囲外";
                }
            } catch (error) { reason = "プロパティを参照できない"; }
        }
        if (reason) skipped.push(layer.name + ":" + reason);
        else if (size.value === WIDTH) unchanged++;
        else targets.push({name:layer.name, size:size});
    }
    if (!targets.length) {
        alert("変更対象は0件です。既に指定値:" + unchanged + "件\n" + skipped.join("\n")); return;
    }
    var changed = 0, failure = "";
    app.beginUndoGroup("レイヤースタイルの境界線サイズを変更");
    try {
        for (var n = 0; n < targets.length; n++) {
            targets[n].size.setValue(WIDTH); changed++;
        }
    } catch (error) {
        failure = "\n途中で停止しました。編集メニューから取り消して確認してください。\n" + error.toString();
    } finally { app.endUndoGroup(); }
    alert("サイズを" + WIDTH + "に変更:" + changed + "件\n既に指定値:" + unchanged +
          "件\nスキップ:" + skipped.length + "件\n" + skipped.join("\n") + failure);
}());

変更する条件と、スキップする条件

変更するのは、選択したレイヤーに追加済みで有効な境界線の「サイズ」だけです。

ロック中、境界線の未追加・無効、サイズにキーフレームまたは有効なエクスプレッションがある場合は、理由を表示してスキップします。

カメラなど対象外のレイヤー形式や、WIDTHがサイズの許容範囲を外れるレイヤーも変更しません。

既に指定サイズのレイヤーは変更済み件数に含めず、色・不透明度・境界線の位置設定・レイヤーの選択状態も維持します。

WIDTHに負の値や有限でない値を指定した場合、またはコンポジションやレイヤーを選択していない場合は、変更を始めません。

実行前後の結果と取り消し

自作の練習用コンポには、サイズ3の境界線を追加したテキストと、境界線を追加していないテキストを用意しました。

境界線ありはサイズ3、境界線なしは白い文字の実行前画面
実行前:上の文字にサイズ3の赤い境界線があります(2026/10/03撮影、AE 26.5×89)。
境界線ありの赤い輪郭だけが太くなった実行後画面
実行後:追加済みの境界線だけがサイズ8へ変わりました(2026/10/03撮影、AE 26.5×89)。
レイヤースタイル境界線のサイズが8.0になっているAEタイムライン
サイズ8.0、色・不透明度・位置はそのままです(2026/10/03撮影、AE 26.5×89)。
サイズを8に変更1件、スキップ1件、境界線なしは未追加と表示される結果
未追加のレイヤーをスキップした理由も表示します(2026/10/03撮影、AE 26.5×89)。

処理を戻すには「編集」→「取り消し」、またはWindowsではCtrl+Zを1回実行します。

今回の練習用コンポでは、WindowsのCtrl+Zを1回実行し、境界線のサイズが8.0から3.0へ戻ったことを確認しました。

AEレイヤースタイル境界線のサイズが取り消し後に3.0へ戻った画面
Ctrl+Zを1回実行し、サイズ8.0から3.0へ戻りました(2026/10/03撮影、AE 26.5×89)。

練習用AEP・スクリプト・説明書をダウンロード(ZIP)し、「境界線の練習」コンポで試せます。

AEPはAE 2026で保存しており、旧バージョンで開けることは確認していません。

hiddenエラーや、変更されない場合の確認

境界線が未追加でもプロパティを参照できる場合があるため、プロパティが見つかるだけで書き込み可能とは判断できません。

修正版は境界線グループのcanSetEnabledを確認して未追加を判定し、非表示のままサイズを設定しようとする処理を避けています。

「境界線が未追加」と出たらメニューから追加し、「境界線が無効」と出たら境界線の有効・無効を確認してください。

アニメーションや式があるサイズは、このコードで上書きせず、元のキーや式を残したまま別のレイヤーで試してください。

途中で停止した場合は、一部のサイズだけ変更されている可能性があるため、取り消して状態を確認します。

実機で確認した範囲

テキスト2レイヤーの3→8、ロック・キー・式・無効・未追加・カメラ・非選択のスキップ、色と不透明度・選択状態の維持、既に指定値・未選択・負のWIDTHの計14項目を、自作プロジェクトで確認しました。

テキスト以外のシェイプ・外部フッテージ、PSDの読み込み、3Dレイヤーの描画、サイズ変更途中の強制例外、他のAEバージョンは未検証です。

旧記事のコードと参考画面

旧記事のメインコードはfor文の途中で欠落していたため、対象条件を明示した上のコードへ置き換えました。

旧記事にあった英語表示名Layer Styles・Stroke・Sizeでの参照は、表示言語に依存しないmatchNameの参照へ変更しています。

また、旧記事のコマンドID 9008は、今回のAE 26.5×89日本語環境では選択したテキストへの境界線追加として動きましたが、別バージョンの動作は確認していません。

掲載するサイズ変更コードではコマンドIDを実行せず、追加操作はメニューから行う手順にしています。

選択したレイヤーのレイヤースタイルである境界線の状態を変更するスクリプトの処理結果や実行イメージ。
旧記事に掲載されていた参考画面です。

参考資料と関連記事

Adobe公式:レイヤースタイルの追加と設定を参照しました。

APIの参照名は、コミュニティ管理のAfter Effects Scripting Guide:Layer Styles Match NamesとPropertyBaseで照合しています。

資料確認日・実機確認日:2026年10月3日。

使用素材を整理するスクリプトも、実行前後と取り消しを確認できる練習用AEP付きで解説しています。

見た目の効果を作る記事は、ほかにもあります。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

After Effectsのおすすめ書籍

必要なPCスペック

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次