Tekintet bemenete

A vegyes valóságon túli alkalmazások bemenetének megkeresése a felhasználók által néző adatokkal kapcsolatos. Ha az eszközén található szemkövetési kamerák egyeznek az Unreal világűrében található sugárokkal, a felhasználó látási adatai elérhetővé válnak. A tekintet a tervekben és a C++-ban is használható, és olyan mechanika alapvető funkciója, mint az objektum-interakció, a módszerkeresés és a kameravezérlők.

A szemkövetés engedélyezése

  • A Project Gépház HoloLensengedélyezze a Tekintetbevitel képességet:

Képernyőkép a HoloLens beállítások képességeiről, kiemelt tekinteti bemenettel

  • Hozzon létre egy új színészt, és adja hozzá a jelenethez

Megjegyzés

HoloLens irreális szemkövetésnek csak egyetlen tekintete van mindkét szemnek. A sztereotikus követés, amelyhez két sugár szükséges, nem támogatott.

A szemkövetés használata

Először ellenőrizze, hogy az eszköz támogatja-e a szemkövetést az IsEyeTrackerConnected függvény segítségével. Ha a függvény true (igaz) értéket ad vissza, hívja meg a GetGazeData függvényt, hogy megtudja, hol néz a felhasználó a jelenlegi képkockában:

Az Is Eye Tracking Connected függvény terve

Megjegyzés

A rögzítési pont és a megbízhatósági érték nem érhető el a HoloLens.

A tekintet eredete és iránya egy vonal nyomkövetésében annak kideríthető, hogy pontosan hol keresnek a felhasználók. A tekintet értéke egy vektor, amely a tekintet eredetétől kezdve a forrástól a tekintet irányának és a vonal nyomkövetési távolságának szorzatával végződik:

A Get Gaze Data függvény terve

Fej tájolása

A fejre rögzített kijelző (HD) elforgatását is használhatja a felhasználó fejének irányának ábrázolásaként. A felhasználók irányát a Tekintetbevitel funkció engedélyezése nélkül is meg tudja jelenni, de nem kap szemkövetési információkat. Adjon hozzá egy, a tervre való hivatkozást a világ környezeteként a megfelelő kimeneti adatok lehozása érdekében:

Megjegyzés

A HMD-adatok leszerzése csak Az Unreal 4.26-os és újabb rendszerében érhető el.

A Get HMDData függvény terve

A C++ használata

  • A játék build.cs fájljában adja hozzá az EyeTracker et a PublicDependencyModuleNames listához:
PublicDependencyModuleNames.AddRange(
    new string[] {
        "Core",
        "CoreUObject",
        "Engine",
        "InputCore",
        "EyeTracker"
});
  • A Fájl/ Új C++ osztályban hozzonlétre egy új, EyeTracker nevű C++ aktort
    • Egy Visual Studio nyitja meg az új EyeTracker osztályt. Build és futtatás az Unreal játék megnyitásához az új EyeTracker-aktorsal. Keressen rá az "EyeTracker" kifejezésre a Place Actors ablakban, és húzza az osztályt a játékablakba, hogy hozzáadja a projekthez:

Képernyőkép egy aktorról, megnyitott hely aktor ablakával

  • Az EyeTracker.cpp-benadja hozzá a következőket: EyeTrackerFunctionLibrary, és DrawDebugHelpers:
#include "EyeTrackerFunctionLibrary.h"
#include "DrawDebugHelpers.h"

Mielőtt adatokat próbálna lehozni, ellenőrizze, hogy az eszköz támogatja-e a szemkövetést a UEyeTrackerFunctionLibrary::IsEyeTrackerConnected segítségével. Ha a szemkövetés támogatott, keresse meg a UEyeTrackerFunctionLibrary::GetGazeDataelemben található vonalkövetési sugár kezdő és záró elemét. Innen felépíthet egy tekintetvektort, és annak tartalmát a LineTraceSingleByChannelnek használhatja a sugárkeresési eredmények hibakeresése érdekében:

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);
            }
        }
    }
}

Következő fejlesztési ellenőrzőpont

Ha a kifektetett Irreális fejlesztési utat követi, akkor az MRTK alapvető építőelemei vizsgálatának közepén van. Innen folytathatja a következő építőelemre:

Vagy ugorjon a Mixed Reality képességeire és API-ira:

Bármikor visszamehet az Unreal fejlesztési ellenőrzőpontjaira.

Lásd még