La programmation actuelle de caractères autonomes ou avatars, permet de générer des mondes virtuels dynamiques, de plus en plus, représenter la réalité de tous les jours ou fantastique avec une grande fidélité et réalisme.
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 “personnages autonomes”. La película “Avatar” es el último ejemplo del estado del arte de estas técnicas.
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 (Californie) 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.
L'analyse présentée par Reynolds classe un processus suffisant pour une variété d'actions et de réactions de mouvement en utilisant les combinedly.
Vale la pena enumerarlas para entender la idea:
- Cherchez: Courir un objet statique (Vitesse maxi). Cette action est considérée comme modèle de construction de base comme indiqué dans le reste.
- Fuyez: Fuyant un objet statique (Max. Accélérer). Si à chaque instant essayer de poursuivre (Cherchez) objet symétrique (de notre ) à partir de laquelle nous fuyons, ces actions sont donc enchaîné.
- Pursuit: Courir un objet en mouvement (Cherchez pour estimer la position de l'objet suivant poursuivi.)
- Evasion: Fuyant un objet mobile (Fuyez la position estimée de l'objet chaser suivant)
- Décalage poursuite: Déplacer à une distance d'un autre objet (Recherche d'une distance fixe à partir du point de prédire la position suivante de l'autre objet).
- Arrivée. Poursuivre un objet statique, mais un ralentissement à l'approche de la cible.
D'autres fonctions un peu plus élaborés peuvent être:
- l'évitement d'obstacles: Éviter les obstacles, mais sans fuir.
- Promenez: Les variations de mouvement aléatoire.
- Chemin suivant: Suivre un chemin d'environ.
- Mur suivant: Suivi d'un mur à une certaine distance.
- Endiguement: Mouvement limité à une certaine région.
- Débit champ suivant: Seguimientote d'un champ vectoriel.
- Évitement des collisions Unaligned: Éviter la collision avec l'élément prédécesseur.
Et d'autres comme: Séparation, Cohésion, Alignement, Flocage, Chef suivante.
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” comme “Proceso de movimiento” se ha utilizado para entenderlo como conjunto de acciones encadenadas o como un patrón de estrategia
Relacionados y referencias:
- Definiendo la Realidad Virtual
- LOD (Level of Detail)
- Caracteres virtuales inteligentes
- Avatar fue creada con más de 4.000 servidores con GNU/Linux