Pollution
Hoe kan ik ervoor zorgen dat ik een pollution systeem dusdanig generiek opzet, zodat het op elk object toegepast kan worden?
Pollution is een erg belangrijk onderdeel van onze game. Er komen diverse objecten waar het op toegepast moet worden en daarbij zijn er een aantal dingen belangrijk.
- Het systeem is generiek (inzetbaar op diverse objecten zoals bomen en dieren)
- Zowel vorm als kleur van objecten moeten veranderd kunnen worden
- Het systeem is zo performant als mogelijk
- Het moet nog steeds in te zetten zijn als het meerdere gedeeltes van een object moeten veranderen
Onderzoeksmethoden
Library
- Literature study
Ik ben begonnen met onderzoek naar performance. Ik moest ervoor kunnen zorgen dat objecten van vorm en kleur veranderd kunnen worden. Dit zou in theorie kunnen door de mesh en material van een object te veranderen, dus heb ik dit vergeleken met het constant instantiaten van nieuwe objecten.
Het 2e bleek een stuk zwaarder te zijn volgens zowel forums als een test van het CTOUCH scherm zelf waardoor ik koos voor het veranderen van mesh en material.
Field
- Document analysis
Workshop
- Prototyping

De worldPollutionValue wordt aangepast gebaseerd op hoe iemand met het scherm omgaat. Meer over hoe dit bepaald wordt vind je hier.

Vervolgens wordt er voor elk object die kan veranderen, de statechange method opgeroepen waarin de nieuwe worldPollutionValue wordt meegegeven.

Tot slot worden alle gameobjects die veranderd kunnen worden, aangetast gebaseerd op de worldPollutionValue en de waarde waarbij het object daadwerkelijk moet veranderen. Dit script staat op alle parent objects van de models (denk aan empty parent object "tree").

Dit script staat op alle child objects die veranderd kunnen worden (denk aan "leaves" object onder het "tree" object). Zoals te zien zijn de kleuren en meshes aan te passen gebaseerd op of het object polluted, neutral of clean is.
Resultaat
Op de pagina Prototype is te vinden hoe dit systeem in de praktijk werkt en op de pagina Eindproduct is te vinden hoe het uiteindelijk gebruikt wordt.
Validatie
Ik heb het script getest op verschillende models die soms meerdere LOD's hadden en soms meerdere objecten van het model die veranderd konden worden. Ook heb ik samen met Jasper gekeken naar de performance van de code en het verbeterd waar nodig.
Het werkte allemaal zonder problemen en hierdoor voldoet het systeem aan alle eisen gesteld bij de probleemstelling.
Gebruikswijze
De scripts worden gebruikt om objecten in de map te veranderen gebaseerd op hoe hoog of laag de world pollution value is. De world pollution value wordt dan weer veranderd gebaseerd op hoe zuinig de speler met het scherm omgaat en zo werkt dit allemaal samen.
