마야를위한 스크립트를 만들려고합니다.이 스크립트는 빠른 선택 세트를 목록 내부의 인덱스로 만듭니다.maya에서 사용자 생성 버튼을 생성 할 때 문제가 발생했습니다.
이미 존재하는 버튼으로 정보를 저장하고로드해야하지만 기본 선택 세트 수가 충분하지 않은 경우 사용자가 새 버튼을 생성 할 수있게하려고합니다.
현재 새 버튼을 생성하는 버튼이 있습니다. 하나의 버튼 만 생성하면 제대로 작동합니다.
첫 번째 문제 : 두 번째 단추를 생성하면 첫 번째 생성 된 단추는 두 번째 생성 단추와 같은 목록 색인을 사용합니다.
새 버튼을 만듭니다 (버튼 4). 선택 사항을 문제없이 저장하고로드합니다. 다른 새로운 버튼 (버튼 5)을 만듭니다. 이제 버튼 4는 버튼 5와 마찬가지로 저장하고로드합니다.
두 번째 문제점 : 선택 항목을 이미 저장 한 경우 새 단추를 만들 수 없습니다. 나는 또한 확실하지 않다
import maya.cmds as mc
favsWindowName = 'favsWindow'
numButtons = 4
def favsWindowUI():
if mc.window(favsWindowName, exists=True):
mc.deleteUI(favsWindowName, wnd=True)
mc.window(favsWindowName, title="Favourites", resizeToFitChildren=True, bgc=(0.20, 0.50, 0.50), s=True)
mc.rowColumnLayout(nr=1)
mc.button("newSet", label="New Selection Set", c=("newButton()"))
mc.rowColumnLayout(nr=2)
mc.button("Load1", label="Load Slot 1", w=200, c=("Load(1)"))
mc.button("Sel1", label="Select Slot 1", w=200, c=("Sel(1)"))
mc.button("Load2", label="Load Slot 2", w=200, c=("Load(2)"))
mc.button("Sel2", label="Select Slot 2", w=200, c=("Sel(2)"))
mc.button("Load3", label="Load Slot 3", w=200, c=("Load(3)"))
mc.button("Sel3", label="Select Slot 3", w=200, c=("Sel(3)"))
mc.showWindow()
selList = []
def Load(favNum):
try:
# if a selection has already been loaded for this button, replace it.
selList[favNum-1] = mc.ls(sl=True)
except IndexError:
try:
#if the previous index exists
if selList[favNum-2] > 0:
# if a selection has not yet been loaded for this button, create it.
selList.append(mc.ls(sl=True))
except IndexError:
# if the previous index doesn't exist 'cause this is the first entry
if favNum == 1:
selList.append(mc.ls(sl=True))
else:
#if the previous index doesn't exist, raise an error.
mc.error("Load the previous selection first!")
def Sel(favNum):
try:
# if a selection has been loaded for this button, select it.
mc.select(selList[favNum-1], r=True)
except IndexError:
# if no selection has been loaded for this button, raise an error.
mc.error("No selection loaded.")
def newButton():
#generate a new button set using the next available index.
global numButtons
mc.button("Load"+str(numButtons), label="Load Slot "+str(numButtons), w=200, c=("Load(numButtons-1)"))
mc.button("Sel"+str(numButtons), label="Select Slot "+str(numButtons), w=200, c=("Sel(numButtons-1)"))
numButtons += 1
favsWindowUI()
이유는 newButton 기능에 Load(numButtons)
반대로 Load(numButtons-1)
를 사용할 필요가 생성 된 버튼으로 ...하지만 할 것 같다
내 코드는 지금까지입니다 장난.