Handy VR Keyboard

A highly tactile and optimized VR keyboard system designed with both motion controllers and high-fidelity hand tracking in mind

00

The Why

Being a VR enthusiast since the DK1 Kickstarter as well as an experienced UE4 VR Rapid Prototyper, as well as a mechanical keyboard enthusiast, I’ve had my fair share of frustrations with the fact that VR keyboards have always been so hit-or-miss on intractability or ease-of-use, or both. So much so sometimes that it’s made me altogether stop using some VR apps/games. I believe creators should be able to easily integrate quality keyboard solutions into their VR projects. After all, typing in VR is inherently difficult, so why increase the barrier-to-entry to your awesome VR game/experience/app?

Handy VR Keyboard aims to solve this by giving UE4 creators the freedom to no longer worry about focusing on a mundane keyboard feature that could possibly turn users away, and empower them to get back to focusing on what really matters… creating!

The What

A Keyboard Style For Both Realists or Stylists

Depending on whether you’re going for a realistic theme or a modern stylized/easier-to-understand theme, HVRKB has you covered without any needed modifications! Simply change the Keyboard Type and theme in the construction script and the rest will be done for you.

Refined Interaction Mechanics

Typing in VR has never been so natural and enjoyable!

HVRKB’s dynamic interaction system dynamically modulates haptics and key press/release sounds depending on how quickly each key is pressed/released. Each key press sound (down-stroke and up-stroke) is also spatialized at the exact location that the key is being pressed/released, allowing for the most realistic VR audio experience possible.

Alongside the dynamic haptics and sound system, HVRKB also has a fine-tuned key-press rejection system to prevent as many accidental presses to near-by keys as possible, something that can definitely be an annoyance in VR.

Out-Of-The-Box Customizability

Theme Customizability

Easily and quickly customize the theme of every aspect of your keyboard to your heart’s content; all from the comfort of HVRKB’s construction script!

Mechanical Switch Customizability

Switch Types

12 different real-world mechanical switches were recorded (down-stroke and up-stroke) to allow users to not only customize the look of their keyboard, but also the sounds! And if you’re also a stickler for realism (as I am), the colors of the actual mechanical switch stems change colors as well!

Mechanical Switch Type Options:
  • Handy Black

  • Handy Blue

  • Handy Brown

  • Handy Clear

  • Handy Green

  • Handy Red

  • Handy Silent Black

  • Handy Silent Red

  • Handy Silver

  • Handy Speed Silver

  • Handy Tactile Grey

  • Handy White

Stylized Switch Type Options:
  • Handy Snappy

  • Handy Quirky

Switch Actuation and Travel distance

The distance at which a key press is registered, alongside the total travel distance, can be customized easily using the HVRKB construction script!

Performance Customizability

Although the performance of HVRKB is already pretty solid, you can save even more CPU cycles or reduce face-count using a few simple checkboxes in the construction script!

Motion Controllers & Quest Hand-Tracking Compatible

At the moment, hand-tracking has been prototyped using https://github.com/rfsheffer/QuestHands which, although is very well-made, doesn’t appear to have hand-tracking as robust as what’s seen in Oculus Home on Quest. Once UE4 officially supports Quest hand-tracking, tracking issues will likely subside and usability with HVRKB will be better.

Oculus Touch/Index motion controllers work far better at the moment, as seen in the video.

Optimized for Oculus Quest

Using an advanced and completely built-from-the-ground up HISM (Hierarchical Instanced Static Mesh) system, HVRKB uses as little as 22 draw calls or as many as 34 draw calls (All meshes and materials included), depending on the keyboard style and optimization settings being used. The base project was created with Quest Hand-tracking in mind, so you can rest easy knowing HVRKB can be easily integrated into your Oculus/SteamVR projects without negatively affecting performance.

Expandable for Custom Keyboard Layouts

You’re not only limited to the out-of-the-box keyboard configurations as you can also create your own configurations. At the moment, the workflow is as follows:

  1. Create a layout on http://www.keyboard-layout-editor.com/

  2. Export layout as SVG

  3. Import SVG into Adobe Illustrator

  4. Save Illustrator project as Illustrator 8 project

  5. Import Illustrator 8 project into 3ds Max and convert to poly

  6. Copy and paste locations (x,y,z) of each mesh element into HVRKB actor

  7. Create a black-and-white mask for keycap legends in Photoshop

  8. Create ColorID map for keycap legends in Photoshop

  9. Modify certain enums and structs in the HVRKB actor to conform to the new layout

Ideally in the future I'll try to simplify the workflow down to only needing to create your keyboard layout on http://www.keyboard-layout-editor.com/, importing the JSON data directly into the HVRKB construction script, and automatically generating the layout in the construction script.

Easily Send Keyboard Output To Any Actor

Only three simple steps to get keyboard output/input working

  1. Tell the HVRKB actor what the target actor is for the HVRKB output

  2. Implement the HVRKB interface into the target actor

  3. Create a Key Pressed event in the target actor and hook up your logic from there.

year

2019

timeframe

2 weeks

tools

Unreal Engine, Oculus Quest, 3ds Max, Substance Painter, Photoshop

category

Personal Project

01

see also

.say-hello

want to get in touch?

.say-hello

want to get in touch?

.say-hello

want to get in touch?

.say-hello

want to get in touch?