ズーミングインタフェース
Pad
ZUIには様々な利点があります。
無限に画面をズームして情報を書き込むことができるので無限に大きな情報を扱うことができる
階層型に管理された情報を簡単に画面上に配置することができる。
たとえばディスク内のフォルダを画面上の矩形で表現し、そのフォルダに含まれるファイルやフォルダはその矩形内の小さな矩形で表現するという単純なレイアウト方式を採用するだけで、あらゆるファイルをひとつの画面上に並べて表示することができる。
ズーミング操作は可逆的である。
ズームイン操作と完全に逆の操作でズームアウト操作を行なうことができるので、容易にundo操作を行なうことができる。
Google Mapsのような地図サービスのズーミング操作が現在普及していますが、あらゆる情報を地図のような二次元画面上に配置し、地図のズーミングと同じような方法で情報を扱うことができれば直感的な情報表現や検索が可能になることが期待できます。アイコンやメニューやウィンドウのようないわゆる
GUI部品はすべて情報の検索や管理に利用されるものですが、ズーミング操作だけで情報の検索や管理が行なえるのならばほとんどのGUI部品は不要になってしまうはずです。
私もZUIの考え方が大変気に入ったので、左図のような「
奈良観光ガイド」のような視覚化/検索システムを同僚と一緒に開発しました。これは1995年に
Silicon Graphics社のワークステーション上で作った「
WING」
****というシステムで、マウスを利用したズーミング操作だけで三次元地図を動かしたり地名や店名などを検索したりすることができるというものです。Cや
OpenGLのような標準的なシステムを利用しているため、20年前のシステムであるにもかかわらず現在のMacでもGitHub上の
ソースコードを使って実際にビルドして動かすことができます。
WING
また私はFocus+Contextを考慮して大規模な階層構造を視覚化できる
LensBarというシステム
****を開発しました。LensBarでは、ユーザがマウスを左右に動かすことによってリストのズーミング操作を行なうことにより、すべてのデータを表示したり重要なデータだけ間引いて表示したりすることができます。また、検索キーワードを指定することにより、キーワードにマッチするエントリのみを表示対象とすることができるので、フィルタリングにより表示量を制御しつつ全体と詳細を同時にブラウズすることが可能になっています。
LensBar
これはCプログラムのテキストをズーミングしたりフィルタリングしたりしているところです。マウスを左にドラッグしてズームアウトすると関数名など重要なところだけが表示されます。文字を入力するとマッチする行だけフィルタリングされ、現在表示可能な行が左のスクロールバーの背景に表示されます。フィルタリングしている状態でズーミング操作を行なうと、指定したパタンにマッチしている行と重要な行が両方表示されるので、プログラム全体においてマッチした行がどのように分布しているのかがわかります。
ズーミングインタフェースの逆襲
WIMPの後継として期待されたZUIですが、結局WIMPを置き換えることはできず、商品化の計画はほぼすべて頓挫したようですし、現在ZUIを日常的に使っている人はほとんどいないと思われます。ZUIが流行らなかった理由は以下のようなものだと考えられます。
ズーミング可能な巨大な平面のどこに何を置いて管理すべきか考えるのは結構骨が折れる
データが存在しない場所でズームイン操作を行なうと画面が真っ黒になり、 自分がどこにいるのかわからなくなってしまう
ファイル管理のような仕事はWIMPでもできるので、苦労して新しい方法に移行するメリットが無い
ズーミングに適した装置が存在しなかった (マウスの中ボタンのホイールのようなものは当時普及していなかった)
以前、ユーザインタフェースに関する書籍で有名な
Donald NormanにLensBarをデモして見せたことがあるのですが、「使えるズーミングシステムなんて見たことないね」みたいな反応をされておおいにがっかりしました。しかし実際自分も毎日使ってるわけではなかったので痛いところを指摘されたといえます。
Donald Norman
確かに2次元平面に情報を配置して管理するというのは難しいですし、常用している人が現在ほとんどいないのだからNorman氏の言うことは間違いではないのですが、ZUIの利点を保ちつつ誰でも使えるインタフェースを作ることは不可能ではないはずです。Web時代の大量のデータを手軽に管理したり検索したりするための新しいZUIを利用したサービスを作りたいと思っています。