【Maya】Optimize scenes size をコマンドで使う【Python】

タイトル通り、OptimizeScenesSizeをコマンドラインで使用するときのメモ。

シーンをクリーンナップするときに使用するOptimizeScenesSizeをスクリプトのコマンドとして使用したい時は、

コマンドとしてはこの1行ですむのですが、このままだとオプションの設定ができないのと、コマンドを実行すると「ほんとにやっていいの?」というダイアログが表示されてしまい、処理の途中に埋め込むには非常に都合が悪い。
ので、なんとかならんものかと調べてみました。

optionVarの設定

Optimizeする設定は、optionVarを参照しています。
optionVarとは、MayaのSettingDirに保存されている Mayaを落としても保存されている変数のようなものです。
melの場合は、optionVar コマンドを使用して、値をセット・ロードしますがこれがまた非常にわかりづらい。
それが、pymelを使用すると pm.optionVar という名前のDic型の変数を使用してセット・ロードできるので非常に便利です。

で。

optimize scenes size の設定に関するoptionVar は以下のとおり。

nurbsSrfOption
nurbsCrvOption
unusedNurbsSrfOption
locatorOption
ptConOption
pbOption
deformerOption
unusedSkinInfsOption
expressionOption
groupIDnOption
animationCurveOption
clipOption
poseOption
snapshotOption
unitConversionOption
shaderOption
cachedOption
transformOption
displayLayerOption
renderLayerOption
setsOption
partitionOption
referencedOption
brushOption

shadingNetworksOption

並び順はOptimizeのScript内で書かれていた順番ですが、たぶんUIの並び順とイコールだと思われます。
設定方法は、 0 か 1 か。
1の場合は、Optimizeを実行します。
コマンド的には

こんなかんじに、通常のDic型変数を扱うのと同じように設定できます。
注意点は、スクリプトで設定してしまうと 次に使うときにも設定が残ってしまうこと(Mayaの設定に残ってしまう)
なので、特定のもののみOptimizeしたい場合は、予め今の設定を変数に保存して
自分の使いたい設定は1つかわないのは0にセットし、
Optimize実行後は、元の設定に戻す・・・みたいにする必要がああります。
めんどくさいです。

ダイアログを出さない方法

実行していいのか聞いてくるダイアログを消す方法は、

Optimize 実行前に、上記コマンドを追加して、環境変数を作成すればOKです。
コマンドで環境変数を設定した場合は、Mayaを再起動するまで有効になります。
ダイアログを出さない 設定は、どうやら MAYA_TESTING_CLEANUP という環境変数がセットされていれば良いらしく、中にセットされている値はなんでも良い模様。

今回は作っていませんが、引数で与えたものをOptimizeする みたいなコマンドを作っておくと後々便利かもしれません。

ちなみに、今回のコマンドの探し方は Script下をOptimize でGrepしてコマンドを探し、
内部で optionVar 使ってる 環境変数のあるなしを調べてる 行をみつけて、そこから逆算して調べました。
隠れたコマンドを探すのはなかなかメンドイです(´・ω・`)

【Maya】Optimize scenes size をコマンドで使う【Python】」への2件のフィードバック

  1. 参考になりました!1箇所誤字があるようです。
    ☓:MAYA_TESTING_CREANUP
    ○:MAYA_TESTING_CLEANUP

コメントを残す

メールアドレスが公開されることはありません。


*