雲を掴む話 〜3次元ユーザインタフェースの実現〜

コンピュータの入力装置といえば、現在の定番はキーボードとマウス。 もちろん新たなユーザインタフェースとして、 手書き文字入力装置や音声入力装置の研究開発が盛んに行なわれている。 しかし第三の、 あるいはキーボードやマウスに代わる情報入力装置として決め手となるものは、 いまのところ現れていない。

ポインティングデバイスへの要求

ところで、 マウスは平面上の位置を決めるための装置(ポインティングデバイス)である。 マウスパッドで上下左右にマウスを転がすことで、 マウスカーソル(マウスポインタ)を画面上の好きな場所へ持っていくことができる。 マウスを使えば平面上の位置を自在に入力することができるわけだ。 ところが逆に平面に縛られているため、 三次元空間上の一点を示すための操作をマウスで行なおうとすると、 実はこれがなかなか難しい。

例えば三次元CADシステムなどで用いられる三次元モデリングソフトウェアでは、 立体的なモデルが画面上に表示される。 そして一般的にそれらのソフトウェアでは、 そのモデルの姿勢あるいは視点の位置をマウスでコントロールすることができる。 マウスを移動させるとディスプレイに表示された三次元モデルの向きが変わるのだが、 この操作、なかなか希望通りの位置に動かすことができないことが多く、 実にもどかしい。

この難しさの原因は、 平面的な移動の組合せで立体的な空間情報を入力させられている、 ということにある。 視点の位置を空間的に直接入力できる装置があれば、 直感的に入力することができ、ユーザの負担も減るだろう。

三次元ポインタのいろいろ

三次元の情報を直感的に入力したい … この要求への回答は、先に挙げた三次元CADなどのデザイン分野だけでなく、 バーチャルリアリティ(VR, Virtual Reality)の分野でも中心的なトピックとして研究が進められてきた。 既にいくつかの三次元情報入力装置が開発されており、 数年前から実用フェーズに入っているものもある。

まずは SpaceBallSpaceMouseに代表される卓上型三次元ポインティングデバイスがある。 これらの製品はマウスやジョイスティックなど、 既存のポインティングデバイスの拡張型といえる。 基本的なアイデアは、 センサの回転軸を増やすことで三次元情報を制御しようという発想だ。

またもう少し直感的な操作を可能とする装置に、 アームの組合せで三次元位置を決定する入力装置がある (製品の例。 PHANTOM写真)。 こちらはアームを実際の空間内で移動させることで、 ダイレクトに三次元位置を入力しようというものである。 またこのデバイスは三次元位置の収集に加え、 ユーザに触感をフィードバックするという特長を持つ。

ポインティングデバイスという位置づけからは若干それるが、 三次元情報の入力装置として有名なものにデータグローブがある。 データグローブを利用すると、 グローブをはめた指先の動きの情報を、 空間上の位置情報としてリアルタイムに収集することができる。

おてがる三次元情報入力装置

先に紹介した様々なデバイスには、 各々一長一短の特徴がある。 三次元ポインティングデバイスは手軽に利用できる装置ではあるが、 装置自体が移動しないので慣れるまでちょっとしたコツが要る。 アームの操作による三次元入力デバイスは直感的に操作できる反面、 アームの移動範囲が限られているために入力できる位置に制限がある。 またいずれも特殊なデバイスを必要とするためコストが割高になる傾向にある。

手軽に三次元情報を入力する方法のひとつに、 2台以上のカメラを利用してステレオ視による空間位置情報を取得する方法があり、 この原理をユーザインタフェースに利用しようという研究 が九州大学で行なわれている。

また現在この研究を元にして、 動画像処理に基づいてユーザの姿勢情報を取得するための ソフトウェアライブラリを構築するプロジェクトが実施されている。 このライブラリを利用すると、ユーザの姿勢情報を任意に取得できるようになる。 カメラの正確なキャリブレーションが必要という課題がまだ残されてはいるものの、 入力装置にはUSBカメラなど数千円で入手できるカメラ数台を用意するだけでよい (2台以上用意すればよい)。

このプロジェクト、今年の春には成果が公開される予定である。 その成果はオープンソースソフトウェアとして提供される計画になっている。 画面上のアバターがユーザの姿勢に従って動くアプリケーションが、 本ライブラリのサンプルとして用意されている。 その仮想空間ではCGで描かれたオブジェクトを思い通りに掴むことだって、 簡単にできるようになるだろう。