La generació de contingut procedural (PCG) és una tècnica que permet crear contingut de manera automàtica mitjançant algoritmes. Aquesta tècnica és àmpliament utilitzada en la indústria dels videojocs per generar nivells, terrenys, objectes i altres elements del joc de manera dinàmica i eficient.
Objectius del Mòdul
- Entendre els conceptes bàsics de la generació de contingut procedural.
 - Aprendre a utilitzar les eines d'Unreal Engine per a la generació procedural.
 - Implementar exemples pràctics de generació de terrenys i altres elements del joc.
 
Conceptes Bàsics
Què és la Generació de Contingut Procedural?
La generació de contingut procedural és el procés de crear dades de manera automàtica mitjançant algoritmes en lloc de fer-ho manualment. Això permet crear grans quantitats de contingut de manera eficient i amb menys esforç.
Avantatges de la Generació Procedural
- Eficiència: Redueix el temps i l'esforç necessaris per crear contingut.
 - Varietat: Permet crear una gran varietat de contingut amb menys recursos.
 - Escalabilitat: Facilita la creació de grans mons i nivells sense necessitat de dissenyar cada detall manualment.
 
Eines d'Unreal Engine per a la Generació Procedural
Blueprints
Els Blueprints són una eina poderosa dins d'Unreal Engine que permet crear lògica de joc sense necessitat de programar en C++. Poden ser utilitzats per a la generació procedural de contingut.
Nodes de Generació Procedural
Unreal Engine proporciona diversos nodes de Blueprints específics per a la generació procedural, com ara nodes per generar terrenys, distribuir objectes, etc.
Exemple Pràctic: Generació Procedural de Terrenys
Pas 1: Crear un Blueprint de Terreny Procedural
- 
Crear un nou Blueprint:
- Aneu a la carpeta del vostre projecte.
 - Feu clic dret i seleccioneu 
Blueprint Class. - Trieu 
Actorcom a classe base i anomeneu-loProceduralTerrain. 
 - 
Afegir Components:
- Obriu el Blueprint 
ProceduralTerrain. - Afegiu un component 
Static Meshi anomeneu-loTerrainMesh. 
 - Obriu el Blueprint 
 
Pas 2: Configurar el Blueprint
- 
Afegir Variables:
- Creeu una variable 
TerrainSizede tipusinti establiu el valor per defecte a100. - Creeu una variable 
HeightMultiplierde tipusfloati establiu el valor per defecte a50.0. 
 - Creeu una variable 
 - 
Afegir Nodes de Generació:
- A la graella d'esdeveniments, afegiu un node 
Event BeginPlay. - Connecteu-lo a un node 
For Loopper iterar sobre les coordenades del terreny. - Dins del bucle, afegiu nodes per calcular la posició i l'alçada de cada punt del terreny utilitzant funcions matemàtiques com 
Perlin Noise. 
 - A la graella d'esdeveniments, afegiu un node 
 
Pas 3: Generar el Terreny
- 
Implementar la Lògica de Generació:
Event BeginPlay └── For Loop (0 to TerrainSize) └── For Loop (0 to TerrainSize) └── Add Static Mesh Component └── Set Relative Location └── Set Relative Scale3D - 
Utilitzar Perlin Noise per a l'Alçada:
- Afegiu un node 
Perlin Noiseper generar valors d'alçada. - Multipliqueu el valor de 
Perlin NoiseperHeightMultiplierper obtenir l'alçada final. 
 - Afegiu un node 
 
Pas 4: Provar el Blueprint
- 
Afegir el Blueprint al Nivell:
- Arrossegueu el Blueprint 
ProceduralTerrainal vostre nivell. - Ajusteu les variables 
TerrainSizeiHeightMultipliersegons sigui necessari. 
 - Arrossegueu el Blueprint 
 - 
Executar el Joc:
- Premeu 
Playper veure el terreny generat proceduralment. 
 - Premeu 
 
Exercici Pràctic
Exercici 1: Generació de Boscos Procedurals
Creeu un Blueprint que generi arbres de manera procedural en un terreny. Utilitzeu nodes de Blueprints per distribuir els arbres de manera aleatòria, assegurant-vos que no es superposin.
Solució
- 
Crear un Blueprint de Bosc Procedural:
- Seguiu els passos similars als de la generació de terrenys per crear un Blueprint 
ProceduralForest. 
 - Seguiu els passos similars als de la generació de terrenys per crear un Blueprint 
 - 
Afegir Lògica de Generació d'Arbres:
- Utilitzeu un bucle per iterar sobre el terreny.
 - Afegiu nodes per generar posicions aleatòries i col·locar arbres.
 
 - 
Evitar Superposicions:
- Utilitzeu una estructura de dades com un array per emmagatzemar les posicions dels arbres.
 - Comproveu les distàncies entre les posicions abans de col·locar un nou arbre.
 
 
Resum
En aquesta secció, hem après els conceptes bàsics de la generació de contingut procedural i hem implementat un exemple pràctic de generació de terrenys utilitzant Blueprints a Unreal Engine. La generació procedural és una tècnica poderosa que pot estalviar temps i recursos en el desenvolupament de jocs, permetent crear mons rics i variats de manera eficient.
En el següent mòdul, explorarem altres tècniques avançades de desenvolupament de jocs, incloent la física i la col·lisió.
Curs d'Unreal Engine
Mòdul 1: Introducció a Unreal Engine
- Què és Unreal Engine?
 - Instal·lant Unreal Engine
 - Navegant per la Interfície
 - Creant el teu Primer Projecte
 
Mòdul 2: Conceptes Bàsics
Mòdul 3: Blueprints Intermedis
- Variables i Tipus de Dades
 - Funcions i Esdeveniments
 - Comunicació entre Blueprints
 - Creant Objectes Interactius
 
Mòdul 4: Blueprints Avançats
Mòdul 5: Programació en C++ a Unreal Engine
- Configurant el teu Entorn de Desenvolupament
 - Sintaxi Bàsica de C++
 - Creant Classes en C++
 - Integrant C++ amb Blueprints
 
Mòdul 6: Programació Avançada en C++
Mòdul 7: Temes Avançats
- Física i Col·lisió
 - Renderització i Postprocessament
 - Generació de Contingut Procedural
 - Desenvolupament de Realitat Virtual
 
