Rechtstreekse manipulatie met handen

Knop

Directe manipulatie is een invoermodel waarbij hologrammen rechtstreeks met uw handen worden aangeraakt. Het idee achter dit concept is dat objecten zich net zo gedragen als in de echte wereld. Knoppen kunnen eenvoudig worden geactiveerd door erop te drukken, objecten kunnen worden opgehaald door ze te pakken en 2D-inhoud gedraagt zich als een virtueel touchscreen. Directe manipulatie is gebaseerd op affordance, wat betekent dat het gebruiksvriendelijk is. Er zijn geen symbolische gebaren om gebruikers te leren. Alle interacties zijn opgebouwd rond een visueel element dat u kunt aanraken of grijpen. Het wordt beschouwd als een 'near'-invoermodel omdat het het beste kan worden gebruikt voor interactie met inhoud binnen armbereik.

Ondersteuning voor apparaten

Invoermodel HoloLens (1e generatie) HoloLens 2 Immersive headsets
Rechtstreekse manipulatie met handen ❌ Niet ondersteund ✔️ Aanbevolen ➕ Ondersteund. Voor de gebruikersinterface raden we u aan om in plaats daarvan met handen te wijzen en door te voeren .

Directe manipulatie is een primair invoermodel op HoloLens 2, dat gebruikmaakt van het nieuwe gearticuleerde systeem voor handtracering. Het invoermodel is ook beschikbaar op immersive headsets met behulp van bewegingscontrollers, maar wordt niet aanbevolen als een primair middel voor interactie buiten objectmanipulatie. Directe manipulatie is niet beschikbaar op HoloLens (1e generatie).



Demo van eenvoudige handtracering en instinctuele interacties

Als u ontwerpconcepten voor hoofd- en ogentracering in actie wilt zien, bekijkt u de videodemo Hologrammen ontwerpen - Hoofdtracering en Oogtracering hieronder. Wanneer u klaar bent, gaat u verder voor een gedetailleerdere duik in specifieke onderwerpen.

Deze video is afkomstig uit de HoloLens 2-app Hologrammen ontwerpen. Download en geniet hier van de volledige ervaring.

Botsbare vingertop

Op HoloLens 2 worden de handen van de gebruiker herkend en geïnterpreteerd als linker- en rechterskeletmodellen. Om het idee van het rechtstreeks aanraken van hologrammen met handen te implementeren, kunnen in het ideale gevallen vijf colliers worden bevestigd aan de vijf vingertoppen van elk handskeletmodel. Vanwege het gebrek aan tactiele feedback kunnen 10 botsbare vingertoppen echter onverwachte en onvoorspelbare conflicten met hologrammen veroorzaken.

We raden aan om alleen een collier op elke wijsvinger te plaatsen. De botsbare index vingertoppen kunnen nog steeds fungeren als actieve aanraakpunten voor diverse aanraakbewegingen waarbij andere vingers betrokken zijn. Aanraakbewegingen zijn drukken met één vinger, tikken met één vinger, drukken met twee vingers en drukken met vijf vingers, zoals hieronder wordt weergegeven:

collidable vingertop
Botsbare vingertop

Druk met één vinger
Druk met één vinger

Tikken met één vinger
Tikken met één vinger

Druk met vijf vingers
Druk met vijf vingers



Bol-collier

In plaats van een willekeurige algemene vorm te gebruiken, raden we u aan een bol-collider te gebruiken. Vervolgens kunt u deze visueel weergeven om betere aanwijzingen te bieden voor bijna-gerichte doelen. De diameter van de bol moet overeenkomen met de dikte van de wijsvinger om de aanraaknauwkeurigheid te verhogen. Het is eenvoudiger om de variabele van de vingerdikte op te halen door de hand-API aan te roepen.

Vingertopcursor

Naast het weergeven van een botsbare bol op de vingertop van de index, hebben we een geavanceerde vingertopcursor gemaakt om een betere near-targeting-ervaring te bereiken. Het is een donutvormige cursor die is gekoppeld aan de vingertop van de index. Afhankelijk van nabijheid reageert het dynamisch op een doel voor oriëntatie en grootte, zoals hieronder wordt beschreven:

  • Wanneer een wijsvinger naar een hologram beweegt, is de cursor altijd parallel aan het hologramoppervlak en wordt de grootte geleidelijk verkleind.
  • Zodra de vinger het oppervlak raakt, wordt de cursor verkleind tot een punt en wordt er een aanraakgebeurtenis verzonden.

Met interactieve feedback kunnen gebruikers zeer nauwkeurige bijna gerichte taken bereiken, zoals het activeren van een hyperlink of het indrukken van een knop, zoals hieronder wordt weergegeven.

Vingertopcursor ver
Vingertopcursor ver

Vingertopcursor in de buurt
Vingertopcursor in de buurt

Vingertopcursorcontact
Vingertopcursorcontact


Begrenzingsvak met nabijheidsschaduw

Het hologram zelf vereist ook de mogelijkheid om visuele en audiofeedback te geven om het gebrek aan tactiele feedback te compenseren. Hiervoor genereren we het concept van een begrenzingsvak met een nabijheidsschaduw. Een begrenzingsvak is een minimaal volumetrisch gebied dat een 3D-object omsluit. Het begrenzingsvak heeft een interactief renderingmechanisme dat een nabijheids-shader wordt genoemd. De nabijheidsschaduw werkt als het volgende:

Aanwijzen (ver) met visuele feedback
Aanwijzen (ver)
Wanneer de wijsvinger zich binnen een bereik bevindt, wordt een vingertopspot op het oppervlak van het begrenzingsvak geworpen.

Aanwijzen (in de buurt) met visuele feedback
Aanwijzen (in de buurt)
Wanneer de vingertop dichter bij het oppervlak komt, verkleint de spot.

Contactpersoon begint
Contactpersoon begint
Zodra de vingertop het oppervlak raakt, verandert het hele begrenzingsvak van kleur of genereert het visuele effecten om de aanraaktoestand weer te geven.

Einde van contactpersoon
Einde van contactpersoon
Een geluidseffect kan ook worden geactiveerd om de visuele aanraakfeedback te verbeteren.



Drukbare knop

Met een botsbare vingertop zijn gebruikers nu klaar om te communiceren met een fundamenteel holografisch UI-onderdeel, zoals een drukbare knop. Een drukbare knop is een holografische knop die is afgestemd op een directe vingerdruk. Nogmaals, vanwege het gebrek aan tactiele feedback, biedt een drukbare knop een aantal mechanismen om problemen met betrekking tot tactiele feedback aan te pakken.

  • Het eerste mechanisme is een begrenzingsvak met een nabijheidsschaduw, die in de vorige sectie wordt beschreven. Het geeft gebruikers een beter gevoel van nabijheid wanneer ze naderen en contact maken met een knop.
  • Het tweede mechanisme is depressie. Depressie creëert een gevoel van omlaag drukken nadat een vingertop een knop heeft. Het mechanisme zorgt ervoor dat de knop strak beweegt met de vingertop langs de diepteas. De knop kan worden geactiveerd wanneer deze een gekozen diepte bereikt (bij indrukken) of de diepte (bij loslaten) verlaat nadat deze is doorgegeven.
  • Het geluidseffect moet worden toegevoegd om de feedback te verbeteren wanneer de knop wordt geactiveerd.

drukbare knop ver
Vinger is ver weg

drukbare knop in de buurt
Vingerbenaderingen

Drukbare knopcontact begint
Contactpersoon begint

druk op de knop
Druk op omlaag



2D-leisteeninteractie

Een 2D-slate is een holografische container die wordt gebruikt voor het hosten van 2D-app-inhoud, zoals een webbrowser. Het ontwerpconcept voor interactie met een 2D-leisteen via directe manipulatie is hetzelfde als interactie met een fysiek touchscreen.

Interactie met de slate-contactpersoon

Touch
Touch
Gebruik een wijsvinger om op een hyperlink of knop te drukken.

Schuiven
Schuiven
Gebruik een wijsvinger om een slate-inhoud omhoog en omlaag te schuiven.

Zoom
In- en uitzoomen
De twee wijsvingers van de gebruiker worden gebruikt om in en uit te zoomen op de leisteeninhoud, afhankelijk van de relatieve beweging van de vingers.

Voor het manipuleren van de 2D-slate zelf

Afbeelding met de functie Voor het pakken en slepen
Verplaatsen
Beweeg uw handen naar hoeken en randen om de dichtstbijzijnde manipulatie-betaalbaarheid te onthullen. Pak de Holobar boven aan de 2D-leisteen, waarmee u de hele lei kunt verplaatsen.

Afbeelding met schaalfunctie
Schalen
Pak de manipulatie-betaalbaarheid en voer uniform schalen uit door de hoek-affordances.

Plaatsen
Plaatsen
Pak de manipulatie-betaalbaarheid en voer reflow uit via de edge-affordances.



3D-objectmanipulatie

met HoloLens 2 kunnen gebruikers hun handen in staat stellen om holografische 3D-objecten te sturen en te bewerken door een begrenzingsvak toe te passen op elk 3D-object. Het begrenzingsvak biedt een betere diepteperceptie door de nabijheids-shader. Met het begrenzingsvak zijn er twee ontwerpmethoden voor het bewerken van 3D-objecten.

Manipulatie op basis van betaalbaarheid

Met manipulatie op basis van betaalbaarheid kunt u het 3D-object manipuleren via een begrenzingsvak, samen met de manipulatiemogelijkheden eromheen.

Afbeelding van een begrenzingsvak voor objecten en de functie Verplaatsen
Verplaatsen
Zodra de hand van een gebruiker zich dicht bij een 3D-object bevindt, worden het begrenzingsvak en de dichtstbijzijnde betaalbaarheid onthuld. Gebruikers kunnen het begrenzingsvak pakken om het hele object te verplaatsen.

Afbeelding van de gebruiker die een objectrand pakt om te draaien
Roteren
Gebruikers kunnen de edge-betaalbaarheid grijpen om te draaien.

Afbeelding van de gebruiker die een hoek met objecten pakt om te schalen
Schalen
Gebruikers kunnen de hoek-betaalbaarheid grijpen om uniform te schalen.


Manipulatie op basis van niet-betaalbaarheid

Niet-op betaalbaarheid gebaseerde manipulatie koppelt geen betaalbaarheid aan het begrenzingsvak. Gebruikers kunnen alleen het begrenzingsvak weergeven en er vervolgens rechtstreeks mee werken. Als het begrenzingsvak met één hand wordt gepakt, worden de vertaling en draaiing van het object gekoppeld aan de beweging en stand van de hand. Wanneer het object met twee handen wordt gepakt, kunnen gebruikers het vertalen, schalen en draaien volgens relatieve bewegingen van twee handen.

Voor specifieke manipulatie is precisie vereist. We raden u aan om op betaalbaarheid gebaseerde manipulatie te gebruiken, omdat dit een hoge mate van granulariteit biedt. Voor flexibele manipulatie raden we u aan om niet-betalende manipulatie te gebruiken, omdat dit directe en speelse ervaringen mogelijk maakt.



Instinctuele gebaren

Met HoloLens (1e generatie) hebben we gebruikers een aantal vooraf gedefinieerde bewegingen geleerd, zoals bloei en luchttikken. Voor HoloLens 2 vragen we gebruikers niet om symbolische gebaren te onthouden. Alle vereiste gebruikersbewegingen, waarbij gebruikers moeten communiceren met hologrammen en inhoud, zijn instinctief. De manier om instinctuele gebaren te bereiken, is door gebruikers te helpen gebaren uit te voeren via het ontwerp van UI-betaalbaarheid.

Als we de gebruiker bijvoorbeeld aanmoedigen om een object of een besturingspunt te pakken met een knijpbeweging van twee vingers, moet het object of het besturingspunt klein zijn. Als we willen dat de gebruiker een greep met vijf vingers uitvoert, moet het object of het besturingspunt relatief groot zijn. Net als bij knoppen zou een kleine knop ervoor zorgen dat gebruikers er met één vinger op kunnen drukken. Een grote knop zou gebruikers aanmoedigen om er met hun handpalmen op te drukken.

Afbeelding van de gebruiker die een klein object pakt om te verplaatsen
Klein object

Afbeelding van de gebruiker die een gemiddeld object pakt om te verplaatsen
Gemiddeld object

Afbeelding van de gebruiker die een groot object pakt om te verplaatsen
Groot object




Symmetrisch ontwerp tussen handen en 6 DoF-controllers

Het is u misschien opgevallen dat er interactieparallells zijn die we kunnen tekenen tussen handen in AR en bewegingscontrollers in VR. Beide invoer kan worden gebruikt om directe bewerkingen in hun respectieve omgevingen te activeren. In HoloLens 2 werkt grijpen en slepen met handen op korte afstand op ongeveer dezelfde manier als de grijpknop op WMR-bewegingscontrollers. Dit biedt gebruikers vertrouwdheid met interactie tussen de twee platforms, wat nuttig kan zijn als u ooit besluit om uw toepassing over te schakelen tussen platforms.



Optimaliseren met oogtracering

Directe manipulatie kan magisch aanvoelen als het werkt zoals bedoeld. Maar het kan ook frustrerend worden als u uw hand nergens kunt verplaatsen zonder onbedoeld een hologram te activeren. Oogtracering helpt mogelijk om beter vast te stellen wat de intentie van de gebruiker is.

  • Wanneer: Verminder het onbedoeld activeren van een manipulatiereactie. Oogtracering biedt een beter inzicht in waar een gebruiker momenteel mee bezig is. Stel dat u een holografische (instructie)tekst leest wanneer u een echte werktool gebruikt.

Door dit te doen, verplaatst u per ongeluk uw hand over een aantal interactieve holografische knoppen die u niet eens eerder had opgemerkt. Het kan bijvoorbeeld buiten het weergaveveld van de gebruiker (FoV) zijn.

Als de gebruiker een tijdje niet naar een hologram heeft gekeken, maar er toch een aanraak- of grijpgebeurtenis voor is gedetecteerd, is de interactie waarschijnlijk onbedoeld.

  • Welke: Afgezien van het aanpakken van fout-positieve activeringen, bevat een ander voorbeeld een betere identificatie van de hologrammen die moeten worden opgehaald of gepoogd, omdat het exacte snijpunt mogelijk niet duidelijk is vanuit uw perspectief, met name als meerdere hologrammen dicht bij elkaar zijn geplaatst.

    Hoewel oogtracering op HoloLens 2 beperkingen heeft op basis van hoe nauwkeurig het uw ogen kan bepalen, kan dit nog steeds nuttig zijn voor bijna-interacties vanwege diepgaande verschillen bij interactie met handinvoer. Dit betekent dat het soms moeilijk is om te bepalen of uw hand zich achter of voor een hologram bevindt om bijvoorbeeld precies een manipulatiewidget te pakken.

  • Waarheen: Gebruik informatie over waar een gebruiker naar kijkt met snelle bewegingen. Pak een hologram en draai het grofweg naar de beoogde bestemming.

    Hoewel dit soms werkt, kan het snel uitvoeren van handbewegingen resulteren in zeer onnauwkeurige bestemmingen. Oogtracering kan echter de nauwkeurigheid van het gebaar verbeteren.



Manipulatie in MRTK (Mixed Reality Toolkit) voor Unity

Met MRTK kunt u eenvoudig algemeen manipulatiegedrag bereiken met behulp van het script ObjectManipulator. Met ObjectManipulator kunt u objecten rechtstreeks met handen of met handstraal vastpakken en verplaatsen. Het ondersteunt ook tweehandige manipulatie voor het schalen en roteren van een object.


Zie ook