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

After Effectsの素材を種類別フォルダへ整理する|コンポ・拡張子で分類するスクリプト

プロジェクト内のコンポジション、または特定の拡張子を持つフッテージを、新しいプロジェクトフォルダへまとめます。

未使用素材の削除を先に行う必要はありません。

コードはローカルのAPI模擬テストで検証しています。

AEでの画面・取り消し・素材参照の維持は未確認のため、実案件の前に別名保存した練習プロジェクトで確認してください。

目次

分類する対象と変更範囲

MODEがcompsならプロジェクト全体のCompItemが対象です。

現在のコンポだけでなく、プリコンポも含みます。

MODEがextensionなら、ファイル参照を持つFootageItemの実ファイル名の拡張子を調べます。

プロジェクトパネルの表示名を変更していても、画像の実ファイル名がPNGなら対象になります。

PNGという名前のコンポや、表示名だけに.pngがあるJPGはPNG分類の対象になりません。

平面などファイル参照のない素材は拡張子では分類しません。

プロジェクト内の所在だけを変え、ディスク上のファイル・レイヤーの参照元・素材名は変更しません。

未使用素材も条件に合えば対象です。

設定対象確認する結果
MODE = comps全CompItemプリコンポを含むコンポだけ移動
MODE = extension / EXTENSION = png実ファイル名がPNGのFootageItem表示名ではなく実ファイル名で分類
対象0件なしフォルダを作成しない
同名の出力フォルダがあるなし変更せず名前の競合を通知

分類用スクリプト

OUTPUT_NAMEは既存フォルダと重複しない名前にします。

EXTENSIONにはドットを付けずpngなどと記述します。

プロジェクトは2000アイテム以内、分類対象は200件以内に限定しています。

/* Project panel only. No disk moves or unused-footage deletion. Native AE pending. */
(function () {
    var MODE = "comps"; // comps: all CompItems / extension: matching file-backed FootageItems
    var EXTENSION = "png"; // extension mode only; no dot
    var OUTPUT_NAME = "CGM_comps"; // must not already exist as a folder
    var project = app.project, matches = [];
    if (!project || project.numItems > 2000) { alert("プロジェクトを開き、2000アイテム以内で実行してください。"); return; }
    if ((MODE !== "comps" && MODE !== "extension") || !/^[A-Za-z0-9]+$/.test(EXTENSION) || !OUTPUT_NAME) { alert("MODE・EXTENSION・OUTPUT_NAMEを確認してください。"); return; }
    for (var i = 1; i <= project.numItems; i++) {
        var item = project.item(i);
        if (item instanceof FolderItem && item.name === OUTPUT_NAME) { alert("出力フォルダ名が既にあります。OUTPUT_NAMEを一意の名前にしてください。"); return; }
        if (MODE === "comps" && item instanceof CompItem) matches.push(item);
        else if (MODE === "extension" && item instanceof FootageItem && item.file) {
            var parts = item.file.name.split(".");
            if (parts.length > 1 && parts[parts.length - 1].toLowerCase() === EXTENSION.toLowerCase()) matches.push(item);
        }
    }
    if (!matches.length) { alert("対象0件です。フォルダは作りません。"); return; }
    if (matches.length > 200) { alert("対象が200件を超えています。プロジェクトを分けて確認してください。"); return; }
    app.beginUndoGroup("種類別にプロジェクトアイテムを整理");
    try {
        var destination = project.items.addFolder(OUTPUT_NAME);
        for (var n = 0; n < matches.length; n++) matches[n].parentFolder = destination;
        alert(matches.length + "アイテムを「" + OUTPUT_NAME + "」へ移動しました。");
    } catch (error) { alert("フォルダ作成や一部の移動が残る場合があります。編集メニューで取り消して確認してください。\n" + error.toString()); }
    finally { app.endUndoGroup(); }
}());

コードをUTF-8のテキストファイルに保存して拡張子を.jsxにします。

After Effectsの「ファイル」→「スクリプト」→「スクリプトファイルを実行」から選択してください。

スクリプトの常設インストールは必要ありません。

表示名と実ファイル名が違う素材で試す

別名保存した練習プロジェクトで、PNG1枚・JPG1枚・コンポ2個を用意します。

PNGの表示名を「背景」、JPGの表示名を「sample.png」に変更してください。

MODEをextension、EXTENSIONをpng、OUTPUT_NAMEをCGM_pngにして実行します。

「背景」だけがCGM_pngへ移り、JPGとコンポが元の階層に残ることを確認します。

別の名前をOUTPUT_NAMEに指定してcompsモードも試し、コンポ2個だけが移るか照合します。

共有コンポの参照とプレビューも確認してください。

戻し方と条件に合わない場合

「編集」メニューで直前の処理を1回取り消し、新規フォルダが消え、対象素材が元の階層へ戻るか確認します。

同名フォルダのエラーは、既存フォルダを削除せずOUTPUT_NAMEを変更して解消します。

0件の場合はMODE・実ファイル名・拡張子を照合してください。

途中の例外では新規フォルダや一部の移動が残る場合があります。

取り消して確認し、復元できなければ保存した練習プロジェクトを開き直します。

参考資料と関連記事

ItemCollection.addFolderとItem.parentFolderを参照しました。

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

API資料はコミュニティ管理のAfter Effects Scripting Guideで、Adobe公式のスクリプト実行方法も参照しました。

関連記事

素材移動・分類・選択・新規作成・ディスクへの保存は変更範囲が異なります。

GitHubの旧実装は本稿の修正版とは同期していません。

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

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

After Effectsのおすすめ書籍

必要なPCスペック

周辺機器の優先度

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