La programmazione attuale dei caratteri autonomi o avatar, permette di generare mondi virtuali dinamici, sempre, rappresentare la realtà quotidiana o fantastica con grande fedeltà e realismo.
Modelli strutturati per implementare personaggi autonomi nelle simulazioni e nella ricreazione di mondi virtuali ( programmazione di videogiochi, film… ) si basano su diverse strategie il cui obiettivo principale è l'animazione di un complesso gruppo di personaggi in un ambiente specifico. Una flotta di astronavi, uno stormo di uccelli o un branco di animali possono essere soggetti a questo trattamento informatico.
Attualmente, le tecniche di “inquadratura chiave” e interpolazione tra due stati con complessi processi di generazione automatica di traiettorie come la programmazione di “personaggi autonomi”. Il film “Avatar” è l'ultimo esempio dello stato dell'arte di queste tecniche.
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 determinazione delle traiettorie di movimento per raggiungere gli obiettivi di spostamento nell'ambiente è un campo di ricerca in sviluppo. La soluzione dei problemi che si presentano può essere affrontata sotto diversi modelli di idealizzazione e calcolo.
L'analisi o approccio geometrico di base (modelli idealizzati) per semplificarne la concettualizzazione è un'interessante alternativa grafica. Un'altra alternativa può consistere nel generare le equazioni del moto e minimizzare i valori (gradienti nulli) sulla base di obiettivi, utilizzando tecniche di calcolo numerico e probabilità.
La scomposizione del processo di movimento globale nella somma ripetitiva di tre fasi sequenziali che (ripetere in un ciclo continuamente) può essere utile nella progettazione del processo di azione globale dell'AC in diversi ambienti:
- Selezione delle azioni: definizione degli obiettivi, strategia e preparazione di un piano.
- Calcolo: L'oggetto può essere soggetto a forze esterne e/o interne, oltre ad essere in diversi stati intermedi tra le azioni.
- fase di movimento: I dati calcolati vengono convertiti in movimento dell'oggetto, che a sua volta è soggetto a determinate restrizioni o limitazioni al movimento dell'oggetto.
Modelli basati sui comportamenti
Una generalizzazione o un adattamento ad un altro problema più complesso è sempre più accessibile da un'analisi precedente con modelli semplificati.. L'uso dei quadrati, circonferenze ecc. 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” come “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