es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Conecte múltiples atributos diferentes entre dos nodos diferentes.

Estoy intentando conectar automáticamente varios atributos a la vez.
introducir aquí la descripción de la imagen

Actualmente estoy creando dos listas diferentes, una para el nodo izquierdo y otra para el derecho.
Estoy listando allí los atributos y luego quiero, con un bucle, conectar cada un atributo de la lista izquierda al atributo coordenada de la lista derecha. (Ambas listas tienen el mismo número de elementos).
Esto es lo que tengo por el momento, pero aparece un error en el bucle:

import maya.cmds as cmds


left_LIST = {}
customAttrList = cmds.listAttr('null1',k=True,ud=True)
if customAttrList:
    for attr in customAttrList:
        left_LIST[attr] = cmds.getAttr('null1'+'.'+attr)
print left_LIST


right_LIST = cmds.aliasAttr('blendShape1', q=1)
print right_LIST

i=0

for i in range(len(left_LIST)):
    cmds.connectAttr('null1.' + left_LIST[i], 'blendshape1.'+ right_LIST[i])
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para conectar automáticamente varios atributos a la vez en Maya utilizando Python, puedes crear dos listas de atributos para conectar. Una lista para el nodo izquierdo y otra para el nodo derecho. Ambas listas deben tener el mismo número de elementos.

    Puedes comenzar usando el comando listAttr para obtener los atributos del nodo izquierdo y almacenarlos en un diccionario. Luego, usa el comando aliasAttr para obtener los atributos del nodo derecho y almacenarlos en una lista.

    Luego, puedes usar un bucle para conectar cada atributo en la lista izquierda al atributo de coordenada correspondiente en la lista derecha. Puedes usar el comando connectAttr para esto concatenando los nombres de atributos y los nombres de nodos con un punto.

    Aquí hay un ejemplo de código que te ayudará a conectar automáticamente varios atributos a la vez:

    import maya.cmds as cmds
    
    # Obtén los atributos del nodo izquierdo y almacénalos en un diccionario
    left_dict = {}
    customAttrList = cmds.listAttr('null1', k=True, ud=True)
    if customAttrList:
        for attr in customAttrList:
            left_dict[attr] = cmds.getAttr('null1.' + attr)
    print left_dict
    
    # Obtén los atributos del nodo derecho y almacénalos en una lista
    right_list = cmds.aliasAttr('blendShape1', q=1)
    print right_list
    
    # Recorre cada atributo en la lista izquierda y conéctalo al atributo correspondiente en la lista derecha
    for i in range(len(right_list)):
        cmds.connectAttr('null1.' + left_dict.keys()[i], 'blendShape1.' + right_list[i], f=True)
    

    Esto debería ayudarte a conectar automáticamente varios atributos a la vez en Maya utilizando Python.

Comments are closed.