Vstup pohledu

Pohledu vstup ve smíšených aplikacích realit je vše o tom, jak zjistit, co uživatelé hledají. Když se kamera sledující kamery v zařízení shodují s paprsky v Unreal prostoru na světě, budou k dispozici data z pohledu uživatele. Pohledu lze použít jak v modrotisky, tak v jazyce C++ a je základní funkcí pro mechanismy, jako je interakce objektu, způsob hledání a ovládání kamery.

Povolování sledování očí

  • v Project Nastavení HoloLenspovolit vstupní možnost pohledu :

snímek obrazovky HoloLens možností nastavení projektu se zvýrazněným vstupem pohledu

  • Vytvořit nový objekt actor a přidat ho do scény

Poznámka

HoloLens sledování očí v Unreal má pro oba oči pouze jeden pohledu ray. Sledování Stereoscopic, které vyžaduje dva paprsky, se nepodporuje.

Používání sledování očí

Nejdřív ověřte, že vaše zařízení podporuje sledování očí pomocí funkce IsEyeTrackerConnected . Pokud funkce vrátí hodnotu true, zavolejte GetGazeData , abyste zjistili, kde se v aktuálním snímku díváte na oči uživatele:

Podrobný plán funkce pro sledování očí připojené k síti

Poznámka

V HoloLens není k dispozici bod fixace a hodnota spolehlivosti.

Použijte pohledu původ a směr v trasování řádku a zjistěte přesně, kde se uživatelé hledají. Hodnota pohledu je vektor, který začíná na pohledu původu a končí počátkem plus směr pohledu vynásobený vzdáleností pro trasování řádku:

Podrobný plán pro funkci get pohledu data

Získání orientace hlav

Můžete také použít otočení připojeného zobrazení (HMD), které představuje směr záhlaví uživatele. Můžete získat směr hlavní pozice uživatelů bez povolení funkce vstupu pohledu, ale nebudete dostávat žádné informace o sledování. Pokud chcete získat správná výstupní data, přidejte do podrobného plánu odkaz na celý plán:

Poznámka

Získávání dat HMD je dostupné jenom v Unreal 4,26 a dalších.

Podrobný plán funkce Get HMDData

Použití jazyka C++

  • V souboru buildu. cs vaší hry přidejte EyeTracker do seznamu PublicDependencyModuleNames :
PublicDependencyModuleNames.AddRange(
    new string[] {
        "Core",
        "CoreUObject",
        "Engine",
        "InputCore",
        "EyeTracker"
});
  • V souboru/nové třídě jazyka c++vytvořte nový objekt actor C++ nazvaný EyeTracker
    • Visual Studio řešení otevře novou třídu EyeTracker. Sestavte a spusťte pro otevření hry Unreal pomocí nového objektu actor EyeTracker. Vyhledejte "EyeTracker" v okně umístit objekty actor a přetáhněte třídu do okna hry a přidejte ji do projektu:

Snímek obrazovky objektu actor s otevřeným oknem umístit objekt actor

  • V EyeTracker. cpppřidejte zahrnutí pro EyeTrackerFunctionLibrarya DrawDebugHelpers:
#include "EyeTrackerFunctionLibrary.h"
#include "DrawDebugHelpers.h"

Než se pokusíte získat data pohledu, ověřte, že vaše zařízení podporuje sledování očí pomocí UEyeTrackerFunctionLibrary:: IsEyeTrackerConnected . Pokud je podporováno sledování očí, najděte začátek a konec Ray pro trasování řádku z UEyeTrackerFunctionLibrary:: GetGazeData. Odtud můžete vytvořit vektor pohledu a předat jeho obsah do LineTraceSingleByChannel pro ladění všech výsledků popřístupů do paprsku:

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 Unrealou cestu pro vývoj, jste v průběhu zkoumání základních stavebních bloků MRTK. Odsud můžete pokračovat k dalšímu stavebnímu bloku:

Nebo se můžete přecházet na možnosti hybridních platforem pro realitu a rozhraní API:

Kdykoli se můžete kdykoli vrátit ke kontrolním bodům vývoje Unreal .

Viz také