スクリプト自動化が止まる「あるある」問題
Premiere ProのExtendScript(.jsx)やAfter Effectsのスクリプトで自動化を組んだ経験がある方なら、「突然動かなくなった」「エラーメッセージが意味不明」「特定のプロジェクトだけ失敗する」という状況に一度は直面したことがあるはずです。せっかく構築した自動化フローが途中で止まると、手動対応が必要になり自動化のメリットが失われます。本記事ではスクリプトで発生しやすいエラーのパターン、デバッグ方法、安定稼働させるためのベストプラクティスを解説します。
Premiere Pro / After Effectsスクリプトで発生しやすいエラー一覧
| エラータイプ | よくある原因 | 対処法の方向性 |
|---|---|---|
| TypeError: undefined | 存在しないプロパティにアクセス、要素が空 | nullチェック・存在確認を追加 |
| RangeError: Index out of range | 配列・コレクションの範囲外アクセス | ループ条件の見直し・境界値チェック |
| Can’t execute script while a modal dialog is open | ダイアログが開いている状態でスクリプト実行 | app.project確認、GUIのスキップ |
| File not found | パスが間違っている・日本語・スペースを含む | フルパスの確認・Fileオブジェクトの使用 |
| After Effects error: rendering error | プラグイン不足・コーデック非対応・メモリ不足 | ログ確認・不要エフェクトの除外・メモリ開放 |
| ExtendScriptバージョン不一致 | 古いAPIを新しいAEバージョンで使用 | AEのバージョン条件分岐を追加 |
基本的なデバッグツール:VSCode + ExtendScript Debugger(推奨)
- VSCodeに「Adobe ExtendScript Debugger」拡張をインストールする
- launch.jsonを設定してPremiere ProまたはAEをデバッグターゲットに指定する
- VSCodeのブレークポイント・ウォッチ変数・コールスタック表示を使ってデバッグする
ログ出力によるデバッグ:ファイルログの実装
function writeLog(message) {
var logFile = new File("C:/logs/premiere_automation.log");
logFile.open("a");
logFile.writeln(new Date().toString() + " - " + message);
logFile.close();
}
writeLog("バッチ処理開始");
// 処理内容
writeLog("バッチ処理完了");
エラーハンドリングを実装して安定稼働させる
function processFile(file) {
try {
if (!file.exists) {
throw new Error("ファイルが見つかりません: " + file.fsName);
}
app.project.importFiles([file.fsName]);
writeLog("SUCCESS: " + file.name);
} catch (e) {
writeLog("ERROR: " + file.name + " - " + e.message);
return false;
}
return true;
}
var files = sourceFolder.getFiles("*.prproj");
var successCount = 0;
for (var i = 0; i < files.length; i++) {
if (processFile(files[i])) successCount++;
}
writeLog("完了: " + successCount + "/" + files.length + " 件成功");
日本語ファイルパスとエンコーディング問題への対処
- パスを英数字のみにする:最も確実な方法。プロジェクトフォルダーは英数字のパスに統一する
- Fileオブジェクトを使う:文字列でパスを渡すより
new File(path)を使う方が文字コード変換の問題が軽減される - $.os・$.appVersionでOS確認:Windows/Macで挙動が異なる場合は条件分岐を入れる
バージョン間の互換性問題を回避する
var aeVersion = parseFloat(app.version);
if (aeVersion >= 22.0) {
app.project.renderQueue.items[1].outputModules[1].file = new File(output);
} else {
app.project.renderQueue.item(1).outputModule(1).file = new File(output);
}
スクリプトの定期メンテナンスチェックリスト
- 月1回:ログファイルを確認してエラーパターンを把握する
- Adobe製品アップデート後:主要スクリプトの動作確認テストを実施する
- 新規プロジェクト追加時:ファイルパス・フォルダー構造がスクリプトの想定と一致しているか確認する
まとめ
Premiere ProやAfter Effectsのスクリプト自動化で安定稼働を実現するポイントは、(1)適切なエラーハンドリング、(2)ファイルログの実装、(3)バージョン対応の条件分岐、(4)定期的なメンテナンスの4点に集約されます。Adobe Creative Cloudのプランページで最新のPremiere ProとAfter Effectsが使えるプランを確認し、自動化ワークフローの構築に挑戦してみてください。

コメント