|
|
# Projektin dokumentaatio
|
|
# Projektin dokumentaatio
|
|
|
|
|
|
|
|
Mobiiliprojekti-kurssin dokumentaatio.
|
|
|
|
|
|
|
|
## Johdanto
|
|
|
|
|
|
|
|
Tarkoituksena oli tehdä kamerasovellus, joka ottaa valokuvan ja mahdollistaa sen muokkauksen.
|
|
|
|
|
|
|
|
## Käytetyt teknologiat
|
|
|
|
|
|
|
|
Unity, [Native gallery for android](https://assetstore.unity.com/packages/tools/integration/native-gallery-for-android-ios-112630), [Screenshot helper](https://assetstore.unity.com/packages/tools/camera/screenshot-helper-free-130885). Projektikansiosta löytyy mahdollisesti myös muita paketteja, mutta näitä ei ole käytetty toteutuksesta (esim. Google drive-lisäosa).
|
|
|
|
|
|
|
|
Koodaus toteutettu C#-kielellä.
|
|
|
|
|
|
|
|
## Toteutustavat
|
|
|
|
|
|
|
|
Sovelluksen toteuttaminen osoittautui hyvin kinkkiseksi, sillä Unity on pohjimmiltaan pelimoottori eikä sitä ole suunniteltu sovellusten alustaksi. Sain kuitenkin raktaistua suurimman osan ongelmista, vaikkakin hiukan huonolla tavalla.
|
|
|
|
|
|
|
|
### Kamera
|
|
|
|
|
|
|
|
Kamera toteutettiin käyttämällä unityn webcamtexture-luokkaa, joka mahdollistaa laitteen kameroiden käyttämisen. Kameroiden käyttäminen onnistuu laitteesta riippumatta, kunhan kamera siis vain on olemassa.
|
|
|
|
|
|
|
|
Kuvan ottaminen muodostui haasteeksi, sillä kameralla pystyi ottamaan kuvia ainoastaan ennalta määrätyllä resoluutiolla ja kuvasuhteella. Tätä ongelmaa selvittäessäni kävin läpi huomattavan määrän keskustelupalstoja, jotka eivät juurikaan vastauksia antaneet. Ainoa kunnollinen raktaisu ongelmaan olisivat maksulliset kameralisäosat, mutta keksin tähän oman halvemman versioni. Asset Storesta löytyi ilmainen Screenshot helper-kirjasto, jonka avulla on mahdollista ottaa näyttökaappaus mistä tahansa kohtaa laitteen näytöltä ja millä tahansa koolla.
|
|
|
|
|
|
|
|
Lopullinen toteutus siis ottaa näytön keskeltä näyttökaappauksen 512x512-resoluutiolla ja tallentaa sen globaaliksi muuttujaksi muita tiloja varten.
|
|
|
|
|
|
|
|
### Kuvan muokkaus
|
|
|
|
|
|
|
|
Kuvan muokkauksesta minulla ei ole yhtään kokemusta, eivätkä internetin ohjeet juurikaan auttaneet. Paint-sovellusta kun tässä ei oltu tekemässä. Päädyin siis toteuttamaan kuvan muokkauksen Unityn visuaalisella shader-editorilla, Shader Graphilla.
|
|
|
|
|
|
|
|
Riisuin sovelluksen edellisessä versiossa olleet normal mapit pois ja keskityin itse kuvan muokkaamiseen. Parhaiten tämä onnistui tekemällä kuvista kaksi eri kerrosta, joilla on molemmilla eri tiling-koordinaatit. Alla olevista kuvista näkee, miten tämä editori käytännössä toimii.
|
|
|
|
|
|
|
|
### Tallentaminen
|
|
|
|
|
|
|
|
Tallentamisesta muodostui jälleen ongelma, sillä Unityllä ei juurikaan ole käyttöoikeuksia laitteessa oman ympäristönsä ulkopuolella. Unityn android-kääntäjä ei myöskään syystä tai toisesta ymmärrä androidin tiedostorakennetta. |
|
|
|
\ No newline at end of file |