Avatar: Programación de Caracteres Autónomos | PIZiadas gráficas
PIZiadas gráficas

PIZiadas gráficas

Mi mundo es la imagen.

Avatar: Programación de Caracteres Autónomos

La actual programación de avatares o caracteres autónomos, permite generar mundos virtuales dinámicos que, cada día más, representan la realidad cotidiana o fantástica con gran fidelidad y realismo.

Los modelos estructurados para implementar caracteres autónomos en simulaciones y en la recreación de mundos virtuales ( programación de videojuegos, películas… ) se basan en diferentes estrategias cuyo principal objetivo es la animación de un complejo grupo de personajes en un entorno concreto. Una flota de naves espaciales, una bandada de pájaros o una manada de animales pueden ser objeto de este tratamiento informático.

Actualmente se mezclan técnicas de “key framing” e interpolación entre dos estados con complejos procesos de generación automática de trayectorias como la programación de “caracteres autónomos”. La película “Avatar” es el último ejemplo del estado del arte de estas técnicas.

Captura de pantalla del vídeo promocional de “Avatar”

Craig W. Reynolds, en Steering Behaviors For Autonomous Characters, realiza una estructuración del “proceso” [1] de movimiento de un carácter autónomo. Además de dar una interesante definición:

“Un carácter autónomo (CA) combina aspectos de un robot con algunas capacidades de improvisación de naturaleza humana ” y/o animal.

Un CA dispone de una cierta lógica de actuación y un sistema de captura de información sobre el entorno en el que se desenvuelve. La información es necesaria para que se produzca el estímulo que dispara las acciones correspondientes. La lógica que guía la elección de la acción correspondiente y el conjunto de posibles acciones en sí mismas caracterizan al CA.

La determinación de trayectorias de movimiento para la consecución de objetivos de desplazamiento en el entorno es un campo de investigación en desarrollo. La solución de los problemas que se derivan se puede afrontar bajo diferentes modelos de idealización y cálculo.

El análisis o planteamiento geométrico básico (modelos idealizados) para simplificar su conceptualización es una alternativa gráfica interesante. Otra alternativa puede consistir en generar las ecuaciones de movimiento y minimizar valores (gradientes nulos) en función de objetivos, usando técnicas de cálculo numérico y probabilidad.

La descomposición del proceso de movimiento global en la suma repetitiva de tres etapas secuenciales que (se repiten en un bucle de forma continuada) puede resultar útil en el diseño del proceso global de acción del CA en diferentes entornos:

  • Selección de la acción: Establecimiento de objetivos, estrategia y preparación de un plan.
  • Cálculo: El objeto puede estar sometido a fuerzas externas y/o internas, así como encontrase en diferentes estados intermedios entre acciones.
  • Fase de movimiento: Se convierten los datos calculados en movimiento del objeto, que a su vez se encuentra sujeto a determinadas restricciones o limitaciones del movimiento del objeto.

Modelos basados en Behaviors

Una generalización o adaptación a otro problema más complejo siempre es más abordable desde un análisis previo con modelos simplificados. La utilización de cuadrados, circunferencias etc. en la idealización de las formas reales sirve a este propósito.

El análisis planteado por Reynolds clasifica los procesos en un conjunto suficiente para conseguir una gran variedad de acciones y respuestas de movimiento utilizándolas combinadamente.

Vale la pena enumerarlas para entender la idea:

  • Seek: Perseguir a un objeto estático (Max velocidad). Esta acción se considera base de construcción del modelo como se verá en las restantes.
  • Flee: Huir de un objeto estático (Max. Velocidad). Si en cada instante tratamos de perseguir (Seek) el objeto simétrico (del nuestro ) del que queremos huir, estas acciones son por lo tanto encadenadas.
  • Pursuit: Perseguir a un objeto móvil (Seek de la estimación de la siguiente posición del objeto perseguido.)
  • Evasión: Huir de un objeto movil (Flee de la estimación de la siguiente posición del objeto perseguidor)
  • Offset pursuit: Moverse a una distancia de otro objeto (Seek de un punto a distancia fija de la predicción de la siguiente posición del otro objeto).
  • Arrival. Persigue un objeto estático pero disminuyendo su velocidad al acercarse al objetivo.

Otras funciones un poco más elaboradas pueden ser:

  • Obstacle avoidance: Evitar obstáculos pero sin huir.
  • Wander: Variaciones de movimiento aleatorias.
  • Path following: Seguimiento aproximado de un camino.
  • Wall following: Seguimiento de una pared a una cierta distancia.
  • Containment: Movimiento restringido a una cierta región.
  • Flow field following: Seguimientote de un campo vectorial.
  • Unaligned collision avoidance: Evitar colisión con el elemento predecessor.

Y otros como: Separation, Cohesión, Alignment, Flocking, Leader following.

En este esquema cabe pensar en la posibilidad de encadenamiento de las acciones para constituir comportamientos complejos que simulan los procesos de decisión humanos a nivel muy elemental.

La elección de la acción o conjunto de acciones a realizar, junto con la jerarquización de las mismas y su aplicación en el correspondiente orden, pueden variar sustancialmente la secuencia de movimientos del objeto. Además es necesario establecer un modelo cinemático personalizado para cada objeto, si bien las funciones de movimiento pueden idearse de forma más genérica.

[1] La traducción de “Motion Behaviors” como “Proceso de movimiento” se ha utilizado para entenderlo como conjunto de acciones encadenadas o como un patrón de estrategia

Relacionados y referencias:

Nota: Enlaces pendientes de revisión

Related Posts

  • ¿Qué es LOD?: Level Of Detail¿Qué es LOD?: Level Of Detail La realización de juegos con complejos escenarios y alto realismo exige la utilización de sofisticadas técnicas que eviten saturar el ancho de banda disponible en las tarjetas gráficas. La reducción del número de polígonos a representar es uno de los objetivos prioritario para la […]
  • Raytracing : ¿Cuanto vale una imagen 3D?Raytracing : ¿Cuanto vale una imagen 3D? La imagen de síntesis utilizada en películas de animación es cara de producir. Una vez generado un escenario tridimensional, y la escena correspondiente, hay que efectuar el proceso de generación de la imagen, que se conoce con el nombre de "rendering". Ver Rendering o Renderización […]
  • Definiendo la Realidad Virtual ¿Qué es?Definiendo la Realidad Virtual ¿Qué es? Definición de Realidad Virtual (RV) ¿Qué es la Realidad Virtual? ¿Cómo podemos definir algo que en sí es contradictorio?: ¿Real o virtual? Un paradigma que evoluciona desde su nacimiento incorporando nuevos recursos y nuevos interrogantes asociados a ellos no tiene fácil […]
  • Diseño Paramétrico en la imagen de síntesis: HelicoidesDiseño Paramétrico en la imagen de síntesis: Helicoides Un helicoide es una superficie que se genera al desplazar una línea recta con dos movimientos: Una rotación alrededor de un eje o núcleo, y una traslación en dirección de dicho eje. Es posible generar animaciones complejas a partir de la repetición y transformación de elementos muy […]
  • Animación 3D, Luces: Sombras [ Blogs experimentales ] [ Blender ]Animación 3D, Luces: Sombras [ Blogs experimentales ] [ Blender ] Las luces y las sombras que producen sobre los objetos, son elementos fundamentales de una escena de animación. Su uso debe ajustarse con fineza ya que son fuente de un aumento importante en la complejidad del cálculo. Algunos sistemas limitan el número de puntos de iluminación ya […]
  • Animación 3D, Luces: Tipos [Blogs experimentales] [Blender]Animación 3D, Luces: Tipos [Blogs experimentales] [Blender] Uno de los aspectos más importantes en la creación de una imagen de síntesis es la definición de los elementos que iluminan la escena. Blender permite definir diferentes objetos que añaden la iluminación a los objetos que constituyen una escena. Vamos a introducir los distintos […]