バーチャルUIと触覚

こんにちは、exiiiでソフトウェアエンジニアインターンをしている大杉です。

 
 

exiiiでは触覚デバイス自体の開発だけでなく、その活用についても研究を進めています。今回の記事では、EXOS Gripperを使ったVR空間中のUIの操作についての検討をご紹介したいと思います。

EXOS Gripperは本来「モノを掴む感覚」の再現を主な目的としたデバイスだが、今回は指の腹の部分を使うことにより上から押すボタンの触覚再現に応用した。

 
 

触れるバーチャルUI

 
 

VR空間内のUIをどう操作するかについて、例えば視線で操作するものや手持ちのコントローラで操作するものなどが検討されてきましたが、これらのUIの操作方法は必ずしも直感的であるとは言えず、ユーザが戸惑ってしまうことがあります。一方でVR空間内の物体に触れることができるデバイスであるEXOS Gripperを使えば、より現実に則した直感的に理解できるUIをユーザに提供できるはずです。

 
 

一般的な触れるUIとして、ボタン・スライダ・ノブといったものがありますが、まずは最も身近で使われているであろうボタンに注目し、VR内での再現に取り組みました。キーボード・マウス・リモコン・家電などボタンは至るところにありますが、ボタンの操作において共通して重要なのが「カチッ」というクリック感です。ボタンを押したユーザはこのクリック感によって、自分は確かにボタンを押したんだということを確認できますし、同時に心地よさも感じることもできます。VR中でボタンを実装する際も、単に押し込めるだけではなくこのクリック感を実装することでボタンの操作感が向上するのではないかと考えました。

 
 

 
 

ボタンのクリック感の再現

 
 

このクリック感の実装方法として、まずはシンプルに現実世界の物理ボタンの挙動をまねることから始めました。物理ボタンでは、ユーザがボタンを押し込む量(ストローク)に比例してボタンからの反力が大きくなっていくのを感じます。ところがストロークが一定量に達すると、急に反力が小さくなったあと再び反力が大きくなる谷のようなものがあり、ユーザはその谷の部分でクリック感を感じるのだそうです。

 
 

ボタンを押し込むにつれてBのポイントでクリック感を感じる(http://www.sitech-corp.com/blog/types-tactile-silicone-keypads/)

 
 

EXOS Gripperでも同様に、ボタンのストロークに対応して反力を与えつつ、一定量押し込まれたときに反力の谷を作るように実装してみました。一見これでクリック感が実装できてしまうように思えるのですが、実際にやってみると反力の谷の部分でEXOS Gripperがバタバタと暴れてしまい操作感を損ねるという問題がありました。問題の原因を検討したところ、どうやらストロークによって急に反力を変化させる方法がEXOS Gripperの制御と相性が悪いようです。

 
 

ボタンの押し込み量=ストローク

 
 

そこで今度は、ストロークに比例した反力を与えつつ、一定値を超えたところでパルスのように一瞬だけ反力を変化させるという方法をとりました。このパルスは押し込むストロークのみに発生させ、ボタンが戻るストロークには発生しないようにすることで、急な反力の変化の発生を最小限に抑えEXOS Gripperの動作の安定を図りました。

 
 

ストロークが一定値を超える瞬間にパルスを発生させる。この際押し込むストロークにのみ発生させ、戻すストロークには発生させない。

 
 

実験の結果、この方法で確かにEXOS Gripperの暴れを抑えることはできました。ただし、やはり現実のクリック感とは原理が違うのでパルスを上手く設計しないと現実のクリック感のように感じられないようです。そこでいくつかの波形を検討したところ、反力を小さくしたあとに大きくするという波形が現実のクリック感に近いという結論を得ました。この波形がよかった理由は、現実のクリック感において急に反力が軽くなったあとに「底つき感(touch force)」が生じるという点が上手く再現されたからだと考えられます。このパルスを用いたクリック感の提示によって、現実のクリック感における確かにボタンを押したという実感と心地よい操作感を再現することに成功しました。

パルスは反力を瞬間的に小さくした後に大きくするという形で設計。これにより現実のボタンの「底つき感」を再現した。

 
 

今回実装したボタンは、現在Gripperを使った全てのEXOSデモに採用されており、バーチャルUIを使った操作性を格段に向上させました。

 
 

 
 

この記事では、VR空間内の触れるUIとして、特にボタンに注目した検討をご紹介しました。普段慣れ親しんだインターフェースは、単純にバーチャル空間に原理を移せば再現できるわけではなく、デバイスの制約に合わせてカスタマイズすることで最適なUXを実現できることが分かりました。exiiiでは今後もボタンだけではなく、スライダやノブなど普段慣れ親しんだその他の入力方式、もしくはバーチャルに特化した全く新しい入力方式など、EXOSを使った触れるバーチャルUIを検討をしていけたらと思います。