Resultados 1 al 2 de 2

Tema: Problema con Transformation Constraint en Blender al conectar con múltiples Vertex

  1. #1
    Fecha de ingreso
    Aug 2005
    Mensajes
    1,605

    Question Problema con Transformation Constraint en Blender al conectar con múltiples Vertex

    ¡Hola!

    Tengo un pequeño problema en Blender con el que me he quedado atascado a la hora de escribir un código sencillo.

    Tengo un grid llamado "Template" con 577 grupos de vértices y, por otro lado, tengo 577 "empties". A todos estos "empties" les he asignado una restricción de transformación para conectarlos con cada grupo de vértices del objeto "Template"... o al menos eso pensaba.

    Al mirar las propiedades de cualquiera de esas restricciones, veo que el grupo de vértices al que están conectados es siempre el mismo.

    Lo que necesito es que la restricción de transformación de, por ejemplo, "Empty" tenga asignado el grupo de vértices "groupy.000" del objeto "Template".

    Que la restricción de transformación de "Empty.001" tenga asignado el grupo de vértices "groupy.001" del objeto "Template".

    Que la restricción de transformación de "Empty.002" tenga asignado el grupo de vértices "groupy.002" del objeto "Template".

    Y así sucesivamente hasta llegar a que la restricción de transformación de "Empty.577" tenga asignado el grupo de vértices "groupy.577" del objeto "Template".

    Obviamente, hacer esto a mano sería una tortura, pero no sé programar en Python.

    Me pregunto si alguien que sepa del tema podría orientarme. Esto me suena como si alguien que sabe programar pudiera resolverlo en 2 minutos.

    ¿Alguna ayuda?
    Demoreel -----------------------> Demoreel

    LikedIn --------------------------> LikedIn profile

  2. #2
    Fecha de ingreso
    Apr 2002
    Mensajes
    25,945
    Puedes crear un script en Python que recorra cada "empty" y le asigne automáticamente la restricción de transformación correspondiente. Deberías utilizar un bucle que vaya desde el "empty" 0 hasta el 577, y dentro del bucle asignarle la restricción de transformación correspondiente.

    Podría ser algo así, el siguiente código primero selecciona el objeto "Template" con los grupos de vértices, luego recorre todos los empties y les asigna la restricción de transformación correspondiente. Dentro del bucle, crea el nombre del empty correspondiente y lo selecciona, crea el nombre del grupo de vértices correspondiente y lo selecciona del objeto "Template", crea una nueva restricción de transformación en el empty seleccionado, y finalmente asigna el objeto "Template" como objetivo y el grupo de vértices correspondiente como subobjetivo de la restricción.

    Código:
    import bpy
    
    # Seleccionar el objeto "Template" con los grupos de vértices
    template = bpy.data.objects["Template"]
    
    # Recorrer todos los empties y asignarles la restricción de transformación correspondiente
    for i in range(0, 577):
        empty_name = "Empty." + str(i).zfill(3)  # Crear el nombre del empty correspondiente
        empty = bpy.data.objects[empty_name]  # Seleccionar el empty correspondiente
        vertex_group_name = "groupy." + str(i).zfill(3)  # Crear el nombre del grupo de vértices correspondiente
        vertex_group = template.vertex_groups[vertex_group_name]  # Seleccionar el grupo de vértices correspondiente del objeto "Template"
        constraint = empty.constraints.new(type='TRANSFORM')  # Crear una nueva restricción de transformación en el empty
        constraint.target = template  # Asignar el objeto "Template" como objetivo de la restricción
        constraint.subtarget = vertex_group_name  # Asignar el grupo de vértices correspondiente como subobjetivo de la restricción
    "Copy Transform" en Blender

    Otra forma de solucionar el problema sería utilizar la herramienta de "Copy Transform" en Blender, la cual te permite copiar la posición y rotación de un objeto a otro. Para utilizarla en tu caso, deberías seleccionar el objeto "Template", luego seleccionar el primer "empty", presionar Shift y seleccionar el último "empty", y luego presionar Ctrl+C para copiar la transformación. De esta forma, cada "empty" tendría la misma posición y rotación que el objeto "Template", y podrías ajustar cada restricción de transformación individualmente.

    Vertex Weight Helper

    Podrías utilizar un addon de Blender llamado "Vertex Weight Helper", el cual te permite asignar restricciones de transformación a grupos de vértices de forma más sencilla. Para utilizarlo, deberías seleccionar el objeto "Template", ir a la pestaña de "Vertex Groups" en el panel de propiedades, seleccionar el grupo de vértices que quieres asignar a un "empty", presionar el botón de "Copy Vertex Group", seleccionar el "empty" correspondiente y presionar el botón de "Paste Vertex Group". De esta forma, cada "empty" tendría la restricción de transformación correspondiente.
    |Agradecer cuando alguien te ayuda es de ser agradecido|

Temas similares

  1. 3dsMax Problema con path constraint
    Por jesus524 en el foro Animación y Rigging
    Respuestas: 2
    : 31-08-2014, 03:08
  2. Blender Problema con el vertex Paint de Blender 2 54 beta
    Por Luarna en el foro Materiales y Texturizado
    Respuestas: 11
    : 27-06-2011, 19:02
  3. Blender Problema con constraint
    Por LEYTON en el foro Animación y Rigging
    Respuestas: 0
    : 10-04-2010, 15:57
  4. Maya Selección de múltiples vertex Maya 2009
    Por robfret en el foro Modelado
    Respuestas: 1
    : 08-04-2009, 15:59
  5. Cómo se puede conectar los vertex
    Por Black_World en el foro Modelado
    Respuestas: 4
    : 14-04-2007, 01:48