Home › Forums › Software Development › Unity & Eye-tracking
Tagged: Unity
- This topic has 3 replies, 2 voices, and was last updated 9 years, 4 months ago by Lazaros Michailidis.
- AuthorPosts
- 05/08/2015 at 08:20 #3280Lazaros MichailidisParticipant
Hello everyone,
I have been reading the documentation (Developer’s Guide for Unity), in order to make sense of what I have to implement in the project for valid data registration, but I am still having a problem understanding.
I am developing a video game in Unity and it is meant to capture eye-tracking data. My questions are as follows:
– Assuming that I capture fixations, would I be able to reconstruct a heat map out of these data and if yes, how?
– To my understanding, one needs to attach the GazeAware script in every single game object, in order to make sure that this object is being looked at. Instead, I was wondering if the following approach is better: retrieve the screen space position of the gazing point and raycast from the camera forward. If I have misinterpreted the way this works, please correct me.
– What if I want to create a screen region on the UI part (I am not using the Legacy GUI), in order to exclude data from being registered within that region? Is it possible to actually draw and visualize such a region in the editor?
– Does this development kit work with Tobii T120? Does the computer have to have Windows 7+?
– If I attach FixationDataComponent and GazeAware scripts on one GameObject, will I be able to retrieve the data, even if this game object is not viewed by the camera?
– Should I, in every data capturing script, use the IsUserPresent() line? The user is not going to be given a chin rest – how clean data will I receive?Thank you in advance for your attention!
07/08/2015 at 16:54 #3296Lazaros MichailidisParticipantSorry for the bump, but this is urgent. I need to start my experiment in two days and I still have not tested the eye-tracking code, given that my questions above prevent me from writing it in the first place.
10/08/2015 at 15:24 #3303Patrik [Tobii]ParticipantHello,
Assuming that I capture fixations, would I be able to reconstruct a heat map out of these data and if yes, how?
Yes, I see no reason this wouldn’t be possible. As for implementing this, I would take a look at the source code for other projects such as heatmap.js.
To my understanding, one needs to attach the GazeAware script in every single game object, in order to make sure that this object is being looked at. Instead, I was wondering if the following approach is better: retrieve the screen space position of the gazing point and raycast from the camera forward. If I have misinterpreted the way this works, please correct me.
Yes, you could do like this. However, GazeAware uses interactors under the hood that has other advantages. You can read more about interactors here: http://developer.tobii.com/an-introduction-to-the-tobii-eyex-sdk/
What if I want to create a screen region on the UI part (I am not using the Legacy GUI), in order to exclude data from being registered within that region? Is it possible to actually draw and visualize such a region in the editor?
Yes, if you use interactors as mentioned before, you could put an occluder around the area that should exclude data from being registered within that region. See the GazeAware3DScene example in the UnitySDK for more information.
Does this development kit work with Tobii T120? Does the computer have to have Windows 7+?
The EyeX SDK is not officially supported on the Tobii T120 so I would have to say no.
If I attach FixationDataComponent and GazeAware scripts on one GameObject, will I be able to retrieve the data, even if this game object is not viewed by the camera?
Yes. This is correct.
Should I, in every data capturing script, use the IsUserPresent() line? The user is not going to be given a chin rest – how clean data will I receive?
You should not have to check
IsUserPresent()
. All data has some kind ofInvalid
state. It’s also not sure that the data you receive will be “clean” just because the user is present since you can receive user presence even if you don’t receive gaze.Best regards
Patrik11/08/2015 at 07:12 #3304Lazaros MichailidisParticipantDear Patrik,
thank you for your reply.
May I ask where the heatmap.js file is, because I have been unable to locate it? I would also ask how it works, but I believe I will be able to understand once I see the code. Would be great, however, if you told me whether the reconstruction would occur inside of Unity and whether it can be exported as an image (obviously this is a post-analysis, it should not occur in real-time).
It does indeed sound good and easy to configure, having a GazeAware script attached on every game object, however I am concerned about performance. Assuming that there are 250 game objects in the scenes, it sounds like an overkill for each and one of them to run an Update() function.
I was under the impression that Tobii T120 was compatible; what is the minimum requirement for hardware (referring to the device product) for a standalone application made with Unity to produce valid data? EyeX Controller (http://www.tobii.com/buy-eyex)?
The reason I was asking for IsUserPresent() is because I will export all of the data in a text file. Instead of having blank spaces (I am not sure how the engine will interpret the invalid state, so it might be that it returns null = blank string), I want to make make sure that every data exported is valid, so that I can immediately run an analysis with that dataset. This is why some control has to be present in the script. Instead of IsUserPresent() or the other method explain in this forum for blinking, if I can indeed retrieve the state of the data in a way such as GetComponent<X>().isDataValid(), it would be even easier. How do you retrieve the Invalid state you referred to?
Thank you once again for your help.
- AuthorPosts
- You must be logged in to reply to this topic.