imaging: 2008年7月アーカイブ

AERender with Backburner

|

After Effectsのコマンドラインインターフェース・aerender.exe を Combustion や 3ds max 等のAutodesk製品で使われているネットワークレンダリングマネージャ・Backburnerから利用するテスト。オープンダイアログから指定したAEプロジェクトに含まれる全ての有効なレンダリングキューが処理される、というだけの単純なVBスクリプトです。試してみたい方は下記のスクリプトをテキストエディタ等にコピペして *.vbs って拡張子で保存したものをダブルクリックして実行してください。

レンダリングマシンを指定したい人は -group Global Group とか追加すると吉。ちなみにジョブ名が決め打ち(ファイル名+秒数)なのはBackburnerが同じ名前のジョブ名を受け付けない仕様故の苦肉の策。いやまあ面倒くさがらずに「ジョブ一覧を取得→入力されたジョブ名と比較→重複していなければ登録」とかやればいいんですが、如何せん面倒(ry

Dim strRun
Dim arrPath
 
Set objDialog = CreateObject("UserAccounts.CommonDialog")
Set objWshShell = WScript.CreateObject("WScript.Shell")
 
objDialog.Filter = "Adobe After Effects プロジェクト (*.aep) | *.aep"
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen
 
If intResult = 0 Then
  Wscript.Quit
Else
  Dim i
  Dim strPath
  Dim strFile
  strPath = objDialog.FileName
  arrPath = split(strPath,"\")
  i = UBound(arrPath)
  strFile = arrPath(i) & "-" & Timer
  objWshShell.Run """C:\Program Files\Autodesk\Backburner\cmdjob"" -jobname " & strFile & " -numTasks 3 -serverCount 3 ""C:\Program Files\Adobe\Adobe After Effects 7.0\Support Files\aerender"" -project " & strPath, 1, False
End If

現状、最大の問題点はAEのマルチマシンレンダリングに依存しているので、ジョブを中断するとレンダリング出力先に0KBのファイルが残ってしまう点。対処方法としては(レンダリング開始前に)まずプロジェクトファイルから有効なレンダーキュー及びファイルの出力先を調べて、0KBのファイルを削除してからレンダリング開始…みたいな形はどうかと思案中。あまり上手いやり方とは言えませんが。あと現在レンダリング中のフレームが Backburner 上から確認出来ないのも不便だよなぁ。いっそのことAE側のマルチマシンレンダリングは使わず、1コマ~数コマずつタスクとして登録する?それも怖いような。

Backburner Submit UI の不具合を修正する為にドキュメントを調べているうちに、ついついこんなものを書いてしまったけど、もう少し粘ってみよう…かな?

このアーカイブについて

このページには、2008年7月以降に書かれたブログ記事のうちimagingカテゴリに属しているものが含まれています。

前のアーカイブはimaging: 2008年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。