AR Kit i iOS 11.0

Vi i tidligere blogindlæg fokuseret på forskelige funktioner i det nye iOS 11. Nu er turen kommet til Augmented Reality Kit. 

Vi har leget med et lille demoprojekt fra Apple, hvor vi ved hjælp af Augmented Reality fik besøg af en kamæleon på frokostbordet.


Augmented Reality i iOS 11

Augmented Reality (AR) har fået et kraftig løft i den seneste opdatering til Apple’s styresystem iOS 11.0, hvilket hedder ARKit.

Kort fortalt, kan ARKit se omgivelserne ved at bruge både kamera, accelerometer, kompas og gps til at placere en eller flere virtuelle figurer i “den rigtige verden”. Denne slags teknologi har været i nyhederne for et års tid siden via spillet PokemonGo.

For at lave et Augmented Reality projekt, kræver det dog at man har mindst én 3D model, hvilket er anderledes fra normale iOS projekter.

3D modeller kan laves i programmer som f.eks. Maya, 3DStudioMax, Blender og lignende, og man vil ofte også bruge andre programmer til at lave modellernes “teksturer”, hvilket er modellens overflade farver. Modellens bevægelser (animationer) vil oftest også laves i de førnævnte modelleringsprogrammer.

Apple’s “Chameleon” model med teksturer, set i Apple’s SceneKit i XCode.

Apple’s “Chameleon” model med teksturer, set i Apple’s SceneKit i XCode.

AR Demo demo projekt
- Hurtig opstart

Den nemmeste måde at komme ind i hvordan man bruger ARKit, er at læse Apple’s introduktion, dokumentation samt demo-projekter.

Det overordnede introduktionsmateriale findes på Introducing ARKit, og når man føler sig klar, kan man se på de specifikke funktioner på ARKits dokumentationsside.   

Dét man kan overordnet se i disse sider, er at ARKit kan finde punkter i verdenen, samt vandrette overflader, hvorpå man kan placere 3D modeller. ARKit kan også tage lys-værdien af dét kameraet kan se, og ændre lysstyrken på den model der vises, så lysstyrken nogenlunde passer med den virkelige verden.


Indbygget AR demo projekt

Hvis man starter et nyt projekt i XCode, kan man vælge en “Augmented Reality App”, hvorefter man får et projekt givet, hvor der bliver automatisk placeret en model.

indstillinger-arkit-min.png


Når man starter dette projekt uden at ændre noget i projektet, bliver resultatet et svævende kampfly.

 
Augmented Reality svævefly lavet i Apple iOS ARKit demo projekt.
 

Interaktiv ARKit demo

Hvis man vil se en lidt mere avanceret AR demo, kan man finde et projekt på apple’s download-side for udviklere, på Interactive Content with ARKit

Dette projekt starter op med at spørge brugeren om at finde en vandret overflade, hvorefter der vil blive placeret en animeret kamæleon. Man kan nu se rundt om den, og den vil animere og reagere på hvor man ser på den fra. Der er adskillige animationer på denne kamæleon, og en gang i mellem vil den skyde sin tunge ud efter kameraet.

Hvis man trykker på den overflade man har fundet, hvilket kunne være et bord eller gulv, så vil man placere kamæleonen dér hvor man trykker. Det skal dog nævnes at denne demo antager at den overflade der findes, er uendeligt stor, så kanter på f.eks. et bord, vil ikke blive registrerede. Dette er dog muligt at implementere via en anden ARKit funktion, hvor app’en kan finde specifikke afgrænsede overflader.

Som nævnt, så tager ARKit også højde for lysmængden, således at kamæleonen passer med omgivelserne. Når Kamæleonen er placeret, vil den matche farven fra det underlag den er placeret på. Trykker man på den, vil den først have sin naturlige farve, men langsomt skifte om til at matche farven fra underlaget. Placeres den på et trægulv, vil den matche farven fra trægulvet. Placeres den, som på billedet, på et farverigt underlag, vil den matche den gennemgående farve fra underlaget.

Kamæleonen som er blevet placeret på overfladen.

Kamæleonen som er blevet placeret på overfladen.

Afrunding

Ved at gennemgå de vedlagte demo-projekter kan man få et godt og hurtigt indblik i hvordan man kan lave både simple og lidt mere avancerede AR-projekter i XCode. Man kan begynde at lave et mere avanceret AR-projekt, ved at tage udgangspunkt i disse demo-projekter, og se på hvilke andre muligheder der er i Apple’s dokumentation.

Vi vil i et kommende blog-indlæg gå mere i detaljer med de tekniske aspekter, og mere avanceret brug af ARKit. Her vil der også være kodeeksempler, som man kan tage udgangspunkt i til egne AR-projekter.

 

Af Tim Kofoed
iOS udvikler hos Touchlogic