攻略详情

《极品飞车8》方向盘校准攻略

作者: 孙英山 2013-05-25 11:02

方向盘的校准

1.校准的原理

前面说过,“… DirectInput 将收到的轴位置信息线性放大到 0-65535 的范围 …”方向盘输出的轴位置信息在送交 DirectInput 前是必须经过校准程序校准的,没有经过任何校准的控制器是不能工作的,校准程序所做的事情其实是告诉 DirectInput ,控制器所发送过来的轴位置数据,哪里是最小(Min)、哪里是最大(Max)、哪里是中点(Cen),而 DirectInput 并不追究 Min、Cen、Max为什么会是这些指定的数值,它只管把得到的 Min←→Cen之间的数据线性放大到 0←→32768 .而把 Cen←→Max之间的数据线性放大到 32768←→65535 。任何低于 Min 的数据都当作 Min 处理,任何高于 Max 的数据都当作 Max 处理。如此,我们就可以通过特意指定不同的 Min、Cen、Max 的数值来达到合理使用控制器的行程的目的,一个总的原则是:减少控制的有效行程来使控制器显得更加灵敏;而扩充(到)控制器的最大行程以获得最高的控制精度。

如下图,某方向盘输出端的量化数据范围是 -512←→+512,通过校准以指定不同的 Min、Cen、Max数值时,方向盘的工作情况,每图中上方箭头表示游戏中的虚拟方向盘,下方箭头表示游戏控制器方向盘的物理行程。

左上(校准行程=物理行程):Min=-512 ,Cen=0, Max=512,这时候的方向盘操作与游戏中的虚拟方向盘正好是一一对应的。既使用了控制器方向盘的全部精度,又能达到最大的控制范围。此为使用得最为普遍的一类校准方式。

右上(校准行程<物理行程):Min=-256 ,Cen=0,Max=256,这一类校准方式只使用了游戏控制器方向盘物理行程的一部分(图中举例为1/2),能使方向盘操作起来显得更加“灵敏”。也就是说,控制器方向盘转到一半行程的时候,游戏中的虚拟方向盘就已经转到极限位置了。多用于需要非常灵活控制的场合。注意,此类校准方式因为只使用了控制器方向盘的一部分行程,未使用的那一部分行程输出的数据全部当作Min或Max处理,此时的控制器的实际操作分辨率将取决于只使用了的那一部分行程的实际分辨率了。所以,实际上也就牺牲了控制器的一部分精度!

下(校准行程>物理行程):此为一种特殊的校准方式。通过人工指定Min、Cen、Max的数值,使它大于控制器所能输出的数值,这时候的控制器方向盘的全部行程只对应游戏中虚拟方向盘的一部分行程,因为控制器无法输出超出它的量化范围的那一部分数据,所以,游戏中的虚拟方向盘就永远也打不到极限位置,此类校准方式的理念是“集中所有能输出的控制精度来控制游戏中虚拟方向盘的一部分行程”,也就是说“牺牲控制范围以获取更大的控制精度”,一般只用于特定场合。

上述校准都属于行程校准,并且,上面所例均为左右对称式的校准方式,这里都是假设方向盘操作的物理行程与所输出的量化数据之间的对应关系是准确的,也就说,当方向盘自动回中的时候的自然位置,输出的数据正好是它所能输出的最大量化范围的中点,同时方向盘转到左右两个极限位置的时候输出的也正好是最大和最小的数据。而实际上受制造工艺的限制,以及随着使用过程造成的磨损等等多种因素的影响,很多方向盘并不(总)是那么的准确。但是,只要我们明白了校准原理,这些问题都是可以通过校准来改善的。

例:假设某方向盘的方向轴的理论输出数据范围是 -512 ← 0 → +512 ,而实际使用中测试到该方向盘自动回中时的自然位置输出的数据是20,如果这时候仍然指定 Min=-512,Cen=0,Max=512 的话,那么在游戏中,因为其自然的中心位置输出的数据并不是 0,而是 20, 该方向盘就会总是偏向一边,这时候的解决办法是通过校准指定其 Cen = 20.就能解决问题了。

还有一类校准问题是“呆区”(Deadzone)设置,所谓“呆区”,是指控制器模拟真实方向盘的自由间隙,也就是说,在其有效行程的某一部分输出的数据不做处理,比如方向盘的方向轴的呆区,是指其自由回中的位置左右的一小段行程操作会在游戏中没有反应,用以模拟方向盘的自由间隙,呆区的数值一般用百分比表示,比如方向轴的呆区如果设置成 10%,则是表示,方向盘在其中间位置的,其总有效行程的10% 的行程范围为呆区,方向盘在该区域范围内的任何移动都被当作“方向正中”处理。其内在的含义实际是指定 Cen为一定范围内的数据,而不是指定 Cen 为单一的具体数据。呆区设置为 0% 即为没有呆区。

请注意,在Windows NT/2000/XP 操作系统中不支持保存呆区设置,而在 Windows 98/ME 中是可以的。

以上说的校准和呆区设置,都是指的在进入游戏前,使用Windows 的校准程序、方向盘自带的驱动中的校准程序、以及第三方开发的专用的游戏控制器校准程序进行的校准工作,这些工作实际上都是在控制器输出的数据送交到 DirectInput 之前所做出的处理,而很多游戏在进入游戏以后也提供各种有关的控制器设置和校准功能,因为游戏在启动后可以通过“驻留处理”或者在游戏主程序中对DirectInput数据进行实时处理,这样就当然不受上述的“NT类操作系统不支持呆区设置”的限制了。

2.校准的操作

明白了校准的原理以后,下面再来说说校准的实际操作,我这里将校准分为“自动校准”、“半自动校准”、“手动校准”三种情况来叙述。

首先说说半自动校准:这里以 Windows “控制面板/游戏控制器/控制器属性/校准”提供的校准程序为例说明半自动校准的操作(大部分方向盘如果安装了盘带的驱动,则屏蔽掉了 控制面板里的这个校准功能而用驱动程序的相关设置界面取而代之了)

在提示“将手柄转动几圈,然后按控制器上的按钮”的时候,勾选“显示原始数据”可以看到控制器输出的实际数据。这时候,转动方向盘,输出的数据会实时显示出来,注意,在这个过程中,校准程序会将实际输出的所有数据的最小部分设置为 Min ,而将收到的最大的数据设定为 Max ,在“下一步”即“将手柄放在中间并按控制器上的按钮的时候”,它将你那时候的控制器位置输出的实际数据设置为 Cen 。这里实际上就提供了比较完善的手动校准功能了,如果你想做一个如前文所述的“校准行程<物理行程”的校准方式,那么在转动方向盘的时候,你就不要把方向盘转到头,而只转到你想要设置的位置就可以了。比如你的方向盘实际物理行程有左右各 90度,而你想只用左右各 60度,那么在“将手柄转动几圈,然后按控制器上的按钮”的时候,你只将方向盘转动到左右各 60度,然后就按钮确定就可以了。半自动校准程序通常可以进行“校准行程=物理行程”和“校准行程<物理行程”这两类方式的校准。另外说明一下,某些游戏里在进入游戏后提供的控制器校准功能基本也属于这一类。操作类似。

自动校准:某些方向盘具备自动校准功能(比如“微软方向盘”),它会在每次初始化方向盘的时候[比如系统开机、重启、方向盘接头的“热插拔”(USB接口类的)等]自动将方向盘当前位置设置为控制器的默认位置。对于方向轴,初始化方向盘的时候,你的方向轴实际所在的位置就被设置为方向轴的中心(Cen)。而踏板,则自动将当前踏板位置设置为踏板的行程起点。所以,这一类方向盘在初始化的时候只需让其处于自然位置即可(通常是:方向盘处于方向控制的自然回中位置,而踏板则处于未踏下的位置),“自动校准”功能会自动按这些位置进行校准。(有兴趣的朋友可以测试:初始化的时候故意让它不在自然位置,看看会有什么结果)

另外有一些并不具备真正的“自动校准”功能的方向盘,只是在初始化方向盘的时候指定 Min 和 Max 分别为该控制器理论上(设计上)所能输出的数据的最小和最大的数据,并指定 Cen = Min+(Max-Min)/2 。也就是说,它实际上并没有进行任何真正的“校准”动作,而是把 Min、Cen、Max分别指定成“内定的”数值通知 DirectInput 。同时并不提供(或不完整提供)用户进行手动校准的界面,这些方向盘在并没有真正的“自动校准”功能的前提下还想“使产品使用起来显得更加简洁容易”,结果是一旦控制器因为某种原因发生校准问题的时候,使得想进行手动校准的用户无从下手。这应归咎于厂家对自己的产品过于自信。如果这时候卸载方向盘带的驱动,转而用 Windows 的控制面板的校准程序,又会失去方向盘的一些特殊功能。如果游戏里提供控制器的校准倒还好,可以启动到游戏里再进行校准工作,问题是某些游戏也没有提供完整的控制器校准功能(比如F1C就没有控制器的行程校准和中点校准功能),我们只能对部分厂家的这种盲目自信行为表示遗憾!

手动校准:遗憾归遗憾,游戏我们还是得玩,该校准的控制器我们也还是得想办法校准。如果安装了方向盘自带的驱动以后找不到手动校准的界面了,并且所玩的游戏里也没有提供完善的校准功能,那么我们就得借助其他的专用的校准工具了,这里介绍大家使用一个叫“DXTweak”的工具,这实际上是Logitech 公司在其网站上提供的一个控制器校准工具,(可见Logitech作为知名的外设大厂,是有其大厂风范的,后勤工作做的还是比较到位)。 

这是一个小巧易用的工具,只有一个文件:DXTweak2.exe ,免安装,直接双击运行即可。

启动 DXTweak 后,在左上的“Polled device”下应该就能找到你已经安装了的控制器了,如果你安装了多个游戏控制器,可点击“Next”进行选择。

转动你的方向盘,这时候可看到界面的左边会用数据和滑杆图像同时显示你的控制器各轴的工作状况,其中 value 数据就是DirectInput的实际数据了,而 Raw 数据就是控制器实际输出的量化数据,界面的右边提供了手动指定 Min、Cen、Max数值的功能,使用这个工具校准控制器非常简单,以校准方向盘的中心位置为例说说具体的操作方法:转动方向盘的方向轴,查看界面上是哪个轴对应的数据在动(方向轴通常是 X 轴),这样你就能知道你所操作的轴对应的是界面上的哪个轴了,然后把方向盘放在它的自然中点,看看 Raw 数据是多少,然后点击右边的 X轴,在 Cen 处输入该数值再点 Apply 就OK 了。如此简单!

工具的左下有一个“My Tweaks”部分,提供的是把你的校准方案用一个你自己取的名字保存起来的功能,这为需要使用好几种不同的校准方案并时常切换的玩家提供了方便,注意这里当你 Save 或 Load 某方案的时候它会同时就自动 Apply 了。


注意事项:该工具的在 Windows NT/2000/XP等NT类操作系统下设置的 Deadzone(呆区)不能被保存(这其实是操作系统内部结构的原因,与该校准程序无关);该工具的自述文件里建议用户不要在游戏运行的时候使用该工具,对于校准来说,Apply 以后就可以退出它并进入游戏了,如果在游戏的时候让它仍然保持运行,一则它非常消耗系统资源,二则,如果游戏运行的时候你在 DXTweak 里更改了校准设置,那么控制器在游戏里可能会发生工作异常,甚至有可能找不到控制器了。(详细说明可点击它的 Readme 按钮查看)

关于方向盘在游戏前的通用校准事项,基本就这么多了,至于各方向盘自带的驱动里提供的其他一些特殊功能,因为本人使用过的控制器非常有限,无法一一给大家进行详细的介绍。请大家查阅各自的控制器说明书以获得相关信息。这里只以微软 Precision Wheel 为例简单介绍一下具有代表性的关于“分轴”的问题。微软 Precision Wheel 共有三个能独立输出的轴,属于三轴式方向盘,但微软在它的驱动程序里为油门轴和刹车轴提供了两种不同的工作方式

这两种工作方式分别叫做 separate 和 combined 其中 separate 就是我们说的“分轴”模式,即两个踏板是分开独立工作的,这种方式下是标准的三轴式方向盘模式,油门和刹车在游戏里能独立分开地起作用而互不影响。而 combined 模式的意思是把油门和踏板组合成一个轴,这种模式下 –Y轴为油门,+Y 轴为刹车,这样实际上也就是把这个方向盘变成了一个标准的两轴式方向盘了,这种模式下油门和刹车不能在游戏里同时互不影响地独立工作。在这里我推荐大家使用 separate 也就是“分轴”模式,因为任何真实的汽车中,油门踏板和刹车踏板都是独立工作的,不会互相牵扯,同时,分轴模式还能使用某些特殊的驾驶技巧(如“跟趾”)

一个特别的现象是:微软的方向盘在 Win 9x/ME 和 Win2000操作系统里,如果不安装方向盘带的驱动而让Windows 直接认出来,那么它的油门和刹车踏板是工作在“分轴”模式的(不可选择)而在 WinXP 里,如果不装驱动,它们却是工作在组合模式的(同样不可选择).据悉还有某些其他的三轴式方向盘也在驱动里为两个踏板轴提供了类似的两种工作模式)。

从上图可以看到,这里还有一些简单的与校准有关的设置,如右边的所谓 Sensitivity(灵敏度)设置,实际上是控制器有效行程设置,当设置到最左边 Low 的位置的时候相当于使用控制器的全部有效行程,也即是前文所述的“校准行程=物理行程”的意思,而越往右边 High 方向设置,则使用越少的控制器物理行程,这时候相当于前文说的“校准行程<物理行程”的校准方式,即方向盘会显得更加灵敏(但控制精度下降),而左边的 DeadZone 一目了然就是常说的“呆区”设置了,需要注意的是这个设置同样是只能在Win9x/ME 下正常工作,如果你使用 Win2000/XP等 NT 类操作系统,那么这个设置并不能正常有效。 

上一篇 : 《英雄传说: ...

下一篇 : 《荣誉勋章: ...

相关阅读

精彩推荐