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

After Effectsの使用素材をフォルダにまとめるスクリプト|プロジェクトパネル内の整理

After Effectsのアクティブなコンポジションから、直接参照されているソースをプロジェクトパネル内の新しいフォルダへ移す方法です。

複数レイヤーが同じソースを使っている場合は、1つのアイテムとしてまとめます。

目次

対象になる素材と、変更する範囲

この処理が変更するのはプロジェクトパネルのフォルダ階層です。

ディスク上のファイルを移動・コピーする処理ではありません。

参照しているプリコンポ自体は対象になりますが、その内部にある素材は再帰的に調べません。

非表示レイヤーの参照元や平面素材も対象になります。

同じ名前の別素材は区別します。

素材名の部分一致で探すのではなく、レイヤーのsourceとプロジェクトアイテムのidを使います。

共有素材は1つのアイテムなので、別のコンポで使っていてもプロジェクトパネルでの所在が変わります。

実行前に確認すること

プロジェクトを別名保存し、対象のコンポジションを選択してください。

以下は旧記事の欠落したコードを置き換えた修正版です。

2026年10月3日、WindowsのAfter Effects 26.5×89日本語環境で、平面素材とプリコンポを使って動作を確認しました。

先頭のMODEはallのまま使います。

フォルダを限定して整理する場合は、指定フォルダの使用素材だけを整理する方法を参照してください。

修正版スクリプト

/* AE 26.5x89 日本語環境で平面・プリコンポ・フォルダ条件・取り消しを確認。実案件では別名保存してから実行してください。 */
(function () {
    var MODE = "all"; // all: 全対象 / include: 指定フォルダ内 / exclude: 指定フォルダ外
    var FOLDER_NAME = "comp"; // include/exclude時だけ使用。プロジェクト内で一意にする
    var INCLUDE_SUBFOLDERS = true;
    var comp = app.project ? app.project.activeItem : null;
    if (!(comp instanceof CompItem)) {
        alert("対象のコンポジションを選択してから実行してください。");
        return;
    }
    if (MODE !== "all" && MODE !== "include" && MODE !== "exclude") {
        alert("MODEはall、include、excludeのいずれかにしてください。");
        return;
    }
    var filterFolder = null;
    if (MODE !== "all") {
        var matches = [];
        for (var i = 1; i <= app.project.numItems; i++) {
            var item = app.project.item(i);
            if (item instanceof FolderItem && item.name === FOLDER_NAME) {
                matches.push(item);
            }
        }
        if (matches.length !== 1) {
            alert("対象フォルダ名に一致するフォルダが" + matches.length + "個あります。一意な名前にしてください。");
            return;
        }
        filterFolder = matches[0];
    }
    function isInside(source) {
        var parent = source.parentFolder;
        if (!INCLUDE_SUBFOLDERS) return parent === filterFolder;
        while (parent && parent !== app.project.rootFolder) {
            if (parent === filterFolder) return true;
            parent = parent.parentFolder;
        }
        return parent === filterFolder;
    }
    var sources = [];
    var seen = {};
    for (var n = 1; n <= comp.numLayers; n++) {
        var layer = comp.layer(n);
        if (!(layer instanceof AVLayer)) continue;
        var source = layer.source;
        if (!(source instanceof FootageItem) && !(source instanceof CompItem)) continue;
        if (MODE !== "all") {
            var inside = isInside(source);
            if ((MODE === "include" && !inside) || (MODE === "exclude" && inside)) continue;
        }
        var key = "item_" + source.id;
        if (!seen[key]) {
            seen[key] = true;
            sources.push(source);
        }
    }
    if (!sources.length) {
        alert("条件に一致する直接参照ソースがありません。フォルダは作成しません。");
        return;
    }
    app.beginUndoGroup("使用ソースをプロジェクト内で整理");
    try {
        var destination = app.project.items.addFolder(comp.name + "_used_sources");
        for (var j = 0; j < sources.length; j++) {
            sources[j].parentFolder = destination;
        }
        alert(sources.length + "個のソースを「" + destination.name + "」へ移動しました。");
    } catch (error) {
        alert("整理を完了できませんでした。編集メニューから取り消し、状態を確認してください。\n" + error.toString());
    } finally {
        app.endUndoGroup();
    }
}());

実行手順と結果の確認

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

After Effectsで対象コンポジションを選択し、「ファイル」→「スクリプト」→「スクリプトファイルを実行」からそのファイルを選びます。

スクリプトメニューへ常設するためのインストールは、この実行方法には必要ありません。

対象があれば「コンポ名_used_sources」フォルダを新しく作り、対象アイテムを移します。

対象0件ならフォルダを作りません。

同名の出力フォルダが既にあっても再利用しません。

別の新しいフォルダを作ります。

実行後は件数と対象アイテムを照合し、コンポの参照や再生が維持されているか確認してください。

期待と違う結果になったとき

素材が見つからない場合は、直接参照ではなくプリコンポの内部だけで使っていないか確認します。

同名フォルダのエラーはFOLDER_NAMEを一意にして解消します。

コンポ選択のエラーでは、フォルダではなく対象コンポを選び直します。

途中でエラーが出た場合は一部の移動が残る可能性があるため、編集メニューから処理を取り消して状態を確認してください。

実機確認と練習用プロジェクト

2026年10月3日、Windows・After Effects 26.5×89(日本語)で、自作の平面素材・プリコンポ・テキストを使って確認しました。

all・include・exclude、下位フォルダを含む場合と含まない場合、同じソースの重複使用、指定フォルダの欠落・重複、無効なMODE、対象0件の計11項目で期待した処理になりました。

次の画面はMODEをallにした実行前後です。

整理前の素材フォルダにblue、blue_long、プリコンポがあるAEプロジェクトパネル
実行前:同じblueを2レイヤーで使用しています(2026/10/03撮影、AE 26.5×89)。
blue、blue_long、プリコンポの3ソースがused_sourcesフォルダへ移ったAEプロジェクトパネル
実行後:3ソースを移動し、プリコンポ内部だけの素材は元のフォルダに残っています(2026/10/03撮影、AE 26.5×89)。
取り消し後にblue、blue_long、プリコンポが元のフォルダに戻ったAEプロジェクトパネル
Ctrl+Zを1回実行して戻した状態です(2026/10/03撮影、AE 26.5×89)。

allの手動実行では、Ctrl+Zを1回実行して、新規フォルダが消え、3ソースが元のフォルダへ戻ることも画面で確認しました。

練習用AEP・スクリプト・説明書をダウンロード(ZIP)して、実案件の前に同じ操作を試せます。

練習用AEPはAE 2026で保存したため、古いバージョンで開けることは確認していません。

画像・動画ファイルの読み込み、カメラ・シェイプレイヤー、移動途中の例外、他バージョン、レンダリング結果は今回の実機確認に含めていません。

参考資料と関連記事

Adobe公式:スクリプトの読み込みと実行、After Effects Scripting Guide:AVLayer.source、Item.id・parentFolderを参照しました。

後者のAPIガイドはコミュニティ管理の資料です。

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

指定フォルダを含める・除外する整理方法と、After Effectsの使い方まとめも参照してください。

旧記事の整理画面

アクティブなコンポジションで使われている素材をフォルダにまとめるスクリプトの実行結果または処理画面。
旧記事の画面を保存しています。修正版の実行結果を撮影した画像ではありません。

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

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

After Effectsのおすすめ書籍

必要なPCスペック

周辺機器の優先度

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