こんにちわ、兼業クリエイターのみっつです。
今回はMayaをスタンドアロンで起動させる方法を共有していきます。
- maya -prompt
- maya -batch -command “melコマンド”
実行方法は上記の2パターンです。
なお、maya -promptやmaya -batchはmaya.exe -prompt,maya.exe -batchと同じ意味なので、ここから先は.exeの表記を省略しますのでご了承下さい。
以前はmayabatchに-batchを立てて実行するやり方を共有したので、今回は別の起動方法をお伝えできたらと思います。
mayabatchの使い方はこちらの『【Maya】mayabatchを使ってMayaをコマンドラインから操作する』を参考にして頂けたらと思います。
mayabatchでは純粋にバッチモードですが、maya.exeにフラグを立てることで、普段起動してるMayaを明示的にスタンドアロンで起動させることができるって感じですね。
作業シーン → 『C:\work\maya\test.ma』
キューブだけ作ったシーン『test.ma』を上記の場所に保存して作業していきます。
■作業環境
- Windows10
- Maya2022
今回は以上の環境で作業していきます。
maya.exeに-prompt のフラグを立てて実行する
"C:/Program Files/Autodesk/Maya2022/bin/maya.exe" -prompt
このようにして記述することで、Mayaをスタンドアロンで立上げ、GUIナシで操作できます。
この状態を『プロンプトモード』っていうらしいです。
Autodesk公式ヘルプ『コマンド ラインから Maya を起動する』
melコマンドを実行してみる
mel: ○○
とあるように、この画面からmelを実行する事ができます。
試しにpolyCubeと入力してみます。
polyCube
このように返ってきました。
これは今、MayaのGUIを見ないで、polyCubeを作ったってことです。
スクリプトエディタでmelを実行してるみたいな感じですね
ではこのファイルを保存してみましょう。
file -rename "C:/work/maya/prompt_test.ma”
file -save
melで書かれた通り、『prompt_test.ma』というファイルが保存できましたね!
自作したmelファイルを実行する
mel単体で実行する事はあんまりないと思うので、今度は自作したmelスクリプトで実行してみましょう!
//promptTest.mel
global proc promptTest(){
file -open "C:/work/maya/test.ma";
file -rename "C:/work/maya/_____prompt01.ma";
file -save;
};
このようなmelスクリプトを『promptTest.mel』の名前で用意しました。
こちらのスクリプトをMayaのスクリプトパスが通ってる場所に保存します。
melファイルを読み込み直すため、一度Mayaを再起動させましょう!
quitと入力してMayaを閉じます。
そしてもう一度Mayaに -prompt のフラグを立ててプロンプトモードで起動させます。
"C:/Program Files/Autodesk/Maya2022/bin/maya.exe" -prompt
Mayaがプロンプトモードで起動したら、先程の『promptTest』を実行します。
promptTest
するとmelスクリプトに書いた通り、『_____prompt01.ma』という名前のファイルが作られるハズです!
このようにMayaをプロンプトモードで起動すると、melコマンド単位で処理を実行できます。
mayabatchと違い、quitでMayaを閉じない限り、コマンドの処理が終わってもMayaは起動し続けます。
maya.exeに-batchのフラグを立てて実行する
今度はMayaをバッチモードで起動してみます。
"C:/Program Files/Autodesk/Maya2022/bin/maya.exe" -batch
Mayaが立ち上がって、すぐに画面が閉じましたね。
Mayaのバッチモードで処理を実行する書き方
"C:/Program Files/Autodesk/Maya2022/bin/maya.exe" -batch -command "batchTest"
Mayaのバッチモードでは、mayabatchと同様に -command フラグを立てて、やりたい処理を渡します。
mayabatchについてはこちらの『【Maya】mayabatchを使ってMayaをコマンドラインから操作する』を参考にして下さい!
//batchTest.mel
global proc batchTest(){
file -open "C:/work/maya/test.ma";
file -rename "C:/work/maya/_____batch01.ma";
file -save;
};
プロンプトモードの実行で使ったmelスクリプトを上記のように変更しました。
このスクリプトをコマンドに渡してみましょう!
"C:/Program Files/Autodesk/Maya2022/bin/maya.exe" -batch -command "batchTest"
そうすると、『_____batch01.ma』というファイルで保存できてるハズです!
mayabatch とMayaのバッチモードの違い【画面が出るか否か】
- mayabatch.exe -batch -command “やりたい処理”
- maya.exe -batch -command “やりたい処理”
↑の2つでやってることはほぼ同じですが、処理が終わった後の挙動が若干違います。
- mayabatch.exe -batch コンソール画面が出たまま
- maya.exe -batch コンソール画面は閉じる
このような違いがあります。
スタンドアロンで処理が実行できる点は変わらないので、どれを使うかは好みの問題かと思います。
私は変な画面でない方がいい派なので、maya.exe -batch を使いたいかなー
【まとめ】Mayaのスタンドアロンは状況に応じて バッチとプロンプトモードを使い分けよう
- maya -prompt 処理が終わった後も引き続き、処理を実行できる
- maya -batch コマンドに渡した処理が終わったら、Mayaを閉じる
バッチモードとプロンプトモードには、上記のような違いがあります。
使用頻度が高いのはバッチモードだと思いますが、「このファイルのここだけ修正したい!」といった場合は、プロンプトモードが有効かもしれませんね。
どちらもMayaをスタンドアロンで起動できることに変わりはないので、状況に応じて使い分けましょう!
以上です!
それでは!