javisantana.com

Creación de criaturas procedurales

Hace unos días estuve viendo el video de spore. En él Will Wright muestra algunos detalles técnicos del juego, así como una gran parte de su contenido jugable. Básicamente el juego trata de evolucionar con tus criaturas desde que eres un microorganismo hasta invadir otros planetas de galaxias lejanas. En el juego destaca la capacidad de creación de criaturas en base a partes del organismo que el juego te ofrece y a partir de ellas, proceduralmente, se generan las animaciones y demás. Es bastante impactante ver en el video como genera diferentes criaturas añadiendo patas a su columna vertebral, o picos y ojos a su cabeza (o cabezón). Además, como dice en el video, los escenarios están generados proceduralmente, esto es, no están previamente creados por un artista y almacenados en disco. El artista lo diseña y se guarda la información que permite generarlo posteriormente, no los datos ya generados. Esto permite un ahorro bestial de disco.

Me llamó poderosamente la atención el hecho de que las animaciones se generaran al vuelo, supuse que habrá algún tipo de directrices que permitan generarlas, de otra forma es imposible, aunque con lo que he visto de video no soy capaz de concluir nada. Me puse a buscar información al respecto y he encontrado un link del 1994 sorprendente.

Karl sims propone un algortimo genético en el cual a partir de unas funciones muy básicas (sumas, multiplicaciones…) y un grafo neuronal genera criaturas en base a cubos usando una física “muy básica”. Las crituras que crea tienen 3 propósitos, andar, salar y nadar. Lo que sorprende, sobretodo en las criaturas que nadan, es como la evolución hace que se parezcan a las criaturas que tenemos e la naturaleza. Si te interesa el tema no dejes de leer los dos papers: “Evolving Virtual Creatures” y “Evolving 3D Morphology and Behavior by Competition”. Explica sin demasiados tecnicismos como están creadas las criaturas y las puedes ver en movimiento bajándote el video de archive.org