CN111295233B - 控制杆灵敏度调整 - Google Patents
控制杆灵敏度调整 Download PDFInfo
- Publication number
- CN111295233B CN111295233B CN201880071098.6A CN201880071098A CN111295233B CN 111295233 B CN111295233 B CN 111295233B CN 201880071098 A CN201880071098 A CN 201880071098A CN 111295233 B CN111295233 B CN 111295233B
- Authority
- CN
- China
- Prior art keywords
- sensitivity
- inflection point
- updated
- region
- dead
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000035945 sensitivity Effects 0.000 title claims abstract description 317
- 238000000034 method Methods 0.000 claims abstract description 81
- 238000013507 mapping Methods 0.000 claims abstract description 77
- 230000001131 transforming effect Effects 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 100
- 210000003813 thumb Anatomy 0.000 description 48
- 230000004044 response Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 230000005355 Hall effect Effects 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 210000004936 left thumb Anatomy 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 210000004935 right thumb Anatomy 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026683 transduction Effects 0.000 description 1
- 238000010361 transduction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/22—Setup operations, e.g. calibration, key configuration or button assignment
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/24—Constructional details thereof, e.g. game controllers with detachable joystick handles
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开了涉及调整控制杆的灵敏度的示例。在一个示例中,一种方法包括:接收死区拐点,该死区拐点在经归一化的二维移动空间内限定死区区域和游戏空间区域的边界,接收经归一化的二维移动空间的游戏空间区域内的灵敏度拐点,使用包括死区拐点的灵敏度缩放函数来将灵敏度拐点变换为经变换的灵敏度拐点,接收表示控制杆的当前位置的位置数据,以及使用包括死区拐点和经变换的灵敏度拐点的映射函数来将当前位置变换为经变换的位置。
Description
背景
用户输入设备可被用来向计算设备提供输入。一些用户输入设备利用包括机械和电气组件的一个或多个控制杆来生成一个或多个方向轴上的位置值。一些系统采用中央死区,在该中央死区中控制杆的位置被忽略。
概述
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的概念的选集。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中提及的任何或所有缺点的实现。
公开了涉及用于调整控制杆的灵敏度的设备和方法的示例。在一个示例中,一种方法,包括:接收死区拐点,该死区拐点在控制杆的经归一化的二维移动空间内限定死区区域和游戏空间(playspace)区域的边界,接收经归一化的二维移动空间的游戏空间区域内的灵敏度拐点,使用包括死区拐点的灵敏度缩放函数来将灵敏度拐点变换为经变换的灵敏度拐点,接收表示控制杆的当前位置的位置数据,以及使用包括死区拐点和经变换的灵敏度拐点的映射函数来将当前位置变换为经归一化的二维移动空间中的经变换的位置。
附图简述
图1示出了根据本公开的各示例的包括多个控制杆的用户输入设备的示例。
图2示出了根据本公开的各示例的控制杆的各位置的示例图。
图3示出了用于一个移动轴的包括死区拐点和多个灵敏度拐点的映射函数的示例图。
图4示出了在通过图3的映射函数进行变换之前,由控制杆沿着两个移动轴报告的可能位置的示例图。
图5示出了根据本公开的各示例的控制杆沿着两个移动轴的通过图3的映射函数变换的可能位置的示例图。
图6示出了根据本公开的各示例的另一映射函数的示例图。
图7示出了根据本公开的各示例的另一映射函数的示例图,其中图6的死区拐点被改变并且灵敏度拐点被变换。
图8A、图8B和图8C示出了根据本公开的各示例的用于调整控制杆的灵敏度的方法的框图。
图9示出了根据本公开的各示例的示例计算设备的框图。
详细描述
包括一个或多个控制杆的用户输入设备可被用来向各种设备提供输入,所述设备诸如视频游戏控制台、车辆和其他机器(机器人、无人飞行器(例如,无人机)等)。控制杆通常包括用于生成一个或多个方向轴上的位置值的机械和电气组件。在一些系统中,中央死区可以在位置值的坐标空间中被采用。当控制杆位于死区中时,控制杆的位置被忽略。在一些示例中,设备所报告的控制杆的位置值可以被调整,以补偿坐标空间中的死区或另一灵敏度区域。
现在参考图1,在一个示例中,用户可以通过控制器100形式的用户输入设备将输入提供给计算设备10,诸如游戏控制台、智能TV等。控制器100可以包括多个用户可致动输入组件,用户可以通过该多个用户可致动输入组件与例如在计算设备10上执行或由计算设备10提供或者由远程内容流服务30提供的视频游戏20或其他应用或内容进行交互。
在一些示例中,控制器100可以包括左拇指杆102A和/或右拇指杆102B形式的一个或多个控制杆。拇指杆102A、102B的每一者是用户可致动输入组件,其可以由用户的拇指(或其他手指)沿两个或多个轴操纵以控制机器、计算设备、计算机程序(诸如视频)或其他应用等或以其他方式与机器、计算设备、计算机程序(诸如视频)或其他应用等进行交互。
在一些示例中,拇指杆102A和102B的每一者可以与电位计形式的控制-激活传感器交互。电位计使用连续电活动,以基于拇指杆相对于默认位置的位置提供模拟输入控制信号。控制-激活传感器的其他示例可以包括圆顶开关、触觉开关、霍尔效应和其他磁传感器、电容传感器、光学传感器、以及其他电子感测组件。
控制器100可以经由有线或无线连接来通信地耦合至计算设备10。如下面更详细地描述的,控制器100的控制杆的灵敏度可以通过修改由控制杆生成的控制信号来被调整。在一些示例中并且如下面所描述,此类修改可以由计算设备10执行。例如,计算设备10可包括处理器和存储指令的存储器设备,这些指令能由处理器执行以如本文中所描述地调整控制杆的灵敏度。在其他示例中,此类修改可以在被集成到控制器100中的计算设备40上被本地地执行。下面参考图9更详细地描述关于计算设备10和计算设备40的组件和计算方面的附加细节。
将领会,上面描述的视频游戏控制器100和用户可致动输入组件仅仅是出于说明性目的而提供的示例。在其他示例中,包括控制杆和其他用户可致动输入组件的不同类型和/或组合的其他用户输入设备可以被利用。
现在参考图2,在一些示例中,控制杆机构可具有有限的精度和可重复性。例如并且参考图1的拇指杆102B,当用户不接合拇指杆时,拇指杆可以借助于弹簧、带、电机、伺服器或其他合适的返回元件返回至中央静息位置。静息位置可以在设备内随时间变化,或者可能因设备的不同而变化,这取决于制造可变性、组件变化、组件的磨损和其他因素。
在图2的示例中,拇指杆102B的当前位置可以被报告为由点202表示的坐标对。在图2中,拇指杆102B的当前位置在短时间段(例如,10秒)内以一时间间隔(例如每10ms)被采样。每个经采样位置被绘制为二维坐标空间200内的点202。在图2的示例中,二维坐标空间200被归一化为沿任一轴具有最大绝对值1。以这种方式,拇指杆将报告在从-1.00至1.00的范围上的位置,其中0.00是理想中央位置。有效位置可以按预定大小或范围的增量(诸如0.05)出现。在图1的示例中,拇指杆102B沿x轴的位置对应于坐标空间200中的x轴上的坐标,而拇指杆102b沿y轴的位置对应于坐标空间200中的y轴上的坐标。
在操作中并且当被释放时,拇指杆102B可以返回到与其没有被用户接合时的理想中央位置不完全匹配的位置。这些不同的返回位置的分布可以限定返回中心(return-to-center)区域,拇指杆102B当被释放时将很有可能坐落于该返回中心区域内。不同返回位置的分布以及对应的返回中心区域的大小和形状可能因用户输入设备的不同而变化。图2示出了方形形状的返回中心区域204的一个示例。在不同的示例中,返回中心区域的其他大小和形状可以被限定。
不同返回位置在返回中心区域中的分布可使得系统难以确定拇指杆102B是否空闲(例如,用户是否正在使拇指杆偏转)。在一个示例中,视频游戏可以通过在坐标空间200内限定“死区”来解决这个问题。通过实现死区,拇指杆102B在死区内的任何位置都被认为是空闲的。拇指杆102B的位置只有在拇指杆102B一旦退出死区的情况下才被游戏识别为用户输入。再次参考图2,解说了以(0,0)为中心的圆形死区区域210的一个示例。在其他示例中,死区区域可以具有各种形状和大小。
死区实现可以在接收拇指杆输入的不同游戏以及其他应用和设备之间显著地变化。例如,死区区域的大小和形状可因游戏的不同而变化。视频游戏可在游戏的软件中实现死区,并且游戏可支持仅单个死区区域(大小和形状)。然而且如上面提到的,不同返回位置的分布和对应的返回中心区域可能因用户输入设备的不同而变化。这进而可导致在特定死区区域和给定设备的返回中心区域之间的不匹配。
在死区和返回中心区域之间的此类不匹配可导致用户输入设备、计算设备和/或在计算设备上执行的软件的性能中的误差。在一些示例中并且为了部分地解决这些问题,视频游戏或其他应用或设备的死区可以被设计成大于该视频游戏或其他应用或设备可随之一起被使用的输入设备的预期返回中心区域。以这种方式,例如,视频游戏可以尝试确保其死区将涵盖该视频游戏可随之一起被使用的各种控制器的返回中心区域。
然而,大于输入设备的返回中心区域的死区区域对用户而言产生了灵敏度问题。例如并且参考图1,在由游戏记录到任何响应之前,用户必须将拇指杆102B从中心向死区外部偏转一定距离。这种缺少即时响应可损害用户的游戏玩法表现,尤其是当小的游戏内(in-game)响应被期望或者死区较大时。
另一方面,小于返回中心区域的死区也是不期望的。例如,如果拇指杆102B在死区外部的位置处静息下来,则游戏将会像用户偏转了拇指杆一样进行响应,即使拇指杆是空闲的。这导致用户在什么都没有被预期的情况下体验到游戏响应。
在一些示例中,系统可以通过基于死区数学地变换坐标空间200并报告控制杆在经变换的坐标空间中的当前位置来解决与在死区和返回中心区域之间的不匹配相关联的问题。在一些示例中,控制杆的每个移动轴的映射函数可以被利用。换言之,控制杆的x轴位置的映射函数和y轴位置的映射函数可以被利用。在不同示例中,这两个映射函数可以是相同或不同的函数。以这种方式,沿着每个控制杆移动轴的经变换的位置可以被提供。
图3示出了映射函数的一个示例,该映射函数可以被应用于沿着控制杆的一个移动轴的控制杆的各位置。在图3的示例中,映射函数300被绘制为在拇指杆102B的经归一化移动空间内的A轴和B轴上的分段线性函数。拇指杆102B沿一个控制杆移动轴(诸如x轴)的当前位置的坐标可以被接收作为映射函数300的A轴上的输入变量。映射函数300接着输出沿B轴的经变换的位置,该经变换的位置对应于沿着经归一化的二维移动空间中的x移动轴的经变换的位置。在一些示例中,映射函数300还可被用来变换拇指杆102B沿y轴的各位置。
图3中所解说的映射函数300包括第一死区拐点302和第二死区拐点316。第一死区拐点302的A轴坐标可以是沿拇指杆102B的给定移动轴(诸如x轴)的位置,其表示在拇指杆的正方向上的拇指杆的返回中心区域的外边缘。第一死区拐点302的B轴坐标可以是沿着同一移动轴的位置,其表示游戏的死区区域在正方向上的边缘。因而,在第一死区拐点302处,映射函数300对拇指杆的返回中心区域的边缘处的拇指杆102B的位置坐标进行变换,以对应于游戏的死区区域的边缘。
在图3的示例中,第一死区拐点302的坐标为(0.15,0.3)。以这种方式且例如,当拇指杆102B位于0.15的x轴位置处时,该位置在控制杆的经归一化的二维移动空间中被变换并报告为0.3。相应地并且如下面更详细地描述的,第一死区拐点302在控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界。
以类似的方式,第二死区拐点316可以是沿着拇指杆102B的相同x移动轴的位置,其表示拇指杆的返回中心区域在拇指杆的反方向上的外边缘。在图3的示例中,第二死区拐点316的坐标为(-0.15,-0.3)。相应地并且在该示例中,第一死区拐点302被跨原点反射以提供第二死区拐点316,并由此针对负输入坐标提供映射函数300的对应输出。
在一些示例中,死区拐点的一个或多个坐标可被接收自从控制杆接收输入的应用。例如并且如上面提到的,视频游戏可以存储一个或多个预定的死区。视频游戏可以向执行游戏并从游戏控制器的控制杆接收用户输入的计算设备提供死区的参数,诸如死区拐点的坐标。
在一些示例中,死区拐点的一个或多个坐标可以基于由控制器的用户执行的校准应用或过程来被设置。例如,用户可以运行过程来选择与游戏死区的拓扑最好地匹配的变换。死区拐点的坐标可以被设置为(N,N),其中N大于死区。在控制杆空闲的情况下,如果对控制杆位置的响应被检测到,则死区拐点的第一坐标可被增加直到无响应被检测到。接下来,死区拐点的第一坐标可以在控制杆保持空闲直到响应被检测到的情况下被减小。接着,死区拐点的两个坐标可以通过与缩放因子F相乘来被缩放。F被初始地设置为1.0且被逐渐减小,直到检测不到对空闲控制杆的响应。
在一些示例中,死区拐点的一个或多个坐标可以在运行时校准过程期间被更新。对于一些用户输入设备,其中控制杆静息下来的点的分布可能归因于例如控制杆机构的机械变化而在操作期间改变。为了解决此类变化,返回中心区域可包括自适应大小,该自适应大小可以在控制杆处于使用中时被更新。控制杆的运动可以在控制杆处于使用中时被采样以更新一组包括返回中心区域的静息点或者建立静息点的新的分布。以这种方式,死区拐点的坐标(诸如返回中心区域的大小)可被更新,以更紧密地匹配控制杆机构随时间的改变。
在一些示例中,接收死区拐点的一个或多个坐标可以包括在游戏行为改变时接收参数,以确保控制杆行为针对当前设置来被优化。例如,当视频游戏的一方面改变时(诸如当用户前进到新的游戏级别时),视频游戏控制台可以将经更新的死区形状和大小发送给控制器和/或相关联的计算设备。
在一些示例中,控制杆的一个或多个返回中心参数可以在控制杆的制造过程期间被确定,并且可以被存储在对应的用户输入设备中。以这种方式,所存储的(诸)参数可以被利用以确定如上面所描述的映射函数。例如,死区拐点可以至少部分地基于所存储的返回中心区域,该所存储的返回中心区域包括表示控制杆的返回中心区域的外边界的坐标。以这种方式,所存储的返回中心区域可被用来向游戏控制台的固件通知个体控制器的硬件特性。
再次参考图3,映射函数300包括从原点到第一死区拐点302和到第二死区拐点316的连续子函数。在该示例中,第一死区拐点302和第二死区拐点316限定了死区区域304沿着控制杆的一个移动轴的边界。在死区区域304内,控制杆的位置值被变换以适合在游戏的死区内。如上面所解释,落在第一死区拐点302和第二死区拐点316之间的任何位置值均被实现死区区域304的游戏或其他应用忽略或均不被识别。
死区区域304外部的区域(在本文中被称为游戏空间区域)是其中控制杆的位置被游戏或其他应用识别和/或引起来自游戏或其他应用的响应的区域。在图3的示例中,游戏空间区域包括在第一死区拐点302和最大值点310之间的、以及在第二死区拐点316和最小值点320之间的映射函数300的各片段。
映射函数300还可以在游戏空间区域内包括一个或多个附加的灵敏度拐点。通过添加灵敏度拐点,用户可以定制和控制控制杆在死区区域外部的灵敏度。灵敏度拐点建立并界定了灵敏度区域。灵敏度区域由将灵敏度拐点与另一灵敏度拐点、死区拐点、或最大/最小点链接的连续子函数限定。
在图3的示例中,第一灵敏度拐点324限定由第一死区拐点302界定的第一灵敏度区域328。第二灵敏度拐点332限定与第一灵敏度区域328毗邻且由第一灵敏度拐点324界定的第二灵敏度区域336。第二灵敏度拐点332还限定了与第二灵敏度区域336毗邻且由最大点310界定的第三灵敏度区域340。
附加地并且在该示例中,第三灵敏度拐点350和第四灵敏度拐点354被设置在第二死区拐点316和最小点320之间的负游戏空间区域中。第三灵敏度拐点350和第四灵敏度拐点354关于(0,0)分别相对于第一灵敏度拐点324和第二灵敏度拐点332旋转180度,并在游戏空间的该部分中建立对应的灵敏度区域。还将领会,在映射函数的其他示例中,一个、三个或更多个灵敏度拐点可以被接收和利用。
在一些示例中,一个或多个灵敏度拐点可以经由用户输入来被接收。例如,游戏控制台可以显示仅包含端点的映射函数。用户可接着将一个或多个灵敏度拐点添加到映射函数。如下面更详细描述的,这些灵敏度拐点可接着被变换以映射到映射函数的游戏空间区域中。
再次参考图3,映射函数300由最大点310界定,该最大点310表示拇指杆102B在给定轴上的正方向上的位置的最大量值。类似地,映射函数300由最小点320界定,该最小点320表示拇指杆102B在该轴上的反方向上的位置的最大量值。
映射函数300的一般表达式可如下定义:令A为输入变量且B为输出值,并且考虑拐点的有序集P={P1,P2,...,Pn}。一个或多个子函数F被定义以在这些点之间进行插值。
因而,映射函数300的一般表达式可如下定义。为简单起见,在此示例中,所有点P和Q均通过它们的A轴坐标进行引用:
其中Q1=(Q1A,Q1B)=最小点320,
Q2=(Q2A,Q2B),
Q3=(Q3A,Q3B)=最大点310,
-Pdz=-(PdzA,PdzB)=第二死区拐点316,
Pdz=(PdzA,PdzB)=第一死区拐点302,以及
P1=(P1A,P1B),P2=(P2A,P2B),P3=(P3A,P3B),P4=(P4A,P4B),=四个灵敏度拐点P。
再次参考图3,限定死区区域304和其他灵敏度区域328、336和340的子函数各自具有限定拇指杆102B在该区域内的灵敏度的斜率。例如,死区区域304具有大于1.0的斜率。在该区域中,从-0.15到0.15的窄输入值范围被变换成从-0.3到0.3的较大输出值范围。这具有以下效果:与输入值被留下而未被变换的情况相比,利用拇指杆102B的较小位移将用户移动到死区区域304外部以及将用户移动到游戏空间区域中。
图4解说了由拇指杆102B在经归一化的二维坐标空间400内报告的所有可能位置402的一个示例。在一些示例中,各位置在可能位置之间具有固定的分辨率或步长。在该示例中,拇指杆102B沿着每个轴报告在从-1.00至1.00的范围上的位置,其中0.00是中心空闲位置,并且有效位置在0.05的增量上出现。
图5解说了图4的经归一化的坐标空间400的示例,其中可能位置402被绘制,在这之前它们已通过将来自图3的映射函数300独立地应用于每个轴而被变换。例如,死区区域304内的映射函数300的较陡峭的斜率表现为沿图5中的每个轴从-0.3到0.3的死区区域304(由虚线框表示)内的位置402之间的较宽间距。
再次参考图3,第一灵敏度区域328具有小于1.0的斜率。在该区域中,A轴上从0.15到0.45的较宽广范围的输入值被紧缩成B轴上从0.30到0.50的较窄范围的输出值。以这种方式,用户将把第一灵敏度区域328体验为比常态(即,其中常态是1.0的斜率)精度更大的区域,并且拇指杆102B的大位移将导致被报告给游戏的更小、更精确的移动。再次参考图5,在第一灵敏度区域328内的映射函数300的较平缓的斜率表现为在具有该区域中的坐标的点402之间的较紧密的间距。
第二灵敏度区域336具有大于1.0的斜率。在该区域中,A轴上从0.45到0.70的较窄范围的输入值被扩展成B轴上从0.50到0.80的较宽广范围的输出值。以这种方式,用户将把第二灵敏度区域336体验为扩大移动的区域,并且拇指杆102B的较小位移将导致被报告给游戏的较大移动。参考图5,在第二灵敏度区域336内的映射函数300的较陡峭的斜率表现为在具有该区域中的坐标的点402之间的较宽间距。
图5解说了映射函数300的与轴无关的应用。在其他示例中,其他类型的变换也可以被使用,包括但不限于基于径向坐标的变换。将映射函数300应用于径向坐标空间的示例可以沿着拇指杆102B在该坐标空间内限定的向量来缩放拇指杆102B的每个二维位置。向量的量值可以通过向量量值的分段线性函数来被缩放。广义径向映射函数的一个示例可以如下:
令Q1=(Q1A,Q1B)=(0,0),
Q2=(Q2A,Q2B)=最大点310,
Pdz=(PdzA,PdzB)=第一死区拐点302,
Rin=径向向量的未经缩放的量值,
Rout=由F输出的径向向量的经缩放的量值,
P1=(P1A,P1B)和P2=(P2A,P2B)是两个灵敏度拐点。为简单起见,在此示例中,所有点P和Q均通过它们的A轴坐标进行引用:
需要注意,上述公式是与映射函数300相同的分段函数,尽管其已根据所有半径均为正的假设而被简化过。
在一些示例中,拇指杆102B的返回中心区域可能因拇指杆102B磨损、视频游戏控制器100的用户可能希望切换到具有不同的返回中心区域的不同控制器、和/或视频游戏控制器100的用户可能希望切换到具有不同死区大小或形状的新视频游戏而随时间改变或发展。这些改变中的任一者都可能导致改变死区拐点的位置。
然而,单单改变死区拐点的位置将影响死区区域外部的灵敏度区域的拓扑。这进而将致使控制器的响应性偏离用户的期望灵敏度设置。例如并且再次参考图3,单单改变第一死区拐点302的位置将改变与死区区域304毗邻的第一灵敏度区域328中的映射函数300的斜率。
为了解决此问题,并且在死区区域被改变时保留映射函数的(诸)灵敏度区域的比例性和相对拓扑,映射函数的灵敏度拐点可以使用包括死区拐点的灵敏度缩放函数来被变换。可变换灵敏度拐点的灵敏度缩放函数的一示例是:
其中此函数的所有运算都将在点的每个元素上被逐元素地执行,使得例如点(A,B)与点(C,D)的积为(A*C,B*D)。在上述灵敏度缩放函数中:
Pdz=死区拐点,
Pin=输入/原始灵敏度拐点,
Pout=经变换的灵敏度拐点,
以及Q=最大点。
上面示出的灵敏度缩放函数的第一项将游戏空间的大小表示为映射函数域的一部分。因而,/>是被缩放至游戏空间域(而非包括游戏空间和死区区域两者的映射函数的整个域)的输入灵敏度拐点。通过在坐标系中包括死区区域,添加Pdz产生经变换的灵敏度拐点。
在一个示例中,用户可能期望将视频游戏控制器的游戏空间划分成三个灵敏度区域。例如,用户可能期望在第一灵敏度区域中具有相对较低的灵敏度、在第二灵敏度区域中具有相对较高的灵敏度、以及在第三灵敏度区域中具有相对较低的灵敏度的游戏空间。用户可以在具有从0到1的输入域的游戏空间中指定以下第一灵敏度拐点和第二灵敏度拐点。
第一灵敏度拐点=Ps1=(0.33,0.20)
第二灵敏度拐点=Ps2=(0.67,0.85)
在该示例中,死区拐点是(0.15,0.3)。使用包括死区拐点(0.15,0.3)的上面描述的灵敏度缩放函数,用户指定的灵敏度拐点Ps1和Ps2可被变换以产生图6中所解说的映射函数600。参考图6,Ps1被变换为经变换的第一灵敏度拐点Pt1(624处所指示),而Ps2被变换为经变换的第二灵敏度拐点Pt2(632处所指示)。经变换的灵敏度拐点的坐标如下:
Pt1=(0.43,0.44)
Pt2=(0.72,0.90)
如图6中所解说,所得到的映射函数600在第一灵敏度区域628中提供相对较低的灵敏度,在第二灵敏度区域636中提供相对较高的灵敏度,并且在第三灵敏度区域640中提供相对较低的灵敏度。
继续参考图6的示例,在一个示例中,用户可以切换到具有与沿A轴的位置0.4相对应的更宽的返回中心区域的控制器。作为结果,初始死区拐点602被更新并沿着A轴从坐标(0.15,0.3)移动至(0.4,0.3)。连同该经更新的死区拐点(0.4,.03)(在图7的702处指示),用户还期望维持由图6的映射函数600提供的游戏空间的灵敏度区域的比例性和一般拓扑。
相应地并且通过将上面描述的灵敏度缩放函数与经更新的死区拐点702和现有的用户指定的灵敏度拐点Ps1和Ps2一起使用,用户指定的灵敏度拐点可以被变换成形成图7所示的经更新的映射函数700的经更新的经变换的灵敏度拐点。更具体而言,在该示例中,灵敏度缩放函数产生如下所示的经更新的经变换的第一灵敏度拐点Pt1(724处所指示)和经更新的经变换的第二灵敏度拐点Pt2(732处所指示)的坐标:
Pt1=(0.60,0.44)
Pt2=(0.80,0.90)
如图7所示,经更新的映射函数700包括经更新的死区拐点702、经更新的经变换的第一灵敏度拐点Pt1(724处所指示)和经更新的经变换的第二灵敏度拐点Pt2(732处所指示)。经更新的经变换的第一灵敏度拐点724限定了由经更新的死区拐点702界定的经更新的第一灵敏度区域728,并且限定了与经更新的第一灵敏度区域728毗邻的经更新的第二灵敏度区域736。经更新的经变换的第二灵敏度拐点732还限定了与经更新的第二灵敏度区域736毗邻且由最大点610界定的经更新的第三灵敏度区域740。
在该示例中,如与初始死区区域604相比,经更新的死区拐点702递送了经更新的死区区域704中267%的增长(从0.15到0.4)。附加地且有利地,使用灵敏度缩放函数导致保留了图6的映射函数600中的游戏空间和灵敏度区域的比例性和一般拓扑的经更新的映射函数700。更具体而言并且像映射函数600一样,经更新的映射函数700还在经更新的第一灵敏度区域728中体现出相对较低的灵敏度,在经更新的第二灵敏度区域736中体现出相对较高的灵敏度,并且在经更新的第三灵敏度区域740中体现出相对较低的灵敏度。
在一些示例中,映射函数600和700的游戏空间和灵敏度区域的一致的比例性和拓扑可以通过比较这两个函数的特性而看出。例如,映射函数600的第一灵敏度区域628的度量可以通过比例常数与经更新的第一灵敏度区域728的经更新的度量直接成比例,并且第二灵敏度区域636的度量可以通过相同的比例常数与经更新的第二灵敏度区域736的经更新的度量直接成比例。
例如,在其中度量是沿A轴的宽度W的情况下,映射函数700中每个灵敏度区域728、736和740的宽度W通过相同的宽度比例常数Kw与映射函数600中对应灵敏度区域638、636和640的宽度x直接成比例。宽度比例常数Kw可以如下定义(为简单起见,点P和S在此示例中通过它们的A轴坐标进行引用):
Kw=Wn/Xn=1-Pdz/1-Sdz,其中:
n=与每个映射函数中的3个灵敏度区域相对应的{1,2,3};
Pdz=死区拐点602的A轴坐标,以及
Sdz=经更新的死区拐点702的A轴坐标。
在图6和7的示例中,该比例常数Kw=1-0.15/1-0.40=1.4。于是出现了第一灵敏度区域628的宽度W1与经更新的第一灵敏度区域728的宽度X1成比例,即W1/X1=Kw=1.4。类似地,第二灵敏度区域636的宽度W2与经更新的第二灵敏度区域736的宽度X2成比例,即W2/X2=Kw=1.4。类似地,第三灵敏度区域640的宽度W3与经更新的第三灵敏度区域740的宽度X3成比例,即W3/X3=Kw=1.4。
以类似的方式,映射函数700中的每个灵敏度区域728、736和740的斜率通过相同的斜率比例常数Ks与映射函数600中对应的灵敏度区域638、636和640的斜率直接成比例。例如,第一灵敏度区域628的斜率S1是:
S1=0.44-0.30/0.43-0.15=0.5.
经更新的第一灵敏度区域728的斜率S1u是:
S1u=0.44-0.30/0.60-0.40=0.7.
相应地,斜率比例常数Ks是:
Ks=S1/S1u=5/7≈0.71
以类似的方式,第二灵敏度区域636的斜率通过相同的Ks≈0.71与经更新的第二灵敏度区域736的斜率成比例,并且第三灵敏度区域的斜率通过相同的Ks≈0.71与经更新的第三灵敏度区域740的斜率成比例。
图8A-8C解说了根据本公开的各示例的用于调整控制杆的灵敏度的方法900的流程图。参考以上描述且在图1-7中示出的软件和硬件组件提供了方法900的以下描述。应当领会,方法900还可以在使用其他合适的硬件和软件组件的其他上下文中被执行。
参考图8A,在902处,方法900可以包括接收死区拐点,该死区拐点在控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界。在904处,方法900可以包括死区拐点,该死区拐点包括与控制杆的返回中心参数相对应的第一坐标、以及与死区区域的尺寸相对应的第二坐标。在906处,方法900可以包括,其中死区拐点至少部分地基于在控制杆的制造过程中所确定的返回中心参数。在908处,方法900可包括从接收来自控制杆的输入的应用接收死区拐点的坐标。在910处,方法900可以包括经由校准应用来设置死区拐点。
在912处,方法900可以包括接收在经归一化的二维移动空间的游戏空间区域内的灵敏度拐点。在914处,方法900可以包括使用包括死区拐点的灵敏度缩放函数来将灵敏度拐点变换为经变换的灵敏度拐点。在916处,方法900可以包括其中灵敏度缩放函数是第一项与第二项之和,第一项包括死区拐点和控制杆的最大可能位置之间的差与该最大可能位置之比,其中该差与灵敏度拐点相乘;并且第二项包括死区拐点。
在918处,方法900可以包括接收表示控制杆的当前位置的位置数据。现在参考图8B,在920处,方法900可以包括使用包括死区拐点和经变换的灵敏度拐点的映射函数来将当前位置变换为经归一化的二维移动空间中的经变换的位置。
在922处,方法900可以包括接收在经归一化的二维移动空间的游戏空间区域内的多个灵敏度拐点。在924处,方法900可包括使用灵敏度缩放函数来将多个灵敏度拐点的每一者变换为经变换的灵敏度拐点。在926处,方法900可以包括生成包括死区拐点和多个经变换的灵敏度拐点的映射函数。
在928处,方法900可包括其中灵敏度拐点限定由死区拐点界定的第一灵敏度区域以及与第一灵敏度区域毗邻的第二灵敏度区域。在930处,方法900可以包括接收经更新的死区拐点,该经更新的死区拐点在控制杆的经归一化的二维移动空间内限定经更新的死区区域和经更新的游戏空间区域。在932处,方法900可以包括在运行时校准过程期间更新死区拐点。
现在参考图8C,在934处,方法900可以包括使用包括经更新的死区拐点的灵敏度缩放函数来将经变换的灵敏度拐点变换为经更新的灵敏度拐点。在936,方法900可以包括生成包括经更新的死区拐点和经更新的灵敏度拐点的经更新的映射函数,经更新的灵敏度拐点限定由经更新的死区拐点界定的经更新的第一灵敏度区域以及与经更新的第一灵敏度区域毗邻的经更新的第二灵敏度区域。
在938处,方法900可以包括:其中,第一灵敏度区域的第一斜率通过比例常数与经更新的第一灵敏度区域的经更新的第一斜率直接成比例,并且第二灵敏度区域的第二斜率通过该比例常数与经更新的第二灵敏度区域的经更新的第二斜率直接成比例。在940处,方法900可以包括:其中,第一灵敏度区域的第一度量值通过比例常数与经更新的第一灵敏度区域的经更新的第一度量值直接成比例,并且第二灵敏度区域的第二度量值通过该比例常数与经更新的第二灵敏度区域的经更新的第二度量值直接成比例。
将领会,方法900是作为示例提供的,并不意味着限制。因此,应当理解,方法900可以包括相对于图8A、8B和8C所解说的方法而言附加的和/或替代的步骤。此外,应当理解,方法900可以以任何合适的顺序被执行。更进一步,应当理解,一个或多个步骤可以从方法900中被省略而不脱离本公开的范围。
在一些实施例中,本文中所描述的方法和过程可以与一个或多个计算设备的计算系统绑定。具体而言,此类方法和过程可被实现为计算机应用程序或服务、应用编程接口(API)、库、和/或其他计算机程序产品。
图9示意性地示出了可实施以上所描述的方法和过程中的一者或多者的计算系统1000的非限制性实施例。以简化形式示出了计算系统1000。计算系统1000可采取一个或多个下列各项的形式:个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备、以及可穿戴计算设备(诸如智能腕表和头戴式显示设备)。在以上示例中,计算设备10、计算设备40和内容流服务30可以包括计算系统1000或者计算系统1000的一个或多个方面。
计算系统1000包括逻辑处理器1002、易失性存储器1004以及非易失性存储设备1006。计算系统1000可任选地包括显示子系统1008、输入子系统1010、通信子系统1012、和/或在图9中未示出的其他组件。
逻辑处理器1002包括被配置成执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置成执行指令,这些指令是一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分。此类指令可被实现以执行任务、实现数据类型、变换一个或多个组件的状态、获得技术效果、或以其他方式达成期望的结果。
逻辑处理器可包括被配置成执行软件指令的一个或多个物理处理器(硬件)。附加地或替代地,逻辑处理器可包括被配置成执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器1002的各处理器可以是单核的或多核的,并且其上所执行的指令可被配置成用于串行、并行和/或分布式处理。逻辑处理器的各个个体组件可任选地分布在两个或更多个分开的设备之间,这些设备可以位于远程以及/或者被配置成用于协同处理。逻辑处理器的各方面可以由按云计算配置进行配置的远程可访问的联网计算设备来虚拟化和执行。在这样的情形中,将理解,这些虚拟化方面是在各种不同机器的不同物理逻辑处理器上运行的。
非易失性存储设备1006包括被配置成保持能由逻辑处理器执行的指令以实现本文中所描述的方法和过程的一个或多个物理设备。当此类方法和过程被实现时,非易失性存储设备1006的状态可以被变换-例如以保持不同的数据。
非易失性存储设备1006可包括可移动和/或内置的物理设备。非易失性存储设备1006可包括光学存储器(例如,CD、DVD、HD-DVD、蓝光碟等)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存存储器等)、和/或磁存储器(例如,硬盘驱动器、软盘驱动器、带驱动器、MRAM等)、或其他大容量存储设备技术。非易失性存储设备1006可包括非易失性、动态、静态、读/写、只读、顺序存取、位置可寻址、文件可寻址、和/或内容可寻址设备。将领会,非易失性存储设备1006被配置成即使当给非易失性存储设备1006的功率被切断时也保存指令。
易失性存储器1004可以包括包含随机存取存储器的物理设备。易失性存储器1004通常被逻辑处理器1002利用以在软件指令的处理期间临时地存储信息。将领会,当给易失性存储器1004的功率被切断时,易失性存储器1004通常不继续存储指令。
逻辑处理器1002、易失性存储器1004和非易失性存储设备1006的各方面可以被一起集成到一个或多个硬件逻辑组件中。此类硬件逻辑组件可包括例如现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC)、以及复杂可编程逻辑器件(CPLD)。
术语“程序”和“应用”可被用来描述计算系统1000的通常由处理器在软件中实现以使用易失性存储器的各部分来执行特定功能的方面,该功能涉及将处理器专门配置成执行该功能的转化性处理。因而,程序或应用可经由逻辑处理器1002执行由非易失性存储设备1006所保持的指令、使用易失性存储器1004的各部分来实例化。将理解,可以从同一应用、服务、代码块、对象、库、例程、API、功能等实例化不同的程序和/或应用。同样,同一程序和/或应用可以由不同的应用、服务、代码块、对象、例程、API、功能等实例化。术语“程序”和“应用”可涵盖个体或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
当显示子系统1008被包括时,显示子系统1008可被用来呈现由非易失性存储设备1006保持的数据的视觉表示。由于本文中所描述的方法和过程改变了由非易失性存储设备保持的数据,并因而变换了非易失性存储设备的状态,因此同样可以变换显示子系统1008的状态以视觉地表示底层数据中的改变。显示子系统1008可包括利用实质上任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑处理器1002、易失性存储器1004、和/或非易失性存储设备1006组合在共享外壳中,或者此类显示设备可以是外围显示设备。
当输入子系统1010被包括时,输入子系统1010包括诸如键盘、鼠标、触摸屏、或游戏控制器之类的一个或多个用户输入设备或者与上述用户输入设备对接。在一些实施例中,输入子系统可包括所选择的自然用户输入(NUI)部件或者与上述自然用户输入(NUI)部件对接。此类部件可以是集成的或外围的,并且输入动作的换能和/或处理可以在板上或板外被处置。示例NUI部件可包括用于语音和/或话音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体、和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计、和/或陀螺仪;以及用于评估脑部活动的电场感测部件;和/或任何其他合适的传感器。
当通信子系统1012被包括时,通信子系统1012可以被配置成将本文中所描述的各种计算设备彼此地以及与其他设备通信地耦合。通信子系统1012可包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可被配置成用于经由无线电话网络、或者有线或无线局域网或广域网(诸如通过Wi-Fi连接的HDMI)进行通信。在一些实施例中,通信子系统可允许计算系统1000经由网络(诸如互联网)将消息发送至其他设备以及/或者从其他设备接收消息。
下述段落提供了对本申请的权利要求的附加支持。一个方面提供了一种用于调整控制杆的灵敏度的方法,该方法包括:接收死区拐点,该死区拐点在控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界,接收经归一化的二维移动空间的游戏空间区域内的灵敏度拐点,使用包括死区拐点的灵敏度缩放函数来将灵敏度拐点变换为经变换的灵敏度拐点,接收表示控制杆的当前位置的位置数据,以及使用包括死区拐点和经变换的灵敏度拐点的映射函数来将当前位置变换为经归一化的二维移动空间中的经变换的位置。
该方法可以附加地或替代地包括:接收在经归一化的二维移动空间的游戏空间区域内的多个灵敏度拐点;使用灵敏度缩放函数来将多个灵敏度拐点的每一者变换为经变换的灵敏度拐点;以及生成包括死区拐点和多个经变换的灵敏度拐点的映射函数。
该方法可以附加地或替代地包括:其中,灵敏度缩放函数是第一项与第二项之和,第一项包括死区拐点和控制杆的最大可能位置之间的差与该最大可能位置之比,其中该差与灵敏度拐点相乘;并且第二项包括死区拐点。
该方法可以附加地或替代地包括:其中,灵敏度拐点限定由死区拐点界定的第一灵敏度区域以及与第一灵敏度区域毗邻的第二灵敏度区域,接收经更新的死区拐点,该经更新的死区拐点在控制杆的经归一化的二维移动空间内限定经更新的死区区域和经更新的游戏空间区域的边界,使用具有经更新的死区拐点的灵敏度缩放函数来将经变换的灵敏度拐点变换为经更新的灵敏度拐点,以及生成包括经更新的死区拐点和经更新的灵敏度拐点的经更新的映射函数,经更新的灵敏度拐点限定由经更新的死区拐点界定的经更新的第一灵敏度区域以及与经更新的第一灵敏度区域毗邻的经更新的第二灵敏度区域。
该方法可以附加地或替代地包括:其中,第一灵敏度区域的第一斜率通过比例常数与经更新的第一灵敏度区域的经更新的第一斜率直接成比例,并且第二灵敏度区域的第二斜率通过该比例常数与经更新的第二灵敏度区域的经更新的第二斜率直接成比例。
该方法可以附加地或替代地包括:其中,第一灵敏度区域的第一度量值通过比例常数与经更新的第一灵敏度区域的经更新的第一度量值直接成比例,并且第二灵敏度区域的第二度量值通过该比例常数与经更新的第二灵敏度区域的经更新的第二度量值直接成比例。
该方法可以附加地或替代地包括,其中:死区拐点包括与控制杆的返回中心参数相对应的第一坐标、以及与死区区域的尺寸相对应的第二坐标。该方法可以附加地或替代地包括,其中:死区拐点至少部分地基于在控制杆的制造过程中所确定的返回中心参数。
该方法可以附加地或替代地包括从接收来自控制杆的输入的应用接收死区拐点的坐标。该方法可以附加地或替代地包括经由校准应用来设置死区拐点。该方法可以附加地或替代地包括在运行时校准过程期间更新死区拐点。
另一个方面提供了一种通信地耦合至控制杆的计算设备,该计算设备包括处理器和存储指令的存储器设备,这些指令能由处理器执行以接收在控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界的死区拐点,接收经归一化地二维移动空间的游戏空间区域内的灵敏度拐点,使用包括死区拐点的灵敏度缩放函数来将灵敏度拐点变换为经变换的灵敏度拐点,接收表示控制杆的当前位置的位置数据,以及使用包括死区拐点和经变换的灵敏度拐点的映射函数来将当前位置变换为经归一化的二维移动空间中的经变换的位置。
该计算设备可以附加地或替代地包括能由处理器执行以进行以下操作的指令:接收在经归一化的二维移动空间的游戏空间区域内的多个灵敏度拐点;使用灵敏度缩放函数来将多个灵敏度拐点的每一者变换为经变换的灵敏度拐点;以及生成包括死区拐点和多个经变换的灵敏度拐点的映射函数。
该计算设备可以附加地或替代地包括:其中,灵敏度拐点限定由死区拐点界定的第一灵敏度区域以及与第一灵敏度区域毗邻的第二灵敏度区域,所述指令能由处理器执行以接收经更新的死区拐点,该经更新的死区拐点在控制杆的经归一化的二维移动空间内限定经更新的死区区域和经更新的游戏空间区域的边界,使用灵敏度缩放函数来将经变换的灵敏度拐点变换为经更新的灵敏度拐点,以及生成包括经更新的死区拐点和经更新的灵敏度拐点的经更新的映射函数,经更新的灵敏度拐点限定由经更新的死区拐点界定的经更新的第一灵敏度区域以及与经更新的第一灵敏度区域毗邻的经更新的第二灵敏度区域。
该计算设备可以附加地或替代地包括:其中,第一灵敏度区域的第一斜率通过比例常数与经更新的第一灵敏度区域的经更新的第一斜率直接成比例,并且第二灵敏度区域的第二斜率通过该比例常数与经更新的第二灵敏度区域的经更新的第二斜率直接成比例。
该计算设备可以附加地或替代地包括:其中,第一灵敏度区域的第一度量值通过比例常数与经更新的第一灵敏度区域的经更新的第一度量值直接成比例,并且第二灵敏度区域的第二度量值通过该比例常数与经更新的第二灵敏度区域的经更新的第二度量值直接成比例。
该计算设备可以附加地或替代地包括:其中,灵敏度缩放函数是第一项与第二项之和,第一项包括死区拐点和控制杆的最大可能位置之间的差与该最大可能位置之比,其中该差与灵敏度拐点相乘;并且第二项包括死区拐点。
该计算设备可以附加地或替代地包括能由处理器执行以进行以下操作的指令:从接收来自控制杆的输入的应用接收死区拐点的坐标。该计算设备可以附加地或替代地包括,其中:死区拐点包括与控制杆的返回中心参数相对应的第一坐标、以及与死区区域的尺寸相对应的第二坐标。
另一个方面提供了一种用户输入设备,该用户输入设备包括被配置成沿一个或多个轴从用户接收输入的控制杆,以及被配置成执行以下操作的处理器:接收在控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界的死区拐点,接收经归一化地二维移动空间的游戏空间区域内的灵敏度拐点,使用包括死区拐点的灵敏度缩放函数来将灵敏度拐点变换为经变换的灵敏度拐点,接收表示控制杆的当前位置的位置数据,使用包括死区拐点和经变换的灵敏度拐点的映射函数来将当前位置变换为经归一化的二维移动空间中的经变换的位置,以及输出经变换的位置。
应当理解,本文中所描述的配置和/或办法本质上是示例性的,并且这些具体实施例或示例不应该用限制性观念去考虑,因为许多变体是可能的。本文中所描述的具体例程或方法可表示任何数目的处理策略中的一者或多者。由此,所解说和/或所描述的各种动作可以以所解说和/或所描述的顺序执行、以其他顺序执行、并行地执行,或者被省略。同样,以上所描述的过程的次序可被改变。
本公开的主题包括各种过程、系统和配置以及此处公开的其他特征、功能、动作和/或属性、以及它们的任一和全部等价物的所有新颖且非显而易见的组合和子组合。
Claims (22)
1.一种在计算设备处的用于调整控制杆的灵敏度的方法,所述方法包括:
接收死区拐点,所述死区拐点在所述控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界;
接收所述经归一化的二维移动空间的游戏空间区域内的灵敏度拐点,所述灵敏度拐点限定由所述死区拐点界定的第一灵敏度区域以及与所述第一灵敏度区域毗邻的第二灵敏度区域;
使用包括所述死区拐点的灵敏度缩放函数来将所述灵敏度拐点变换为经变换的灵敏度拐点;
接收表示所述控制杆的当前位置的位置数据;以及
使用包括所述死区拐点和所述经变换的灵敏度拐点的映射函数来将所述当前位置变换为所述经归一化的二维移动空间中的经变换的位置。
2.根据权利要求1所述的方法,其特征在于,进一步包括:
接收在所述经归一化的二维移动空间的游戏空间区域内的多个灵敏度拐点;
使用所述灵敏度缩放函数来将所述多个灵敏度拐点的每一者变换为经变换的灵敏度拐点;以及
生成包括所述死区拐点和所述多个经变换的灵敏度拐点的所述映射函数。
3.根据权利要求1所述的方法,其特征在于,所述灵敏度缩放函数是以下各项之和:
第一项,所述第一项包括所述死区拐点和所述控制杆的最大可能位置之间的差与所述最大可能位置之比,其中所述差与所述灵敏度拐点相乘;以及
第二项,所述第二项包括所述死区拐点。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
接收经更新的死区拐点,所述经更新的死区拐点在所述控制杆的经归一化的二维移动空间内限定经更新的死区区域和经更新的游戏空间区域的边界;
使用具有所述经更新的死区拐点的所述灵敏度缩放函数来将所述经变换的灵敏度拐点变换为经更新的灵敏度拐点;以及
生成包括所述经更新的死区拐点和所述经更新的灵敏度拐点的经更新的映射函数,所述经更新的灵敏度拐点限定由所述经更新的死区拐点界定的经更新的第一灵敏度区域以及与所述经更新的第一灵敏度区域毗邻的经更新的第二灵敏度区域。
5.根据权利要求4所述的方法,其特征在于,所述第一灵敏度区域的第一斜率通过比例常数与所述经更新的第一灵敏度区域的经更新的第一斜率直接成比例,并且所述第二灵敏度区域的第二斜率通过所述比例常数与所述经更新的第二灵敏度区域的经更新的第二斜率直接成比例。
6.根据权利要求4所述的方法,其特征在于,所述第一灵敏度区域的第一度量值通过比例常数与所述经更新的第一灵敏度区域的经更新的第一度量值直接成比例,并且所述第二灵敏度区域的第二度量值通过所述比例常数与所述经更新的第二灵敏度区域的经更新的第二度量值直接成比例。
7.根据权利要求1所述的方法,其特征在于,所述死区拐点包括与所述控制杆的返回中心参数相对应的第一坐标、以及与所述死区区域的尺寸相对应的第二坐标。
8.根据权利要求1所述的方法,其特征在于,所述死区拐点至少部分地基于在所述控制杆的制造过程中所确定的返回中心参数。
9.根据权利要求1所述的方法,其特征在于,进一步包括从接收来自所述控制杆的输入的应用接收所述死区拐点的坐标。
10.根据权利要求1所述的方法,其特征在于,进一步包括经由校准应用来设置所述死区拐点。
11.根据权利要求1所述的方法,其特征在于,进一步包括经由运行时校准过程来更新所述死区拐点。
12.一种通信地耦合至控制杆的计算设备,所述计算设备包括:
处理器,以及
存储指令的存储器设备,所述指令能由所述处理器执行以:
接收死区拐点,所述死区拐点在所述控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界;
接收所述经归一化的二维移动空间的游戏空间区域内的灵敏度拐点,所述灵敏度拐点限定由所述死区拐点界定的第一灵敏度区域以及与所述第一灵敏度区域毗邻的第二灵敏度区域;
使用包括所述死区拐点的灵敏度缩放函数来将所述灵敏度拐点变换为经变换的灵敏度拐点;
接收表示所述控制杆的当前位置的位置数据;以及
使用包括所述死区拐点和所述经变换的灵敏度拐点的映射函数来将所述当前位置变换为所述经归一化的二维移动空间中的经变换的位置。
13.根据权利要求12所述的计算设备,其特征在于,所述指令能执行以:
接收在所述经归一化的二维移动空间的游戏空间区域内的多个灵敏度拐点;
使用所述灵敏度缩放函数来将所述多个灵敏度拐点的每一者变换为经变换的灵敏度拐点;以及
生成包括所述死区拐点和所述多个经变换的灵敏度拐点的所述映射函数。
14.根据权利要求12所述的计算设备,其特征在于,所述指令能执行以:
接收经更新的死区拐点,所述经更新的死区拐点在所述控制杆的经归一化的二维移动空间内限定经更新的死区区域和经更新的游戏空间区域的边界;
使用所述灵敏度缩放函数来将所述经变换的灵敏度拐点变换为经更新的灵敏度拐点;以及
生成包括所述经更新的死区拐点和所述经更新的灵敏度拐点的经更新的映射函数,所述经更新的灵敏度拐点限定由所述经更新的死区拐点界定的经更新的第一灵敏度区域以及与所述经更新的第一灵敏度区域毗邻的经更新的第二灵敏度区域。
15.根据权利要求14所述的计算设备,其特征在于,所述第一灵敏度区域的第一斜率通过比例常数与所述经更新的第一灵敏度区域的经更新的第一斜率直接成比例,并且所述第二灵敏度区域的第二斜率通过所述比例常数与所述经更新的第二灵敏度区域的经更新的第二斜率直接成比例。
16.根据权利要求14所述的计算设备,其特征在于,所述第一灵敏度区域的第一度量值通过比例常数与所述经更新的第一灵敏度区域的经更新的第一度量值直接成比例,并且所述第二灵敏度区域的第二度量值通过所述比例常数与所述经更新的第二灵敏度区域的经更新的第二度量值直接成比例。
17.根据权利要求12所述的计算设备,其特征在于,所述灵敏度缩放函数是以下各项之和:
第一项,所述第一项包括所述死区拐点和所述控制杆的最大可能位置之间的差与所述最大可能位置之比,其中所述差与所述灵敏度拐点相乘;以及
第二项,所述第二项包括所述死区拐点。
18.根据权利要求12所述的计算设备,其特征在于,所述指令能执行以:
从接收来自所述控制杆的输入的应用接收所述死区拐点的坐标。
19.根据权利要求12所述的计算设备,其特征在于,所述死区拐点包括与所述控制杆的返回中心参数相对应的第一坐标、以及与所述死区区域的尺寸相对应的第二坐标。
20.一种用户输入设备,包括:
被配置成沿一个或多个轴从用户接收输入的控制杆;以及
处理器,所述处理器被配置成:
接收死区拐点,所述死区拐点在所述控制杆的经归一化的二维移动空间内限定死区区域和游戏空间区域的边界;
接收所述经归一化的二维移动空间的游戏空间区域内的灵敏度拐点,所述灵敏度拐点限定由所述死区拐点界定的第一灵敏度区域以及与所述第一灵敏度区域毗邻的第二灵敏度区域;
使用包括所述死区拐点的灵敏度缩放函数来将所述灵敏度拐点变换为经变换的灵敏度拐点;
接收表示所述控制杆的当前位置的位置数据;
使用包括所述死区拐点和所述经变换的灵敏度拐点的映射函数来将所述当前位置变换为所述经归一化的二维移动空间中的经变换的位置;以及
输出所述经变换的位置。
21.一种具有指令的计算机可读存储介质,当所述指令被执行时使得机器执行如权利要求1-11中任一权利要求所述的方法。
22.一种计算机系统,包括用于执行如权利要求1-11中任一权利要求所述的方法的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311144606.8A CN117018595A (zh) | 2017-10-30 | 2018-10-13 | 控制杆灵敏度调整 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/798,167 US10434405B2 (en) | 2017-10-30 | 2017-10-30 | Control stick sensitivity adjustment |
US15/798,167 | 2017-10-30 | ||
PCT/US2018/055769 WO2019089213A1 (en) | 2017-10-30 | 2018-10-13 | Control stick sensitivity adjustment |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311144606.8A Division CN117018595A (zh) | 2017-10-30 | 2018-10-13 | 控制杆灵敏度调整 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111295233A CN111295233A (zh) | 2020-06-16 |
CN111295233B true CN111295233B (zh) | 2023-09-01 |
Family
ID=64083178
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880071098.6A Active CN111295233B (zh) | 2017-10-30 | 2018-10-13 | 控制杆灵敏度调整 |
CN202311144606.8A Pending CN117018595A (zh) | 2017-10-30 | 2018-10-13 | 控制杆灵敏度调整 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311144606.8A Pending CN117018595A (zh) | 2017-10-30 | 2018-10-13 | 控制杆灵敏度调整 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10434405B2 (zh) |
EP (1) | EP3687641B1 (zh) |
CN (2) | CN111295233B (zh) |
WO (1) | WO2019089213A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10463954B2 (en) | 2016-03-07 | 2019-11-05 | Microsoft Technology Licensing, Llc | Mechanical center calibration of control sticks in user input devices |
US10556174B2 (en) | 2017-10-25 | 2020-02-11 | Microsoft Technology Licensing, Llc | Calibration bias for control mechanisms in user input devices |
CN115068231A (zh) * | 2021-03-15 | 2022-09-20 | 广东博方众济医疗科技有限公司 | 移动设备及其操纵装置的映射方法、控制方法和介质 |
CN115300898A (zh) * | 2021-05-05 | 2022-11-08 | 宝德科技股份有限公司 | 摇杆组件及游戏手把 |
CN113181628B (zh) * | 2021-05-12 | 2023-03-28 | 歌尔科技有限公司 | 手柄及其按键反馈力的矫正方法、控制装置及存储介质 |
WO2022256968A1 (zh) * | 2021-06-07 | 2022-12-15 | 深圳市大疆创新科技有限公司 | 遥控器及其杆量确定方法、云台系统 |
WO2023037994A1 (ja) * | 2021-09-13 | 2023-03-16 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびコントローラ |
US12011657B2 (en) * | 2021-09-16 | 2024-06-18 | Voyetra Turtle Beach, Inc. | Video game controller with customizable response |
CN116414225A (zh) * | 2021-12-30 | 2023-07-11 | 宝德科技股份有限公司 | 触觉模拟系统 |
GB2615778A (en) * | 2022-02-17 | 2023-08-23 | Sn Systems Ltd | Analogue stick calibration |
CN115068931B (zh) * | 2022-06-17 | 2023-03-14 | 深圳市达实智控科技股份有限公司 | 一种游戏摇杆的灵敏度设置方法、游戏手柄及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102937876A (zh) * | 2011-11-23 | 2013-02-20 | 微软公司 | 触摸传感器的动态缩放 |
US20130100021A1 (en) * | 2011-10-20 | 2013-04-25 | Sony Computer Entertainment Inc. | Multi-sensored control stick for enhanced input sensitivity and functionality |
US20140340524A1 (en) * | 2013-05-17 | 2014-11-20 | Leap Motion, Inc. | Systems and methods for providing normalized parameters of motions of objects in three-dimensional space |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2147575A1 (en) | 1995-04-21 | 1996-10-22 | Dennis L. Scott-Jackson | Joystick with single plate gimbal |
AU719082B2 (en) * | 1995-05-10 | 2000-05-04 | Nintendo Co., Ltd. | Image processing system using analog joystick |
US5877748A (en) | 1995-11-20 | 1999-03-02 | Redlich; Sanford I. | Computer control input interface system |
US5963195A (en) | 1996-12-19 | 1999-10-05 | International Business Machines Corporation | Hardware-selectable mouse movement |
US6053814A (en) | 1997-12-04 | 2000-04-25 | Logitech, Inc. | System and method for automatically adjusting game controller sensitivity to player inputs |
US6086236A (en) | 1997-12-04 | 2000-07-11 | Logitech, Inc. | System and method for automatically calibrating control devices for computer applications |
US6203432B1 (en) | 1999-05-11 | 2001-03-20 | Madcatz, Inc. | System for adjusting the response characteristic of an electronic game input device |
DE60319847T2 (de) | 2002-08-29 | 2009-09-10 | Department Of Veterans Affairs, Rehabilitation R&D Service | Joystick mit variabler nachgiebigkeit mit kompensationsalgorithmen |
KR100808225B1 (ko) | 2003-05-05 | 2008-02-29 | 인벤텍 어플라이언스 코포레이션 | 핸드헬드 계산 장치에서 아날로그 신호를 생성하기 위한시스템 및 방법 |
US7976385B2 (en) | 2004-05-11 | 2011-07-12 | Mattel, Inc. | Game controller with sensitivity adjustment |
US8232965B2 (en) | 2006-02-13 | 2012-07-31 | Research In Motion Limited | Adjustable on-screen cursor sensitivity on a handheld communication device |
US20080154533A1 (en) | 2006-12-21 | 2008-06-26 | Nokia Corporation | Apparatus, computer-readable medium, and method for calibrating an input mechanism |
US8090532B2 (en) | 2007-12-14 | 2012-01-03 | Microsoft Corporation | Pedestrian route production |
US8762035B2 (en) | 2008-05-19 | 2014-06-24 | Waze Mobile Ltd. | System and method for realtime community information exchange |
US8133119B2 (en) | 2008-10-01 | 2012-03-13 | Microsoft Corporation | Adaptation for alternate gaming input devices |
US20100088096A1 (en) | 2008-10-02 | 2010-04-08 | Stephen John Parsons | Hand held speech recognition device |
US20120282884A1 (en) | 2011-05-05 | 2012-11-08 | Nicholas Sun | System and method for the emergency voice and image e-mail transmitter device |
CN203123534U (zh) | 2013-02-05 | 2013-08-14 | 名硕电脑(苏州)有限公司 | 可调整弹性回复力的游戏杆 |
US8979658B1 (en) | 2013-10-10 | 2015-03-17 | Voyetra Turtle Beach, Inc. | Dynamic adjustment of game controller sensitivity based on audio analysis |
US10108273B2 (en) | 2016-03-07 | 2018-10-23 | Microsoft Technology Licensing, Llc | Movement space mapping for control sticks in user input devices |
US10463954B2 (en) | 2016-03-07 | 2019-11-05 | Microsoft Technology Licensing, Llc | Mechanical center calibration of control sticks in user input devices |
US9927252B1 (en) | 2016-12-14 | 2018-03-27 | Uber Technologies, Inc. | Safe routing for navigation systems |
US10556174B2 (en) | 2017-10-25 | 2020-02-11 | Microsoft Technology Licensing, Llc | Calibration bias for control mechanisms in user input devices |
-
2017
- 2017-10-30 US US15/798,167 patent/US10434405B2/en active Active
-
2018
- 2018-10-13 EP EP18796559.5A patent/EP3687641B1/en active Active
- 2018-10-13 CN CN201880071098.6A patent/CN111295233B/zh active Active
- 2018-10-13 WO PCT/US2018/055769 patent/WO2019089213A1/en unknown
- 2018-10-13 CN CN202311144606.8A patent/CN117018595A/zh active Pending
-
2019
- 2019-09-26 US US16/584,772 patent/US10987576B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130100021A1 (en) * | 2011-10-20 | 2013-04-25 | Sony Computer Entertainment Inc. | Multi-sensored control stick for enhanced input sensitivity and functionality |
CN104321115A (zh) * | 2011-10-20 | 2015-01-28 | 索尼电脑娱乐公司 | 用于增强的输入灵敏度和功能性的多传感器控制手柄 |
CN102937876A (zh) * | 2011-11-23 | 2013-02-20 | 微软公司 | 触摸传感器的动态缩放 |
US20140340524A1 (en) * | 2013-05-17 | 2014-11-20 | Leap Motion, Inc. | Systems and methods for providing normalized parameters of motions of objects in three-dimensional space |
Also Published As
Publication number | Publication date |
---|---|
WO2019089213A1 (en) | 2019-05-09 |
US20200030690A1 (en) | 2020-01-30 |
US10434405B2 (en) | 2019-10-08 |
CN117018595A (zh) | 2023-11-10 |
US20190126140A1 (en) | 2019-05-02 |
EP3687641A1 (en) | 2020-08-05 |
US10987576B2 (en) | 2021-04-27 |
EP3687641B1 (en) | 2023-04-05 |
CN111295233A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111295233B (zh) | 控制杆灵敏度调整 | |
US11954811B2 (en) | Augmented reality platform | |
US11467721B2 (en) | Augmented reality for the Internet of Things | |
CN111566587B (zh) | 变换控制杆移动空间 | |
JP6669727B2 (ja) | パラメトリック慣性及びapi | |
US20140108981A1 (en) | Weighted focus navigation of graphical user interface | |
US20180046363A1 (en) | Digital Content View Control | |
CN112424748B (zh) | 源代码文件推荐通知 | |
US11438404B2 (en) | Edge computing device for controlling electromechanical system with local and remote task distribution control | |
KR20170024063A (ko) | 확률적 터치 감지 | |
US10983602B2 (en) | Identifying an input device | |
CN111198640A (zh) | 一种交互界面显示方法及装置 | |
EP3864494B1 (en) | Locating spatialized sounds nodes for echolocation using unsupervised machine learning | |
EP3186700B1 (en) | Computerized dynamic splitting of interaction across multiple content | |
KR102354512B1 (ko) | 미세먼지 측정 데이터를 3d 그래픽으로 표시하는 방법 및 이를 수행하기 위한 장치 | |
CN110046008B (zh) | 一种关联控件交互方法和装置 | |
US11243914B2 (en) | Table with one or more secondary rows | |
JP7183295B2 (ja) | メディアプレーヤを制御する方法およびシステム | |
US20140109021A1 (en) | Method for operating a gesture-controlled graphical user interface | |
KR20230054491A (ko) | 멀티플레이어 온라인 비디오 게임의 복수의 객체 중 개별 객체의 타겟팅 개선 | |
CN115268723A (zh) | 一种控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |