2004年6月28日から米サンフランシスコで開催中の「JavaOne 2004」における,注目の新技術の一つが「Project Looking Glass」だ。Javaで3次元のユーザー・インタフェース(UI)を実現するための技術である。JavaOne初日のゼネラル・セッションの中でデモが披露され,会場から多くの拍手を浴びた。3次元のウインドウが向きやサイズを変えたり,整列したりする様子はとても華やかで派手である(写真上)。ただしProject Looking Glassの開発者である米Sun Microsystems社のSenior Staff Engineer,Hideya Kawahara氏は「見た目の奇抜さではなく,2次元のUIに慣れた人々にとって本当に使いやすいものを目指した」と言う(写真中)。

 Kawahara氏がProject Looking Glassの開発を始めたのは2002年。当時Kawahara氏はデスクトップ向けJavaアプリケーションの開発チームに所属していた。「Javaはサーバーサイドで広く使われるようになっていたが,デスクトップ向けで目立った技術は少なかった。デスクトップでも面白いことができると証明したかった」(Kawahara氏)。Javaで3次元のオブジェクトを扱うためのAPI群「Java 3D」を利用して,Looking Glassの開発を始めた。

 Java 3Dを利用すれば,バーチャル・リアリティ的な奇抜なUIも実現できる。しかし敢えて,そうした派手な表示は取り入れなかった。「今のところ入力デバイスはキーボードとマウスが一般的で,当分この状況は変わりそうにない。ディスプレイの表示も2次元だ。こうした状況でいきなりバーチャル・リアリティを取り入れても使いやすくはならない」(Kawahara氏)。そこで2次元のウインドウの形を踏襲しながら3次元化し,ユーザーに違和感を与えずに新たな操作ができるようにした。2004年6月30日のテクニカル・セッションでは,ウインドウの裏にアプリケーションの設定画面を表示させる,いくつものウインドウを積み重ねる,ウインドウを横向きにして整列させる,などさまざまなデモが披露された。

 Looking Glassは「たくさんのオブジェクトを表示するアプリケーションに向いている」(Kawahara氏)。例えばファイル・マネージャ。今は深い階層にある大量のファイルを探す場合,多くのツリーが何階層にも展開されて把握しにくい。これが奥行きをもった3次元空間に表示されれば,今よりも直感的に操作できるようになる可能性がある。

 現在のところ,SolarisやLinuxを対象に開発が進められている。X Window Systemにおいて画面表示を司るX Serverを拡張して利用しているからだ(写真下)。Looking Glassに対応したX Clientアプリケーションに何らかの操作が加えられられると,X Serverがそれを検知し,Looking Glassの「Display Server」というモジュールを呼び出す。Display Serverはアプリケーションの画面を3次元のテクスチャに変換して表示する。こうした処理をするには,アプリケーションの画面情報を詳細に取得するAPIを利用しなければならない。Windowsではそれが公開されていないため,現時点では対応していない。ただLooking Glassはオープンソースのプロジェクトとして,2004年6月29日に「java.net」上で公開された。より多くの開発者が参加することで,対応できるOSの幅が増える可能性があるという。

(八木 玲子=日経バイト)