Resultados 1 al 2 de 2

Con un script sencillo

  1. #1
    Fecha de ingreso
    Jan 2010
    Mensajes
    5

    Por favor con un script sencillo

    Hola. Soy un estudiante de la UPC que está realizando un trabajo de modelado y riggeado de Wall-e. Tengo los 2 tracks (las orugas o ruedas) enlazados con un Path deform Binding, el cual tiene un parámetro llamado Percent que hace que las ruedas giren.

    Ahora bien, al seleccionar el grupo Wall-e i moverlo en la dirección y las dos ruedas deben moverse hacia delante o hacia atrás. Pero al girar sobre si mismo, 1 debe ir hacia delante i la otra hacia atrás.

    Me han dicho que puedo hacer un float script al parámetro Percent para hacer eso, pero no tengo ni idea de Maxscript.

    Básicamente lo que quiero es algo de este estilo:
    If (posy_actual > posy_anterior){.

    Percent+1.

    Posy_anterior = posy_actual.
    }.

    If (rotz_actual > rotz_anterior){.

    Percent+1.

    Rotz_anterior = rotz_actual.
    }.

    Luego, para si es menor (<) seria igual, pero con el menos 1.

    Supongo que el código es fácil de implementar, pero yo me lo estoy mirando i no saco nada en claro.

    Me corre un poco de prisa porque el trabajo lo he de entregar en poco tiempo. Gracias a todos.

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    Para resolver tu problema con el movimiento de las orugas de Wall-e en 3ds Max, necesitas un script de expresión o un controlador script que modifique el parámetro Percent en función del movimiento y rotación del grupo principal.

    Lo más eficiente hoy es usar un controlador de expresión directamente en el parámetro Percent de cada Path Deform Binding. No necesitas escribir un Maxscript complejo desde cero, sino una expresión matemática.

    Primero, debes asignar un controlador Float Expression al parámetro Percent de cada oruga. Para ello, selecciona la oruga, ve a la pestaña Motion, selecciona el controlador Percent y haz clic en Assign Controller, eligiendo Float Expression.

    En la ventana de Expression, debes escribir una fórmula que relacione el movimiento del grupo Wall-e. Necesitas hacer referencia a la posición y rotación del grupo principal. Para eso, usa variables como la posición Y y la rotación Z del grupo.

    La expresión básica para una de las orugas sería algo así: (posY_del_grupo factor_avance) + (rotZ_del_grupo factor_giro). Para la otra oruga, el factor de giro debe ser negativo para que gire en sentido contrario al girar el grupo.

    Para crear las referencias, en la ventana de Expression, haz clic en crear una variable vectorial llamada, por ejemplo, "grupoPos" y asigna como Node el grupo Wall-e. Luego crea una variable escalar "grupoRotZ" y asigna la rotación Z del mismo grupo.

    La expresión concreta para la oruga izquierda podría ser: (grupoPos.y 0.1) + (grupoRotZ 0.5). Para la oruga derecha sería: (grupoPos.y 0.1) - (grupoRotZ 0.5). Los números 0.1 y 0.5 son factores de escala que debes ajustar experimentalmente para que el movimiento sea proporcional a tu modelo.

    Recuerda que el parámetro Percent suele estar en un rango de 0 a 100. Si el grupo se mueve mucho, la expresión podría dar valores fuera de rango. Para evitarlo, puedes usar la función mod para que el valor se repita cíclicamente: mod((grupoPos.y 0.1) + (grupoRotZ 0.5), 100).

    Para implementarlo, abre la ventana Curve Editor. Encuentra la pista del parámetro Percent de tu oruga. Haz clic derecho sobre ella y selecciona Assign Controller. Elige Float Expression. En la ventana que aparece, define las variables como se explicó y escribe la expresión.

    Si el movimiento no es correcto, ajusta los factores multiplicadores. Un factor mayor en grupoPos.y hará que las orugas avancen más rápido al mover el grupo. Un factor mayor en grupoRotZ hará que giren más rápido al rotar el grupo.

    Este método es más robusto que un script frame a frame, ya que la expresión se evalúa continuamente. No necesitas almacenar valores anteriores manualmente, el controlador lo gestiona automáticamente en función de la transformación actual del nodo referenciado.

    Para terminar, prueba el movimiento del grupo Wall-e. Las orugas deben avanzar juntas al moverlo en Y y girar en direcciones opuestas al rotar el grupo sobre su eje Z. Si el sentido es inverso al deseado, solo cambia el signo + o - en la expresión.

Temas similares

  1. Respuestas: 2
    : 07-05-2015, 23:08
  2. Autodesk Maya Sencillo script en Maya
    Por Sumatra en el foro Animación y Rigging
    Respuestas: 3
    : 17-01-2013, 14:45
  3. Cómo cambiar un script a un macro script
    Por Miguel-Arte-3D-1990 en el foro Plugins y Scripts
    Respuestas: 11
    : 11-03-2012, 23:07
  4. Alguien puede corregirme este sencillo script
    Por jor1980 en el foro Plugins y Scripts
    Respuestas: 3
    : 02-12-2009, 13:58
  5. Script sencillo y útil
    Por JEMV en el foro Plugins y Scripts
    Respuestas: 6
    : 30-11-2009, 17:22