Resultados 1 al 2 de 2

Animación de objeto en base a la cercanía con otro

  1. #1
    Fecha de ingreso
    Oct 2011
    Mensajes
    3

    Animación de objeto en base a la cercania con otro

    Buenas gente. Necesito saber cómo animar un objeto a en base a la proximidad de otro b. Por ejemplo: animar la escala de a dependiendo de la proximidad de otro b.

    Y a todo eso ponerle limites, si el segundo objeto b se aleja tanta distancia que a deje de escalarse.

    Espero que se haya entendido. Si es posible en 3ds Max. Muchas gracias. Saludos, a todos.

  2. #2
    Fecha de ingreso
    Apr 2002
    Mensajes
    26,550

    Animar un objeto según la proximidad de otro

    Lo que quieres hacer es una animación reactiva, donde la escala de un objeto A dependa de lo cerca que esté otro objeto B. En 3ds Max, esto se puede lograr fácilmente con el uso de expresiones en el Controller Script o mediante el sistema de Wire Parameters, sin necesidad de plugins externos.

    Cómo hacerlo paso a paso

    Primero, necesitas medir la distancia entre los dos objetos. Para eso, en el controlador de la escala de A, asignas un controlador Script Float. Dentro del script, calculas la distancia entre la posición de A y B. Según esa distancia, haces que la escala varíe entre unos límites definidos, por ejemplo, escala 1 cuando están muy cerca y escala 0 cuando se separan más allá de cierto rango.


    Un ejemplo simple de código en el Script Controller sería algo así:

    Código:
    dist = distance $objetoA.position $objetoB.position
    minDist = 0
    maxDist = 100
    scaleMin = 0.1
    scaleMax = 1.0
    
    -- Clamp la distancia para que no se pase de los límites
    distClamped = (dist < minDist) ? minDist : (dist > maxDist) ? maxDist : dist
    
    -- Mapeamos la distancia a escala inversa: más cerca, más grande
    scaleValue = scaleMax - ((distClamped - minDist) / (maxDist - minDist)) * (scaleMax - scaleMin)
    return scaleValue
    Después, aplicas este controlador a la escala de A en los tres ejes para que la escala sea uniforme.

    Si prefieres no usar scripting, puedes usar el sistema Wire Parameters para conectar la distancia (calculada con un helper tipo Point Helper y un Dummy) a la escala y aplicar una curva de remapeo en el Curve Editor.

    También puedes usar el Reaction Manager para crear relaciones entre parámetros de diferentes objetos de forma visual.

    Con un poco de scripting en el controlador de escala o usando los sistemas de wire y reacción que trae 3ds Max, puedes animar fácilmente que un objeto cambie de tamaño dependiendo de la cercanía a otro, y definir un rango para que deje de escalarse al separarse.

    Y no, no necesitas magia ni un hechizo, solo algo de matemática y un par de clicks.

    |Agradecer cuando alguien te ayuda es de ser agradecido|

Temas similares

  1. Respuestas: 18
    : 14-09-2020, 19:06
  2. 3dsMax Sugerencias copiar animación de un objeto a otro 3ds Max
    Por eric23xx en el foro Animación y Rigging
    Respuestas: 1
    : 18-05-2012, 18:48
  3. 3dsMax Animación en base a proximidad de otro objeto
    Por jgbianchi en el foro Animación y Rigging
    Respuestas: 2
    : 30-10-2011, 16:55
  4. 3dsMax Linkar un objeto a otro y luego cambiar a otro durante una animación
    Por Deibitrc en el foro Animación y Rigging
    Respuestas: 3
    : 19-03-2008, 21:15
  5. Copiar animación de un objeto a otro en 3ds
    Por ASH en el foro Programas de Diseño 3D y CAD
    Respuestas: 4
    : 09-02-2008, 17:18

Etiquetas para este tema