Справочная информация:
Таким образом, благодаря помощи пользователя Theodox я смог выяснить, как создавать узлы в редакторе узлов с префиксами имен на основе соединения, которое вы загружаете вполе выбора.
Однако: я хочу сделать еще один шаг и сделать так, чтобы не только узлы создавались с совместными префиксами имен: они также соединяли переводы узлов, созданных через connectAttr.
Проблема?
В настоящее время мне не хватает знаний, чтобы выполнить эту работу, и я не могу найти что-либо в Интернете, поэтому любая помощь будет наиболее ценной
Код:
Я пробовал строки кода, такие как:
cmds.connectAttr( sel[0] + '.rotate', sel[1] + '.rotate' )
или
cmds.connectAttr( n=text_value +'_firstGuy', n=text_value +'_secondGuy' )
Я знаю, что могу создавать отдельные текстовые поля икнопки, чтобы загрузить узлы и соединить их таким образом, но с помощью ярлыка, который я кодирую, все узлы, которые я создал, будут загружены слишком много, поэтому было бы проще, если бы я мог просто создать узлы с их соединениями,Я опубликую приведенный ниже код для всех, кто захочет разобраться с этим:
import maya.cmds as cmds
if cmds.window(window, exists =True):
cmds.deleteUI(window)
window = cmds.window(title='DS Node Connector demo')
column = cmds.columnLayout(adj=True)
def set_textfield(_):
sel = cmds.ls(selection=True)
cmds.textField(sld_textFld, edit=True, text=sel[0])
def nodebuilder(_):
text_value = cmds.textField(sld_textFld, q = True, text=True)
if text_value:
print "created:", cmds.createNode( 'transform', n=text_value +'_firstGuy' )
print "created:", cmds.createNode( 'transform', n=text_value +'_secondGuy' )
# Connect the translation of two nodes together
print "connected:", cmds.connectAttr (sel[0] +'.t', sel[1] + '.t')
#print "connected:", cmds.connectAttr( '_firstGuy.t', '_secondGuy.translate' )
# Connect the rotation of one node to the override colour
# of a second node.
#print "connected:", cmds.connectAttr( '_firstGuy.rotate', '_secondGuy.overrideColor' )
else:
cmds.warning("select an object and add it to the window first!")
sld_textFld = cmds.textField('sld_surfaceTextHJ', width =240)
load_button = cmds.button( label='Load Helper Joint', c = set_textfield)
node_button = cmds.button( label='Make Node', c = nodebuilder)
cmds.showWindow(window)
Мой ожидаемый результат:
После нажатия «make node» после загрузки соединенияпосле нажатия «загрузить вспомогательное соединение», когда «_firstGuy» и «_secondGuy» создаются с префиксом имени соединения, их переводы будут соединены.Для проверки этого помогает открыть редактор узлов.