Maya Moduleについて

Mayaにおけるツールの配布形態の一つであるModuleについてのメモ。
ツール群を機能やプロダクトでModuleに分けることで最小構成の切り出しなどをやりやすくしたいというハナシ。

Module定義ファイル(.mod)

Moduleの名前、バージョン、Moduleルートディレクトリパスを記述する。
Module毎にロードする条件(win64, linux等)を指定可能。
上記のほかにその他環境変数の設定が可能。
Maya起動時に MAYA_MODULE_PATH環境変数ディレクトリが検索され、Moduleがロードされる。

Module定義ファイルの詳細
help.autodesk.com

記法

+ MAYAVERSION:バージョン条件 PLATFORM:プラットフォーム条件 LOCALE:ロケール条件 Module名 バージョン番号 Moduleルートディレクトリパス
環境変数: 値
環境変数: 値
続く...

条件は省略できる。
環境変数記述は空の行や無効な行があるとそれ以降は無視される模様
scripts, icons, plug-ins, presets の4つの環境変数は、それぞれMAYA_SCRIPT_PATH 等の対応する環境変数にAppendされる。
記述しなかった場合はそれぞれ相対パスで ./scripts 等がデフォルト設定される。
環境変数にパスを設定する際に
[r] scripts: ディレクトリパス
のように [r] キーワードをつけるとサブディレクトリを再帰的に走査する。
デフォルトではサブディレクトリは無視される。

設定例

ロード条件無しで、Moduleのscriptsに関してのみサブディレクトリを再帰的に走査する構成

f:id:nagakagachi:20211006193329p:plain
フォルダ構成
test_module.mod
+ test_module1.0.0 ../module_root
icons: ./icons
plug-ins: ./plug-ins
presets: ./presets
[r] scripts: ./scripts
Moduleロード設定

規定のmodulesディレクトリにmodファイルを置くことでもロードされるが、Maya.envで上記modファイルのあるディレクトリをMAYA_MODULE_PATHに指定しても良い。

MAYA_MODULE_PATH = test_module.modのディレクトリパス

その他

以下のページでは起動時にModule下のuserSetup.pyをそれぞれ呼んでくれるとのことだが、公式情報がまだ見つからないので手元で検証が必要。
Maya起動時に最初に見つかったuserSetup.pyしか呼ばれない場合は、複数ModuleがuserSetup.pyでそれぞれ個別のセットアップ処理をするということができないので別の方法を考える。
hesperas.blog134.fc2.com