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
Wat hebben we nu? Vorderingen en keuzes 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
Technische keuzes Vorderingen en 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