csgo吧 关注:3,927,287贴子:65,247,520

【技术水】鼠标速度大揭秘

只看楼主收藏回复

首先呢,这游戏跟鼠标速度有关系的参数就这么几个:
m_customaccel "0"
m_customaccel_exponent "1.05"
m_customaccel_max "0"
m_customaccel_scale "0.04"
m_forward "1"
m_mouseaccel1 "0"
m_mouseaccel2 "0"
m_mousespeed "1"
m_pitch "0.022"
m_rawinput "1"
m_side "0.8"
m_yaw "0.022"
sensitivity "0.213"
zoom_sensitivity_ratio_mouse "1"
但是我想大多数人除了最后两个两个以外都不知道是什么意思,于是今天闲的无聊研究一下。


IP属地:黑龙江1楼2015-12-20 01:25回复
    先看一下这几个参数:
    m_customaccel "0"
    m_customaccel_exponent "1.05"
    m_customaccel_max "0"
    m_customaccel_scale "0.04"
    这就是用户自定义的鼠标加速,第一个参数是自定义加速的开关,默认值是0,也就是关闭的,大部分人也都是这样吧。
    第二个,看了下说明,好像是跟乘几次方有关系,也就是加速的大小。
    第三个,这玩意是对第四个参数的一个限制,0是没有上限的意思。
    第四个,就是鼠标加速的系数项。


    IP属地:黑龙江2楼2015-12-20 01:32
    收起回复
      2026-10-03 01:36:41
      广告
      不感兴趣
      开通SVIP免广告
      再看一下这几个:
      m_forward "1"
      m_mouseaccel1 "0"
      m_mouseaccel2 "0"
      m_mousespeed "1"
      m_side "0.8"
      m_mouseaccel1这个参数是加速的第一个临界值,也就是说过了这个速度鼠标速度就要乘2了。
      m_mouseaccel2就是第二个临界值,过了他要乘4。
      m_mousespeed这个是跟windows的鼠标速度挂钩的。
      说白了就是只要开了原始数据输入就没这仨什么事了。
      m_forward m_side这两个说的是鼠标上下左右移动的一个参数,但是我调了半天也没发现有啥区别


      IP属地:黑龙江3楼2015-12-20 01:42
      收起回复


        IP属地:中国香港来自iPhone客户端4楼2015-12-20 01:44
        收起回复
          基本不知道的路过


          IP属地:安徽来自iPhone客户端5楼2015-12-20 01:46
          收起回复
            6666


            IP属地:广东来自iPhone客户端7楼2015-12-20 01:49
            收起回复
              接下来是重头戏:
              m_yaw
              m_pitch
              sensitivity
              这三个得放在一块说。
              m_yaw这个是鼠标横向移动的一个系数,m_pitch则是纵向的。
              接下来神奇的事情发生了,我把m_yaw调到了1,然后sensitivity调到了360,发现我的鼠标不会横向移动了。我又把sensitivity调成了180,发现我的人每一次都转半圈。我又把sensitivity调到90,发现每一下都转90度。
              接下来我把m_yaw调回0.022,然后把sensitivity调到16363.63636363(这俩乘起来是360)发现我的鼠标还是没有办法横向移动,也就是说,鼠标给一次信号我就转一圈。
              由此可见:sensitivity*m_yaw的值就等于鼠标传送一次信号人物转动的角度。m_pitch同理,只不过是纵向的罢了。


              IP属地:黑龙江8楼2015-12-20 01:53
              收起回复
                不明觉历


                来自iPhone客户端9楼2015-12-20 01:55
                收起回复
                  2026-10-03 01:30:41
                  广告
                  不感兴趣
                  开通SVIP免广告
                  既然知道了sensitivity的具体意义,那么每一个分辨率下灵敏度的上限也就可以算出来了,毕竟灵敏度太快会有鼠标直接从敌人身上跳过去的情况,比如说如果我的鼠标速度让我一次信号转2°,结果我准心边上1°的地方有个敌人,我死活瞄不到他,那就不好玩了。


                  IP属地:黑龙江10楼2015-12-20 01:57
                  回复
                    于是接下来我要研究一下不同分辨率下一个像素对应的是多少角度了。先来说一下csgo引擎里面角度是怎么回事,如图:

                    很明显∠1大于∠2,这也就是为什么屏幕边缘的地方画面会有拉伸的原因。


                    IP属地:黑龙江11楼2015-12-20 02:05
                    回复
                      因为4:3的画面的视野是90°,比较好算,我就从这下手了。

                      通过这条辅助线,就可以很好的解决屏幕拉伸的问题了。这个三角形里面斜边长于弧长的比例是4:PI。拿800:600为例,实际上视野的90°角是平均分布在800/4*PI=200PI个像素里面,一个像素大概占0.14324度,除以0.022,约等于6.51,也就是说,800*600的同学只要鼠标速度不超过6.51就可以瞄到每一个像素了


                      IP属地:黑龙江12楼2015-12-20 02:18
                      收起回复
                        再来看看16:9的,实际上就比4:3多了三分之一,也就是说,把横向分辨率减掉三分之一,再算就可以了。贴心的楼主表示还是把公式总结一下比较好:对于4:3的,鼠标速度不宜超过360/(PI*0.022)/X(X是横向分辨率)。对于16:9的,先把横向分辨率乘一个3/4,再这么算就可以了。
                        比如说1024*768的,不宜超过5.08;1920*1080的,不宜超过3.617等等。


                        IP属地:黑龙江14楼2015-12-20 02:28
                        收起回复
                          那么问题来了,超过了怎么办,没关系,鼠标速度降下来,dpi升上去就是了,只要这俩乘积不变感觉起来就是不变的。
                          对了,zoom_sensitivity_ratio_mouse "1"忘说了,这个就是开镜速度和不开镜的比例,1的话就是开镜感觉起来跟不开镜一样快。打个比方,sensitivity 2,zoom_sensitivity_ratio_mouse 0.5,跟sensitivity 1,zoom_sensitivity_ratio_mouse 1开镜之后是一样快的。


                          IP属地:黑龙江15楼2015-12-20 02:32
                          回复