モジュールワークフローの使い方
Maya Module workflow
Mayaにはプラグインモジュールという機能があります。
このプラグイン モジュールを作成すれば、ネットワーク上の任意の場所またはローカルに保存できるプラグインの配布可能インストールを作成できるようになります。
場所を管理するために Maya インストールやその他のハードにファイルを書き込む必要がなくなります。
モジュール ファイルを使用することで、インストールされている数多くのプラグインの場所を別のスクリプト フォルダに変えるなど、
モジュールの配布を簡単に変更できるようになります。
複数のバージョンのプラグインをインストールしたり、OS、Maya のバージョン、および言語設定に基づいて異なるバージョンをロードしたりすることも可能です。
モジュール フォルダの構造
モジュール ファイルでは、モジュールの場所を指定します。
場所は、読み取られる .mod
ファイルの場所を基準としたパス、または絶対パスで指定できます。
モジュール フォルダの構造を上書きするには、次の構文を使用します。<オーバーライドするフォルダ>: <このフォルダの新しい場所>
モジュールのロードのための条件を指定する
OS 条件
PLATFORM: win64
PLATFORM: mac
PLATFORM: linux
システムロケール
LOCALE:en_US
LOCALE:ja_JP
etc...
Maya のバージョン
MAYAVERSION: 2017
MAYAVERSION: 2018
MAYAVERSION: 2019
MAYAVERSION: 2020
例
+ MAYAVERSION:2020 PLATFORM:mac LOCALE:ja_JP maya_module_example 1.0.0 ../maya_module_example
上のコードではMayaのバージョンが2020、OSがmac、システム ロケール設定が日本語の場合にのみ、maya_module_example プラグインがロードされます。
モジュールの場所を基準とした値を使用して環境変数を指定することもできます。
変数の現在値にアペンドする
PYTHONPATH +:= scripts
XBMLANGPATH +:= icons
モジュール パスを取得する
getModulePath –moduleName “maya_module_example”
既知の制限事項
次のフォルダ タイプは、リーガル モジュール リソース パスとしてサポートされていません。
モジュール システムでは、名前に次の拡張子が付いたフォルダは無視されます。.so
, .ml
, .bundle
, .py
, .dll
,.framework
, .plugin
, .plist
, .app
,.pkg
, .rtfd
, .download
, .sparsebundle
Learning
現在のMAYA_MODULE_PATHを調べる
MAYA_MODULE_PATHは最初からいくつか提供されています
Pythonで確認
import os
def getpath(env="MAYA_MODULE_PATH"):
for e in os.environ.get(env).split(";"):
print e
getpath()
Module Managerで確認
modulesフォルダーを作成する
先程調べたMAYA_MODULE_PATHのDocuments以下のpathはデフォルトでは作成されていないためC:/Users/
に移動しC:/Users/
を作成する
モジュールで入れたいscriptと任意の.modを用意するC:/Users/
C:/Users/
maya_module_exampleの中身
maya_module_example/mel
{
string $whatIs=`whatIs "echo_mel.mel"`;
string $path=`substitute "Mel procedure found in: " $whatIs ""`;
$path=dirname( $path + "/echo_mel.mel");
print $path;
print "\n";
}
maya_module_example/python
import os
def file_path():
print("__file__: %s" % __file__)
file_path()
maya_module_example/scripts
{
string $whatIs=`whatIs "echo_mel.mel"`;
string $path=`substitute "Mel procedure found in: " $whatIs ""`;
$path=dirname( $path + "/echo_mel.mel");
print $path;
print "\n";
}
import os
def file_path():
print("__file__: %s" % __file__)
file_path()
PCの環境に合わせて.mod
を書いていく
PCの環境
環境
OS : Windows 64bit
Maya: 2017.4
.modの場所( C:/Users/
)を基準にしてモジュールの場所を指定する相対パスを指定する方法と
モジュールの場所( ../maya_module_example
)を基準にしてスクリプト フォルダの場所を指定する相対パスを指定できる
今回は.modの場所を基準にしてモジュールの場所指定する方法を使用している
+ MAYAVERSION:2018 PLATFORM:win64 LOCALE:en_US maya_module_example 1.0.0 ../maya_module_example
この例では、Mayaのバージョンが2018、OSがWindows64bit、システムロケール設定がen_USの場合にのみ、maya_module_exampleプラグインがロードされます。
カスタム環境変数を設定する
カスタム環境変数を設定するには、次の構文を使用します。MYVAR = MYVALUE
モジュールの場所を基準とした値を使用して環境変数を指定することもできます。その場合は「 :=
」構文を使用します。PYTHONPATH := python
変数の現在値にアペンドするには、+ または : 演算子を使用します。PATH +:= bin
今回は以下のカスタム環境変数を設定しています
+ MAYAVERSION:2018 PLATFORM:win64 LOCALE:en_US maya_module_example 1.0.0 ../maya_module_example
MAYA_SCRIPT_PATH +:= scripts
MAYA_SCRIPT_PATH +:= mel
PYTHONPATH +:= scripts
PYTHONPATH +:= python
XBMLANGPATH +:= icons
Module Managerで再確認
modules.modの項目が追加され、モジュールプラグインとしてmaya_module_exampleが追加されているのが確認できました
動作確認をする
source "echo_mel.mel";
source "echo_scripts.mel";
import echo_scripts
import echo_python
reload(echo_scripts)
reload(echo_python)
ディスカッション
コメント一覧
まだ、コメントがありません