SensitivityやMouseaccelについて

Last-modified: 2012-02-14 (火) 18:28:25

SensitivityやMouseaccelについて書きます。間違い等ありましたら修正お願い致します。

  • B + {A(v-c)}^(P-1)
  • B = base sens
    A = cl_MouseAccel
    v = velocity
    c = cl_MouseAccelOffset
    P = cl_MouseAccelPower
    QuakeLiveでのマウスを使った移動情報はこのような計算式により求められているようです。
    http://www.esreality.com/index.php?a=post&id=2087765#pid2087765

    By injx
    almost.
    offset subtracts from the mouse speed, accel multiplies the mouse speed, and power is an exponent for the mouse speed. the result is added to your base sens.
    the long version:
    (injx) if B is your base sens, then your accelerated sens is B + (A(v-c))^(P-1), where A is mouseAccel, c is the offset and P is the power
    (injx) (v-c) is bounded from below at 0, and the whole thing is bounded from above at the sensCap
    (injx) v is the mouse speed obviously
    the offset is a mouse speed. if you move the mouse slower than the offset, sens will be constant (unaccelerated). at the offset speed the acceleration begins to be applied.
    if you're using the correct m_cpi, then the offset is in units of cm/s.

  • m_yawやm_pitchがここにどのように関わるかは不明ですが、xとyの感度を変えたい等の特別な場合を
    除いては計算が複雑になるだけなので個人的にはデフォルトが良いように思います。
  • Sensitivity
  • Sensitivityはご存知のとおりマウス感度の設定ですが、この値はマウスを使った移動情報の
    最小単位にも関わってきます。
    マウスのcpi設定とゲーム内でのsensitivity設定の関わりは以下の
    SteelSeries ExactSensの項参照
    http://www.4gamer.net/games/037/G003732/20090805053/

    1刻みでマウスのCPI設定を変更する機能だ。
    「FPSをプレイするに当たって最初にやることは,センシティビティの設定だ。ただし,インゲームでセンシを設定してしまうと,マウスの正確性を損ねる。例えばCounter-Strikeで2.4を設定すると,Windowsデスクトップで1の移動量が,ゲーム上では2.4倍になってしまう――2.4ピクセル単位の動きになってしまうわけだ。
     SteelSeriesでは,これを『ピクセルスキッピング』と呼んでいるが,インゲームの設定を1にして,マウス側で1CPI単位の設定を行えば,100%ハードウェアベースの設定を行えるので,ピクセルスキッピングのない操作が可能になる」(Rom氏)

  • ここに書かれていることはQuakeLiveでも有効なようで例えばゲーム内でのsensitivityを30に設定して
    動かしてみるとガクガクとしたような挙動を示します。
  • m_filter
  • m_filterは最終2フレーム分のsensitivityを平均化?するコマンドですが
    m_filterを入れることでも最小単位は上昇するようです。
    ソースは失念しました。
  • Mouseaccel
  • その他計算式等
  • マウスのcpi設定を変更した場合のsensとaccelの計算
    new_sens = old_sens*(old_cpi/new_cpi)
    new_accel = old_accel*{(old_cpi/new_cpi)^2}
    また、fovや画面解像度を変更した場合も感覚は変わってきます。
  • 視覚的にmouseaccelを調整する方法
    B + {A(v-c)}^(P-1) =S
    http://www.wolframalpha.com/input/?i=plot+B%2B%28A*%28v-c%29%29%5E%28p-1%29%3D0+from+0+to+x
    上記の式とグラフを使用することにより視覚的にmouseaccelを調整することが可能です。
    B = base sens
    A = cl_MouseAccel
    v = velocity
    c = cl_MouseAccelOffset
    P = cl_MouseAccelPower
    S = cl_Mousesenscap
    from 0 to x はmousespeedの項目です。
    xに現在自分が使用するマウスの最大認識速度を代入すると良いでしょう。
    縦のラインが加速時のSensitivityで横のラインがmousespeed(cm/sec)です。
    それぞれに自分が使用している値を代入します。
  • 参考URL