Premiere Pro自動化スクリプトのデバッグ方法|エラーを解消して安定稼働させる手順

スクリプト自動化が止まる「あるある」問題

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(推奨)

  1. VSCodeに「Adobe ExtendScript Debugger」拡張をインストールする
  2. launch.jsonを設定してPremiere ProまたはAEをデバッグターゲットに指定する
  3. 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が使えるプランを確認し、自動化ワークフローの構築に挑戦してみてください。

コメント

タイトルとURLをコピーしました