Gracias Gracias:  2
Resultados 1 al 8 de 8

Tema: hacer "Keyable" un attributo

  1. #1
    Miembro Nuevo
    Fecha de ingreso
    Jul 2014
    Mensajes
    27

    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_KNEE_CTRL1.translateX;
    C_HARLEY_L_LEG_MASTER_CTRL.translateY = C_HARLEY_L_KNEE_CTRL1.translateY;
    C_HARLEY_L_LEG_MASTER_CTRL.translateZ = C_HARLEY_L_KNEE_CTRL1.translateZ;


    C_HARLEY_L_LEG_MASTER_CTRL.rotateX = C_HARLEY_L_KNEE_CTRL1.rotateX;
    C_HARLEY_L_LEG_MASTER_CTRL.rotateY = C_HARLEY_L_KNEE_CTRL1.rotateY;
    C_HARLEY_L_LEG_MASTER_CTRL.rotateZ = C_HARLEY_L_KNEE_CTRL1.rotateZ;

    Hasta aqui 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
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,848

    Re: hacer "Keyable" un attributo

    Necesitas usar el comando getAttr.
    character TD @ Walt Disney Animation Studios

    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

  3. #3
    Miembro Nuevo
    Fecha de ingreso
    Jul 2014
    Mensajes
    27

    Re: 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 que??

  4. #4
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,848

    Re: 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.
    character TD @ Walt Disney Animation Studios

    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

  5. #5
    Miembro Nuevo
    Fecha de ingreso
    Jul 2014
    Mensajes
    27

    Re: 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 expresion para activar visibilidad o no de otros objetos, y funciona bien. Eso si, el atributo de visibilidad queda bloqueado como decia en el primer post ya que esta permanentemente conectado.

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

    Lo raro es que todo funciona por separado.

    Tambien he probado con el comando switch , pero tampoco sale.

  6. #6
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,848

    Re: 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 'snap' para 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 operaciones, sino que leas sobre el comando xform. Usando xform -matrix -ws podrás alinear dos objetos independientemente de los valores locales que tengan, ya que tomará las coordenadas 'world' en lugar de las que tienen con respecto a su padre.
    character TD @ Walt Disney Animation Studios

    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

  7. #7
    Miembro Nuevo
    Fecha de ingreso
    Jul 2014
    Mensajes
    27

    Re: 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 'snap' para 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 3dmax y siempre he metido todo en un attribute holder del objeto en cuestion, 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 sera 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 operaciones, sino que leas sobre el comando xform. Usando xform -matrix -ws podrás alinear dos objetos independientemente de los valores locales que tengan, ya que tomará las coordenadas 'world' en lugar de las que tienen con respecto a su padre.
    Aqui es donde pongo cara de WTF estaba haciendo?

    Lo colocare asi no creo que haya problemas. Muchas gracias por todo.

  8. #8
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,848

    Re: 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 como 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.
    character TD @ Walt Disney Animation Studios

    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

Temas similares

  1. Respuestas: 0
    Último mensaje: 13-10-2015, 19:42
  2. Respuestas: 0
    Último mensaje: 28-07-2015, 21:49
  3. Respuestas: 4
    Último mensaje: 28-06-2015, 20:33
  4. Evento Gratuito - Sábados Creativos "Horror Light", con CINEMA 4D
    Por AcademyMaxon en el foro Eventos, Festivales, Concursos, Encuentros...
    Respuestas: 0
    Último mensaje: 29-04-2015, 18:31
  5. 3ds Max Miniaturas para juego de mesa"Battle Arena Show"
    Por german01 en el foro Trabajos Finalizados
    Respuestas: 2
    Último mensaje: 09-04-2015, 00:24

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •