Yoshihiko Hyodo 6f06b9514a first commit
2024-11-18 22:21:26 +09:00

13 KiB
Raw Blame History

楽しいプログラミング 《第3回》

 この季節になると、なんとなく「アリときりぎりす」のお話を思い出します。どちらかというと、土壇場になってアセるタイプですからねぇ。でもね、私はきりぎりすの方が好きです。だって、彼はバイオリンを弾くじゃありませんか。

■ ユーザー・インターフェイス

そんなこんなで、ネタが思いつかないうちに早ひと月。苦しまぎれに今回は、ソフト作りで一番おいしいところ、「ユーザー・インターフェイス」略してUIでいってみましょう。
 私がUIについてあれこれ工夫するのが好きなわけは、

  • 生来、使い勝手を工夫するのが好きである。
  • ユーザーの反応が誠におもしろい。
  • その割に頭をひねらなくても書ける。

要するに、作ってて張り合いがあるのね。それだけに、逆に何も考えていないソフトを見ると無性に腹が立ちます。
 ソフトウェアに限らず、「コンシューマーズ・プロダクツ」(一般消費者向け製品)の開発に携わるものは、常に、使う者の立場に立って物作りをしなければなりません。実際、自分が使ってみたくなる様でなくては嘘です。現実には、メーカーサイドのつまらぬご都合主義のために、大事な要素が往々にして切り捨てられていくものですが・・。
 ゆえに、UIの考察の前に、「ユーザー」なるものについてよーく理解しておく事が肝要です。

  • ユーザーの趣味・嗜好は千差万別である。
  • ユーザーはわがままである。
  • それでも文句を言ってくれてるうちが花である。
  • 結局、慣れてしまえばこっちのものである。

(なんだか「ユーザー」をそのまま「女性」に置き換えられる気がする・・) それらを踏まえた上で、こちらの取るべき態度は、

  • ユーザーの意見はできる限り考慮するが、決してそれに引きずられてはならない。
  • 低習熟度のユーザーも配慮するが、彼等の熟達を助成せねばならない。
  • ユーザー・カスタマイザブルにして、選択を委ねる。

すなわち、ユーザーの立場は十分考慮するが、あくまで主導権は握っていなくてはならないのです。

それでは、具体的な話に移りましょう。UIをいくつかに分けて見ていきます。

  1. キーボード
  2. メニュー・システム
  3. マウス
  4. ヒストリーとアンドゥ
  5. 画面デザイン

. キーボード

 キーボード・インターフェイスを設計するには、まず、ユーザーにいくつかのタイプがある事を知っておかねばなりません。

  • ホームポジション固執派(スタティック派)
  • カーソルキー依存派(ダイナミック派)
  • ファンクションキー依存派(ワンフィンガー派?)

かく言う私は「カーソルキー依存派」です。編集モードでは、右手はカーソルキー上、左手の小指は[CTRL]キー上に位置し、文字入力モードになると、さっと両手の人差し指が[F]と[J]キーを捜しあてます。いわゆる「自己流」ってやつです。
 要は、3つのタイプがある事を考慮し、その1つまたは2つに偏った操作体系を取ってはならない、という事です。

  • ダイヤモンドキーでカーソル移動ができない。
  • ファンクションキーでしかコマンドを実行できない。

いずれも落第です。
 もう1つは、特殊キーの使い方に関する一般常識。

  入力の確定。処理の実行。Yes。
 [ESC] : キャンセル。メニュー表示。
 [TAB] : ウィンドウ間の移動。
 [Space]次の処理へ進む。ON/OFF
[Q]  Quit

さらにIBM PCでは、

[F1]  : ヘルプ
[F10]  : メニュー表示
[ALT]+[X] 強制終了

この辺は最低限守っておくべきです。

. メニュー・システム

 アプリケーションの機能が豊富になるにつれ、メニュー・システムの出来不出来が、使い勝手に大きく影響してきます。ここでは少し低レベルの、メニューの表示方式、選択方式等について考えてみましょう。
 まず、メニューの表示方式です。

  1. 画面最上行にメニュー・バーを表示したプルダウン方式。
  2. ファンクションキー駆動型のポップアップ方式。
  3. 一太郎のような一覧表示方式。

3の方式は、メニューを表示しながら操作したい場合には便利です。しかし、項目を上下左右に並べるため、メッセージの長さにメニューのサイズが影響されるのは問題です。やはりメニューは縦1列に並べる方が無難でしょう。12、あるいはその両方をどう採用するかは、メニューの総数によります。
 次に、メニューの選択方法。カーソルキーとリターン、ESCキーを用いた選択方式の他、ホットキーを用いたダイレクト実行も必須です。まちがってもこのホットキーを、「数字キー」などにしないで下さい。
 メニューが階層化されている場合、メニュー・カーソルは、最後に選択した位置を保存しておくべきです。
 そして、できる事ならば、メニュー・システムはユーザー・カスタマイザブルであるべきです。メッセージはなるべく簡単な方がいい、という人もいれば、とにかく判りやすく、という人もいます。英語にするか、日本語にするか、ホットキーを何にするか。自分の使う機能だけを集めたメニューにしたい、そんな場合もあるでしょう。少なくともプログラム本体とは分離し、いくつかのバラエティを用意してユーザーの選択の幅を持たせるべきです。

. マウス

マウスは、GUIグラフィック・ユーザー・インターフェイスには欠かせません。しかし、キャラクタ・インターフェイスにだって、マウスはもっと使われるべきです。究極的には、テキスト入力以外の操作は、ほとんどマウスで行なえるはずです。
 けれども、マウスに対し敬遠しがちな人も少なくありません。その理由はこうです。

  • わざわざマウスに手を伸ばすのが面倒。
  • いちいちメニューを選ぶより、ホットキーの方が速い。

こうおっしゃる方は、どちらかというと「ホームポジション固執派」に多いようです。「カーソルキー依存派」としては、右手がもう15センチばかり右に動くだけで、それほど面倒とも思えないのです。テンキーが無かったら、さらに移動距離は縮まります。何より、右手だけでボーっと操作できる怠惰な感覚が堪えられません。リモコンだってそうです。片手で操作できなくっちゃ、本当にお手軽とは言えまえん。
 では、マウス・インターフェイスを設計する際の留意点をあげてみましょう。

  1. マウスの移動距離に無駄がないか。
  2. ダブルクリックを十分活用しているか。
  3. 右ボタンを十分活用しているか。
  4. クリックorドラッグ。
  5. マウスとターゲットの視点。

1特に説明の必要はないでしょう。プルダウン・メニュー方式は、この観点からすると、右ボタンを利用したポップアップ・メニュー方式に比べて操作性は多少落ちます。

2ダブルクリックは非常に重要です。これをサポートしていないマウス・インターフェイスなど論外とまで言えます。

3右ボタンは、キャンセルや、ポップアップ・メニューの表示に使われます。キャンセルの場合は、これはあくまでオプショナルな操作でなくてはなりません。NeXTで2ボタンマウスが採用された事からも伺えるように、右ボタンはもっと積極的に活用されるべきです。

4プルダウン・メニューを表示選択する場合、Macではドラッグリリースで選択しますが、初心者にはクリックムーブクリックで選択させた方がよい、と考える向きもあります。ドラッグだと、メニューをじっくり読んでいる間じゅう、ボタンを押していなくてはなりませんから。Windowsでは、うまくこの両者をサポートしています。アイコンを移動する場合にも同様な事が言えます。

5これは、例えばスクローラーを操作する時です。スクローラーは、テキストやメニューをスクロールさせる場合に用いますが、この時視点は、スクロールするテキスト上に位置し、マウス・カーソルは見ていません。このため、スクロールの方向、速度を変えようとしてマウスを動かす度に、いったん視点をマウス・カーソルに戻さねばなりません。こうなると、スクロール操作はぎこちないものになります。NeXTでは矢印ボタンをとなりに並べて、この点幾らか配慮しています。私が以前とった方法は、右ボタンで逆スクロールさせる、というものでした。

 マウス・インターフェイスに関しては、別の機会にじっくり考察致します。

. ヒストリーとアンドゥ

 ヒストリーとアンドゥ機能は、アプリケーションの規模が一定のレベルに達した時点で、必ず盛り込まなくてはなりません。これに対するサポートの度合いが、ただのツールか、本当に使えるツールかの判断基準になるでしょう。
 ヒストリー機能に関して1つだけ言っておきたい事があります。それは、「ヒストリーの一覧表示など無くても構わないが、先頭文字列によるサーチは必須である」という事です。

. 画面デザイン

 「顔じゃない、中身で勝負」などという負け惜しみは、ソフトウェアでは通用しません。画面デザインは、ソフトウェアの設計センスを如実に反映するものだからです。画面が美しいソフトがいいソフトとは限りませんが、画面がダサいソフトは、もれなくダサいソフトです。
 それでは、「画面デザインが美しい」とは、どんな観点から言えるのでしょう。

  1. 配色がケバケバしくない。
  2. 意味のない色分けをしない。
  3. その時点で不必要な情報を表示しない。
  4. 情報の配置に無駄がない。
  5. 情報の重要度を視覚的に明示している。
  6. タイトルやコピーライトの表示が無いか、あっても目立たない。
  7. 美術的に美しい。

どれもあたりまえの事です。しかし、1とか7は、そのまま開発者の趣味が反映されますから、「なんだこのケバイ画面は」と思っても、実は開発者にとってはジミな画面なのかも知れません。しかし、NeXTの画面を「美しい」と感じない人は、まずいないでしょうから、本当に美しい画面デザインは、万人に受け入れられるはずです。
 「美術的に美しい」というと、ひと頃はMac風のデザインがもてはやされましたが、今はなんと言ってもNeXT風でしょう。あのモトーン4階調の立体表示には、そそられます。

というわけで、今回はざっくばらんに、UIについて思う事を書いてきました。そう、あと2つばかり言い残しておきます。

  • オブジェクトを点滅、あるいは「動かして」注目させる。
  • 初めに対象物を選定して、それに対する処理を選択する。

本当にUIは奥が深い。しかし、結局言える事は、

 「人間、大概の事には慣れてしまうものである」

(雑誌「PC POWER 1992年9月号」掲載