Vuodenaikojen reaaliaikainen simulointi Unityssä
Varhala, Ville (2025)
Varhala, Ville
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025052817600
https://urn.fi/URN:NBN:fi:amk-2025052817600
Tiivistelmä
Tässä insinöörityössä kehitettiin Unity-pelimoottoriin järjestelmä, joka simuloi vuodenaikojen vaihtelua reaaliajassa käyttäjän maantieteellisen sijainnin ja kalenteripäivämäärän perusteella. Työn tavoitteena oli luoda automaattinen ja skaalautuva ratkaisu, joka muuttaa pelimaailman visuaalisia elementtejä vuodenajan mukaisesti. Järjestelmä hyödynsi IPInfo-rajapintaa käyttäjän sijainnin määrittämiseen sekä OpenWeatheriä säätietojen hankintaan, vaikka säätiedon hyödyntäminen visuaalisissa muutoksissa jäi jatkokehityksen varaan. Visuaaliset muutokset toteutettiin Shader Graph -työkalulla, jolla luotiin parametrisesti hallittavia efektejä esim. Winterness-parametri, joka määrittää kasvillisuuden värin ja läpinäkyvyyden.
Työssä tarkasteltiin, miten ulkoisia rajapintoja ja varjostimia voidaan yhdistää dynaamisen pelimaailman rakentamisessa. Kehitetty prototyyppi testattiin eri maantieteellisillä sijainneilla VPN-yhteyden avulla, ja prototyypin suorituskykyä mitattiin Unityn työkaluilla. Järjestelmä toimi luotettavasti: se vaihtoi vuodenaikoja sulavasti ja ylläpiti hyvää suorituskykyä eri laitteilla. Saavutetut ruudunpäivitysnopeudet vaihtelivat 50:stä 170:een ruutua sekunnissa (FPS). Prototyyppi otti huomioon myös käyttäjän sijainnin pallonpuoliskon mukaan. Visuaaliset siirtymät osoittautuivat uskottaviksi, mutta toteutuksessa ilmeni teknisiä haasteita, erityisesti lumen kertymisen rajallisuudessa, kuten esteiden huomiotta jättämisessä. Lisäksi Unityn Terrain-työkalun ja varjostimien yhteensopimattomuus rajoitti varjostimien sujuvaa käyttöä Terrain-pinnoilla.
Tulosten perusteella todettiin, että reaalimaailman datan ja varjostimien yhdistäminen pelimoottoreihin on mahdollista, mikä avaa ovia entistä monipuolisempiin visuaalisiin simulointeihin. Järjestelmää voidaan hyödyntää visuaalisesti näyttävissä peleissä, opetussovelluksissa ja Unity Asset -pakettien osana. Jatkokehityksen kohteina nousivat esille mm. fysiikkapohjainen lumen simulointi ja säätietojen simulointi.
Työssä tarkasteltiin, miten ulkoisia rajapintoja ja varjostimia voidaan yhdistää dynaamisen pelimaailman rakentamisessa. Kehitetty prototyyppi testattiin eri maantieteellisillä sijainneilla VPN-yhteyden avulla, ja prototyypin suorituskykyä mitattiin Unityn työkaluilla. Järjestelmä toimi luotettavasti: se vaihtoi vuodenaikoja sulavasti ja ylläpiti hyvää suorituskykyä eri laitteilla. Saavutetut ruudunpäivitysnopeudet vaihtelivat 50:stä 170:een ruutua sekunnissa (FPS). Prototyyppi otti huomioon myös käyttäjän sijainnin pallonpuoliskon mukaan. Visuaaliset siirtymät osoittautuivat uskottaviksi, mutta toteutuksessa ilmeni teknisiä haasteita, erityisesti lumen kertymisen rajallisuudessa, kuten esteiden huomiotta jättämisessä. Lisäksi Unityn Terrain-työkalun ja varjostimien yhteensopimattomuus rajoitti varjostimien sujuvaa käyttöä Terrain-pinnoilla.
Tulosten perusteella todettiin, että reaalimaailman datan ja varjostimien yhdistäminen pelimoottoreihin on mahdollista, mikä avaa ovia entistä monipuolisempiin visuaalisiin simulointeihin. Järjestelmää voidaan hyödyntää visuaalisesti näyttävissä peleissä, opetussovelluksissa ja Unity Asset -pakettien osana. Jatkokehityksen kohteina nousivat esille mm. fysiikkapohjainen lumen simulointi ja säätietojen simulointi.