Mayaをコマンドプロンプトから起動して、MayaPythonで処理する
こちらを参考にするも。。できない。
PYTHONPATHのせい?
リモートデスクトップのせい?
なぜだー!
・・・試行錯誤の末、以下で解決。
SET MAYA_UI_LANGUAGE=en_US
SET PYTHONPATH=C:\Users\Taro\Documents\python\maya
SET MAYA_CMD_FILE_OUTPUT=C:project\autoBat\runFiles\log\cube.log
"C:\Program Files\Autodesk\Maya2018\bin\maya.exe" -command "python(\"import runCmd;runCmd.run('<Mayaシーンファイルのフルパス>')\")"
コマンドプロンプトで ” 自体を引数に使いたいときは 手前に¥をつける。
エスケープ仕様、なるほど勉強になりました。
参考サイトはこちら。
-----------------------------------------------------------
おまけ。
runCmd_BASE.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
#thanks for DIGITAL FRONTIER INC. | |
#https://dftalk.jp/?p=17829 | |
from maya import cmds | |
def run(filePath): | |
#cmd でした引数のmayaシーンファイルをオープン | |
print '## Scene File Open >> ' + filePath | |
cmds.file(filePath, f=1, o=1) | |
# | |
#ここに任意のPython処理を記入(【注意】python構文にエラーがあると処理が止まります。。) | |
# | |
#maya.exeで処理していた場合にmayaを終了させる。 | |
if not cmds.about(batch=1): | |
cmds.evalDeferred('from maya import cmds;cmds.quit(f=1)') |
-------------------------------------------------------------------
◆構造のまとめ
①runBat.bat(Mayaシーンファイルのパスを複数入れ、ひとつずつ②の処理するbat)
↓
②runCmd.py(①から送られるシーンファイル情報を受け取り、Mayaで開いて、MayaPythonを実行する。)
で、このあとやろうとしているのは
①に複数Mayaシーンファイルのパスを手書きするの大変なので
①を作成するGUIをPython(QtDesigner)で作成する。→③batWorkGen.exe
...つまり
③batWorkGen.exe(GUI操作)→ ①runbat.bat 作成
↓ダブルクリック
②runCmd.py が呼び出されて実行
runCmd.pyは
返信削除冒頭に# -*- coding: utf-8 -*-がないとだめ!!!