Gracias Gracias:  0
Resultados 1 al 9 de 9

Tema: [MaXScript] - Steering Behaviors Ia

  1. #1
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    [MAXScript] - Steering Behaviors (IA)

    Hola.

    Esta manaña estaba revisando unas clases sobre IA que hice hace algunos meses para el motor que estamos desarrollando. En concreto se trata de simular el comportamiento en grupo de ciertas entidades (steering behaviors). Un ejemplo claro es por ejemplo en Matrix Revolutions, cuando los centinelas entran en masa en el muelle de Zion. Lo cierto es que no sé si utilizaron steering behaviors o era una animación predefinida pero me extraña que se pongan a animar a miles de centinelas manualmente.

    El caso es que entonces recordé un video experimental de Allan Mckay que simulaba un bombardeo aéreo y me parece recordar que los "aviones" estaban animados proceduralmente y eso me ha motivado para adaptar el código de nuestro motor a MAXScript. Por ahora no pongo el código ya que no esta terminado. El mecanismo no esta demasiado bien estructurado y aún tengo mis dudas de cual sería la mejor forma. Lo que sí adjunto es un pequeño video que he capturado. En él podréis ver dos entidades (conos) que persiguen a un dummy (el que sigue el path) y huyen de un space warp (gravity). Tanto el dummy como el space warp están animados manualmente pero la animación de los dos conos es totalmente procedural.

    El tema de steering behaviors permite más cosas. Por ejemplo en nuestro motor implementé también la opción de que las entidades evitaran obstaculos. También ofrece muchas posibilidades para dar variedad al movimiento de las entidades. Por ejemplo se pueden crear manadas y dentro de esas manadas habrían líderes que seguirían a una presa y al mismo tiempo, los otros componentes del grupo seguirían aleatoriamente a un líder o a otro. También se puede replacear deflectores como los del video para generar mayor caos. En fin, muchas cosas se pueden hacer con esto.

    También tengo que mirar cual es la mejor forma de aplicar la animación. Por ejemplo, ahora mismo se crea un script controller para cada entidad pero también estuve pensando que éste parece un buen caso de sistema de partículas y tengo entendido que en particle flow se pueden especificar scripts que definan la animación de cada partícula y luego asociar a cada partícula el mesh de la entidad en cuestión...

    En fin, a ver qué os parece. Conforme vaya sacando tiempo intentaré ir mejorando el sistema.
    Archivos adjuntados Archivos adjuntados
    Última edición por HalfVector; 27-12-2005 a las 17:53

  2. #2
    Administrador Avatar de SHAZAM
    Fecha de ingreso
    Apr 2002
    Ubicación
    28.10º N 15.43º W in a blue planet.
    Mensajes
    20,761

    Re: [MAXScript] - Steering Behaviors (IA)

    Muy interesante
    Obtén enseñanza tradicional en arte y cine. Los ordenadores solo son herramientas. Ellos no pueden tomar decisiones creativas, y solo pueden crear trabajos tan buenos como tus conocimientos y tu experiencia les permita.
    Victor Navone


    Ser "animador" es un regalo que te ganas y un honor que deben adjudicarte los otros.
    Chuck Jones


    La tecnología no hace las películas, la gente las hace. No eres un animador sólo porque puedas mover un objeto del punto A al punto B. Eres alguien quien le da vida a un personaje, que es algo que el software y la tecnología no puede dar.
    John Lasseter

  3. #3
    reBorn Avatar de promineo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Tenerife
    Mensajes
    3,402

    Re: [MAXScript] - Steering Behaviors (IA)

    Joder que caña, esta genial, queremos ver más avances!!!
    PromineoStudios

    Sin riesgos en la lucha, no hay gloria en la victoria

  4. #4
    Senior Member Avatar de Pit Matson
    Fecha de ingreso
    Jun 2005
    Ubicación
    En el limbo de 3dpoder
    Mensajes
    6,517

    Re: [MAXScript] - Steering Behaviors (IA)

    Tío half, da gusto seguir tus post...
    Pit Matson dejó de existir en su mensaje 5.999

  5. #5
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: [MAXScript] - Steering Behaviors (IA)

    Esta genial!

    "Por ejemplo, ahora mismo se crea un script controller para cada entidad pero también estuve pensando que éste parece un buen caso de sistema de partículas y tengo entendido que en particle flow se pueden especificar scripts que definan la animación de cada partícula y luego asociar a cada partícula el mesh de la entidad en cuestión..."

    Definitivamente, tengo que darle un poco de caña al particle flow.

  6. #6
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: [MAXScript] - Steering Behaviors (IA)

    Gracias.

    Pongo otro video. He reestructurado algo el código de forma que sea más sencillo agregar más entidades. Ahora se pueden ver 16 entidades, dos presas (dummies) y dos "puntos peligrosos" de los que las entidades intentaran huir (space warp de tipo gravity). En este caso 8 de ellas persiguen a uno de los dummies y huyen de uno de los space warps y la otra mitad va al otro dummy y huye del otro space warp. De esta forma hay más variedad en la simulación. De todas formas veréis que llega un momento en que algunas entidades van muy juntas. Esto es porque no he agregado ningún método para que vayan en formación, pero haberlo lo hay. Se puede crear un sistema para indicar una distancia mínima de separación y algunas cosas más.

    Aprovecho para lanzar una duda que tengo. Como ya he dicho en otro hilo, cuando por ejemplo tienes un objeto y le metes un script controller, si en dicho script tienes que hacer referencia al propio objeto para por ejemplo recoger su posición, te da un error tipo "Illegal self-reference", o sea, no deja llamar al objeto poseedor del script dentro del propio script. Entonces se me ocurrió acceder a la posición del objeto en el frame anterior con la clausula "at time (F - 1)" y efectivamente eso no lanza el error de "Illegal self-reference" sino que directamente el MAX se sale sin decir ni pio.

    ¿Y todo esto a cuento de qué?. Pues resulta que quiero calcular la transformación de los objetos de forma diferencial en lugar de paramétricamente. Es decir, quiero calcular las cosas basandome en el valor en el frame anterior en lugar del valor en el primer frame.

    En definitiva, a ver si alguno se ha encontrado con este problema y le ha dado una solución. Ahora mismo yo lo estoy solventando creando un dummy que siga a todas partes al objeto en cuestión, de forma que en el script controller accedo a las propiedades del dummy en lugar de las del objeto, pero como son las mismas me vale. Pero me parece demasiado engorroso tener que manejar dos objetos cuando tal vez (con un poco de suerte) con uno bastaría.

    Gracias.
    Archivos adjuntados Archivos adjuntados

  7. #7
    pythonized... Avatar de Cesar Saez
    Fecha de ingreso
    Mar 2004
    Ubicación
    Granada, España
    Mensajes
    3,765

    Re: [MAXScript] - Steering Behaviors (IA)

    Ni idea sobre la duda (no entiendo chino mandarín ), sólo quería dejar un , esta impresionante lo que llevas Half

    Saludos

  8. #8
    Senior Member Avatar de Birkov
    Fecha de ingreso
    Dec 2004
    Ubicación
    Coruña - Barcelona
    Mensajes
    874

    Re: [MAXScript] - Steering Behaviors (IA)

    Los videos están muy bien, para animación de masas debe ser cojonudo, en cuanto al problema con Maxscript no tengo ni zorra pero creo recordar hacer leído en algún post algo al respecto, y en vez de obtener los valores del frame anterior lo que hacían era obtener la posición a partir de la curva de la animación.

    P.D. no me hagas mucho caso que ( como ya dije ) yo de maxscript no tengo idea y a lo mejor lo que comenté antes no se puede hacer.
    _________________________________________________
    Reloj de pulsera /\ Marine Starcraft 2 WIP /\ Motorola L6 /\ Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________

  9. #9
    Burninating albion Avatar de bealobo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Teatown
    Mensajes
    1,868

    Re: [MAXScript] - Steering Behaviors (IA)

    Hola,
    que guay!
    yo tampoco tengo ni idea de MAxscript pero se me ocurre una ñapa del tipo linkar un nulo y referenciar a la posición del nulo en vez de al del objeto que tenga el scriptcontroller.

    Lo mismo es una tontería y no se puede hacer, o que se yo, es lo que se me ha ocurrido.

    :D
    Feliz Año!!!
    E moet roeien met de riemen die je hebt.

Temas similares

  1. maxscript y SWF
    Por jmpinero en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 18-12-2011, 21:17
  2. Maxscript
    Por Marc3d en el foro Videojuegos
    Respuestas: 3
    Último mensaje: 11-08-2010, 13:14
  3. [MaXScript]
    Por ricardo_arango en el foro Programación y Scripts
    Respuestas: 1
    Último mensaje: 15-06-2007, 16:29
  4. maxscript
    Por juako en el foro Peticiones y Búsquedas
    Respuestas: 5
    Último mensaje: 08-12-2006, 02:17
  5. Maxscript
    Por grio en el foro Animación y Rigging
    Respuestas: 3
    Último mensaje: 16-03-2006, 00:28

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.
  •