因为这次改了瞄准的fov黑边,专程上号试试感受,然后遇到了以前遇到过的视角切换造成的瞄准点偏移的问题,闲得无聊就专程对这个问题研究了下。
首先讲下这个问题该怎么触发:开镜——放大——关镜——再开镜,经过这一流程后会发现瞄准点会有偏移。
接下来是讲这个问题为什么会产生:
根本原因:第三人称高视角和第三人称放大视角即车长位视角不共轴,类比就像是全真的炮手视角和炮口之间的瞄准偏差。具体怎么理解可以去试驾第三人称把炮口压低后按右键,瞄准点会有明显的变动,就会发现这两个视角的瞄准基线是不一样的。陆战全真限定使用车长位视角,但也会有同样的问题,初步推测是毛子全真陆战第三人称给了两个一模一样的缩放参数,使得看起来没有缩放,但依旧存在瞄准点变动问题,对此则推测是是视角轴和瞄准轴是两个独立参数,全真的第三人称视角只复制了视角轴参数,瞄准轴的参数还是分中轴和车长轴两类。
直接原因:从瞄准镜视角切换回第三人称视角会重置缩放状态。这部分的说明采取的是用假设游戏逻辑来说明,我们先假定有两个变量来定义瞄准状态,A表示开关镜,B表示开关放大,0表示关,1表示开。通过AB和12进行组合来表明当前瞄准状态,值得注意的是B值的放大开关同时关系到第三人称使用的是车长轴还是中轴的瞄准位置问题,而且不论是否开关镜。首先我们进行开镜放大,这时候的函数值是A1B1,在装弹时候关镜按住C键观察四周,此时的函数值是A0B0,我们改变了A值的同时B值自动重置为0,在之前的根本原因中介绍了车长视角和中轴视角的瞄准点会有不同,B值改变也意味着我们的瞄准轴发生了变动,这时候再开镜就会发现瞄准点变动了。
关于这部分如何证明,重复 开镜——放大——关镜——开镜——放大——关镜……每重复一次开放关的动作,炮口就会相对的偏移一段距离,类似演绎推理的证明了。
当循环改变为开镜——放大——关镜——放大——开镜——放大——关镜——放大——开镜——放大——关镜……之后,瞄准点则不会变动。
对此的解释是假设输出坐标为(x,y),瞄准坐标为(X,Y),有ab两个子变量(Xanbm,Yanbm),开镜时不放大为(Xa1b0,Ya1b0),放大后为(Xa1b1,Ya1b1)。但就算在开镜时,不开镜不放大的(Xa0b0,Ya0b0)数据依然存在,且“(Xa0b0,Ya0b0)=(Xa1b0,Ya1b0)”同理“(Xa0b1,Ya0b1)=(Xa1b1,Ya1b1)”。因为之前的根本原因中提到的第三人称视角瞄准点偏差,(Xa0b0,Ya0b0)-(Xa0b1,Ya0b1)=k 即某个固定偏差值
从第三人称开镜,有“(Xa1b1,Ya1b1)=(Xa1b0,Ya1b0)”
放大,有“(Xa0b1,Ya0b1)=(Xa1b1,Ya1b1),(x,y)=(Xa1b1,Ya1b1)”
关镜,有“(Xa0b0,Ya0b0)=(Xa0b1,Ya0b1)+k,(x,y)=(Xa0b0,Ya0b0)”
注:引号里的等价式使用的是计算机的语言逻辑
这里这个k则是开镜放大关镜再开镜产生的偏差,因此在再次开镜前先在第三人称放大再开镜,即可补偿该误差。
最终总结:放大关镜开前放大,未放大关镜开镜前不可放大,或者是关镜前先缩小再关镜,保持缩放情况一致。该结论实际应用价值在中距离射击定点目标时,切换第三人称索敌观察环境时保持瞄准点不移位,在第三人称时可精确射击。
首先讲下这个问题该怎么触发:开镜——放大——关镜——再开镜,经过这一流程后会发现瞄准点会有偏移。
接下来是讲这个问题为什么会产生:
根本原因:第三人称高视角和第三人称放大视角即车长位视角不共轴,类比就像是全真的炮手视角和炮口之间的瞄准偏差。具体怎么理解可以去试驾第三人称把炮口压低后按右键,瞄准点会有明显的变动,就会发现这两个视角的瞄准基线是不一样的。陆战全真限定使用车长位视角,但也会有同样的问题,初步推测是毛子全真陆战第三人称给了两个一模一样的缩放参数,使得看起来没有缩放,但依旧存在瞄准点变动问题,对此则推测是是视角轴和瞄准轴是两个独立参数,全真的第三人称视角只复制了视角轴参数,瞄准轴的参数还是分中轴和车长轴两类。
直接原因:从瞄准镜视角切换回第三人称视角会重置缩放状态。这部分的说明采取的是用假设游戏逻辑来说明,我们先假定有两个变量来定义瞄准状态,A表示开关镜,B表示开关放大,0表示关,1表示开。通过AB和12进行组合来表明当前瞄准状态,值得注意的是B值的放大开关同时关系到第三人称使用的是车长轴还是中轴的瞄准位置问题,而且不论是否开关镜。首先我们进行开镜放大,这时候的函数值是A1B1,在装弹时候关镜按住C键观察四周,此时的函数值是A0B0,我们改变了A值的同时B值自动重置为0,在之前的根本原因中介绍了车长视角和中轴视角的瞄准点会有不同,B值改变也意味着我们的瞄准轴发生了变动,这时候再开镜就会发现瞄准点变动了。
关于这部分如何证明,重复 开镜——放大——关镜——开镜——放大——关镜……每重复一次开放关的动作,炮口就会相对的偏移一段距离,类似演绎推理的证明了。
当循环改变为开镜——放大——关镜——放大——开镜——放大——关镜——放大——开镜——放大——关镜……之后,瞄准点则不会变动。
对此的解释是假设输出坐标为(x,y),瞄准坐标为(X,Y),有ab两个子变量(Xanbm,Yanbm),开镜时不放大为(Xa1b0,Ya1b0),放大后为(Xa1b1,Ya1b1)。但就算在开镜时,不开镜不放大的(Xa0b0,Ya0b0)数据依然存在,且“(Xa0b0,Ya0b0)=(Xa1b0,Ya1b0)”同理“(Xa0b1,Ya0b1)=(Xa1b1,Ya1b1)”。因为之前的根本原因中提到的第三人称视角瞄准点偏差,(Xa0b0,Ya0b0)-(Xa0b1,Ya0b1)=k 即某个固定偏差值
从第三人称开镜,有“(Xa1b1,Ya1b1)=(Xa1b0,Ya1b0)”
放大,有“(Xa0b1,Ya0b1)=(Xa1b1,Ya1b1),(x,y)=(Xa1b1,Ya1b1)”
关镜,有“(Xa0b0,Ya0b0)=(Xa0b1,Ya0b1)+k,(x,y)=(Xa0b0,Ya0b0)”
注:引号里的等价式使用的是计算机的语言逻辑
这里这个k则是开镜放大关镜再开镜产生的偏差,因此在再次开镜前先在第三人称放大再开镜,即可补偿该误差。
最终总结:放大关镜开前放大,未放大关镜开镜前不可放大,或者是关镜前先缩小再关镜,保持缩放情况一致。该结论实际应用价值在中距离射击定点目标时,切换第三人称索敌观察环境时保持瞄准点不移位,在第三人称时可精确射击。