Custom Curve の手の加速モジュレーション
以下の図は、 手の加速によるモジュレーションは、手が加速・減速しているあいだに速度または感度をスケーリングします。詳しい説明はこちら: ユーザーガイド.
加速カーブ
上の例の動きは、自然な物理的加速をともなうマウスの一振りを再現したものです。見やすさのために 90 % 遅く再生しています。
コントロール
数値
手の加速モジュレーションのスケーリング
スケーリングにはヒル関数を用いています。増幅された過渡成分を、不連続を生じさせずに元の信号へなめらかに収束させられるからです。加速は二乗されて入るため、破線で示した半分のとおり、応答はゼロの両側で同じ形になります。 スケール対象はどちらの向きを有効にするかを決めます。
物理的な加速から生まれる感度の変換
手の加速モジュレーションは、カーブの挙動をより細かく制御するための上級者向け機能です。本質的には、カーブによる感度の変換を、手を加速させているときと減速させているときとで違う振る舞いにできる機能です。通常の加速カーブはマウスの速度にしか反応せず、その速度に どのように至ったかは見ていません。
人の手がマウスの上で生み出す物理的な加速は、いわば 過渡現象です。スケーリングが効くのは、手が速度を 変えているあいだだけで、動きが一定になった瞬間に消えます。
グラフが示していること
- 加速カーブ:感度カーブの一例を、再現したフリック動作とともに示しています。見やすいようにゆっくり再生されます。動きはまずゆるやかに加速し、次に速く加速し、最高速度 45 インチ/秒 で維持されたあと、同じ形で減速します。
- 速度を対象にしている場合:スケールの符号に応じて、カーブは左へ縮むか右へ伸びます。
- 感度を対象にしている場合:これもスケールの符号に応じて、カーブ全体が上または下へ動きます。
この伸び縮みが数式のたとえではなく、数式そのもの である点は重要です。カーブが読み取る前に速度へ係数を掛けることは、その係数のぶんだけ 圧縮されたカーブに対して、モジュレーションなしの速度を読み取ることとまったく同じです。静的な感度(またはカーブの平らな区間)が速度モードでほとんど反応しないのも、これが理由です。圧縮はカーブを横へずらすだけなので、平らな感度はモジュレーションの有無にかかわらず同じままです。
- 手の加速モジュレーションのスケーリング:物理的な加速を入力信号へ収束させる内部関数を示します。時間ではなく加速に対して描かれているため、変換の形全体を一度に見渡せます。
パラメーター
- スケール & 制限:スケールは、目立った変化が起きるまでに手がどれだけ強く加速する必要があるかを決めます。手の物理的な加速に対して関数がどれだけ敏感かを表す値です。制限は効果の上限を定め、応答はその値に近づきますが決して到達しません。
- スケール対象:スケーリングを手が加速しているときに行うか、減速しているときに行うかを選びます。
- 速度を対象:カーブが読み取る前に速度を掛けます。出力として得られるのはカーブがすでに含んでいる感度だけで、それが通常より低い手の速度で現れます。つまり、カーブが定義していない感度に届くことはありません。
- 感度を対象:カーブを読み取ったあとの出力を掛けます。カーブは横へずれるのではなく持ち上がり、カーブに含まれていない感度にも一時的に届きます。
手の加速メーターはどちらの場合も同じ値を示します。測っている量がそもそも同じだからです。違うのは、その測定値が何に 適用されるかという点です.
処理の流れの中での位置
測定は加速カーブより前に行われます。速度を対象にした場合はその時点の速度にスケーリングが適用され、感度を対象にした場合はカーブが返した感度に適用されるため、カーブに上乗せされる形になります。
実用上の注意が二つあります。スケールの値はマウスの DPI に影響されます。各マウスの DPI を デバイスタブで指定しておくことをおすすめします。そうすれば、この図と同じように加速が実際の単位で測られます。もう一つは、実際のマウス入力はそのまま微分するには雑音が多すぎるという点です。そのためドライバーは、変化率を取る前に速度をなめらかにしています。これを調整するのが 検出スムージングです。ここでの動きは測定ではなく生成されたものなので、なめらかにすべきものがなく、このページにもそのような設定はありません。
いくつかの使いどころ
いずれも過渡的なモジュレーションでこそ得られるもので、通常の加速カーブだけでは実現できません。設定は次の順で示しています: 対象, スケールの符号、 スケール対象.
- 速いフリックのために、マウスパッド上の余地を広く取る。 速度、スケールは負、加速に適用。手が加速しているあいだ速度を割ると、感度はカーブ単独の値より低く抑えられます。そのため強いフリックでも、パッド上の同じ振り幅に対して画面上の移動量は小さくなります。フリックをより思い切って振れるうえ、行き過ぎるまでの余裕も増えます。
- 速い動きと加速が同時に起きたときだけ感度を上げる。 速度、スケールは正、加速に適用。カーブを左へ圧縮すると、上側の平坦部により低い手の速度で届くようになります。ただし、手が勢いよく速度を上げているあいだに限られます。 プリセット 10、Modulated Jumpはまさにこの構成で、ジャンプ型のカーブにスケール 1、制限 4 を組み合わせています。これにより、きわめて反応的な 180° の振り向き以外のあらゆる動きから加速を締め出せます。
- フリック中だけ感度を変換する。 感度、スケールは正、加速に適用。スケーリングがカーブのあとに効くため、カーブ自体は平らなままにできます。どの一定速度もスケーリングされず、単一の感度として読まれ、動きのあるフリックのあいだだけ、過渡が続く時間にわたって感度が持ち上がります。 プリセット 17、手の加速による感度モジュレーションがまさにこれを行い、スケール 1、制限 2.5 に設定されています。
- いつもは付いてくる「モーションディレイ」なしで、強いスムージングをかける。 速度、スケールは負、減速に適用。ぶれのあるマウス入力をなめらかにすると、手を減速させているあいだ感度が上がります。スムージングが過去の値との平均を取るからで、これがいわゆる「モーションディレイ」です。手が減速しているあいだに加速カーブへ速度を割り込ませると、動きだけの場合より速く感度が下がり、ぶれの少なさを保ったまま、この欠点を完全に打ち消せます。
- 左右に速く追うあいだ、感度を安定させる。 速度、スケールは負、加速に適用。向きを変えるたびに大きな加速が生じるため、そのつど除算が効き、本来なら加速カーブを登っていくはずの感度をその場に留めます。結果として、カーブに動的な「オフセット」が生まれます。これは鋭い物理的加速のときにだけ現れ、一定の速度や、もっとゆるやかな手の加速では現れません。