EXA gets experimental in this version, with new mixed reality modes and Leap Motion hand input. With mixed reality, you'll find an improvement to the standard SteamVR approach, and also a custom, in-app method of creating mixed reality. The use of Leap Motion hands input is provided as a proof-of-concept, without significant refinement, so using the Vive/Oculus controllers is still highly recommended.
Other improvements in this version include a "grip-to-grab" feature (which provides an alternative to the "grab" tool), improved loop grid visuals, and a variety of other minor changes and fixes.
DevUp video for v1.1.2:
https://youtu.be/SmFxnT8OTiA
(https://youtu.be/SmFxnT8OTiA?list=PLmUZ4l5SqKXyut5xGlGzPx36h3MIOJBfj)
MIXED REALITY
- Updated SteamVR code to improve the default four-quadrant mixed reality mode. The top-right “alpha” quadrant is no longer draw using grayscale ringer shapes (using full white instead) so that they do not appear partially transparent when compositing the layers together. This mode uses an externalcamera.cfg file.
- Implemented a custom mixed reality mode where the webcam video is displayed directly within the app. This avoids the need to composite layers together externally, and it allows the webcam video to be illuminated by EXA’s lighting (from ringers, tools, etc.). Like the SteamVR setup, this mode places a virtual camera relative to the selected Vive tracker/controller. This mode uses an mixedreality.cfg file (instructions coming soon).
- Implemented a custom “chroma” (green-screen) shader to remove the background of the in-app webcam video. The config file provides several settings for adjusting this effect, cropping video edges, darkening the video, choosing the camera source, etc.
- Added an in-app “video monitor” to the custom mixed reality mode. You could think of this like a mirror. It is very helpful for getting your video angles correct, ensuring that you (and the ringers) are composed nicely in the shot, etc.
- Added an in-app mode for adjusting/aligning the mixed reality video with the controllers.
LEAP MOTION
- Added experimental support for Leap Motion hand input. This is a proof-of-concept only -- the Vive and Oculus Touch controllers are still the highly recommended method for playing EXA.
- To get into Leap Motion mode, the Leap Motion service and controller must both be on/active upon EXA startup. When this occurs, the Vive/Oculus controller input will be replaced by the hands input (you cannot use both at the same time).
- The main/top magnetic connector is on the index finger, and the secondary/bottom connector is on the pinky finger. You can snap-on tools to these connectors following the same rules that the normal handles have.
- To replace the controller trigger, the gesture of moving your thumb to your palm is used. This hasn’t been highly reliable in my tests, especially when turning your hand over or moving quickly.
- To replace the new “grip” action (see below), the gesture of pinching your thumb and index fingers together is used.
- To teleport, select the teleport button near your wrist (using the index finger of your opposite hand). The “turn” capability is present, but can be difficult to control accurately.
IMPROVEMENTS
- Implemented feature allowing a controller "grip/squeeze" to initiate a grab/selection action. Added a new indicator to the handle models, which lights up when the grip is active.
- Implemented new loop gridlines that emphasize the first beat in the measure (and updates when the measure length changes). Added labels to the loop grid that show the beat-count every 15-to-20 beats.
- Updated the "Loop Duration" menu buttons to automatically re-select if the cursor stays hovered over them, allowing for faster/easier navigation to a particular number value.
- Added the option to replace an existing layout that uses the same title.
- Added slight haptic “tap” upon selection of a Hover UI menu item.
- Added a subtle light within each tool's white sphere.
FIXES
- Increased the "trigger open" threshold (which is used when EXA requires a trigger release before squeezing it again) from 0% to 5%, to avoid issues if the trigger/hardware doesn't report moving (or can't physically move) fully back to 0%.
- Fixed the hit logic so that a newly-available controller, which may be jumping from the zero position, can't hit a ringer.
- Fixed issue allowing the "Loop Duration" menu's buttons to create a zero or negative length loop.
- Fixed issue causing duration-trimmed loops to display trimmed notes (overflowing left/right of the loop grid) when loading them via saved layout.
- Fixed the size of the main tool group's grabber box.
PATCH 1 (2017-05-26)
- Fixed issues that can occur when loading a zero or negative length loop from a saved layout (<= 0 length was possible prior to v1.1.2).
- Added a version label on the floor (in a far corner).
