CG系 PRを含みます

【Maya】maya.exeにbatchとpromptのフラグを立てて実行する

記事内に商品プロモーションが含まれます

こんにちわ、兼業クリエイターのみっつです。

今回はMayaをスタンドアロンで起動させる方法を共有していきます。

Mayaをスタンドアロンで起動させる
  • maya -prompt
  • maya -batch -command “melコマンド”

実行方法は上記の2パターンです。

なお、maya -promptmaya -batchmaya.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ナシで操作できます。

https://www.mitsurog.com/wp-content/uploads/2023/01/2023-01-16_07h30_11.png

この状態を『プロンプトモード』っていうらしいです。

melコマンドを実行してみる

mel: ○○

とあるように、この画面からmelを実行する事ができます。

試しにpolyCubeと入力してみます。

polyCube
https://www.mitsurog.com/wp-content/uploads/2023/01/2023-01-16_07h33_28.png

このように返ってきました。

これは今、MayaのGUIを見ないで、polyCubeを作ったってことです。

みっつ

スクリプトエディタでmelを実行してるみたいな感じですね

ではこのファイルを保存してみましょう。

file -rename "C:/work/maya/prompt_test.ma”
file -save

https://www.mitsurog.com/wp-content/uploads/2023/01/2023-01-16_07h38_18.png

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』を実行します。

https://www.mitsurog.com/wp-content/uploads/2023/01/2023-01-16_07h52_43.png
promptTest
https://www.mitsurog.com/wp-content/uploads/2023/01/2023-01-16_07h53_10.png

すると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をスタンドアロンで起動できることに変わりはないので、状況に応じて使い分けましょう!

以上です!

それでは!

ABOUT ME
みっつ
CGアニメーター/リガー テクニカルアーティスト(TA)目指して精進中です 都内でゲーム作ってます。