mirror of
https://github.com/NishiOwO/VZEditor.git
synced 2025-04-21 16:44:40 +00:00
124 lines
13 KiB
Markdown
124 lines
13 KiB
Markdown
# 楽しいプログラミング 《第3回》
|
||
|
||
 この季節になると、なんとなく「アリときりぎりす」のお話を思い出します。どちらかというと、土壇場になってアセるタイプですからねぇ。でもね、私はきりぎりすの方が好きです。だって、彼はバイオリンを弾くじゃありませんか。
|
||
|
||
## ■ ユーザー・インターフェイス
|
||
 そんなこんなで、ネタが思いつかないうちに早ひと月。苦しまぎれに今回は、ソフト作りで一番おいしいところ、「ユーザー・インターフェイス」(略してUI)でいってみましょう。<br> 私がUIについてあれこれ工夫するのが好きなわけは、
|
||
|
||
- 生来、使い勝手を工夫するのが好きである。
|
||
- ユーザーの反応が誠におもしろい。
|
||
- その割に頭をひねらなくても書ける。
|
||
|
||
要するに、作ってて張り合いがあるのね。それだけに、逆に何も考えていないソフトを見ると無性に腹が立ちます。<br> ソフトウェアに限らず、「コンシューマーズ・プロダクツ」(一般消費者向け製品)の開発に携わるものは、常に、使う者の立場に立って物作りをしなければなりません。実際、自分が使ってみたくなる様でなくては嘘です。現実には、メーカーサイドのつまらぬご都合主義のために、大事な要素が往々にして切り捨てられていくものですが・・。<br> ゆえに、UIの考察の前に、「ユーザー」なるものについてよーく理解しておく事が肝要です。
|
||
|
||
- ユーザーの趣味・嗜好は千差万別である。
|
||
- ユーザーはわがままである。
|
||
- それでも文句を言ってくれてるうちが花である。
|
||
- 結局、慣れてしまえばこっちのものである。
|
||
|
||
(なんだか「ユーザー」をそのまま「女性」に置き換えられる気がする・・)
|
||
それらを踏まえた上で、こちらの取るべき態度は、
|
||
|
||
- ユーザーの意見はできる限り考慮するが、決してそれに引きずられてはならない。
|
||
- 低習熟度のユーザーも配慮するが、彼等の熟達を助成せねばならない。
|
||
- ユーザー・カスタマイザブルにして、選択を委ねる。
|
||
|
||
すなわち、ユーザーの立場は十分考慮するが、あくまで主導権は握っていなくてはならないのです。
|
||
|
||
 それでは、具体的な話に移りましょう。UIをいくつかに分けて見ていきます。
|
||
|
||
1. キーボード
|
||
2. メニュー・システム
|
||
3. マウス
|
||
4. ヒストリーとアンドゥ
|
||
5. 画面デザイン
|
||
|
||
## 1. キーボード
|
||
 キーボード・インターフェイスを設計するには、まず、ユーザーにいくつかのタイプがある事を知っておかねばなりません。
|
||
|
||
- ホームポジション固執派(スタティック派)
|
||
- カーソルキー依存派(ダイナミック派)
|
||
- ファンクションキー依存派(ワンフィンガー派?)
|
||
|
||
かく言う私は「カーソルキー依存派」です。編集モードでは、右手はカーソルキー上、左手の小指は[**CTRL**]キー上に位置し、文字入力モードになると、さっと両手の人差し指が[**F**]と[**J**]キーを捜しあてます。いわゆる「自己流」ってやつです。<br> 要は、3つのタイプがある事を考慮し、その1つまたは2つに偏った操作体系を取ってはならない、という事です。
|
||
|
||
- ダイヤモンドキーでカーソル移動ができない。
|
||
- ファンクションキーでしかコマンドを実行できない。
|
||
|
||
いずれも落第です。<br> もう1つは、特殊キーの使い方に関する一般常識。
|
||
|
||
 ⏎ : 入力の確定。処理の実行。Yes。<br> [**ESC**] : キャンセル。メニュー表示。<br> [**TAB**] : ウィンドウ間の移動。<br> [**Space**]: 次の処理へ進む。ON/OFF<br>
|
||
 [**Q**] : Quit
|
||
|
||
さらにIBM PCでは、
|
||
|
||
 [**F1**] : ヘルプ<br>
|
||
 [**F10**] : メニュー表示<br>
|
||
 [**ALT**]+[**X**]: 強制終了<br>
|
||
|
||
この辺は最低限守っておくべきです。
|
||
|
||
## 2. メニュー・システム
|
||
 アプリケーションの機能が豊富になるにつれ、メニュー・システムの出来不出来が、使い勝手に大きく影響してきます。ここでは少し低レベルの、メニューの表示方式、選択方式等について考えてみましょう。<br> まず、メニューの表示方式です。
|
||
|
||
1. 画面最上行にメニュー・バーを表示したプルダウン方式。
|
||
2. ファンクションキー駆動型のポップアップ方式。
|
||
3. 一太郎のような一覧表示方式。
|
||
|
||
(3)の方式は、メニューを表示しながら操作したい場合には便利です。しかし、項目を上下左右に並べるため、メッセージの長さにメニューのサイズが影響されるのは問題です。やはりメニューは縦1列に並べる方が無難でしょう。(1)か(2)、あるいはその両方をどう採用するかは、メニューの総数によります。<br> 次に、メニューの選択方法。カーソルキーとリターン、ESCキーを用いた選択方式の他、ホットキーを用いたダイレクト実行も必須です。まちがってもこのホットキーを、「数字キー」などにしないで下さい。<br> メニューが階層化されている場合、メニュー・カーソルは、最後に選択した位置を保存しておくべきです。<br> そして、できる事ならば、メニュー・システムはユーザー・カスタマイザブルであるべきです。メッセージはなるべく簡単な方がいい、という人もいれば、とにかく判りやすく、という人もいます。英語にするか、日本語にするか、ホットキーを何にするか。自分の使う機能だけを集めたメニューにしたい、そんな場合もあるでしょう。少なくともプログラム本体とは分離し、いくつかのバラエティを用意してユーザーの選択の幅を持たせるべきです。
|
||
|
||
## 3. マウス
|
||
 マウスは、GUI(グラフィック・ユーザー・インターフェイス)には欠かせません。しかし、キャラクタ・インターフェイスにだって、マウスはもっと使われるべきです。究極的には、テキスト入力以外の操作は、ほとんどマウスで行なえるはずです。<br> けれども、マウスに対し敬遠しがちな人も少なくありません。その理由はこうです。
|
||
|
||
- わざわざマウスに手を伸ばすのが面倒。
|
||
- いちいちメニューを選ぶより、ホットキーの方が速い。
|
||
|
||
こうおっしゃる方は、どちらかというと「ホームポジション固執派」に多いようです。「カーソルキー依存派」としては、右手がもう15センチばかり右に動くだけで、それほど面倒とも思えないのです。テンキーが無かったら、さらに移動距離は縮まります。何より、右手だけでボーっと操作できる怠惰な感覚が堪えられません。リモコンだってそうです。片手で操作できなくっちゃ、本当にお手軽とは言えまえん。<br> では、マウス・インターフェイスを設計する際の留意点をあげてみましょう。
|
||
|
||
1. マウスの移動距離に無駄がないか。
|
||
2. ダブルクリックを十分活用しているか。
|
||
3. 右ボタンを十分活用しているか。
|
||
4. クリックorドラッグ。
|
||
5. マウスとターゲットの視点。
|
||
|
||
 (1)特に説明の必要はないでしょう。プルダウン・メニュー方式は、この観点からすると、右ボタンを利用したポップアップ・メニュー方式に比べて操作性は多少落ちます。
|
||
|
||
 (2)ダブルクリックは非常に重要です。これをサポートしていないマウス・インターフェイスなど論外とまで言えます。
|
||
|
||
 (3)右ボタンは、キャンセルや、ポップアップ・メニューの表示に使われます。キャンセルの場合は、これはあくまでオプショナルな操作でなくてはなりません。NeXTで2ボタンマウスが採用された事からも伺えるように、右ボタンはもっと積極的に活用されるべきです。
|
||
|
||
 (4)プルダウン・メニューを表示/選択する場合、Macではドラッグ/リリースで選択しますが、初心者にはクリック/ムーブ/クリックで選択させた方がよい、と考える向きもあります。ドラッグだと、メニューをじっくり読んでいる間じゅう、ボタンを押していなくてはなりませんから。Windowsでは、うまくこの両者をサポートしています。アイコンを移動する場合にも同様な事が言えます。
|
||
|
||
 (5)これは、例えばスクローラーを操作する時です。スクローラーは、テキストやメニューをスクロールさせる場合に用いますが、この時視点は、スクロールするテキスト上に位置し、マウス・カーソルは見ていません。このため、スクロールの方向、速度を変えようとしてマウスを動かす度に、いったん視点をマウス・カーソルに戻さねばなりません。こうなると、スクロール操作はぎこちないものになります。NeXTでは矢印ボタンをとなりに並べて、この点幾らか配慮しています。私が以前とった方法は、右ボタンで逆スクロールさせる、というものでした。
|
||
|
||
 マウス・インターフェイスに関しては、別の機会にじっくり考察致します。
|
||
|
||
## 4. ヒストリーとアンドゥ
|
||
 ヒストリーとアンドゥ機能は、アプリケーションの規模が一定のレベルに達した時点で、必ず盛り込まなくてはなりません。これに対するサポートの度合いが、ただのツールか、本当に使えるツールかの判断基準になるでしょう。<br> ヒストリー機能に関して1つだけ言っておきたい事があります。それは、「ヒストリーの一覧表示など無くても構わないが、先頭文字列によるサーチは必須である」という事です。
|
||
|
||
## 5. 画面デザイン
|
||
 「顔じゃない、中身で勝負」などという負け惜しみは、ソフトウェアでは通用しません。画面デザインは、ソフトウェアの設計センスを如実に反映するものだからです。画面が美しいソフトがいいソフトとは限りませんが、画面がダサいソフトは、もれなくダサいソフトです。<br> それでは、「画面デザインが美しい」とは、どんな観点から言えるのでしょう。
|
||
|
||
1. 配色がケバケバしくない。
|
||
2. 意味のない色分けをしない。
|
||
3. その時点で不必要な情報を表示しない。
|
||
4. 情報の配置に無駄がない。
|
||
5. 情報の重要度を視覚的に明示している。
|
||
6. タイトルやコピーライトの表示が無いか、あっても目立たない。
|
||
7. 美術的に美しい。
|
||
|
||
どれもあたりまえの事です。しかし、1とか7は、そのまま開発者の趣味が反映されますから、「なんだこのケバイ画面は」と思っても、実は開発者にとってはジミな画面なのかも知れません。しかし、NeXTの画面を「美しい」と感じない人は、まずいないでしょうから、本当に美しい画面デザインは、万人に受け入れられるはずです。<br> 「美術的に美しい」というと、ひと頃はMac風のデザインがもてはやされましたが、今はなんと言ってもNeXT風でしょう。あのモノトーン4階調の立体表示には、そそられます。
|
||
|
||
 というわけで、今回はざっくばらんに、UIについて思う事を書いてきました。そう、あと2つばかり言い残しておきます。
|
||
|
||
- オブジェクトを点滅、あるいは「動かして」注目させる。
|
||
- 初めに対象物を選定して、それに対する処理を選択する。
|
||
|
||
本当にUIは奥が深い。しかし、結局言える事は、
|
||
|
||
 「人間、大概の事には慣れてしまうものである」
|
||
|
||
(雑誌「**PC POWER** 1992年9月号」掲載)
|
||
|
||
|