Resultados 1 al 9 de 9

Tema: Maxscript steering behaviors IA

  1. #1
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    [maxscript] steering behaviors ia

    Hola. Esta mañana estaba revisando unas clases sobre inteligencia artificial que hice hace algunos meses para el motor que estamos desarrollando. En concreto se trata de simular el comportamiento en grupo de ciertas entidades (stering behavior). 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 stering behavior 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 está terminado. El mecanismo no está demasiado bien estructurado y aún tengo mis dudas de cuál sería la mejor forma. Lo que sí adjunto es un pequeño video que he capturado. En el podréis ver dos entidades (conos) que persiguen a un dummie (el que sigue el Path) y huyen de un space Warp (Gravity). Tanto el dummie como el space Warp están animados manualmente, pero la animación de los dos conos es totalmente procedural.

    El tema de stering behavior permite más cosas. Por ejemplo, en nuestro motor implementé también la opción de que las entidades evitaran obstáculos. 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 representar 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 15:53

  2. #2
    Fecha de ingreso
    Apr 2002
    Mensajes
    20,217

    [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
    Fecha de ingreso
    Dec 2004
    Mensajes
    3,387

    [maxscript] steering behaviors ia

    Vaya que caña, está genial, queremos ver más avances.
    PromineoStudios

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

  4. #4
    Fecha de ingreso
    Jun 2005
    Mensajes
    6,420

    [maxscript] steering behaviors ia

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

  5. #5
    Fecha de ingreso
    Dec 2004
    Mensajes
    1,851

    [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
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    [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 dummie 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 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 ilegal 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 ilegal self-reference sino que directamente el 3ds 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 basándome 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 dummie que siga a todas partes al objeto en cuestión, de forma que en el script controller accedo a las propiedades del dummie 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
    Fecha de ingreso
    Mar 2004
    Mensajes
    3,685

    [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
    Fecha de ingreso
    Dec 2004
    Mensajes
    866

    [maxscript] steering behaviors ia

    Los videos están muy bien, para animación de masas debe ser estupendo, en cuanto al problema con Maxscript no tengo ni zorra, pero creo recordar hacer leído en algún mensaje 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.

    Posdata: 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
    Fecha de ingreso
    Dec 2004
    Mensajes
    1,851

    [maxscript] steering behaviors ia

    Hola. Que guay. Yo tampoco tengo ni idea de Maxscript, pero se me ocurre una ñapa del tipo enlazar 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.

    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
    : 18-12-2011, 19:17
  2. Problema con Viewcube y steering wheel 3ds Max 2010
    Por Alonsista94 en el foro Programas de Diseño 3D y CAD
    Respuestas: 0
    : 29-11-2011, 23:46
  3. Maxscript
    Por Marc3d en el foro Videojuegos
    Respuestas: 3
    : 11-08-2010, 12:14
  4. [Maxscript]
    Por ricardo_arango en el foro Programación y Scripts
    Respuestas: 1
    : 15-06-2007, 15:29
  5. Maxscript
    Por juako en el foro Programas de Diseño 3D y CAD
    Respuestas: 5
    : 08-12-2006, 00:17

Etiquetas para este tema