mayaがerrorを吐いて鬱陶しい時
メッシュデータをimportしただけでこんなエラーを吐く時
RuntimeError: file <maya console> line 1: Plug-in, "maxwell", was not found on MAYA_PLUG_IN_PATH. #
プラグインが見つかりませんエラー。
これには2通りあって、
1, 必要なプラグインが読み込めず、シーンの構築に失敗している場合
Errors have occurred while reading this scene that may result in data loss
と出たり、ダイアログがドゥンと出てきてシーンの構築に失敗していることを教えてくれる。
この際、プラグインによって管理されているノードがあった場合はunkownノードとしてとりあえず作成される。
データとして欠損が起きてしまっているので、プラグインを読めるようにmayaの環境を整理する必要がある。
2, 特に必要ないけど読めと言われているプラグインが読み込めていない。シーンの構築は成功している。
所謂unkwonプラグインが発生している。
データ上は特に何も影響を及ぼさないが、データ上にこれらのプラグインを読み込むようにと指示が書き込まれてしまっている。
何がいけないの?データ壊れてるわけじゃないからいいじゃん。
というご意見もあろう。
unknownプラグインを一生懸命探しに行くので、ファイルを読み込む時間が長くなるというデメリットがある。
え?大した時間かからなくない?数秒じゃん?
というご意見も頂く。
1ファイルなら・・・・・
mayaでリファレンスを使ってファイルを複数参照している場合、
そのファイル数 x unknownプラグイン探す時間 になるので シーンによっては分単位かかることも。
なので、除去したほうがメリットは多い。
maya2015の途中から unknownPlugin というコマンドが実装されたので、
それを使用して確認と除去が行える。
unkownプラグインの確認
import maya.cmds as cmds
plugins = cmds.unknownPlugin(query = True, list =True)
戻り値はプラグインのリストかNone
除去する場合は
cmds.unknownPlugin(plugin, remove = True)
なので、これらを合わせて
import maya.cmds as cmds
plugins = cmds.unknownPlugin(query = True, list =True) or []
for plugin in plugins:
cmds.unknownPlugin(plugin, remove = True)
print " <<unload " +plugin+ ">>"
unkownプラグインの厄介なところは、
該当シーンを open / import / reference するとnewシーンにしてもunkownプラグイン情報が残り続け、
関係ないデータを開いて保存すると、そのデータにもunkownプラグイン情報が書き込まれてしまう。
ウィルスがごとく感染していってしまう。
なので、見つけたら即消すのがお勧め。