One more point.
FSteamVRController:: DetectHandednessSwap() function still uses deprecated vr::IVRSystem::GetTrackedDeviceIndexForControllerRole(…), which returns bad device ID. The bug appears with two controllers and at least one Vive Tracker.
One more point.
FSteamVRController:: DetectHandednessSwap() function still uses deprecated vr::IVRSystem::GetTrackedDeviceIndexForControllerRole(…), which returns bad device ID. The bug appears with two controllers and at least one Vive Tracker.
Hi Yuri,
Thanks for this nice list. Much appreciated!
Re: Feature requests
Will take them on-board and review along with input from other developers.
What I can say now though, is that for the second bullet point on your list (a per project set of inputs when working in the Editor) we definitely agree, and consider this a critical feature. It will be included in the first official release.
Re: Handedness Swap
Thanks for reporting, have asked around the SteamVR Team - call should return an accurate id, at least from the SteamVR side. The issue could be the additional roles that UE has in its abstraction Layer. Will take it into consideration should we need to re-implement the handednesswap in the SteamVRInput plugin
Re: Finger Animation Data
Not sure if this is what you meant - there should be raw transforms as well as curls and splays that will be part of the SteamVRInput plugin.
With my community plugin, I’ve exposed the raw transforms via LiveLink and therefore can use all the animation systems support that LiveLink has built-in. The architecture/coding paradigm uses the same ones used in MagicLeap’s and some sample json streaming plugin from within Epic.
Similar to what mordenthral mentioned, my understanding as well is that Epic is working on a unified/abstracted Skeletal Input System which will support a number of skeletal based input systems including SteamVR, and could likely use LiveLink as part of it. But this is probably a good question to ask Epic
Cheers,
Rune.
I’m still trying to figure out how actions-to-input binding works, and now I think that first point in my list is pointless.
If you look at the code in my community plugin, you can also see a sample of how to handle the different action-input binding regimes.
For a single input to trigger in different game scenarios, “ActionSets” may also be of particular interest to you:
Ok, I compiled for my game a version of Runeberg’s SteamVRInput plugin with rewritten generation of manifest and binding files. Maybe somebody find it useful.
https://drive.google.com/open?id=10nM1O0t8ozpAToecVRVsQRZ0bL_IGRRC
Notes.
If you re-bind the default bindings in steamVR itself and replace them it won’t generate them every time…and you can define custom events in engine that are used.
The pre-filling of the bindings and hard coding of new events is actually somewhat counter productive with the intended workflow of both open Input and Epics beta input. Just adding input events in engine should map out to the actions manifest automatically.
IE: Action_Grab, then you just bind the default for Action_Grab to whatever is intended as default for each controller type and save over the blank default bindings.
You don’t need to hard code in new inputs anymore with the beta input pathway, it will literally let you bind anything to any input event that you make in engine.
HI @mordentral - are you referring to an Epic UE (non-public) beta or in vr-dev, regarding the auto-generation of controller bindings for SteamVR (vs stubs) ?
If UE4 SteamVR plugin generated binding and actions manifest files, it would re-associate UE4Editor with actual inputs every time you open a project. Binding files are only geenrated in editor. For packaged game, user can overwrite them via standard SteamVR interface.
I want VR input in my project working regardless of hardware I use. For Vive controllers, Knuckles, Touch via SteamVR, Touch via Oculus API.
Example: I use touchpad for locomotion input. But touchpad on Knuckles isn’t good for this purpose, because it has very limited X axis. Instead, I have to use joystick. So I need custom binding files to bind Vive/touchpad and Knuckles/thumbstick to the same action, because I can’t separate touchpad at Knuckles from touchpad at Vive controllers in my player controller blueprint. And even if I could - it’s unnecessary duplication of work instead of unification.
Oculus has no similar input system, it uses default UE4 events for motion controllers. And I don’t understand how you’re going to build unified input system without using unified input events/axes.
It DOES generate binding and action manifests every time you open it though… The default bindings are just only overwritten if they don’t already exist. Steam Input no longer “remembers” manifest files between launches now either so it doesn’t corrupt other projects that are using the legacy pathway.
Yes? That is the point of SteamInput, I think you might have misunderstood me, I wasn’t saying to NOT use SteamInput, I was saying that automating the binding by hardcoding it isn’t necessarily a good thing as the entire system is meant to be used off of the “action” names not hard axis references. When the generic interface becomes XR across the board they will ALL work much like SteamInput does currently.
I was responding to
, which it shouldn’t have to do, as that would be an event that you can define through the editor and set up with the bindings files.
Regardless I don’t exactly have the native oculus vs openInput issue myself as I have an XR like interface for dynamic input re-binding per controller type that covers it already cross platform until the unified standard is out.
Hey runeberg,
I downloaded the plugin from Github and tried to build the project using VS2017, but I got two errors:
I previously built demos with VS without any issues, so I’m not sure why the ApexDestruction issue is there, and not sure why it says that I may not have the rights to run the command.
Some help will be very appreciated
Hi – I’ve discontinued support for SunRock as I have been working on the official plugin for Valve.
So please use this instead:
(zip links to release for your UE version are better, develop branch is in UE4.15)
Let me know if you have any problems with the official plugin, can help you out
Cheers,
Rune.
After using your project, my other project on 4.21 is not able to use the inputs (trigger, trackpad, grip) for the normal vive controller.
Hi, can you try the following please, and let me know if you continue to have issues.
To reset Action Manifest for UE4Editor to defaults:
**Please note that Project SunRock has been discontinued and is up only for historical/archive purposes.
I’ve been working on the official SteamVR Input plugin for Valve, please use this instead:**
Cheers,
Rune.