* Option to fade out chaperone when HMD goes below a configured height
Useful for setups in which you have a seat just outside your VR space,
or like to sit in the middle of your space for any amount of time. Will
fade out the boundaries to 0% opacity over 5 seconds, 5 seconds after
you sit down. Standing back up to the configured height will make them
pop back in immediately.
Can be found under Chaperone -> Additional Settings.
* Update format.sh to require clang-format v10
* Use fade distance instead of opacity, opacity inconsistently applied
* Bugfixes (#624)
* stop crashing on HMD Init Errors, as well as bypass force quit on all steamvr Init Errors
* add qtc clang to gitignore
* add app volume adjustment
* adjust app volume placement in menu
* fix type error
* increment version
* fix version number
---------
Co-authored-by: ykeara <ykeara1@gmail.com>
* add Select Dongle Pairing, fix clipping on long SN names (quest)
* remove test log, add ws log, add pair protection non steamvr
* add missing install commands for new qt modules
* remove bad package
* add auto apply chaperone option, remove old seated/uncal/openxr fixes in favor of always on
* adjust battery overlay for tundras
* fix tundra tracker bat indicator positioning, remove offset page restrictions from non-standing universe, make pairing more responsive and display brief instructions
* add Drag Multiplier
* update documentation
* change version to release
* update readme
* fix format issues readme
* update readme with setting description
* change uid to prevent collision
* changed rounding for grav fling to 2 decimals to be consistand with other values on drag page
* Crash Recovery Defaults to Off, add option to use space drag w/ uncalibrated playspace
* increment version 5.3.3
* Feat/apply offsets binding (#576)
* add apply offsets steamvr input
* add new binding to Readme
Co-authored-by: TheMrGong <gongora656@gmail.com>
* increment version 5.4.0
* added LH Console Interface class, WIP TX/RX list via lh console
* switch over to property based dongle information
* add ovr system wrapper
* add use of parameter to avoid warning as error
* openXR fix, and Change Display State of Chaperone Disabled
* update text
* format files
* clang 9.0.0 format
* add documentation update
* remove windows header include
* remove filesystem header
* fix uncal motion switching issue
Co-authored-by: TheMrGong <gongora656@gmail.com>
Previous way of controlling when controllers were run was split among
the different controllers, meaning that third parties would require
knowledge of internal state of controllers in order to be on the same
update schedule as them.
This refactor moves the logic into a seperate class.
Additionally, it also stops the use of the `adjustUpdateRate` function
on all tab controllers, since it broke the prime-number-ability of
less collisions.
The old OpenVR overlays did not function for unknown reasons, and it was
not possible to get them to work.
With this a white overlay with ALARM ACTIVATED will be shown for 3 seconds.
It's not pretty, but it effectively communicates that an alarm has been
activated.
This fixes
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/417
* added two new keyboard press actions
* added todos to overlay controller for new actions
* added settings for keyboard press and default to f10
* added logic, fixed default value
* added action alias
* fixed center marker rotation count
* updated version strings
* fixed Trigger Condition
* removed literal limitation (character input)
* updated version string
* fixed white space issues
Initial implementation of Auto-Turn
Auto-turn leverages Space Turn automatically whenever you reach a configured distance from your chaperone boundary. Turn direction is in order of precedence:
1. Away from a corner where you're already touching one wall. This is to avoid being turned to face a wall, which we pretty much never want. If 'use corner angle' is enabled, it'll turn the angle of the corner, otherwise it'll turn the angle of your headset to the wall you encountered.
2. In whichever direction will start you unwinding your cord. If your rotations is greater than 'cord detangling rotations' and your angle to the wall is less than 'min detangling angle' it'll turn you such that the thing you're walking towards is directly along a wall, in the direction which will begin unwinding your cord.
3. In the closest angle to the wall. This too will put whatever you're walking towards directly along a wall, so you can walk the maximum distance to it.
- If Smooth turn is checked, it'll turn at a constant (configurable) rate until the world is aligned with the new angle, otherwise it'll snap to the new direction instantly.
- Activation distance is the distance from your chaperone at which auto-turn starts, and deactivation distance is the minimum distance (+ the activation distance) at which it'll be able to be activated again, to avoid turning twice at once.
Redirected walking tries to gently guide you away from your playspace boundaries by tweaking the world's angle at smaller increments than your brain is capable of noticing. While most playspaces won't be big enough to allow this to give you a true 'infinite walk' experience, it can give the perception of your playspace being ever so slightly bigger by making you walk in a slight arc in real life while walking forward in VR.
- Redirected walking is independent from Auto-turn and can be activated on its own. At both the 'slight' and 'imperceptable' radii, the turning speed is incredibly minimal. When walking along one wall of your chaperone to another, you should notice the far corner of your playspace (relative to the world) drifting ever so slightly away from you. In normal circumstances at the lowest settings this shouldn't be noticable.
Co-authored-by: feilen <feilen1000@gmail.com>
* Initial implementation of Infinite Walk
* Code cleanup and abstraction, use nearest corner instead of nearest wall to determine turn direction
* Run clang-format
* Turn relative to the last wall if we run into adjacent walls, otherwise turn at easiest angle
* Limit maximum turns (just refuse to turn for now), only turn on shared corners if going the same direction
* Improve same-corner
* get rid of LastDirectionLeft
* WIP: cord untangling hint
* Try to automatically untangle cord, don't rotate if we encounter a wall behind us
* Incorrect offset for walls
* optimize if hmd inactive
* Cleanup/clarify angles
* (probably?) solve rare segfault
* Adjust the defaults and fix a bug with blocking reverse turns
* Implement smooth turn, fix a bug with shared-corners that would cause it to turn the wrong way
* actually really fix shared corner bug
vect[i + 1 % vect.size()] was somehow evaluating to vect[i + (1 %
vect.size())]
* Move configurables for autoturn to .h to make clearer what's configurable
* WIP: true redirected walking
* First pass optimization/cleanup
* Second pass cleanup/optimize
* Missing clang-format
* Somewhat ugly: Optionally turn the exact angle of the corner when using shared corner turns
* added rotation tab controller in progress
* cleaned up chaperone controller/ finished settings/rotationtab
* did first 4 settings qml, and main qml setup
* initial working build, not all settings UI done
* merging master into redirected walking. (#387)
* Update OVR to 1.10.30 (#379)
* updated to ovr 1.10.30
* fixed updated showoverlaykeyboard call
* fixed keyboard location
* Updated Manifest (#380)
* updated to ovr 1.10.30
* fixed updated showoverlaykeyboard call
* fixed keyboard location
* removed un-necessary matrix, updated app key and manifest
* fixed formatting
* Fix push to mute icon not being used when PTM enabled
* added touch default bindings (#385)
travis CI down/broken?
Co-authored-by: Vasily <vautkin@teknik.io>
* added action, and additional settings
* fixed various bugs added turn speed and mode
* fixed conversion error for turn speed
* added redirected walking options
* formatting
* formatting fixing
* removed old comments
* changed logs to debug and some wording changes
* changed UI layout
* added space turn to rotation page
* added icon, fixed autoturn to autoTurn, fixed conversion to be in qml vs set
* Update src/res/qml/RootPage.qml
yep XD
Co-Authored-By: Kung-vr <38249782+Kung-vr@users.noreply.github.com>
* reverted build changes
* removed un-needed app image build commands
* Cleanup some functions, avoid an extra chaperone check.
* Make redirected walking and autoturn independently enable-able
Co-authored-by: Feilen <feilen1000@gmail.com>
Co-authored-by: Vasily <vautkin@teknik.io>
Co-authored-by: Kung-vr <38249782+Kung-vr@users.noreply.github.com>
As of SteamVR 1.10.1 the overlay width feature has been implemented by
Valve in the standard settings.
OpenVR features related to overlay translation have been removed and the
main reason for including them (multi monitor setups) have been solved
by Valve giving each screen an individual overlay.
The `customTickRateMs()` function is being called every millisecond,
adding the verification to every call leads to unnecessary overhead.
The tick rate is verified when loading and when saving.
The default binding for keyboardOne is the default combination
for muting on Discord. This was explicitly chosen as a use case, and it
might make people not have to tangle with creating custom
keybindings in the .ini file.
This allows Qmake to use the version number as well as not requiring all
other uses of the version string to strip double quotes from it. This
also reduces the fragility of the version string as it was required to
be a valid C++ char*, even in contexts where that wouldn't matter.
This is definitely not a pretty thing. Double quotes are required around
the string which means they'll need to be removed in the NSIS and Python
scripts.
* Add checks for seated improve shutdown state
Seated mode chaperone update is still broken. Normal standing mode space motion needs testing on WMR and Rift
* Fix updating chaperone on room setup completion
* Implement seated universe recenter/offsets/motion
Addresses #145
* Add Option "Allow External App Chaperone Edits"
This option is added to the settings tab. It allows external apps to modify the chaperone but only if the current offset is 0,0,0 and rotation is 0. The option is disabled by default.
The implementation is simple 3D vector scaling and addition. The
HmdMatrix34_t consists of a 3x3 rotation matrix and a 3D vector for
position.
The overlay position is only updated whenever a new overlay is changed
because we need the old overlay position in order to modify it. The
openvr call to get the position is only updated whenever you open the
menu.
A new page was created due to lack of space on the utilities page.
* Test removal of HideWorkingSetPreview for issue #133
* Update WorkingSetPreview on apply reset data for issue #133
* fixed bug to apply floor fix offsets properly
* updated version to 3.0.1
* format
* Prevent space offsets effect on fix floor measurement
* Reorder chaperone commit timing on reset
This is an attempt to smooth apparent ~0.1sec lag on first movement after using a reset.
* Fix space fix tab (todo: reimplement undo button)