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.