Terug naar site

Veli Holo Trainer

Een van de afgeronde projecten hierbij XR-lab, was een tutorial app voor de hololens. Het doel van deze applicatie is om ervoor zorgen dat de gebruiker weet wat die met de hololens kan doen en hoe
die met de hololens kan interacteren.

 

Wat hebben wij gemaakt?

Wij hebben een hololens applicatie gemaakt waar je doorzeven tutorials heen loopt, deze tutorials bestaan uit:

- ChickenCode - scanner
- Hand scanning
- Hologrammen oppaken
- Hologrammen draaien
- Rondlopen door de ruimte
- Room scanning
- Hand menu

 

Voor deze zeven tutorial levels hebben wij verschillende mechanics en systems gemaakt waarvan elk een uniek doel heeft. Zo heeft de gebruiker bij elk level een nieuwe ervaring en leren ze steeds wat nieuws.

 

Uitdagingen tijdens development

Tijdens het ontwikkelen van de app zijn we tegen meerdere uitdagingen gelopen. Wat zijn we tegengekomen en welke oplossing hebben wij gebruikt?

 

Hoe zorgen we dat menu's in beeld blijven?

Gelukkig voor ons bestaat er al een script binnen MRTK (Mixed Reality Toolkit) dat ervoor zorgt dat menu's binnen het beeld blijft. Dit script deed precies wat we nodig hadden maar omdat onze game met meerdere scene’s werkt, spawned het menu soms ver van de gebruiker af. Dit wordt raar
weergeven in het beeld, terwijl het originele plan was om het menu op dezelfde positie te houden.

Hiervoor hebben wij een custom script gemaakt genaamd ‘RadialViewSnapped.cs’. Dit script werkt hetzelfde als de radial view maar zorgt ervoor dat de menu in het midden van het beeld wordt weergeven tijdens ‘onEnable();’:

c#:
public class RadialViewSnapped : RadialView
{
private const float Offset = .3f;


protected override void OnEnable()
{
Transform cameraTransform= Camera.main.transform;


Vector3targetPos = cameraTransform.position +
cameraTransform.forward.normalized * Offset;
              

SnapTo(targetPos, GoalRotation, GoalScale);

base.OnEnable();

 

}

}

 

Hoe weten we wat de omgeving is?

Ook moet onze app meer van de omgeving weten. Dit was nodig zodat we een AI door de ruimte heen konden laten bewegen.

MRTK heeft hier eigenlijk al twee oplossingen voor: "Spatial awareness" en "Scene understanding". Hierbij is Scene understanding een uitgebreidere versie van Spatial awareness waar het
onderscheid gemaakt wordt tussen de muur, vloer en andere objecten in de ruimte. Terwijl het handig is om te weten wat de vloer of een muur is, was het verschil in performance tussen de twee systemen te groot. Uiteindelijk was Spataial Awareness genoeg voor ons en had het een minder grote invloed op de performance van de gehele applicatie.

Door middel van dit systeem kunnen wij ook materials op de mesh toevoegen. Hierdoor kan je binnen de hololens zien welk deel van het terrain al is ingeladen.


Hoe houden we alles zo makkelijk mogelijk?

Om alles zo makkelijk mogelijk te houden voor de gebruiker, zijn er drie systemen.

- Voordat een tutorial sectie begint, hebben we een introtext waar korte instructies worden weergegeven aan de gebruiken over dit level.

- Tijdens de levels proberen wij het de gebruiker duidelijk te maken wat
het doel is door middel van animaties of de visuals van het object zelf. Een voorbeeld is het 'Hand scanning - level' waar wij twee holografische handen hebben geplaatst zodat de gebruiker weet in welke positie hij zijn handen moet plaatsen.

- Als derde en laatste zorgen wij ervoor dat alle levels los van elkaar staan. Op deze manier kan de gebruiker in alle rust elk level uitproberen en wat er gedaan moet worden, hierdoor zal hij minder overbelast raken en heeft het een echt tutorial gevoel.