Я пытаюсь создать скрипт в Python в Maya, который позволит мне динамически изменять изображение определенной кнопки c и ничего больше об этой кнопке. Я сталкиваюсь с некоторыми серьезными проблемами, которые я подробно опишу ниже:
import maya.cmds as cmds
import maya.mel as mel
cmds.refresh(cv=1, f=1)
gShelfTopLevel = mel.eval("global string $gShelfTopLevel; $temp = $gShelfTopLevel;")
currentShelf = cmds.tabLayout(gShelfTopLevel,q=1,st=1)
buttons = cmds.shelfLayout(currentShelf,q=1,ca=1)
buttonName = "Button 1"
for button in buttons:
if cmds.shelfButton(button, q=True, l=True) == buttonName:
cmds.shelfButton(button, h=35, w=35, e=1, i="icons/axis_Object.png", p=currentShelf )
#If this was working I'd have an if statement here for a second image.
break
Toggler()
class Toggler():
if ctx == 'moveSuperContext':
tool = 'Move'
mode = cmds.manipMoveContext(tool, q=1, m=1)
if mode != 2:
cmds.manipMoveContext(tool, e=1, m=2)
else:
cmds.manipMoveContext(tool, e=1, m=0)
if ctx == 'RotateSuperContext':
tool = 'Rotate'
mode = cmds.manipRotateContext(tool, q=1, m=1)
if mode != 0:
cmds.manipRotateContext(tool, e=1, m=0)
else:
cmds.manipRotateContext(tool, e=1, m=1)
if ctx == 'scaleSuperContext':
tool = 'Scale'
mode = cmds.manipScaleContext(tool, q=1, m=1)
if mode != 0:
cmds.manipScaleContext(tool, e=1, m=0)
else:
cmds.manipScaleContext(tool, e=1, m=2)
Во-первых, это скрипт. То, что должна делать кнопка, определено внизу, и, насколько я могу судить, все в порядке. Это был уже существующий код, который мне передали.
Мои проблемы заключаются в следующем:
- Изображение изменяется для всех кнопок на панели. Это невероятно бесполезно, и я не уверен, почему это так.
- Названия всех кнопок изменяются на то, что является buttonName. Таким образом, в этом случае все кнопки переименовываются в «Button 1», что также невероятно расстраивает меня.
- Сценарий оригинальной кнопки клонируется для всех остальных кнопок.
Приложение к 2: я пытался переименовать мою переменную buttonName при вероятности того, что buttonName является переменной intrinsi c, назначенной этим сценариям кнопок.
В прошлом мне удавалось выполнить sh редактирование просто изображение кнопки со следующим MEL-кодом:
shelfButton -edit -image "icons/axis_World.png" $button;
Я не могу понять, что является уникальным в этом коде по сравнению с тем, что я сделал в Python, но ясно, что что-то происходит для я.
Любая помощь приветствуется, потому что на данный момент я в полном недоумении. Похоже, что нажатие любой кнопки на полке вызовет повторение всех кнопок на этой полке.
Спасибо!