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

After Effects│指定したコンポ・レイヤー名のチェックボックスにチェックを入れるスクリプト

目次

名前の重複を確認してチェックを切り替える練習

2026年10月3日確認:ここで指定する名前は、所有の練習プロジェクト用です。

コンポジションPracticeSwitchにヌルCtrlを1枚置き、チェックボックス制御を追加してエフェクト名をToggleに変更します。

チェックボックスにはキーや式を付けず、OFFの状態とコンポ名・レイヤー名・エフェクト名を記録してください。

下のコードをset-checkbox.jsxとしてUTF-8で保存し、「ファイル」→「スクリプト」→「スクリプトファイルを実行」から実行します。

TARGET = 1はON、TARGET = 0はOFFです。

このコードは選択状態ではなく指定した名前で対象を探し、同じ名前のコンポ・レイヤー・エフェクトが複数ある場合は変更前に止めます。

エフェクトの種類はmatchNameで確認し、チェックの値は数値の1/0を設定します。

レイヤーがロック中、またはチェックにキーや式がある場合は停止します。

元のON/OFFはCtrl+Z/Command+Zまたは元の練習コピーで戻し、他のコンポやチェックが変わっていないか確認してください。

選択プロパティへ式を付ける手順は、別記事にまとめています。

コードはJavaScriptの構文・模擬APIと保存したAPI資料で確認していますが、AE本体での適用・映像の一致・Undoの実行確認は未完了です。

入力・条件操作・結果確認する点
TARGET = 1チェックONPracticeSwitch/Ctrl/Toggle
名前の重複・キー・式事前確認で停止最初の同名を勝手に変更しない
復元Undo/元コピー元のON/OFFを照合

仕様の照合には、コミュニティで保守されているProperty API参照を参照しました。

After Effectsで特定のチェックボックス制御をスクリプトから切り替える方法を解説します。

指定したコンポジション名およびレイヤー名にあるチェックボックス制御のON・OFFを切り替えるスクリプトです。

プロジェクト内のコンポジションを手動で指定する手間を軽減できます。

指定したコンポ・レイヤー名のチェックボックスにチェックを入れるスクリプト

(function () {
    var COMP_NAME = "PracticeSwitch", LAYER_NAME = "Ctrl", EFFECT_NAME = "Toggle";
    var TARGET = 1; // 1 = ON, 0 = OFF
    if (!app.project || (TARGET !== 0 && TARGET !== 1)) { alert("Use TARGET 0 or 1."); return; }
    var comp = null, layer = null, effect = null, i, matches = 0;
    for (i = 1; i <= app.project.numItems; i++) {
        var item = app.project.item(i);
        if (item instanceof CompItem && item.name === COMP_NAME) { comp = item; matches++; }
    }
    if (matches !== 1) { alert("Use exactly one named composition."); return; }
    matches = 0;
    for (i = 1; i <= comp.numLayers; i++) {
        if (comp.layer(i).name === LAYER_NAME) { layer = comp.layer(i); matches++; }
    }
    if (matches !== 1 || layer.locked) { alert("Use one unlocked named control layer."); return; }
    var effects = layer.property("ADBE Effect Parade"); matches = 0;
    if (effects) {
        for (i = 1; i <= effects.numProperties; i++) {
            if (effects.property(i).name === EFFECT_NAME) { effect = effects.property(i); matches++; }
        }
    }
    if (matches !== 1 || effect.matchName !== "ADBE Checkbox Control") { alert("Use one named Checkbox Control."); return; }
    var checkbox = effect.property("ADBE Checkbox Control-0001");
    if (!checkbox || checkbox.numKeys !== 0 || checkbox.expression !== "") {
        alert("Use a checkbox with no keys or expression."); return;
    }
    app.beginUndoGroup("Set named checkbox");
    try { checkbox.setValue(TARGET); }
    catch (error) { alert("Stopped: " + error.toString() + "\nUndo or reopen your practice copy."); }
    finally { app.endUndoGroup(); }
})();

この例はPracticeSwitch内のCtrlに、Toggleという名前のチェックボックス制御が1つある状態を想定します。

特定のエフェクトをチェックボックス制御とエクスプレッションで連動させ、チェックのON・OFFを切り替えながら順次レンダリングを進める用途などに活用できます。

選択プロパティへ式を付ける場合

選択プロパティへ式を設定する記事で、入力例と既存の式の保護を確認してください。

After Effectsのほかの操作やテクニックについては、まとめ記事をご覧ください。

旧実装の参考コードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

エクスプレッションの書き方や、スクリプト化に関する記事は、ほかにもあります。

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

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

After Effectsのおすすめ書籍

必要なPCスペック

周辺機器の優先度

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