ECM Crowd Simulation in Unity Level 11 Department of Computer Science Universiteit Utrecht
CrowdEd
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
1 / 23
Inhoud
1
Wie zijn wij?
2
Doelstellingen
3
Vorderingen en keuzes
4
Demonstratie
5
Conclusie
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
2 / 23
Wie zijn wij?
Wie zijn wij?
Level 11 In opdracht van Universiteit Utrecht Roland Geraerts, Wouter van Toll en collega’s
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
3 / 23
Wie zijn wij?
Level 11
Figure: Level 11 Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
4 / 23
Doelstellingen
Motivatie van doelstelling
Hardware wordt krachtiger en biedt meer mogelijkheden Crowd simulation in zowel entertainment games als serious games Simuleren van non-player characters Verkeersimulatie (bijv. in Sim City) Simulatie van evacuatie bij brand
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
5 / 23
Doelstellingen
Motivatie
Figure: Crowd simulatie in Hitman
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
6 / 23
Doelstellingen
Onze doelstelling
Integreren van crowd simulator in Unity Zo snel en pijnloos mogelijk Simpel en intuitief Niet op laag, maar hoog niveau Aanpassen mensen in crowd Gedrag van crowd bepalen Invloed van omgeving op crowd
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
7 / 23
Doelstellingen
Wat is Unity?
Game engine Game developers Scripting Predefined features Animaties, Particle Systems, etc. In ons geval, Crowd Simulation
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
8 / 23
Doelstellingen
Wat is Unity?
Figure: Unity: platforms en editor
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
9 / 23
Doelstellingen
Wat is het Explicit Corridor Map (ECM) framework?
Crowd simulator Multi-layered Dynamische navigation meshes Annoteren van meshes
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
10 / 23
Doelstellingen
Voorbeeld crowd simulatie
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
11 / 23
Vorderingen en keuzes
Wat hebben we nu?
Conversie Bestaand Unity level exporteren naar set 3D meshes Uit set 3D meshes automatisch navigation mesh genereren
Simulator Navigation Mesh visualiser Crowd editor Crowd simulator
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
12 / 23
Vorderingen en keuzes
Exporteren van scenes
Figure: Scene as Normal Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
13 / 23
Vorderingen en keuzes
Exporteren van scenes
Figure: Showing the colliders Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
14 / 23
Vorderingen en keuzes
Exporteren van scenes
Figure: Exported scene with help of Colliders Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
15 / 23
Vorderingen en keuzes
Geometrie naar navigation mesh
Figure: Geometrie Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
16 / 23
Vorderingen en keuzes
Geometrie naar navigation mesh
Figure: Navigation mesh Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
17 / 23
Vorderingen en keuzes
Navigation Mesh Visualiser
Figure: Navigation Mesh Visualiser Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
18 / 23
Vorderingen en keuzes
Wat moeten we nog doen?
Filteren 3D meshes Obstakels uit het terrein halen Uiteindelijk moet dit automatisch gebeuren
Annoteren van terrein in level editor Speciaal gedrag voor bepaalde stukken terrein Bijv. trager lopen door een stuk moeras
Crowd simulator met dynamische veranderingen Momenteel alleen statische geometrie Moet later werken met dynamische objecten
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
19 / 23
Vorderingen en keuzes
Technische keuzes
Categoriseren van objecten Statische objecten Dynamische objecten
ECM Wrapper ECM geprogrammeerd in C++ Unity ondersteunt geen C++, wel C# SWIG wrapper, zorgt voor communicatie tussen C++ en C#
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
20 / 23
Demonstratie
Demonstratie
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
21 / 23
Conclusie
Samenwerking
Samenwerking in de groep Ontwikkelmethode: Scrum Taakverdeling Simulator groep Converter groep
Rollen Projectleider Scrum master Voorzitter en notulist Groepsleider
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
22 / 23
Conclusie
Conclusie
Voortgang tot nu toe Navigation Mesh - Geometrie file converteren zodat de plugin er gebruik van kan maken Crowd editor - Groepen karakters aanmaken en aanpassen Simulator - Simulatie uitvoeren in game engine
Toekomst perspectief Geometrie filtreren op beloopbare vlakken Dynamische updates Optimalisaties en robuustheid
Level 11 (Utrecht University)
ECM Crowd Simulation in Unity
CrowdEd
23 / 23