Apple Engine

Apple, iPhone, iOS, その周辺のことについて

VR/AR/MR 時代のユーザーインターフェイス (UI)

なんとなく思考を整理しようと思って書き留めてみる。

 

3次元空間と操作

3次元を扱う HMD ディスプレイは既存の 2D のディスプレイベースと異なり、 XYZ 軸上にウインドウや何らかのオブジェクトを置くことなる。 一見、空間軸が増えることによってできること増え便利になると思われるのだが、 残念ながら不便なことも増えるのである。

空間上にオブジェクトが置かれるということはそれを操作することとなるが、 その操作はどう行うのか。

大概の場合は手を使うこととなるだろう。 視界に広がるオブジェクトを手で操作するわけだ。 だが、UI の界隈でよく言われる問題が発生する。 ゴリラ アーム シンドロームといわれるやつだ。

長時間中空のもの操作すると、腕に痛みを感じ、痙攣、そして大きくなっている感覚を感じる。 そのためか姿勢がゴリラのようになる。 経験者はゴリラのようになったように思えるらしい。 所謂、手根管症候群の症状の表れだ。

その為、手を使って行う行為を最小限にして定期的に休ませる必要がある。

要するに手を動かさずして操作できる UI が必要とされている。

 

Vive コントローラ、Oculus Touch、Microsoft HoloLens

Vive コントローラ、Oculus Touch などのデバイスはオブジェクトの移動や掴むなどの通常の UI 決定に当たる操作にフォーカスされており、 共通でハンドトラッキング、システムボタン、メニューボタンなどが用意されており、

Vive はそれに加え、親指で操作するトラックパッド、人差し指で引くトリガー、握ったときに押すグリップボタン、 Oculus Touch は片方に2つのボタン、クリックできるスティック、十字キー、トリガー、グリップボタンがある。

Microsoft HoloLens は視線(首の動きのトラッキング)でオブジェクトを選択する。 眉間あたりにハンドジェスチャーを認識するカメラがあり、ジェスチャーで決定したり、メニューを出したりする。 標準的な操作は声で操作できるヴォイスコマンドが用意されている。 もちろん、アプリ開発者は機能にあわせて独自のヴォイスコマンドを設定できる。

Vive コントローラ、Oculus Touch はゴリラ アーム 的な問題があっても手で操作すること良しとして、 仮想空間の没入感を最大限に引き上げるため、仮想のオブジェクトを掴む、ものを実感することを主眼に置いているようだ。 逆に Microsoft HoloLens 腕の操作を最低限にして疲れを感じさせにくくしている。

どちらが良いとは言えないが、互いのアプローチが異なっていて面白い。

Microsoft HoloLens はスタンドアローンで動くためコントローラをあまり使わせたくないのかもしれない)

 

3次元空間の UI について

奥行きがある3次元の仮想空間ということは、オブジェクトや UI となるものをほぼ無限に置くことができ、これが今までの 2D とは異なるところだ。 UI を考えるとすると、現実世界のインフォメーションとしてあるものが参考になるのではないかと感じており、 例えば、駅構内の表示などの広告、出口や乗り換えの案内の配置などが参考になるのではないかと思っている。

もともと、フラットデザインと言われるもの UI の源流は Microsoft の Zure Software や Windows 8Metro UI だ。 Windows 8 で UI の再定義を行った Metro UI は地下鉄の案内表示などから来ているらしい。(これは後付けとの話もあるが)

また、仮想空間のオブジェクトや UI などは、現実とは異なり、自由に動かせたり、そこに留めたりすることが可能だ。 HoloLens はウインドウを自由に動かせ、必要な場合に留めることができる。 エミュレータしか動かしていないのでわからないのだが、どうやら他の部屋などに留めたものを記憶し起動時に復元する事ができるらしい。

 

操作空間について

iOS のアプリでは 44px をタッチの最低領域としている。
このように3次元空間でも、触れる、もしくは選択できる、などの領域は、ある程度決められた大きさになると思われる。

掴んだり、遠くに置かれるウインドウのボタンなどを考えると、通常の UI よりインタラクションを起こす領域は、 44px などの小さな領域ではなく、ある程度大きさが必要なのではと思っている。

 

3次元空間の UI の要素を考えてみる

オブジェクト/ウインドウ UI

仮想的な3次元空間は、空間を把握するための物体として設置するオブジェクトがあり、操作できるものと、できないものとに分かれる。

操作できるものに関してはウインドウのような仮想空間の中では別のレイヤーとして存在するものと、 ボタンやレバーなど物理的なものに分かれ、 前者は 3D ゲームの UI のように扱うものしか見えないものと、全員に共有するものに分かれるだろう。

 

コントロール UI

ウインドウ内にコントロールする UI、アイテムが並ぶと操作が煩雑になる。
情報を表示するウインドウと別に操作を集約して行われるものがあるとよいと思われる。
MacBook Pro の Touch Bar やスマートフォンのタブに近い。

 

メニュー UI

Windows 10 のようなタイル状のメニュー。
スマートフォンの様に縦方向にリスト化されているメニューは多くの操作が必要になるので 3D 空間には向かない。

 

ワードフラッシャー UI

所謂、電光掲示板。広い空間かつ操作不要の UI を考えると 文字が流れてくるか、一定時間で切り替わるものが良いかと。

 

全面へ移動するウインドウ/オブジェクト

車で走っている際の道路標識の様に前面から情報が向かってくるウインドウ/オブジェクト

 

追従するウインドウ/オブジェクト

自分の移動方向、頭や体の回転に対して追従してくるウインドウ/オブジェクト

 

ラウンドスクリーン

映画館や 21:9 のデイスプレイの様に中央がなだらかにへこんでいる画面。
没入感が増す上に少しだけ表示領域が増える。

 

空間アノテーション

アラートなど、注意を喚起するモーダルの画面。
3次元空間だとどの場所に出ているかわからないため、柱や下に台をつけるなど、場所を示す必要がある。
Google Maps のピンのようなもの。

 

オブジェクトコントローラ/シェルフ

スイッチやレバーなどの 3DCG でつくられた立体的な UI や 2D のアプリのフォルダの代わりになる立体的なオブジェクトの格納場所。

 

まとめ

つらつらと思うことを書いてきたが、多分間違っていることも多いだろう。
とりあえずは、3次元空間での UI を考えるきっかけとなってもらえばよいかと。