x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

No steamvr tracking without hmd?

I have steamvr setup for requireHmd false to remove the HMD requirement. I've verified steamvr is tracking without the HMD. Unreal Engine is not tracking the motion controller or the Vive tracker. Does anyone have tracking working in Unreal without a headset attached?

Product Version: UE 4.17
Tags:
more ▼

asked Sep 09 '17 at 03:15 AM in VR

avatar image

AMIMA
6 2 3 6

avatar image AMIMA Sep 09 '17 at 04:01 AM

I'm trying another route https://steamcommunity.com/app/358720/discussions/0/485624149150957321/?ctp=2#c2183537632735247703

Basically don't use requirehmd false, and setup this null driver which looks like a headset without one being plugged in. This might get unreal to continue tracking other devices.

avatar image j_zeitler Nov 03 '17 at 04:41 PM

Would be really nice if this worked. Have anyone successfully tracked anything while the null driver is enabled? I have a feeling the null driver will disable all tracking but perhaps it's possible with some "activateMultipleDrivers=true" shenanigans

avatar image AMIMA Nov 03 '17 at 07:02 PM

I can track controllers (with dongles) and the null driver, as well as the Vive Tracker and dongle. Although in Unreal Engine I have to flash the tracker as a controller to get the button functionality working. The problem is the null driver is not performant and I get very choppy playback/tracking.

avatar image Schnittbrot Sep 11 '17 at 12:39 PM

From what I read it's not possible to track without the headset. You'd need the dongles the Vive tracker is using or wire the controllers to your machine.

The issue here is the data transfer from the controllers to your application won't work. The Vive has an integrated bluetooth transmitter that gathers the optical sensor and gyro info, without it you have no means to get the data that is being produced. I'm not sure if it's possible to connect the controllers to a regular bluetooth dongle, but I doubt there's an easy solution.

Further references

avatar image AMIMA Sep 11 '17 at 12:48 PM

Sorry if I wasn't clear, I do have the dongle, the tracker is tracking in steamvr. I've verified tracking by opening steamvr and looking at the developer room overview setup. The issue is unreal engine additionally requiring the headset to be attached. If there is no headset attached unreal engine does not update the controllers/tracker position, even though the data is there in steamvr.

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

SteamVR probably works fine but Unreal won't start a vr context unless you have a headset plugged in (at least this was the case before). I solve this by manually starting steamvr, like so:

 #include "openvr.h"
 ...
 vr::EVRInitError peError;
 vrSystem = vr::VR_Init(&peError, vr::EVRApplicationType::VRApplication_Other);
more ▼

answered Nov 03 '17 at 04:34 PM

avatar image

j_zeitler
76 7 11

avatar image AMIMA Nov 03 '17 at 07:04 PM

This is interesting, does it have to be a c++ project? I'm currently using blueprints.

avatar image j_zeitler Nov 06 '17 at 10:33 AM

openvr.h is mostly just accessible through c++, but it's straightforward to work with if you have got someone with some ue-c++ experience. Once you successfully run the "VR_Init" above, the "MotionControllerComponent" will work in blueprints just as normal SteamVR (iirc...). And if you want to be more clever there's function calls directly into openvr.h

However, the reason I found this thread is that with newer SteamVR drivers I have noticed that running hmd-less (without the null driver) does not seem to be supported in practice anymore. I can start SteamVR (vrmonitor.exe) but that automatically starts the "vrcompositor" which errors out if there's no hmd (even with the "requireHmd: false" flag). That would be okay, since we don't need the compositor if we have no hmd, but vrcompositor has retry logic which seems to break stuff until vrserver itself crashes after ~5min. So, to sum up, I'm very interested if the null driver is a solution to this :)

avatar image j_zeitler Nov 06 '17 at 02:14 PM

got it to work with good performance (null driver, no hmd, 2 vive trackers connected with dongles), using vrserver v1507941678 and the following settings in "C:\Program Files (x86)\Steam\config\steamvr.vrsettings":

 {
    "jsonid" : "vrsettings",
    "power" : {
       "pauseCompositorOnStandby" : false
    },
    "userinterface" : {
       "StatusAlwaysOnTop" : true
    },
    "steamvr" : {
       "directModeEdidPid" : 43521,
       "directModeEdidVid" : 53794,
       "enableHomeApp" : false,
       "mirrorViewGeometry" : "0 0 1080 600",
       "forcedDriver": "null",
       "requireHmd": true,
       "activateMultipleDrivers" : true
     },
    "driver_lighthouse": {
       "disableimu": false,
       "usedisambiguation": "tdm",
       "disambiguationdebug": 0,
       "primarybasestation": 0,
       "lighthousename": "",
       "maxincidenceangledegrees": 60.0,
       "uselighthousedirect": true,
       "dbhistory": false
    },
    "driver_null" : {
          "enable": true,
       "id": "Null Driver",
       "serialNumber": "Null 4711",
       "modelNumber": "Null Model Number",
       "windowX": 100,
       "windowY": 100,
       "windowWidth": 512,
       "windowHeight": 512,
       "renderWidth": 512,
       "renderHeight": 512,
       "secondsFromVsyncToPhotons": 0.1,
       "displayFrequency": 150
    }
 }

avatar image AMIMA Nov 06 '17 at 06:35 PM

Nice, I'll try these VR settings in place of my own and check back in.

avatar image aliasense Mar 01 '18 at 11:36 PM

What is the summary here? Is there a possible for UE that no longer requires the HMD, but still allows tracking? I am just using the Blueprints, and they do not return any tracking data without HMD.

This null driver does it need to be compiled from scratch? Or is there another solution maybe by modifying UE? Thanks.

avatar image AMIMA Mar 02 '18 at 12:00 AM

Null driver is just steamvr settings, see the example above. After null is setup unreal believes an hmd is attached and provides tracking for controllers and trackers.

(comments are locked)
10|2000 characters needed characters left

Thanks. Is it working for you now? Just drop the STEAMVR controllers into Blueprint or is anything else is needed? Do you have a full setting file that works? I tried to modify the settings, but it's not working. Here's what I have currently:

{ "steamvr": { "requireHmd": true, "forcedDriver": "null", "forcedHmd": "", "displayDebug": false, "debugProcessPipe": "", "enableDistortion": true, "displayDebugX": 0, "displayDebugY": 0, "displayAllowLockedMode": false, "sendSystemButtonToAllApps": false, "loglevel": 3, "ipd": 0.063, "ipdOffset": 0.0, "background": "", "backgroundUseDomeProjection": false, "backgroundCameraHeight": 1.6, "backgroundDomeRadius": 0.0, "debugInput": false, "environment": "", "gridColor": "", "playAreaColor": "", "showStage": false, "activateMultipleDrivers": true, "directMode": true, "usingSpeakers": false, "speakersForwardYawOffsetDegrees": 0.0, "basestationPowerManagement": false, "neverKillProcesses": false, "renderTargetMultiplier": 1.0, "supersampleScale": 1.0, "allowSupersampleFiltering": true, "allowAsyncReprojection": true, "allowInterleavedReprojection": true, "forceReprojection": false, "forceFadeOnBadTracking": true, "defaultMirrorView": 0, "showMirrorView": false, "startMonitorFromAppLaunch": true, "startCompositorFromAppLaunch": true, "startDashboardFromAppLaunch": true, "startOverlayAppsFromDashboard": true, "enableHomeApp": false, "setInitialDefaultHomeApp": false, "CycleBackgroundImageTimeSec": -1, "retailDemo": false, "panelMask": true, "panelMaskVignette": true, "panelMaskVignetteWidth" : 2.0, "inputBindingUI" : false, "legacyInputRebinding" : false, "directModeEdidPid" : 43521, "directModeEdidVid" : 53794, "mirrorViewGeometry" : "0 0 108 600" }, "userinterface" : { "StatusAlwaysOnTop" : true, "screenshots" : true, "screenshotType" : 2 }, "driver_lighthouse": { "disableimu": false, "usedisambiguation": "tdm", "disambiguationdebug": 0, "primarybasestation": 0, "lighthousename": "", "maxincidenceangledegrees": 60.0, "uselighthousedirect": true, "dbhistory": false }, "driver_null" : { "enable": true, "id": "Null Driver", "serialNumber": "Null 4711", "modelNumber": "Null Model Number", "windowX": 100, "windowY": 100, "windowWidth": 512, "windowHeight": 512, "renderWidth": 512, "renderHeight": 512, "secondsFromVsyncToPhotons": 0.1, "displayFrequency": 150 }, "notifications" : { "DoNotDisturb" : false }, "keyboard" : { "TutorialCompletions" : 0, "ScaleX" : 1.1, "ScaleY" : 1.1, "OffsetLeftX" : 0.0, "OffsetRightX" : 0.0, "OffsetY" : 0.0, "Smoothing" : false }, "perfcheck" : { "heuristicActive" : true, "warnInHMD" : false, "warnOnlyOnce" : false, "allowTimingStore" : false, "saveTimingsOnExit" : false, "perfTestData" : 0.0 }, "collisionBounds" : { "CollisionBoundsStyle" : 0, "CollisionBoundsGroundPerimeterOn" : false, "CollisionBoundsCenterMarkerOn" : false, "CollisionBoundsPlaySpaceOn" : false, "CollisionBoundsFadeDistance" : 0.7, "CollisionBoundsColorGammaR" : 0, "CollisionBoundsColorGammaG" : 255, "CollisionBoundsColorGammaB" : 255, "CollisionBoundsColorGammaA" : 153 }, "camera" : { "enableCamera" : false, "enableCameraInDashboard" : false, "enableCameraForCollisionBounds" : false, "enableCameraForRoomView" : false, "cameraBoundsColorGammaR" : 0, "cameraBoundsColorGammaG" : 255, "cameraBoundsColorGammaB" : 255, "cameraBoundsColorGammaA" : 153, "cameraBoundsStrength" : 78 }, "audio" : { "onPlaybackDevice" : "", "onRecordDevice" : "", "onPlaybackMirrorDevice" : "", "offPlaybackDevice" : "", "offRecordDevice" : "", "viveHDMIGain" : true },
"power" : { "pauseCompositorOnStandby" : false, "powerOffOnExit" : true, "turnOffScreensTimeout" : 5.0, "turnOffControllersTimeout" : 300.0, "returnToWatchdogTimeout": 0.0, "pauseCompositorOnStandby" : true, "autoLaunchSteamVROnButtonPress" : true }, "modelskins" : { },
"dashboard" : { "enableDashboard" : true, "arcadeMode" : false, "webUI" : false }, "WebInterface" : { "WebPort" : "127.0.0.1:8998" }, "version" : "1", "jsonid" : "vrsettings" }

more ▼

answered Mar 02 '18 at 12:45 AM

avatar image

aliasense
18 2 7 9

avatar image aliasense Mar 02 '18 at 01:17 AM

Also with the settings that j_zeitler lists above, there is an error Headset not found when starting SteamVR, and no status is shown of the trackers or base stations in STEAMVR anymore. Is that right? In UE, we cannot get any tracking information. Which ID would a single tracker have? Thanks in advance for any help!

avatar image AMIMA Mar 02 '18 at 02:43 AM

You should complete all steps here to enable the null driver. https://steamcommunity.com/app/358720/discussions/0/485624149150957321/?ctp=2#c2183537632735247703

Steamvr shouldnt have an error if its setup correctly.

avatar image aliasense Mar 02 '18 at 03:15 AM

Thanks. Got it to work. The settings mentioned above should go into "C:\Program Files (x86)\Steam\config\steamvr.vrsettings" not into the default.vrsettings (easy to mix those two files up). Is there a way to run room setup with just a tracker?

avatar image AMIMA Mar 02 '18 at 04:33 AM

I'm not sure, but you could always just do the quick room setup small/medium/large in the steamvr dev settings just to get things going.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question