PC入力コストの削減(1)

前回キーボードショートカット(あるいはキーバインド)について書きました。ショートカットを利用するのは、マウスの操作に比べ「速くて簡単」だからです。そのためには少々の“呪文”を覚える必要があります。で、呪文を覚えるコスト<マウス操作のコスト−キーボード操作のコスト、の場合に、呪文を覚えたほうが得だねー、という話でした。
ここには三つのコストが出てきました。「呪文を覚えるコスト」「マウス操作のコスト」「キーボード操作のコスト」です。これらのコストはそれぞれの仕方で抑えることができます。


はじめに「マウス操作のコスト」について。このコスト削減とは要するに、マウスを使いながらも、マウスの移動距離やクリック回数を減らすとかいろいろメニューを開けてみなくてすむようにするとかいったことです。この方法としては「マウスジェスチャー」の利用が考えられます。格闘ゲームのコマンドのように、マウスでコマンドを入力することで目的の機能をすぐに引き出して使える、という方法ですね。今ではけっこう多くのソフトで実装されてますし、そうでなくても「マウ筋」のようなソフトで実現が可能です。


次に「呪文を覚えるコスト」ですが、呪文はあるんだけども、その数を減らして覚えることを少なくする、というやり方について。エディタのコマンド(キーバインド)が代表的だと思います。UNIXを使った人ならエディタといえば「vi」や「emacs」の操作に慣れていることと思いますが、これは一度覚えると、便利なことももちろんですが呪文の数が多いといったこともあって、どのエディタでも同じ入力方式がほしいと誰もが思うわけで、そのためのソフトがいろいろあります。
こういったことを「ソフトの違いを吸収する」と言ったりするのですが、同じジャンルでいくつもソフトを使い分けている場合にこうしたやり方が威力を発揮します。どんなジャンルかすぐに思いつきますね。各種メディアプレイヤーソフトです。ぼくもそうですが、音楽プレイヤー・動画プレイヤーの区別をはじめ、この種のソフトをいろいろ使っている人は多いと思います。操作も似たり寄ったりで、「開く」「再生」「停止」「一時停止」とかだいたいそんな感じですよね。でも、ソフトごとにそれぞれの操作に割り当てているショートカットが違うもの。これをなんとか吸収できないか。 ── なんて思ったら、やっている方がいました。

窓使いの憂鬱」というこの関係では有名なソフトを使って、各種メディアプレイヤーの操作性の違いを吸収されてます。ぼくはこのソフトを使っていないのでそのまま導入することができません。というわけで、AutoHotkeyで「F1キーで再生」のあたりを実行するスクリプトを書いてみました。

#SingleInstance IGNORE

F1::
	; 注意!区切りのカンマの前後にスペースを入れないこと!
	players = kbmplay.exe,mplayerc.exe,wmplayer.exe
	keys    = ^p,{Space},^p
	StringSplit, player, players, `,
	StringSplit, key, keys, `,

	Loop, %player0%
	{
		StringTrimLeft, thisplayer, player%A_Index%, 0
		StringTrimLeft, thiskey, key%A_Index%, 0

		Process, Exist, %thisplayer%
		if ErrorLevel > 0
		{
			ControlSend,, %thiskey%, ahk_pid %ErrorLevel%
			break
		}
	}

	return

AutoHotkeyで配列はどうすればいいのかよくわからなかったので回りくどい書き方になってますが、だいたいこんな感じです。もちろん繰り返しを使わずに場合分けでダラダラ書いてもよかったんですが、後々登録ソフトに変更があったときに面倒なので。複数のファンクションキーで同じ書き方が流用できますしね。
で、これを各ファンクションキーごとにコピペしてくわけですが、ちょっと冗長に思います。この件については窓使いの憂鬱のほうがスマートな感じがしますね。一応この方法だと、アクティブでない(最前面にない)プレイヤーにも操作を伝えることができるというメリットはありますが、窓使いの憂鬱でもやろうと思えばできるでしょうし。


残るは「キーボード操作のコスト」についてですが、ここまででだいぶかかってしまったので、次回に続きます。