You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Unity version, Unity Asset Store Version, and Hand Tracking? #25
First of all I want to say that this is a great toolkit and very helpful for quickly implementing techniques for selection and manipulation research in VR. Thank you for publicly sharing this toolkit online.
I have some questions:
I might have missed it but what Unity version is this toolkit compatible with?
It is mentioned, on the main repository page, that the Unity Asset store version is coming soon, is it available yet?
Have you thought of using hand tracking with more recent headsets that enable hand tracking, for instance the Oculus Quest, for *Image Plane Interaction Techniques (Sticky Finger, Head Crusher, Lifting Palm, Framing Hands)? It might be easier and more intuitive for users to use their hands in these cases instead of using a controller.
*Pierce, J. S., Forsberg, A. S., Conway, M. J., Hong, S., Zeleznik, R. C., & Mine, M. R. (1997). Image plane interaction techniques in 3D immersive environments. In Proceedings of the 1997 symposium on Interactive 3D graphics (pp. 39-ff).
Hi Ivan. Thank-you! I'm glad you found it useful and I'm happy to answer your questions:
The main versions I've tested it with are 2019.1, 2019.3, 2019.4 & I also just tested it out with 2020.1 so newer Unity versions should also be working fine.
Initially we were planning on releasing it to the asset store but then we just never really got around to doing this haha. We don't have any plans to put it on the asset store in the future so I'll make sure to update the readme file.
Although we don't have any plans to directly support other input systems or hardware, we developed a feature to make it easy for other developers to achieve this: Using the dependency Manager script you can set the SteamVR_Version to 'None' which will disable the SteamVR dependency, then you can drag your tracked input object into the 'TrackedObj' parameter of the script.
Recently our lab ordered a large 3D volumetric looking glass display and I was playing around with a bunch of the interaction toolkits from the toolkit on the display using leap-motion hand-tracking system for input & some of them actually worked really well. We also presented in a paper we wrote about the toolkit some examples of using it with mobile AR displays & projectors. (May, K., Hanan, I., Cunningham, A., & Thomas, B. (2019, October). 3duitk: An opensource toolkit for thirty years of three-dimensional interaction research. In 2019 IEEE International Symposium on Mixed and Augmented Reality Adjunct (ISMAR-Adjunct) (pp. 175-180). IEEE.)
Hi Kieran
Thank you for your reply. This information is helpful.
Thanks for updating the ReadMe file, adding the paper link and information this is helpful. Good to know this also worked well with the LeapMotion controller.
Are there some image files missing in the ReadMe section? I see the following:
I tried getting the project to with SteamVR version 2 but I am having some issues. What steps should I do to get that version to work?
What I tried was to first open the download and open the project with Unity 2020.1. This presented the following error:
"
Deterministic compilation failed. You can disable Deterministic builds in Player Settings
Library\PackageCache\com.unity.multiplayer-hlapi@1.0.2\Editor\Tools\Weaver\AssemblyInfo.cs(22,28): error CS8357: The specified version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilation
"
To resolve this error I updated the "Multiplayer HLAPI" to a newer version (version 1.1.1) via the Unity Package Manager (Unity Menu -> Window -> Package Manager).
When opening an example scene (i.e. "Fishing Reel Example" - Assets/3DUITK/Technique Example Scenes/Scenes) the following error appears:
"
Component GUI Layer in Camera (head) for Scene Assets/3DUITK/Technique Example Scenes/Scenes/FishingReelExample.unity is no longer available.
It will be removed after you edit this GameObject and save the Scene.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
"
But this does not seem to influence anything as the scene still plays.
I then selected the FishingReel_Technique game object and in the "Dependencies Manager" script changed the Steam VR_Version to "Steam VR_2". This then presented a series of errors regarding namespaces of SteamVR actions (because Steam VR version 2 isn't in the project).
To resolve this I removed the old SteamVR folders (Assets/3DUITK/Dependencies/SteamVR) and then imported a new version of SteamVR (version 2.7.3 (sdk 1.14.15)) via the Package Manager.
When the new version of SteamVR was imported a "Fatal Error!" window appeared in Unity stating that "The file 'MemoryStream' is corrupted! Remove it and launch unity again! [Position out of bounds!]", this caused Unity to crash and close.
When I reopened the Unity project the following errors appear:
"
Assets\3DUITK\Techniques\Depth Ray\Scripts\DepthRay.cs(109,13): error CS0103: The name 'm_touchpad' does not exist in the current context
"
"
Assets\3DUITK\Techniques\Depth Ray\Scripts\DepthRay.cs(110,31): error CS0103: The name 'm_touchpad' does not exist in the current context
"
What should I do next to fix this? Am I on the right track? Do I also need to install (via the Package Manager) the OpenXR Plugin from Unity (since the XR Settings is no longer in player as of Unity version 2020.x)?
Hi Ivan, sorry for the very delayed response!
It looks like you've managed to get everything working. There was just a missing reference to the touchpad in the DepthRay script that was causing your compile error which I've patched up now. If you notice any issues associated with the existing CameraRig in the scene, deleting & redragging in a new SteamVR camerarig prefab should hopefully resolve this issue.
I'm not sure if you will encounter this but I was noticing some compatibility issues with the latest version of SteamVR & Unity 2020.1 when making a project from scratch, however, downgrading to 2019.4.1 resolved these issues. Yes, I'd definitely recommend installing the OpenXR Plugin & OpenVR desktop from the package manager. The image file missing in the README is just a nulled color-code.
Goodluck! & hopefully there are no more issues! :)
Activity
kieran196 commentedon Mar 17, 2022
Hi Ivan. Thank-you! I'm glad you found it useful and I'm happy to answer your questions:
Recently our lab ordered a large 3D volumetric looking glass display and I was playing around with a bunch of the interaction toolkits from the toolkit on the display using leap-motion hand-tracking system for input & some of them actually worked really well. We also presented in a paper we wrote about the toolkit some examples of using it with mobile AR displays & projectors. (May, K., Hanan, I., Cunningham, A., & Thomas, B. (2019, October). 3duitk: An opensource toolkit for thirty years of three-dimensional interaction research. In 2019 IEEE International Symposium on Mixed and Augmented Reality Adjunct (ISMAR-Adjunct) (pp. 175-180). IEEE.)
A-Ivan commentedon Mar 17, 2022
Hi Kieran
Thank you for your reply. This information is helpful.
Thanks for updating the ReadMe file, adding the paper link and information this is helpful. Good to know this also worked well with the LeapMotion controller.
Are there some image files missing in the ReadMe section? I see the following:
I tried getting the project to with SteamVR version 2 but I am having some issues. What steps should I do to get that version to work?
What I tried was to first open the download and open the project with Unity 2020.1. This presented the following error:
"
Deterministic compilation failed. You can disable Deterministic builds in Player Settings
Library\PackageCache\com.unity.multiplayer-hlapi@1.0.2\Editor\Tools\Weaver\AssemblyInfo.cs(22,28): error CS8357: The specified version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilation
"
To resolve this error I updated the "Multiplayer HLAPI" to a newer version (version 1.1.1) via the Unity Package Manager (Unity Menu -> Window -> Package Manager).
When opening an example scene (i.e. "Fishing Reel Example" - Assets/3DUITK/Technique Example Scenes/Scenes) the following error appears:
"
Component GUI Layer in Camera (head) for Scene Assets/3DUITK/Technique Example Scenes/Scenes/FishingReelExample.unity is no longer available.
It will be removed after you edit this GameObject and save the Scene.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
"
But this does not seem to influence anything as the scene still plays.
I then selected the FishingReel_Technique game object and in the "Dependencies Manager" script changed the Steam VR_Version to "Steam VR_2". This then presented a series of errors regarding namespaces of SteamVR actions (because Steam VR version 2 isn't in the project).
To resolve this I removed the old SteamVR folders (Assets/3DUITK/Dependencies/SteamVR) and then imported a new version of SteamVR (version 2.7.3 (sdk 1.14.15)) via the Package Manager.
When the new version of SteamVR was imported a "Fatal Error!" window appeared in Unity stating that "The file 'MemoryStream' is corrupted! Remove it and launch unity again! [Position out of bounds!]", this caused Unity to crash and close.
When I reopened the Unity project the following errors appear:
"
Assets\3DUITK\Techniques\Depth Ray\Scripts\DepthRay.cs(109,13): error CS0103: The name 'm_touchpad' does not exist in the current context
"
"
Assets\3DUITK\Techniques\Depth Ray\Scripts\DepthRay.cs(110,31): error CS0103: The name 'm_touchpad' does not exist in the current context
"
What should I do next to fix this? Am I on the right track? Do I also need to install (via the Package Manager) the OpenXR Plugin from Unity (since the XR Settings is no longer in player as of Unity version 2020.x)?
Thank you.
kieran196 commentedon Apr 1, 2022
Hi Ivan, sorry for the very delayed response!
It looks like you've managed to get everything working. There was just a missing reference to the touchpad in the DepthRay script that was causing your compile error which I've patched up now. If you notice any issues associated with the existing CameraRig in the scene, deleting & redragging in a new SteamVR camerarig prefab should hopefully resolve this issue.
I'm not sure if you will encounter this but I was noticing some compatibility issues with the latest version of SteamVR & Unity 2020.1 when making a project from scratch, however, downgrading to 2019.4.1 resolved these issues. Yes, I'd definitely recommend installing the OpenXR Plugin & OpenVR desktop from the package manager. The image file missing in the README is just a nulled color-code.
Goodluck! & hopefully there are no more issues! :)