2024年4月22日月曜日

ロードされたプラグインをチェックする

 mayaはプラグインを使って機能を追加することがあります。
 バージョンアップでの新機能の中にも、新機能専用のノードやアトリビュートがプラグインによって作成されて実装されているものもあります。

 そういったプラグインの必要なノードがシーン内に存在していた場合、保存した .maファイル内には requiresというコマンドでプラグインをロードさせるような処理が仕込まれます。

C:\Program Files\Autodesk\Maya2025\Examples\Tutorials\Anim
Interactive_Animation.ma

 requiresに記述されているプラグインがインストールされていない場合には、エラーが出て Open Sceneは失敗した扱いになります。
 このシーンファイルの場合だと、mayatomr(Mental Ray)は確実にダメですね。

 で、ここでロードされたプラグインは、新規シーンを作成したり、別シーンを開いたりしてもアンロードされません。なので、プラグインロードの必要が全くないシーンファイルなのに requiresが追加されてしまう危険性があります。

 シーンを開くたびに Plugin Managerを監視している人なんかは、まず居ないと思うので、スクリプトを使って監視してみようと思います。

tryCheckPlugin

 このスクリプトを実行すると、新たにプラグインがロードされていないかを調査するスクリプトジョブが常駐します。

 tryCheckPlugin.melと同じフォルダ内にある tryCheckPlugin.iniには、ロードされていても構わないプラグイン名を記述することでチェックから除外することができます。環境に合わせて増減させてみてください。
 もしも .iniファイルを見つけられなかった場合には、スクリプトを実行した時にロードしているプラグインを除外対象にするので、反応しないケースが多くなるかもしれません。

 このスクリプトを常駐させた状態で上のファイルを開くと、

 みたいなダイアログが出てきます。
 ここから、新規シーン([Ctrl]+[n])もしくは、file -f -new; コマンドを実行してシーンを初期化すると、 

 のように、プラグインのロードが引き継がれています。さすがに、プラグインのインストールされていない Mayatomr(Mental Ray)は消えていますがね。

 ここに残っているのはノードを作成するタイプのプラグインばかりなので、シーンを保存しても requiresに残る確率は低いのですが、Arnoldみたいなアトリビュートを作るタイプのプラグインが在った場合には確実に requiresが追記されてしまいます。

 シーンを開く場合、本来の手順では Mayaを再起動してからシーンファイルを開く方がベストなのですが、再起動せず解消したい場合には、プラグインの除去ツールを使用すると良いかもしれません。
 参照:不明なプラグインを削除するスクリプト

 ただし、アニメーション用のシーンファイルでモデルファイルがリファレンスされてる場合、リファレンスしているモデルファイルから対処しないと解決できない事もあるので要注意です。



0 件のコメント:

コメントを投稿