上述校准都属于行程校准,并且,上面所例均为左右对称式的校准方式,这里都是假设方向盘操作的物理行程与所输出的量化数据之间的对应关系是准确的,也就说,当方向盘自动回中的时候的自然位置,输出的数据正好是它所能输出的最大量化范围的中点,同时方向盘转到左右两个极限位置的时候输出的也正好是最大和最小的数据。而实际上受制造工艺的限制,以及随着使用过程造成的磨损等等多种因素的影响,很多方向盘并不(总)是那么的准确。但是,只要我们明白了校准原理,这些问题都是可以通过校准来改善的。
例:假设某方向盘的方向轴的理论输出数据范围是-512←0→+512,而实际使用中测试到该方向盘自动回中时的自然位置输出的数据是20,如果这时候仍然指定Min=-512,Cen=0,Max=512的话,那么在游戏中,因为其自然的中心位置输出的数据并不是0,而是20,该方向盘就会总是偏向一边,这时候的解决办法是通过校准指定其Cen=20.就能解决问题了。
还有一类校准问题是“呆区”(Deadzone)设置,所谓“呆区”,是指控制器模拟真实方向盘的自由间隙,也就是说,在其有效行程的某一部分输出的数据不做处理,比如方向盘的方向轴的呆区,是指其自由回中的位置左右的一小段行程操作会在游戏中没有反应,用以模拟方向盘的自由间隙,呆区的数值一般用百分比表示,比如方向轴的呆区如果设置成10%,则是表示,方向盘在其中间位置的,其总有效行程的10%的行程范围为呆区,方向盘在该区域范围内的任何移动都被当作“方向正中”处理。其内在的含义实际是指定Cen为一定范围内的数据,而不是指定Cen为单一的具体数据。呆区设置为0%即为没有呆区。
请注意,在WindowsNT/2000/XP操作系统中不支持保存呆区设置,而在Windows98/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后,在左上的“Polleddevice”下应该就能找到你已经安装了的控制器了,如果你安装了多个游戏控制器,可点击“Next”进行选择。
转动你的方向盘,这时候可看到界面的左边会用数据和滑杆图像同时显示你的控制器各轴的工作状况,其中value数据就是DirectInput的实际数据了,而Raw数据就是控制器实际输出的量化数据,界面的右边提供了手动指定Min、Cen、Max数值的功能,使用这个工具校准控制器非常简单,以校准方向盘的中心位置为例说说具体的操作方法:转动方向盘的方向轴,查看界面上是哪个轴对应的数据在动(方向轴通常是X轴),这样你就能知道你所操作的轴对应的是界面上的哪个轴了,然后把方向盘放在它的自然中点,看看Raw数据是多少,然后点击右边的X轴,在Cen处输入该数值再点Apply就OK了。如此简单!
工具的左下有一个“MyTweaks”部分,提供的是把你的校准方案用一个你自己取的名字保存起来的功能,这为需要使用好几种不同的校准方案并时常切换的玩家提供了方便,注意这里当你Save或Load某方案的时候它会同时就自动Apply了。
注意事项:该工具的在WindowsNT/2000/XP等NT类操作系统下设置的Deadzone(呆区)不能被保存(这其实是操作系统内部结构的原因,与该校准程序无关);该工具的自述文件里建议用户不要在游戏运行的时候使用该工具,对于校准来说,Apply以后就可以退出它并进入游戏了,如果在游戏的时候让它仍然保持运行,一则它非常消耗系统资源,二则,如果游戏运行的时候你在DXTweak里更改了校准设置,那么控制器在游戏里可能会发生工作异常,甚至有可能找不到控制器了。(详细说明可点击它的Readme按钮查看)
关于方向盘在游戏前的通用校准事项,基本就这么多了,至于各方向盘自带的驱动里提供的其他一些特殊功能,因为本人使用过的控制器非常有限,无法一一给大家进行详细的介绍。请大家查阅各自的控制器说明书以获得相关信息。这里只以微软PrecisionWheel为例简单介绍一下具有代表性的关于“分轴”的问题。微软PrecisionWheel共有三个能独立输出的轴,属于三轴式方向盘,但微软在它的驱动程序里为油门轴和刹车轴提供了两种不同的工作方式