Vstup pohledu
Vstup pohledu v aplikacích pro hybridní realitu spočívá v tom, že zjistíte, na co se uživatelé dívají. Když se kamery sledování očí na vašem zařízení shodují s paprsky v unrealově světovém prostoru, budou k dispozici data pohledu uživatele. Funkce Gaze se dá použít v podrobných plánech i v jazyce C++ a je základní funkcí pro mechaniky, jako je interakce objektů, hledání cest a ovládání kamery.
Povolení sledování očí
- V nastavení > projektu HoloLens povolte funkci Vstup pohledu :
- Vytvoření nového objektu actor a jeho přidání do scény
Poznámka
Sledování očí HoloLens v Unreal má pouze jeden pohledu pro obě oči. Stereoskopické sledování, které vyžaduje dva paprsky, není podporováno.
Použití sledování očí
Nejprve zkontrolujte, jestli vaše zařízení podporuje sledování očí pomocí funkce IsEyeTrackerConnected . Pokud funkce vrátí hodnotu true, zavolejte GetGazeData a zjistěte, kam se v aktuálním snímku dívají oči uživatele:
Poznámka
Bod fixace a hodnota spolehlivosti nejsou v HoloLensu k dispozici.
Pomocí počátku a směru pohledu v trasování čar můžete zjistit, kde přesně vaši uživatelé hledají. Hodnota pohledu je vektor, který začíná od počátku pohledu a končí na počátku plus směr pohledu vynásobený vzdáleností trasování čáry:
Získání orientace hlavy
Můžete také použít otáčení displeje HMD (Head Mounted Display) k reprezentaci směru hlavy uživatele. Bez povolení funkce Vstup pohledu můžete získat směr uživatelů, ale nedostanete žádné informace o sledování očí. Pokud chcete získat správná výstupní data, přidejte odkaz na podrobný plán jako kontext světa:
Poznámka
Získání dat HMD je dostupné jenom v Unreal 4.26 a novějších.
Použití jazyka C++
- Do souboru build.cs hry přidejte EyeTracker do seznamu PublicDependencyModuleNames :
PublicDependencyModuleNames.AddRange(
new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"EyeTracker"
});
- V souboru nebo nové třídě jazyka C++ vytvořte nový aktér jazyka C++ s názvem EyeTracker.
- Řešení sady Visual Studio otevře novou třídu EyeTracker. Sestavením a spuštěním otevřete hru Unreal s novým hercem EyeTrackeru. V okně Umístit herce vyhledejte "EyeTracker" a přetažením třídy do okna hry ji přidejte do projektu:
- V souboru EyeTracker.cpp přidejte pro EyeTrackerFunctionLibrary a DrawDebugHelpers:
#include "EyeTrackerFunctionLibrary.h"
#include "DrawDebugHelpers.h"
Než se pokusíte získat data o pohledu, zkontrolujte, jestli vaše zařízení podporuje sledování očí pomocí UEyeTrackerFunctionLibrary::IsEyeTrackerConnected . Pokud je podporováno sledování očí, vyhledejte začátek a konec paprsku pro trasování čar z UEyeTrackerFunctionLibrary::GetGazeData. Odtud můžete vytvořit vektor pohledu a předat jeho obsah do LineTraceSingleByChannel a ladit všechny výsledky 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);
}
}
}
}
Další kontrolní bod vývoje
Pokud sledujete cestu unreal developmentu, kterou jsme nastavili, jste uprostřed zkoumání základních stavebních bloků MRTK. Odtud můžete pokračovat k dalšímu stavebnímu bloku:
Nebo přejděte na Mixed Reality možností a rozhraní API platformy:
K kontrolním bodům unreal development se můžete kdykoli vrátit.