😕
MASH Visibility のFalloffでアイコンが見失われる場合の対処【Maya2016 Ext2】
Maya 2016 Extension 2(a.k.a 2016.5)のMASHを使っていて遭遇したエラーです。
2016.5がRender SetupやMASHなどいろいろ追加された面白いバージョンなのですが、2017で正式版となる機能のベータという側面も多々あります。
そんなわけでMASHも変なエラーに遭遇したりします。たとえば
# Error: file: C:/Program Files/Autodesk/Maya2016.5/plug-ins/MASH/scripts/MASHfalloffButtons.mel line 22: 'MASH_QListWidgetExtend' object has no attribute 'iconsPath'
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# File "C:\Program Files\Autodesk\Maya2016.5\plug-ins\MASH\scripts\MASHlistQtWidget.py", line 54, in build_qt_widget
# widget = MASHlistQtWidget(node, wantedType, attr, sourceAttr, postCmd, label)
# File "C:\Program Files\Autodesk\Maya2016.5\plug-ins\MASH\scripts\MASHlistQtWidget.py", line 33, in __init__
# self.listWidget = MASH_QListWidgetExtend(wantedType, node, attr, sourceAttr, postCmd, label)
# File "C:\Program Files\Autodesk\Maya2016.5\plug-ins\MASH\scripts\MASHlistQtWidget.py", line 95, in __init__
# self.checkConnections()
# File "C:\Program Files\Autodesk\Maya2016.5\plug-ins\MASH\scripts\MASHlistQtWidget.py", line 128, in checkConnections
# icon = QtGui.QIcon(self.iconsPath+"ae_MASH_Falloff.png")
# AttributeError: 'MASH_QListWidgetExtend' object has no attribute 'iconsPath' #
Falloff Objectのリストでcreateする分には問題ありませんが、
そのシーンを閉じて開いて、
Falloff Objectのリストを見ようとすると、上記のエラーが出てしまいFalloff Objectのリストが開きません。
MASH_QListWidgetExtend オブジェクトの iconsPath アトリビュートが、定義されるより先に呼ばれているのでエラーになっているようです。
〜Maya2016.5\plug-ins\MASH\scripts
にインストールされている「MASHlistQtWidget.py」を開いてみてみます。
line 76から MASH_QListWidgetExtend クラスの定義が始まっていますが、
iconsPath はその最後の方で定義されています。↓こういう内容
mashPath = mel.eval('getenv("MASH_LOCATION")')
self.iconsPath = mashPath+'icons/'
なのに、それより前に書かれている「checkConnections」関数の中で iconsPath が使われてしまってます。
さきほどの2行をcheckConnectionsより前に書き写せば、エラーが発生しなくなります。
多分2016.5以降のバージョンでは無くなっているエラーだと思うので、対処は不要です。多分。
Discussion