Windows XP ではマウスのポインタ(カーソル)の速度は、コントロール パネルの「マウス」を使って調節できる。「マウスのプロパティ」ウィンドウの「ポインタ オプション」タブの「速度」欄で「ポインタの速度を選択する」のスライダを「速く」の方(右)に動かせば速くなる。
しかし、マウス ポインタを速くするためにこのスライダを右一杯に動かして最速に設定しても、なおポインタの動きが遅いと感じる場合がある。特に大画面のモニタ(ディスプレイ)をマルチ モニタで使用している場合、マウスやトラックボールを何度も動かしてポインタを移動させなければならないことがあり、フラストレーションを感じる。最近ではメーカー各社からマウスの解像度(マウスから PC に伝達される移動量の情報)が高く設定されているものや解像度を調節可能なものが発売されているが、お気に入りのマウスやトラックボールがそのような機能を持っていなければ、どうにもならない。
また、単純にスピードの速いマウスを使っても、今度はスピードが速いせいでポインタを精度よく操ることができなくなってしまう。ポインタを大きく動かす時はスピードが速ければよいので問題はないが、ポインタを1ドット単位で精密に動かしたい時に、どんなにマウスをゆっくり動かしてもポインタが2〜3ドットおきに動いてしまい、思った場所に移動できないことがある。これは特にグラフィックや CAD ソフトを使用しているときに大きな問題になる。これらのソフトの使用者は大抵大画面のモニタを使用しているので、このジレンマに直面している人は多い。
実は Windows にはこの問題をある程度軽減するオプションがあり、それが「ポインタの加速」と呼ばれている機能である。Windows XP の場合は、「マウスのプロパティ」ウィンドウの「ポインタ オプション」タブの「速度」欄にある「ポインタの精度を高める」というチェックボックスがそれである。これをチェックすると、マウスをゆっくり動かしたときはポインタの速度とマウスの速度の比率が低い状態になり、逆にマウスを速く動かすとポインタの速度とマウスの速度の比率が高くなる。従って、ポインタを大きく動かしたいときはマウスを素早く動かすことで(小さいマウスの移動量で)大きく動かすことができ、しかもポインタを精密に動かしたいときは、マウスをゆっくり動かすことで1ドット単位で精密に操作することができる。このチェックを外した状態では、ポインタの速度とマウスの速度の比率は(「ポインタの速度を選択する」スライダで大きさそのものは調節できるが)マウスの速度によらず一定となる。
このマウス ポインタの加速機能は Windows 95 の時代から標準搭載されており、Windows 2000 以降はユーザーがオンオフできるようになった。
Windows XP より前はポインタの加速の変化は、原点を通る複数の傾きの直線を乗り換える、階段状の変化を示していたが、Windows XP ではスムーズな折れ線状の曲線を示すようになった。また、従来、加速の適用は画面の縦方向と横方向で個別に計算され適用されていたので、マウスを等速で動かしても斜め方向には加速が効きにくく、しかも水平・垂直・45°以外では(縦横で加速倍率が異なる結果となるため)マウスの移動方向とポインタの移動方向が一致しないという不具合があった。これに対し、Windows XP では両方向の速度をベクトル合成した真の速度に対して加速曲線から加速率を計算し、それを両方向に適用するので、方向にかかわらず正確な加速が行われるようになった。従って Windows XP を使用しているなら、この曲線を調節できれば、ポインタの速度の変化を自分の思い通りにできるだろう。実際、特に広大なデスクトップを使用している場合、上記のチェックを入れてポインタの速度を最大にしても、まだポインタの速度と精密さを両立できないと感じることはある。
この加速曲線の形状は、レジストリに記録されており、レジストリ エディタ(regedit)でユーザーが自由に編集できる。その場所(レジストリ キー)は、
(ちなみに、Windows XP でのマウス ポインタ高速化の方法として、レジストリの“MouseSpeed”、“MouseThreshold1”、“MouseThreshold2”を編集すればよいとする Tips が雑誌やネット上に見受けられるが、これは誤り。“MouseThreshold1” “MouseThreshold2”は Windows 2000 以前の階段状の加速を制御する閾値であり、Windows XP には効果がない。Windows XP で加速制御に使用されているのは“MouseSensitivity”(スライダの位置)、“MouseSpeed”(加速の有無)と“SmoothMouseXCurve” “SmoothMouseYCurve”(加速曲線の形状)の4つ。)
Windows XP でのポインタの加速曲線は、XY座標上の5つの点を結ぶ直線による折れ線で表現されていることが分かる。一つめの点は原点にあり、最初の直線の傾きが、マウスを非常にゆっくり動かしたときのポインタの速度とマウスの速度の比率になる。マウスを次第に速く動かしていくと、2番目の点を越えて直線の傾きが少し大きくなり、ポインタがマウスの速度に比べて速く動くようになる。更にマウスを速く動かすと、直線の傾きが順次大きくなり、4番目の点を超えてからは一定の勾配になる。5番目の点の位置を越える場合は直線が外挿される。
この5つの点の配置には以下のような特徴がある。
レジストリの編集は、レジストリ エディタ(regedit.exe)で行える。レジストリ エディタは Windows に標準搭載されているが、レジストリの重要な設定を誤って書き換えるとシステムが起動できなくなる場合もあるので、スタート メニューなどには登録されていない。レジストリ エディタを起動するには、スタート メニューの「ファイル名を指定して実行(R)...」を開き、名前に「regedit」と入力して起動する。起動したら左側のツリーをたどって上記のレジストリ キーを開き、右側のペインの“SmoothMouseXCurve”または“SmoothMouseYCurve”をダブルクリックする。バイナリ値は2桁の16進数の組ごとに編集できる(2桁ごとにダブルクリックして選択し、キーボードから入力して書き換える)。「保存」コマンドはなく、「やり直し」もできないので注意すること(バイナリ値の編集画面を閉じる前なら「キャンセル」ボタンでキャンセルできる)。なお、編集後はいったんログオフして再度ログオンするまで設定は有効にならない。
(※ 下記の設定例には、読者の方が簡単に試せるように、登録エントリ (.reg) ファイル も掲載しました。リンクをファイルに保存し、保存したファイルをダブルクリックするとレジストリに登録できます。有効にするにはいったんログオフして再度ログオンして下さい。内容はテキストファイルなのでメモ帳などで開いて確認できます)
具体的な曲線の例を以下に示す。
Windows XP の標準の“SmoothMouseXCurve”と“SmoothMouseYCurve”は以下の値であり、これは加速曲線を定義する通過点の座標として下記のものを示している。
通過点の座標 | SmoothMouseXCurve | SmoothMouseYCurve | 傾き | .reg ファイル |
(0, 0) (0.43, 1.37) (1.25, 5.3) (3.86, 24.3) (40, 568) |
00 00 00 00 00 00 00 00 15 6E 00 00 00 00 00 00 00 40 01 00 00 00 00 00 29 DC 03 00 00 00 00 00 00 00 28 00 00 00 00 00 |
00 00 00 00 00 00 00 00 B8 5E 01 00 00 00 00 00 CD 4C 05 00 00 00 00 00 CD 4C 18 00 00 00 00 00 00 00 38 02 00 00 00 00 |
3.19 4.79 7.28 15.04 |
Default.reg |
---|
最初の傾きが 3.19 で、最終の傾きが 15.04 である。マウスを速く動かした時に遅いと感じるのは、この 15.04 という傾きが小さすぎるということを意味する。一方、マウスをごく低速で動かしたときの 3.19 という傾きは、環境によってはまだ大きすぎる気がする。筆者は Microsoft Trackball Explorer というトラックボールを PS/2 接続で使用しているが、スライダを右一杯に動かした状態では、ポインタを1ドット単位で操作するときに困難を感じることがある。
最終の傾きを 30 に上げ、代わりに最初の傾きを 2 に下げた曲線を作ってみた。
通過点の座標 | SmoothMouseXCurve | SmoothMouseYCurve | 傾き | .reg ファイル |
(0, 0) (0.5, 1) (1.5, 6) (3.5, 30) (20, 525) |
00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 80 01 00 00 00 00 00 00 80 03 00 00 00 00 00 00 00 14 00 00 00 00 00 |
00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 1E 00 00 00 00 00 00 00 0D 02 00 00 00 00 |
2.00 5.00 12.00 30.00 |
Inclination_30.reg |
---|
なるほど、マウス ポインタはかなり速く動く。低速時の精度も若干改善された。しかしまだ何となく物足りない気がする。
では、最終傾きを 60 に上げ、最初の傾きを 1.5 に下げてみよう。
通過点の座標 | SmoothMouseXCurve | SmoothMouseYCurve | 傾き | .reg ファイル |
(0, 0) (0.5, 0.75) (1.5, 8) (3, 40) (13, 640) |
00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 80 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 0D 00 00 00 00 00 |
00 00 00 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 80 02 00 00 00 00 |
1.50 7.25 21.33 60.00 |
Inclination_60.reg |
---|
これはかなり調子がよい。低速時と高速時のメリハリがはっきりしていて、ポインタの精密な操作と高速な移動の両方がストレスなく行える。ところが、これも慣れてくるとポインタの速度が特段速いとは感じられなくなってくるから、人間の適応能力はなかなか侮れない。
最終傾きを 90 まで上げてみた。
通過点の座標 | SmoothMouseXCurve | SmoothMouseYCurve | 傾き | .reg ファイル |
(0, 0) (0.4, 0.6) (1.2, 6.6) (2.2, 35) (9, 647) |
00 00 00 00 00 00 00 00 66 66 00 00 00 00 00 00 33 33 01 00 00 00 00 00 33 33 02 00 00 00 00 00 00 00 09 00 00 00 00 00 |
00 00 00 00 00 00 00 00 99 99 00 00 00 00 00 00 99 99 06 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 87 02 00 00 00 00 |
1.50 7.50 28.40 90.00 |
Inclination_90.reg |
---|
速い。ポインタがしばしば行き過ぎてしまうことがある。しかし数十分間使用していると、ストレスを感じなくなるから不思議である。手や指をどの程度動かせばポインタがどの程度動くかを予測可能になってくると、行き過ぎの頻度も減って、むしろ使いやすいと感じてくるようになる。
ここまで来たのだから、最終傾きを 120 にしてみよう。
通過点の座標 | SmoothMouseXCurve | SmoothMouseYCurve | 傾き | .reg ファイル |
(0, 0) (0.3, 0.45) (0.8, 4.5) (1.5, 25.5) (7, 685.5) |
00 00 00 00 00 00 00 00 CC 4C 00 00 00 00 00 00 CC CC 00 00 00 00 00 00 00 80 01 00 00 00 00 00 00 00 07 00 00 00 00 00 |
00 00 00 00 00 00 00 00 33 73 00 00 00 00 00 00 00 80 04 00 00 00 00 00 00 80 19 00 00 00 00 00 00 80 AD 02 00 00 00 00 |
1.50 8.10 30.00 120.00 |
Inclination_120.reg |
---|
さすがに、これは一筋縄ではいかない加速度である。UXGA のモニタを3つ横に並べていても、あっという間に画面の端から端までポインタが移動する(素晴らしい)。もっともこの速度ですら、慣れるまでは時間がかかるだろうが、使いこなせないことはない気がする。
これらの曲線の低速側の拡大図を下記に掲載しておく。
読者諸氏も、ご自分でお好みの曲線を作ってみてはいかがだろう。お使いのマウスによっては、上記の設定でもポインタのスピードが遅すぎると感じる場合があるかも知れない。その場合は、高速側の傾きを調整すると共に、低速側もある程度上げる方がよいだろう。ただし1ドット単位での操作が確実にできるように注意して設定してほしい。Microsoft Excel なら dec2hex() や hex2dec() 関数で 10 進と 16 進の変換も容易にできるので、グラフを描きながら値を確認できる。上記の例が参考になれば幸いである。
(サンプル: sample.xls - dec2hex 等を使うのに必要な「分析ツール アドイン」をインストールしておいて下さい。Office のインストール時に「完全インストール」を選択していればインストールされているはずです。ファイルには読み取り専用推奨の属性がついているので、ご自分で編集される際は別名で保存して下さい。読み取り専用推奨は「ツール」−「オプション」の「セキュリティ」タブで無効にできます)
例えば、上記の例では低速時と高速時の加速の変化が大きすぎると感じるなら、低速側を持ち上げてそれを緩和した例として下記のようなものが考えられる。低速領域では、わずかな調整でポインタの操作感が大きく変わることがよくわかる。
| ||||||||||
| ||||||||||
| ||||||||||
|
また、加速の具合はデフォルトのままで、スピードだけを上げたいという場合は、SmoothMouseXCurve だけを 1/2、1/3 と減らしていけば、加速曲線が左方向に圧縮され、同じポインタの速度を得るのにマウスの速度が 1/2、1/3 で済むようになる。これはマウスの解像度(感度)が 2 倍、3 倍と増えたのと同じことで、400 dpi のマウスを使っている場合、2 倍速なら 800 dpi 相当、3 倍速なら 1200 dpi 相当のマウスを使っているのと同じ効果になる。ただし、この場合「最初の傾き」がかなり大きくなってしまうので、ポインタを 1 ドット単位で操るのは困難になる。
| ||||||||||
| ||||||||||
| ||||||||||
| ||||||||||
|
Windows XP でポインタの加速をなくす(マウスの速度とポインタの速度の比率を一定に保つ)には、「ポインタの精度を高める」チェックボックスを外すだけでよいのだが、ネット上には加速をなしにする設定としての“SmoothMouseXCurve”と“SmoothMouseYCurve”が紹介されていることがある。「ポインタの精度を高める」チェックボックスを外しても加速が切れない、というのは誤解なのだが(多くの場合メーカー製のマウスドライバが悪さをしている)、シューティング ゲームをしている人などには切実な問題であるようだ。
紹介されている“SmoothMouseXCurve”と“SmoothMouseYCurve”は大抵下記のもので、これは加速曲線の傾きを約 4.24 に固定する(“SmoothMouseYCurve”の4行目は“9A 99 0A 00 00 00 00 00”、5行目は“33 33 15 00 00 00 00 00”の方が自然)。
通過点の座標 | SmoothMouseXCurve | SmoothMouseYCurve | 傾き | .reg ファイル |
(0, 0) (0.625, 2.65) (1.25, 5.3) (2.5, 10.6) (5, 21.2) |
00 00 00 00 00 00 00 00 00 A0 00 00 00 00 00 00 00 40 01 00 00 00 00 00 00 80 02 00 00 00 00 00 00 00 05 00 00 00 00 00 |
00 00 00 00 00 00 00 00 66 A6 02 00 00 00 00 00 CD 4C 05 00 00 00 00 00 A0 99 0A 00 00 00 00 00 38 33 15 00 00 00 00 00 |
4.24 4.24 4.24 4.24 |
Fixed_4_24.reg |
---|
この 4.24 という傾きは、スライダの位置が中央の時は「ポインタの精度を高める」のチェックを外した場合の傾き(実測値を参考にすると 4.6 前後と思われる)とほぼ同じだが、「ポインタの精度を高める」の有無でスライダによる拡大倍率が異なる(精度なしの場合、右端は中央の約 3.5 倍だが、精度ありの場合、右端は中央の 2 倍になる)ので、調整範囲が狭くなる。
“SmoothMouseXCurve”と“SmoothMouseYCurve”を使ってポインタの加速を切るというのは、あまり意味のないことにも思えるが、しかし加速を切りながらその比例係数そのものをカスタマイズする手段として利用することは可能である。例えばポインタの加速を切って使いたい場合で、「ポインタの精度を高める」のチェックを外してスライダを右端一杯に動かしてもなお速度が遅いと感じるなら、加速曲線を傾きの大きな一直線に変更した上で「ポインタの精度を高める」のチェックを入れることで「加速を切って速くする」ことができる。
加速を切る設定例を下記にいくつか掲載する。
| ||||||||||
| ||||||||||
| ||||||||||
| ||||||||||
| ||||||||||
| ||||||||||
|
このように、WindowsXP から導入された“SmoothMouseXCurve”と“SmoothMouseYCurve”によるポインタの加速調節は、ユーザーの好みに応じてかなり自由にカスタマイズできる。レジストリ エディタを使用して編集しなければならないのはやや敷居が高いが、これをグラフィカルに編集できるプログラムも将来登場するだろう。