EyeX Plugin for Unreal Engine 4 [eye tracking]

I was an psychology graduate before I enter VR. I missed eye-tracking devices in the visual perception lab. I tried the unity sdk once, that was good enough, and was thinking if there could be one for UE4. If your products can be combined with Oculus Rift. You gonna shake the world!.

Great job, you guys!

Looking forward to trying this out in our game!

We do have a unityplugin aswell. Sorry mods and devs for linking this here but feels somewhat relevant. http://developer…com/getting-started–eyex-sdk-for-unity/ It gets you started in 3mins with unity.

VR devices would be silly not to include eye tracking in their devices for reasons like this:

And i’m looking forward to seeing it in your game, I litterly can’t wait to try it out!

Does this work with 3d glasses?

What kind of 3D glasses are we talking about?

VR or wearable glasses you wear for cinema?

Or these

7258_nVidia_GEFORCE-3D-glasses.jpg

Nvidia, or any of this type. I think for them only one eye is visible at a time.

Cool, I’ll have to check the eyeX out. I’ve worked with your more advanced eye trackers at the Norwegian University of Science and Technology, which had a rather cumbersome calibration procedure - I’m hoping that’s changed for this consumer product :smiley:

We can track each eye individually. I’ve been searching the office for our 3D glasses but they seem to be lost and it’s not superhigh on the todo list of hardware QA.

3D glasses uses an active shutter system(Active shutter 3D system - Wikipedia) so techwise/theoretically it might work, assuming we get the data while one of the glasses is closed.

Unfortunly i cannot tell you a straight answear regarding this and untill the 3D glasses we have here shows up i can’t test it out myself either. :confused:

If i do find them i’ll post about it again for sure!

The EyeX has a quite a fast calibration, it’s based of profiles and each profile(so you can switch between users easily) is calibrated by looking at 9 spots on the screen. It’s over and done in 20seconds and only needs to be done once per user.

In short, it’s very pain-free to calibrate. The calibrate process is also exposed in the API’s since our last engineupdate 1.1.0
http://developer…com/eyex-1-1-0-and-eyex-sdk-1-2/

Hi,

I posted this over on the developer but figured I’d post here to.

We’ve tried building the project from the git resource with UE4.9, added the include to the EyeXPlayerController.h as mentioned by others on the however we still get the following compile errors.

Any ideas?


1>------ Build started: Project: EyeXSamples, Configuration: Development_Editor x64 ------
1>  Creating makefile for EyeXSamplesEditor (no existing makefile)
1>  Performing full C++ include scan (no include cache file)
1>  Parsing headers for EyeXSamplesEditor
1>    Running UnrealHeaderTool "C:\Users\Greg\Desktop\EyeXforUE4-master\EyeXSamples.uproject" "C:\Users\Greg\Desktop\EyeXforUE4-master\Intermediate\Build\Win64\EyeXSamplesEditor\Development\UnrealHeaderTool.manifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -rocket -installed
1>  C:/Users/Greg/Desktop/EyeXforUE4-master/Plugins/TobiiEyeX/Source/TobiiEyeX/Public/EyeXActorBase.h(60) : LogCompile:Error: BlueprintImplementableEvents should not be virtual. Use BlueprintNativeEvent instead.
1>  C:/Users/Greg/Desktop/EyeXforUE4-master/Plugins/TobiiEyeX/Source/TobiiEyeX/Public/EyeXActorBase.h(67) : LogCompile:Error: BlueprintImplementableEvents should not be virtual. Use BlueprintNativeEvent instead.
1>  Reflection code generated for EyeXSamplesEditor in 7.1229886 seconds
1>  Performing 21 actions (4 in parallel)
1>  [3/21] Resource PCLaunch.rc
1>  [4/21] Resource ModuleVersionResource.rc.inl
1>  PCH.EyeXPluginPrivatePCH.h.cpp
1>  PCH.EyeXSamples.h.cpp
1>  [5/21] Resource ModuleVersionResource.rc.inl
1>  [6/21] Resource EyeXSamples.rc
1>  EyeXSamples.cpp
1>  MyActor.cpp
1>  EyeXSamples.generated.cpp
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Source\EyeXSamples\MyActor.cpp(5): error C2059: syntax error : 'string'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Source\EyeXSamples\MyActor.cpp(5): error C2143: syntax error : missing ',' before '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Source\EyeXSamples\MyActor.cpp(5): error C2059: syntax error : '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Source\EyeXSamples\MyActor.cpp(6): error C2511: 'AMyActor::AMyActor(const FObjectInitializer (__cdecl *)(void))' : overloaded member function not found in 'AMyActor'
1>          c:\users\greg\desktop\eyexforue4-master\source\eyexsamples\MyActor.h(11) : see declaration of 'AMyActor'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Source\EyeXSamples\MyActor.cpp(6): error C2065: 'PCIP' : undeclared identifier
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Source\EyeXSamples\MyActor.cpp(7): error C2550: 'AMyActor::{ctor}' : constructor initializer lists are only allowed on constructor definitions
1>  EyeXUtils.cpp
1>  EyeXPlugin.cpp
1>  EyeXStateAccessor.cpp
1>  EyeXPlayerController.cpp
1>  TobiiEyeX.generated.cpp
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(47): error C2059: syntax error : 'string'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(47): error C2143: syntax error : missing ',' before '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(47): error C2059: syntax error : '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(48): error C2511: 'AEyeXPlayerController::AEyeXPlayerController(const FObjectInitializer (__cdecl *)(void))' : overloaded member function not found in 'AEyeXPlayerController'
1>          C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Public\EyeXPlayerController.h(63) : see declaration of 'AEyeXPlayerController'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(48): error C2065: 'PCIP' : undeclared identifier
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(49): error C2550: 'AEyeXPlayerController::{ctor}' : constructor initializer lists are only allowed on constructor definitions
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(51): error C2228: left of '.bCanEverTick' must have class/struct/union
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(54): error C2597: illegal reference to non-static member 'AEyeXPlayerController::DetectionMode'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(55): error C2597: illegal reference to non-static member 'AEyeXPlayerController::GazePointMode'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(56): error C2597: illegal reference to non-static member 'AEyeXPlayerController::MaxDistance'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(57): error C2228: left of '.Add' must have class/struct/union
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(58): error C2597: illegal reference to non-static member 'AEyeXPlayerController::MinUpdateDistance'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(59): error C2597: illegal reference to non-static member 'AEyeXPlayerController::bVisualizeDetection'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(60): error C2597: illegal reference to non-static member 'AEyeXPlayerController::SweepSphereRadius'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(61): error C2597: illegal reference to non-static member 'AEyeXPlayerController::SweepIntervals'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(62): error C2597: illegal reference to non-static member 'AEyeXPlayerController::BoxSize'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(65): error C2597: illegal reference to non-static member 'AEyeXPlayerController::EyeX'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(66): error C2597: illegal reference to non-static member 'AEyeXPlayerController::LastUsedGazePoint'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXPlayerController.cpp(67): error C2597: illegal reference to non-static member 'AEyeXPlayerController::LastFocusedActor'
1>  EyeXDataStream.cpp
1>  EyeXClientLibraryLoader.cpp
1>  EyeXBlueprintLibrary.cpp
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXBlueprintLibrary.cpp(8): error C2059: syntax error : 'string'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXBlueprintLibrary.cpp(8): error C2143: syntax error : missing ',' before '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXBlueprintLibrary.cpp(8): error C2059: syntax error : '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXBlueprintLibrary.cpp(9): error C2511: 'UEyeXBlueprintLibrary::UEyeXBlueprintLibrary(const FObjectInitializer (__cdecl *)(void))' : overloaded member function not found in 'UEyeXBlueprintLibrary'
1>          c:\users\greg\desktop\eyexforue4-master\plugins	obiieyex\source	obiieyex\private\EyeXBlueprintLibrary.h(15) : see declaration of 'UEyeXBlueprintLibrary'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXBlueprintLibrary.cpp(9): error C2065: 'PCIP' : undeclared identifier
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXBlueprintLibrary.cpp(10): error C2550: 'UEyeXBlueprintLibrary::{ctor}' : constructor initializer lists are only allowed on constructor definitions
1>  EyeXActorBase.cpp
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(7): error C2059: syntax error : 'string'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(7): error C2143: syntax error : missing ',' before '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(7): error C2059: syntax error : '&'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(8): error C2511: 'AEyeXActorBase::AEyeXActorBase(const FObjectInitializer (__cdecl *)(void))' : overloaded member function not found in 'AEyeXActorBase'
1>          C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Public\EyeXActorBase.h(20) : see declaration of 'AEyeXActorBase'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(8): error C2065: 'PCIP' : undeclared identifier
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(9): error C2550: 'AEyeXActorBase::{ctor}' : constructor initializer lists are only allowed on constructor definitions
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(11): error C2228: left of '.bCanEverTick' must have class/struct/union
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(14): error C2597: illegal reference to non-static member 'AEyeXActorBase::MinDistance'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(15): error C2597: illegal reference to non-static member 'AEyeXActorBase::MaxDistance'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(16): error C2597: illegal reference to non-static member 'AEyeXActorBase::bIgnoreHeightInDistanceCalculation'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(17): error C2597: illegal reference to non-static member 'AEyeXActorBase::bVisualizeDistance'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(18): error C2597: illegal reference to non-static member 'AEyeXActorBase::DwellTimeActivate'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(19): error C2597: illegal reference to non-static member 'AEyeXActorBase::DwellTimeDeactivate'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(22): error C2597: illegal reference to non-static member 'AEyeXActorBase::bTraceHit'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(23): error C2597: illegal reference to non-static member 'AEyeXActorBase::bHasFocus'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(24): error C2597: illegal reference to non-static member 'AEyeXActorBase::CurrentTimeIn'
1>C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Source\TobiiEyeX\Private\EyeXActorBase.cpp(25): error C2597: illegal reference to non-static member 'AEyeXActorBase::CurrentTimeOut'
1>  EyeXMathHelpers.cpp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>ERROR : UBT error : Failed to produce item: C:\Users\Greg\Desktop\EyeXforUE4-master\Plugins\TobiiEyeX\Binaries\Win64\UE4Editor-TobiiEyeX.dll
1>  Total build time: 50.75 seconds
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command ""D:\Games\Unreal\Epic Games\4.9\Engine\Build\BatchFiles\Build.bat" EyeXSamplesEditor Win64 Development "C:\Users\Greg\Desktop\EyeXforUE4-master\EyeXSamples.uproject" -rocket" exited with code -1.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I am currently building a demo with the TobiiEyeX , the plugin works fine in the editor but when I take a build it doesn’t seem to be working . Has anyone else encountered this issue , if yes is there a solution for this.

The issue was with the dll , not being found. So either copying the dll manually or add the following line to the plugins build.cs solved the issue for me.

RuntimeDependencies.Add(new RuntimeDependency(“$(ProjectDir)/Plugins/TobiiEyeX/ThirdParty/EyeX/lib/x64/.EyeX.Client.dll”));

Hi, . Good job
How does this plug-in be used in UE4, thanks for your guidance

Well, if the plugin allow eyetracking, would the VRS plugin work for the same system? As same thing works in VR headset with eyetracker and VRS plugin.