Staren van invoer
Staren naar mixed reality apps gaat over het vinden van wat uw gebruikers zien. Wanneer de camera's voor het bijhouden van de camera's op uw apparaat overeenkomen met de rön in de wereldruimte van Unreal, komen de gezichtslijngegevens van uw gebruiker beschikbaar. Staren kan worden gebruikt in zowel blauwdrukken als C++, en is een kernfunctie voor mechanismen zoals objectinteractie, zoeken naar en camerabesturingselementen.
Oogtracking inschakelen
- Schakel in Project Instellingen HoloLensde mogelijkheid Staren-invoer in:

- Een nieuwe actor maken en deze toevoegen aan uw scène
Notitie
HoloLens oogtracking in Unreal heeft slechts één staringsfoto voor beide ogen. Stereoscopisch bijhouden, waarvoor twee rönen zijn vereist, wordt niet ondersteund.
Oogtracking gebruiken
Controleer eerst of uw apparaat oogtracking ondersteunt met de functie IsEyeTrackerConnected. Als de functie true retourneert, roept u GetGazeData aan om te zien waar de gebruiker naar kijkt in het huidige frame:

Notitie
Het fixatiepunt en de betrouwbaarheidswaarde zijn niet beschikbaar op HoloLens.
Gebruik de starende oorsprong en richting in een lijn-traceer om precies te weten te komen waar uw gebruikers naar op zoek zijn. De staringwaarde is een vector, beginnend bij de herkomst van de staring en eindigend bij de oorsprong plus de staringrichting vermenigvuldigd met de lijn traceerafstand:

Hoofdstand krijgen
U kunt ook de rotatie van de HMD (Head Mounted Display) gebruiken om de richting van het hoofd van de gebruiker weer te geven. U kunt de gebruikers de richting op sturen zonder de mogelijkheid Stareninvoer in te stellen, maar u krijgt geen informatie over het volgen van de ogen. Voeg een verwijzing naar de blauwdruk toe als de wereldcontext om de juiste uitvoergegevens op te halen:
Notitie
Het verkrijgen van HMD-gegevens is alleen beschikbaar in Unreal 4.26 en meer.

C++ gebruiken
- Voeg in het bestand build.cs van uw game EyeTracker toe aan de lijst PublicDependencyModuleNames:
PublicDependencyModuleNames.AddRange(
new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"EyeTracker"
});
- Maak in Bestand/ Nieuwe C++-klasseeen nieuwe C++-actor met de naam EyeTracker
- Met Visual Studio oplossing wordt de nieuwe EyeTracker-klasse geopend. Bouw en voer uit om het Game Van Derek te openen met de nieuwe EyeTracker-actor. Zoek naar 'EyeTracker' in het venster Actors plaatsen en sleep de klasse naar het gamevenster om deze toe te voegen aan het project:

- Voeg in EyeTracker.cppinvoegfuncties toe voor EyeTrackerFunctionLibraryen DrawDebugHelpers:
#include "EyeTrackerFunctionLibrary.h"
#include "DrawDebugHelpers.h"
Controleer of uw apparaat oogtracking ondersteunt met UEyeTrackerFunctionLibrary::IsEyeTrackerConnected voordat u staringsgegevens probeert op te halen. Als oogtracking wordt ondersteund, gaat u naar het begin en einde van een straal voor een lijn tracering vanuit UEyeTrackerFunctionLibrary::GetGazeData. Van hieruit kunt u een starenvector maken en de inhoud ervan doorgeven aan LineTraceSingleByChannel om fouten op te sporen in de resultaten van een ray-hit:
void AEyeTracker::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if(UEyeTrackerFunctionLibrary::IsEyeTrackerConnected())
{
FEyeTrackerGazeData GazeData;
if(UEyeTrackerFunctionLibrary::GetGazeData(GazeData))
{
FVector Start = GazeData.GazeOrigin;
FVector End = GazeData.GazeOrigin + GazeData.GazeDirection * 100;
FHitResult Hit Result;
if (GWorld->LineTraceSingleByChannel(HitResult, Start, End, ECollisionChannel::ECC_Visiblity))
{
DrawDebugCoordinateSystem(GWorld, HitResult.Location, FQuat::Identity.Rotator(), 10);
}
}
}
}
Volgende controlepunt voor ontwikkeling
Als u het ontwikkelingsproces van De Ontwikkeling van Den Echt volgt dat we hebben bespraken, bent u bezig met het verkennen van de bouwstenen van de MRTK. Hier kunt u doorgaan naar de volgende bouwsteen:
Of ga naar Mixed Reality platformmogelijkheden en API's:
U kunt altijd teruggaan naar de Controlepunten voor ontwikkeling van De Ontwikkeling van Unreal.