物理エンジンも搭載する先進的UI

3Dデスクトップ環境「Project Looking Glass」を試してみた

2007/01/11

 コンピュータの操作環境として、2次元の「デスクトップ」というメタファーが登場してから20年以上が経過している。画面を架空の机として扱い、そこに電卓やノートパッドを必要に応じて配置する。本格的なGUI環境の普及をWindows 95以降と考えるとしても、このユーザーインターフェイスには、10年以上も本質的なイノベーションは起こらなかったことになる。

 一方でゲーム用途にドライブされる格好で、3Dアクセラレーション機能は長足の進歩を果たした。しかし、ゲームユーザー以外には無用の長物となって久しい。

 これを背景として、最近はデスクトップを3次元空間として扱う、3Dデスクトップ環境の実験的プロジェクトや実装が増えてきている。われわれが仕事をしている机というのは3次元的で、書類を立てて縦に並べることもできれば、上下に重ねることもできる。下になって微妙に色だけが見えている書類は、処理しなければならないというリマインダー的役割を担っていたりする。整理上手の人は違うかもしれないが、「上位レイヤの書類は直近のもので重要。下位レイヤの書類は風化しつつあるものだが、引き出しにしまうほどではない」といった使い方をしている人も多いのではないだろうか。「例の書類は、右の山の下から3分の1あたりのところにある赤いファイル」といった認識の仕方は人間にとっては自然だが、2次元デスクトップでは、こうした表現は難しい。

 そうした現実の3次元空間で可能な操作を、デスクトップ環境に持ち込めば、より使い勝手のよいユーザーインターフェイスが実現できるのではないか。それが3Dデスクトップ環境の発想だ。

2Dウィンドウを3次元空間で扱う

 Windows Vistaでは3次元表示をGUIに採り入れた「Aero」(エアロ)が話題だ。ウィンドウの重なりには前後の概念があるし、半透明化された状態で重ねることもできる。

 あるいは、タブキーによるアクティブウィンドウの切り替えでは、「奥行き」という概念まである。斜め奥に向かって複数のウィンドウが3次元表示で折り重なった画面は印象的だ。

 しかし、Aeroが3次元表示を採り入れたといっても、それは表示の見易さや視覚的効果を狙ったギミックのためであって、3次元空間のメタファーをユーザーインターフェイスに採り入れているわけではない。

 Linux界でも「xgl」と呼ばれる3Dデスクトップ環境が話題だ。xglの3次元的なビジュアル効果と、その操作性には確かに目を見張るものがある。タッチパネル液晶と組み合わせてウィンドウを指で弾くように投げ飛ばしたり、仮想デスクトップを指で回してゴロンゴロンと切り替える以下のビデオは衝撃的ですらある。

 しかし、これもまた、既存の2D画面を3次元の立方体に貼り付けて回転させたり、3次元空間を使ったエフェクトを多用しているだけで、本質的には2Dデスクトップ環境でしかない。軽快に回転するデスクトップ上で実行されているシェルの出力は、コンパイラか何かの出力メッセージに見えるが、これでは1次元のCUIを3次元で動かすという、見ようによってはシュールな状況ではないか。

3Dデスクトップ環境への移行期

 今のところ、アプリケーションが2Dデスクトップを前提に設計されているため、いかに2次元のウィンドウを3次元空間で扱い、視認による検索性や操作性の向上を目指すか、というのがテーマになってしまう。

 これはちょうど、1次元のCUIから2次元のGUIへの移行のときに、四角いウィンドウの中にテキスト列を突っ込むことがGUI対応の第一歩だったのと似たような状況なのかもしれない。

 OS(もしくはデスクトップ環境を提供するGUIやツールキット)の3次元処理のサポートが進めば、それを前提としたUIが登場してくるだろう。2Dデスクトップの普及とマウスの普及が歩調を合わせたように、3Dデスクトップ時代には新たな操作デバイスも登場するだろう。そう考えると、2Dデスクトップから3Dデスクトップへの移行は、何年もかけて徐々に変わっていくものなのかもしれない。

真の3Dデスクトップ環境を垣間見る

 3Dデスクトップ環境は、まだ未来の話ではあるが、その未来を垣間見せてくれるのが、米サン・マイクロシステムズが12月19日にバージョン1.0として公開した「Project Looking Glass」だ(参照記事)。Windows版やLinux版のバイナリが公開されており、Windows版のインストールは約50MBの実行ファイルをクリックして、通常のアプリケーションのようにウィザードに従うだけと手軽だ。

lg3d01.png Looking Glassのデスクトップ画面例。テスト環境はWindows XP SP2、Core2 T5600(1.83GHz)、945GM内蔵グラフィック、512MBのメモリと非力な方で、操作感は、ややもたつく感じだ
lg3d02.png 左下にポップアップして「スクッ」と立ち上がってくる起動メニューがある。メニューは階層化されている
lg3d03.png 画面中央下部には起動中のアプリケーションを示すアイコンが並ぶ
lg3d04.png 3Dとは本質的にあまり関係がないが、いわゆる仮想デスクトップをサポートしており、デフォルトでデスクトップは5つ分ある(画面は中央3つ分)。デスクトップ画面左右の壁紙部分をクリックすると、左右にスクロールしてデスクトップが切り替わる

 表面上はデスクトップ上のウィンドウを立体的に表示し、横に並べたり、裏返したりすることができるだけで、むしろ「3次元効果付き」という、AeroやXGLと同様のプロジェクトにも見えるが、実際には、もう少し先進的だ。

 例えば、ウィンドウは半透明になって重なり合うだけでなく、奥行きという新たな表現を持っている。開いたウィンドウに対して操作を加えずに放置していると、画面の奥に向かって徐々にウィンドウが遠ざかり、小さくなっていく。

lg3d05.png 操作せず放置するとウィンドウは画面奥に向かって遠ざかっていく

 机上の書類同様に、少し前の書類であれば自然とほかの書類に埋もれていくというわけだ。そうした時間変化を、奥行きで表せるようになっている。

 書類を横へちょっとどけておく、という机の上の作業も、Looking Glassでは可能だ。ウィンドウのタイトルバーを真ん中ボタンでクリックすれば右端に斜めになった形で収まる。単にサムネール化されているのではなく、収まった状態でもアプリケーションが動いているのは驚きだ。

lg3d06.png ウィンドウは画面横に斜めにして立てかけておける

 ちなみに、サンが行ったデモンストレーションによると、Webブラウザを裏返しにひっくり返し、ウィンドウの裏にメモを取るということも可能なようだが、どうもやり方が分からなかった。Webブラウザ自体も不安定なうえにCSSの対応が遅れているのか、ほとんどのサイトはまともに表示できない。また、Win32のネイティブコードは実行できず、Javaで書かれたものだけがLooking Glassで実行可能だ。Project Looking Glassはバージョン1.0となったが、実用環境というよりも安定して動く実験環境ということなのだろう。

ぐるぐる回してCDを選べるCDビューワー

 最も端的に3D的なインターフェイスの未来を感じさせてくれるのは、デモンストレーション用アプリケーションとして入っているCDビューワーだ。

lg3d07.png 3次元UIを採り入れたCDビューワー。ぐるぐるっと円環状のCDが回転する

 このCDビューワーでは数十枚の音楽CDが円環状に重なり合って表示される。マウスでドラッグするか、特定のCDをクリックすると、高速な回転寿司のように目の前に目的のCDがグルッと回って飛んでくる。

 MP3のIDタグのように、メタデータでスマートに楽曲情報を管理するのもいいが、CDそのものを見て選びたいこともある。好き嫌いとか、何を聞きたい気分であるとか、そういったことは、現実世界を模倣したこうしたインターフェイスのほうがユーザーにとってありがたい。存在さえ忘れられてハードディスクの隅に眠っているMP3データは、どれほどあるだろうか。もし、それらのMP3データが、3次元表示されるCDのアイコンと結び付けられていたら、もう少しユーザーは楽曲の存在を思い出すのではないか。

 このCDビューワーは2つの点で重要だ。

 1つは、同じことを2次元表示のサムネールで行った場合、より広い表示エリアが必要になること。3次元表示の威力は情報に遠近感をつけて不必要な部分を小さくして情報を圧縮することにある。

 もう1つは、これがアプリケーションによる独自実装ではなく、Looking Glassの3D環境が提供するUIを使って書かれているということだ。CDビューワーの表示スタイル自体はAeroのアプリケーション切り替え画面とあまり変わらないかもしれないし、書く気になればWindows XPでも同様のインターフェイスは作り込めるだろう。しかしここでのポイントは、デスクトップ環境として、この3次元UIが、すべてのアプリケーションに開放されているということだ。たまたま凝ったアプリケーションをサンプル実装したというのではなく、すべてのアプリケーションで同様のUIを簡単に実装できるということだ。今後、どのような3次元UIが登場して生き残るのかは誰にも分からないが、そこに新しい地平が開けているのは間違いない。

物理シミュレーションも実装した世界観

 Looking Glass上でウィンドウを移動すると、慣性が働き、ウィンドウが傾く。ウィンドウの持つ場所によって挙動は違うが、右にドラッグすれば、ウィンドウ右側が画面奥、左側が手前になる形で傾く。マウスを放せば、ゆらりと画面に対して平行を取り戻す。

lg3d08.png ウィンドウをドラッグすると文字通り「引きずる」ように移動する。この画面はCDビューワーをドラッグして左に移動しているところで、後ろ側のCD群が、ゆらゆらと引っ張られながらマウスの動きに付いてくる

 Looking Glassではマウスを少し動かすだけで、画面上のウィンドウが「ゆらり」と揺れることもある。こうしたリアルな世界を模倣したような動きを示すのは、Looking Glassに物理法則をシミュレートする物理エンジンが実装されているからだ。物体が落下したり、書類同士がもたれかかったり、立てかけたものが崩れたりといった表現も可能になるだろう。そうしたことをプログラマが意識してコーディングしなくても、実世界に近い世界観を実現するところが面白い。

lg3d09.png サンプルとして収録されている物理シミュレーションの例。上から落下してきた木材風のブロックが自然に衝突して転がる

 物理エンジンを統合した3次元UIに、いったいどんな実用的な応用があり得るのか、これもまた未知の領域だ。単純にウィンドウに重さが加わるというだけでなく、例えばファイルサイズを重さで表現するというのはどうだろう。フォルダを傾けるとファイル群から「重たいファイル」だけが摩擦係数の関係で動かずにその場に残るという直感的なUIも作れるかもしれない。

関連リンク

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)