mayaでDeadlineを使ってみる2



普段案件毎に読ませるプラグインを変えているので、deadlineのワーカーにも同一のプラグインを読ませないと動かない。
プラグインについてはver違いなどもあるので、ワーカーにとりあえず全部インストールスタイルは通用しない。

案件のmaya起動に使用しているusersetup.pyをmayaBatchに読ませたら良いのでは?

mayaBatch.exeに読ませられるか実験

SET MAYA_UI_LANGUAGE=en
SET PYTHONPATH="Z:/python"
START "" "C:\Program Files\Autodesk\Maya2019\bin\MayaBatch.exe" -file "Z:\testFile.ma"

結果:どうやら読ませられる。

mayaBatch で GUIをいじるとクラッシュするとの報告も見かけたので、念のため usetsetup.py 内で

if cmds.about(batch = True) ==False:

によってmayaBatch時はGUI編集を飛ばすように対応。


usersetup.pyを読ませるために デッドラインの mayaBatch プラグインをちょっと編集
直接編集は怖いので、複製して別名プラグインとして編集。

def StartJob 内に

self.SetEnvironmentAndLogInfo("PYTHONPATH", "Z:/python")

を追記。
※SetEnvironmentAndLogInfo は環境変数を指定するためのdeadlineのコマンド

usersetup.pyの場所も実行時のオプションとして渡したいのであれば、
サブミット時に生成される XXXXXXXX.job ファイルにオプションを追加。

PYTHONPATH=Z:/python

それをプラグイン側で読み込ませて、環境変数に渡す。

pythonPath = self.GetPluginInfoEntryWithDefault("PYTHONPATH", '')    
if pythonPath != "":
    self.LogInfo("Adding " + pythonPath + " to PYTHONPATH")
    self.SetEnvironmentAndLogInfo("PYTHONPATH", pythonPath)

オプションの追加はサブミッターも合わせて改修する必要があるので、現在は案件毎にハードコーディング。


参考