PIZiadas gráficas

PIZiadas gráficas

Mi mundo es la imagen.

Caracteres autónomos: Boids

banco_pecesLa animación de sistemas de partículas es de especial relevancia en la generación de grupos complejos como los que simulan a bandadas de pájaros, manadas de animales, bancos de peces etc.

Estas técnicas están recogidas en el concepto de caracteres autónomos y se basan en simples reglas que se aplican individualmente a cada uno de los elementos que forman el grupo.

Boids es un programa de vida artificial, desarrollado por Craig Reynolds en 1986, quesimula el comportamiento de las aves que acuden. Su artículo sobre este tema fuepublicado en 1987 en las actas de la conferencia ACM SIGGRAPH. El nombre se refiere a un “objeto parecido a un ave”, pero su pronunciación evoca la de “pitón” con un acentoestereotipadas de Nueva York. (W)

En el siguiente gif animado se puede ver un sencillo ejemplo realizado con el sistema de partículas que incorpora Blender

banco_peces_200

Gif animado de un Banco de peces

Las primeras reglas definidas fueron:

  • Separación: dirigir a evitar la aglomeración local
  • Alineación: alinearse hacia la dirección media del conjunto de elementos
  • Cohesión: dirigir a moverse hacia la posición media

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.

Estos modelos han evolucionado para incluir un numeroso conjunto de reglas especializadas, de las que destacamos algunas de especial relevancia:

  • 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.completan las reglas necesarias para complejas simulaciones