Resultados 1 al 8 de 8

Hacer keyable un attributo

  1. #1
    Fecha de ingreso
    Jul 2014
    Mensajes
    54

    Maya Hacer keyable un attributo

    Hola, estoy con el expression editor de Maya.

    Quiero alinear objetos, por lo que al activar el atributo FK_IK, se alineen ciertos objetos.

    En resumen:
    If (C_HARLEY_L_LEG_MASTER_CTRL. FK_IK == 1)
    C_HARLEY_L_LEG_MASTER_CTRL.translateX = C_HARLEY_L_KNE_CTRL1.translateX;
    C_HARLEY_L_LEG_MASTER_CTRL.translateY = C_HARLEY_L_KNE_CTRL1.translateY;
    C_HARLEY_L_LEG_MASTER_CTRL.translateZ = C_HARLEY_L_KNE_CTRL1.translateZ;.

    C_HARLEY_L_LEG_MASTER_CTRL.rotateX = C_HARLEY_L_KNE_CTRL1.rotateX;
    C_HARLEY_L_LEG_MASTER_CTRL.rotateY = C_HARLEY_L_KNE_CTRL1.rotateY;
    C_HARLEY_L_LEG_MASTER_CTRL.rotateZ = C_HARLEY_L_KNE_CTRL1.rotateZ;.

    Hasta aquí bien, el problema es que queda bloqueada la traslacion y rotacion.

    Es posible que una vez alineado cada atributo vuelva a ser keyable como siempre?

  2. #2
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Hacer keyable un attributo

    Necesitas usar el comando getAttr..

  3. #3
    Fecha de ingreso
    Jul 2014
    Mensajes
    54

    Hacer keyable un attributo

    Gracias Iker.

    He puesto este script en el Expression editor: (me falta la otra condicion, es por ir probando).
    if (C_HARLEY_L_ARM_MASTER_IKFK_CTRL. SNAP_TO ==1).

    setAttr C_HARLEY_L_ARM_FK_CTRL.rx ` getAttr C_HARLEY_L_ARM1_IKBONE_B.rx`;

    setAttr C_HARLEY_L_ARM_FK_CTRL.ry ` getAttr C_HARLEY_L_ARM1_IKBONE_B.ry`;
    setAttr C_HARLEY_L_ARM_FK_CTRL.rz ` getAttr C_HARLEY_L_ARM1_IKBONE_B.rz`;.

    SNAP_TO es un atributo enum y keyable con dos opciones: FK o IK.

    Pero no me funciona, alguien sabe por qué?

  4. #4
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Hacer keyable un attributo

    Código:
    if (C_HARLEY_L_ARM_MASTER_IKFK_CTRL. SNAP_TO ==1)
    .

    Debería ser algo como:
    Código:
    if (getAttr C_HARLEY_L_ARM_MASTER_IKFK_CTRL. SNAP_TO) == 1
    .
    ¿Vienes de usar MaxScript o JavaScriptú MEL funciona a base de comandos; no es un lenguaje orientado a objetos. Si te sientes más cómodo con tu manera de trabajar, echa un vistazo a pyMel, que es un módulo que te permite tratar la información de la escena de manera parecida a como lo estás intentando..

  5. #5
    Fecha de ingreso
    Jul 2014
    Mensajes
    54

    Hacer keyable un attributo

    Efectivamente vengo de Maxscript, pero no me importa amoldarme a otro lenguaje.

    La Expression no funciona, lo que es el condicional, tanto.
    if (C_HARLEY_L_ARM_MASTER_IKFK_CTRL. SNAP_TO ==1)

    como.

    If (getAttr C_HARLEY_L_ARM_MASTER_IKFK_CTRL. SNAP_TO) == 1
    parece que hacen lo mismo.

    De hecho, el primero lo estoy usando en otra expresión para activar visibilidad o no de otros objetos, y funciona bien. Eso sí, el atributo de visibilidad queda bloqueado como decia en el primer mensaje ya qué esta permanentemente conectado.

    Luego cuando le integro el resto de la expresión no funciona. Solo funciona cuando le doy al botón crear expresión (del expression editor), si se cumple la condición en ese momento. Posteriormente nada. Parece como si no estuviera comprobando el valor que active la condicion. (tengo la opción de evalúate always conectada).

    Lo raro es que todo funciona por separado.

    También he probado con el comando switch, pero tampoco sale.

  6. #6
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Hacer keyable un attributo

    ¿Entiendo que estás intentando meter el código de IKFK dentro de una expresión en Maya, dentro de Expression Editor? ¿Cuál es el motivo? Si lo que estás haciendo es un snappara alinear una solución IK a una FK, ¿por qué no lo haces como una herramienta aparte? Por ejemplo, un botón en una shelf.

    Te recomiendo también, releyendo el contenido de tus mensajes, que no uses los valores locales de posición y rotación para hacer estas operación, sino que leas sobre el comando XForm. Usando XForm -matrix -ws podrás alinear dos objetos independientemente de los valores locales que tengan, ya qué tomará las coordenadas worlden lugar de las que tienen con respecto a su padre.

  7. #7
    Fecha de ingreso
    Jul 2014
    Mensajes
    54

    Hacer keyable un attributo

    ¿Entiendo que estás intentando meter el código de IKFK dentro de una expresión en Maya, dentro de Expression Editor? ¿Cuál es el motivo? Si lo que estás haciendo es un snappara alinear una solución IK a una FK, ¿por qué no lo haces como una herramienta aparte? Por ejemplo, un botón en una shelf.
    Bueno, vengo de 3DS Max y siempre he metido todo en un attribute holder del objeto en cuestión, simplemente me parecio más elegante crear un atributo sobre la huella con un desplegable del tipo SNAP TO y elegir entre IK o FK. Aunque si lo dices supongo que, será más normal ponerlo directamente en el shelf con un script.
    Te recomiendo también, releyendo el contenido de tus mensajes, que no uses los valores locales de posición y rotación para hacer estas operación, sino que leas sobre el comando XForm. Usando XForm -matrix -ws podrás alinear dos objetos independientemente de los valores locales que tengan, ya qué tomará las coordenadas worlden lugar de las que tienen con respecto a su padre.
    Aquí es donde pongo cara de WTF estaba haciendo?
    Lo colocare así no creo que haya problemas. Muchas gracias por todo.

  8. #8
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,668

    Hacer keyable un attributo

    Lo más cómodo suele ser tirar de botones para shelves. A partir de ahí, puedes complicarte todo lo que necesites. Investiga sobre scriptjobs y scriptnodes (similares a los callbacks de MAX; mucho ojo, porque podrían ralentizar tu escena), porque los segundos pueden ayudarte a hacer lo que necesitas, y se guardan con la escena (los primeros no), de manera que, podrías encapsularlo todo. De todos modos, si el Rig que estás montando es para una empresa, en cuanto referencien tu personaje (que es cómo se suele trabajar), todo ese código que vive dentro del personaje dejará de funcionar, puesto que el namespace es distinto. Ten en cuenta estas variables.

Temas similares

  1. Pinterest que hacer y que no hacer
    Por desing2000 en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 12-01-2017, 23:41
  2. Sugerencias,empezando a hacer alimentos y no se como hacer unas hojas de lechuga
    Por CesarAbades1 en el foro Materiales y Texturizado
    Respuestas: 8
    : 15-11-2012, 20:03
  3. Respuestas: 1
    : 03-05-2010, 19:55
  4. Yafray No se como hacer hacer una iluminación esterior con Yafray
    Por LCD187 en el foro Render, Iluminación y Cámaras
    Respuestas: 3
    : 21-05-2009, 05:03
  5. Hardware No se que hacer
    Por devalver en el foro Hardware
    Respuestas: 1
    : 28-05-2007, 23:59