Saltar al contenido principal

Contenido Procedural en Unity

Descripción General

La creación de contenido procedural es una técnica para crear un infinito número de datos en un juego, estos datos pueden ser modelos, personajes 2D hechos de Sprites hasta complejos niveles. Esto es logrado mediante reglas cuya complejidad variará por los objetivos del proyecto.

Alcances

Investigación y prueba de plugins y/o demos para implementar un infinite runner mediante esta técnica.

Se trabajo en Unity 2017.3.1f1

Hacer Demo para correr en dispositivo móvil.

Buscar si existen y probar assets gratis de Unity Asset Store

Investigar conceptos básicos de la generación procedural

Proceso de Desarrollo

La base del contenido procedural son Noise Maps que pueden ser creados de manera random con la

función Mathf.PerlinNoise en Unity, esto siempre será distinto.

Cuando vemos un noise map, le tenemos que dar la instrucción a la computadora de los lugares donde si puede instanciar y donde no, las partes "blancas" serán planas y las partes oscuras es donde se pondrá un determinado objeto

En el proyecto de "Demo Procedural Generation", se modificó la escena "TerrainDemo" para poder instanciar objetos en determinados puntos siguiendo el siguiente concepto:

Octavas→ capas individuales de ruido

Lacunarity→ Medida de cada espacio en los patrones u octavas, un patrón con espacios grandes tiene mucha lacunaridad, un patrón con espacios pequeños tiene poca lacunaridad.

La lacunaridad mide que tan rápido cambia la frecuencia por cada octava, aquí es necesario evitar números enteros.

Persistencia→ controla la amplitud de cada octava

Ejemplo de como se modifico el Controlador en la escena "Terrain Demo"

En este simple ejemplo la cámara sigue la esfera por un terreno donde se irá creando proceduralmente tanto el terreno (blanco), las partes donde hay hundimientos (azul) y los pilares son el "prefab elegido".

Conforme la esfera avanza se va destruyendo el escenario.

Enlaces de descarga

Procedural Toolkit

https://assetstore.unity.com/packages/tools/utilities/procedural-toolkit-16508

Demo Procedural Generation

https://assetstore.unity.com/packages/tools/utilities/procedural-toolkit-16508

Procedural Landmass Generation

https://github.com/SebLague/Procedural-Landmass-Generation

Archivos Adjuntos

Comentarios

Comentarios generales o extras de la investigación.

Ventajas

  • Infinitas combinaciones de assets, todo correría a cargo del procesador y cada vez se tendrá una experiencia completamente nueva.

Desventajas

  • EL comportamiento puede llegar a ser errático aun en las mejores condiciones y con las reglas bien estructuradas.

  • Es un proceso pesado para un dispositivo movil, es recomendado usar en PC o Mac

Ubicación Proyecto

Elaboró

Alexei B.