基于足势的设备、游戏及应用的控制方法与流程

文档序号:28207143发布日期:2021-12-28 19:02阅读:103来源:国知局
基于足势的设备、游戏及应用的控制方法与流程
基于足势的设备、游戏及应用的控制方法
1.申请相关的交叉引用
2.本技术要求2020年6月25日提交的美国临时专利申请第63/044,204号、2020年9月17日提交的美国临时专利申请第63/079,560号和2021年1月5日提交的美国临时专利申请第63/134,122号的优先权。以上列举的所有专利申请均通过引用并入本文。
技术领域
3.本公开涉及电子系统领域,更具体地,涉及用于电子设备、应用和游戏的基于足势的控制的方法和设备。


背景技术:

4.电子设备、应用程序和游戏的操控方法决定了用户如何与设备、应用程序、游戏的交互。并在很大程度上决定了用户体验。传统的设备、应用程序和游戏的操控大多是通过手动控制器和输入设备来实现。例如使用键盘、鼠标、触摸屏、游戏手柄、操纵杆等。然而,手动控制器无法让用户的脚部动作参与到控制体验中。在某些情况下,使用手动控制器不方便。本发明公开了用于各种设备、应用、游戏控制的基于足势的控制方法,以提供自然和实时的控制体验。


技术实现要素:

5.本公开的一个方面提供了一种应用于游戏设备中基于足势的游戏中角色移动的控制方法。该方法包括四向移动开始控制过程。该控制过程包括:确定游戏中角色处于静止状态;获取用户的左脚脚倾斜角和右脚脚倾斜角;根据所得左脚脚倾斜角和右脚脚倾斜角确定左脚的倾斜状态和右脚的倾斜状态;确定用户的左脚和右脚各自的倾斜状态的变化,当检测到右脚从水平状态变为正倾斜状态时,生成游戏角色在第一个方向的移动开始控制;当检测到右脚从水平状态变为负倾斜状态时,生成游戏角色在第二个方向上的移动开始控制;当检测到左脚从水平状态变为正倾斜状态时,生成游戏角色在第三个方向的移动开始控制;当检测到左脚从水平状态变为负倾斜状态时,生成游戏角色在第四个方向的移动开始控制。
6.本公开的另一方面提供了一种电子设备。该设备包括存储器,用于存储程序指令,以执行基于足势的游戏角色移动控制的方法。该设备还包括与存储器结合的处理器。当处理器执行程序指令时,处理器被配置为执行基于足势的游戏角色移动控制的方法。该方法包括四向移动开始控制过程,包括:确定游戏中角色处于静止状态;获取用户的左脚脚倾斜角和右脚脚倾斜角;根据所得左脚脚倾斜角和右脚脚倾斜角确定左脚的倾斜状态和右脚的倾斜状态;确定用户的左脚和右脚各自的倾斜状态的变化,当检测到右脚从水平状态变为正倾斜状态时,生成游戏角色在第一个方向的移动开始控制;当检测到右脚从水平状态变为负倾斜状态时,生成游戏角色在第二个方向上的移动开始控制;当检测到左脚从水平状态变为正倾斜状态时,生成游戏角色的第三个方向的移动开始控制;当检测到左脚从水平
状态变为负倾斜状态时,生成游戏角色在第四个方向的移动的开始控制。
7.本公开的另一方面提供了一种非暂时性计算机可读存储介质。该存储介质存储了可由处理器执行的用于实现基于足势的游戏角色移动控制方法的程序指令。该方法包括执行四向移动开始控制过程,包括:确定游戏中角色处于静止状态;获取用户的左脚脚倾斜角和右脚脚倾斜角;根据所得左脚脚倾斜角和右脚脚倾斜角确定左脚的倾斜状态和右脚的倾斜状态;确定用户的左脚和右脚各自的倾斜状态的变化,当检测到右脚从水平状态变为正倾斜状态时,生成游戏角色在第一个方向的移动开始控制;当检测到右脚从水平状态变为负倾斜状态时,生成游戏角色在第二个方向上的移动开始控制;当检测到左脚从水平状态变为正倾斜状态时,生成游戏角色的第三个方向的移动开始控制;当检测到左脚从水平状态变为负倾斜状态时,生成游戏角色在第四个方向的移动的开始控制。
8.本公开的另一个方面提供了一种使用踏地

离地足势进行游戏/应用控制的方法,包括:检测用户的脚着地;在用户的脚着地时检测用户的脚离地;在确定用户脚离地时,获取脚倾斜角度,获取脚指向方向角度作为第一脚指向方向角;和在检测到用户脚离地时,使用获取的足势参数产生控制,其中控制参数包括获取的脚倾斜角和第一脚指向方向角。
附图说明
9.图1示出了根据本公开的各种实施例的示例足势特征信息获取装置。
10.图2示出了根据本公开的各种实施例的在2d坐标系中的脚指向方向(角度)。
11.图3(a)示出了根据本公开的各种实施例的左/右脚倾斜角以及左/右脚处于负倾斜状态。
12.图3(b)示出了根据本公开的各种实施例的左/右脚倾斜角以及左/右脚处于正倾斜状态。
13.图3(c)示出了根据本公开的各种实施例的左/右脚处于水平状态。
14.图4示出了根据本公开的各种实施例的16种双脚触地状态的示例。
15.图5示出了根据本公开的各种实施例的使用左/右脚倾斜角实现游戏角色移动开始和/或停止的控制的方法。
16.图6(a)图示了根据本公开的各种实施例的四向移动开始控制过程。
17.图6(b)图示了根据本公开的各种实施例的另一种四向移动开始控制过程。
18.图7图示了根据本公开的各种实施例的右脚踏地

离地足势的示例性过程及其足势参数。
19.图8示出了根据本公开的各种实施例的左脚踏地

离地足势的示例性过程及其足势参数。
20.图9示出了根据本公开的各种实施例的3d游戏空间中的踢球控制的方向。该方向由在二维2d(x

y)游戏平面中的方向和仰角确定。
21.图10示出了根据本公开的各种实施例的使用在2d(x

y)平面中的两个方向控制在该平面中踢球控制的方向和球旋转的示例。
22.图11示出了根据本公开的各种实施例的攀爬游戏中在攀爬表面上的支撑点的示例。
23.图12示出了根据本公开的各种实施例的攀爬游戏中攀爬表面上的一组可及支撑
点的示例。
24.图13示出了根据本公开的各种实施例的攀爬游戏中用户左脚或右脚可及支撑点被分成两个子集的示例。
25.图14示出了在示例滑雪游戏中根据本公开的各种实施例的游戏中在游戏2d平面中虚拟脚指向方向和游戏角色当前移动方向各种情况。
26.图15示出了根据本公开的各种实施例的基于足势的游戏/应用程序控制的示例设置。
具体实施方式
27.本公开呈现了用于各种电子设备、应用和游戏的基于足势控制方法,以实现自然和实时的控制体验。用户足势特征信息包括脚触地状态、二维(2d)脚指向方向和脚倾斜角可用于检测用户足势以实现各种控制应用。
28.图1示出了根据本公开各种实施例的足势特征信息获取装置的示例。它是一对传感器嵌入的鞋类,用于收集一组足势特征信息包括脚指向角度、脚触地状态、脚倾斜角度等。左/右脚装置组件105/205是传感器单元,例如9轴运动传感器(包括3轴加速度计、3轴陀螺仪传感器和三轴数字罗盘)。使用来自9轴传感器的测量值,可以处理并获得用户脚指向方向、脚倾斜角度以及其它信息如包括脚移动速度、加速度以及轨迹等。组件102/202、107/207是压力传感器或按钮,用于检测用户左/右脚底的前部和后跟部是否按压地面或支撑平台(着地),从而得到用户脚触地状态。
29.图2示出了根据本公开的各种实施例的在2d坐标系中的脚指向方向(角度)。用户左/右脚指向方向对应在用户当地2d坐标系中(对应于平行于地面的平面),例如,用户的局部东北坐标系,左/右脚指向方向(表示为左/右脚指向方向角ω
l

r
(707/708)或左/右脚指向方向向量v
lf
/v
rf
(701/702))。该当地坐标系不会随着用户转动或移动而旋转。在本公开中,术语脚指向方向和脚指向方向角可互换使用以指代在平行于地面的平面(2d坐标系)中的用户的脚指向方向。
30.图3示出了根据本公开的各种实施例的左/右脚倾斜角γ
l

r
以及根据脚倾斜角的三个脚倾斜状态。图3(a)示出左/右脚处于负倾斜状态时的情况,该状态下左/右脚倾斜角γ
l

r
低于一个负阈值。图3(b)示出左/右脚处于正倾斜状态时的情况,该状态下左/右脚倾斜角γ
l

r
高于一个正阈值。图3(c)示出左/右脚处于水平状态时的情况,其中左/右脚倾斜角γ
l

r
接近于零。
31.图4示出了根据本发明的各个实施例的脚触地状态的概念。根据本公开的各个实施例,用户的左脚和右脚有16种双脚触地状态。区域a和b分别对应用户左脚掌的前部和用户左脚跟部。c区和d区分别对应用户右脚掌前部和用户右脚跟部。在图4中当某个区域为黑色时,表示脚底对应区域(被检测为)按压地面或支撑平台(着地)。在本公开中,脚触地状态由在括号{}中标识触地的脚底区域来表示。例如,{}表示所有脚底区域均未着地,即双脚均在空中(离地)的双脚触地状态;{a}表示只有左脚脚掌前部着地,右脚悬空(离地)的情况;{abcd}对应用户双脚着地且所有区域a、b、c、d都在按压地面(着地)的触地状态。
32.对于仅使用单脚的脚触地状态的情况,将下标l或r添加到括号表示仅左脚或右脚单脚触地状态,例如,{}
l
为左脚触地状态对应于用户左脚在空中,{a}
l
是左脚触地状态,表
示用户左脚脚掌的前部着地。
33.脚触地状态的测量允许在如图3中所示三种脚倾斜状态下确定用户的左/右脚是否按压地面/支撑平台(着地)。一般而言,如果添加更多传感器来检测不同鞋底区域的按压状态,可以得到更多的脚触地状态。上述脚触地状态对于本公开中的基于足势的控制方法来说是足够的。
34.根据本发明的各个实施例,使用包括脚触地状态、脚指向方向角和脚倾斜角等足势特征信息,可以检测各种用户足势/动作,包括走、跑、跳跃、脚滑动、等,并用于控制设备、游戏或应用程序。图15示出了根据本发明的各个实施例的基于足势的游戏/应用程序控制的示例设置。足势特征信息获取装置501采集用户500的足势特征信息,并将信息发送至游戏设备502。在游戏设备502上运行的游戏控制进程504利用来自501的足势特征信息检测用户500的足势,并将检测到的用户足势/动作转换为在游戏设备上运行的游戏503的控制命令。在本公开的各种实施例中,游戏控制过程504可以是游戏503的一部分或者是在游戏设备502上与游戏503并行运行的控制程序。本公开中的基于足势的控制方法的应用不是仅限于游戏。一般来说,游戏设备502可以是电子设备,包括电脑,平板电脑,手机,游戏机等;游戏503可以是运行在电子设备502上的应用程序;并且游戏控制进程504可以是应用程序的控制进程,支持用户500使用足势/脚部动作来控制应用503。
35..例如,电子设备可以包括存储器,被配置为存储本公开中的基于足势的游戏及应用程序控制方法的程序指令。电子设备还可以包括处理器,与存储器结合并执行本公开中的方法。在实施例中,存储器可以包括诸如随机存取存储器(ram)的易失性存储器以及诸如闪存、硬盘驱动器(hdd)或固态驱动器(ssd)的非易失性存储器。存储器还可以包括各种上述存储器的组合。处理器可以包括中央处理单元(cpu)、嵌入式处理器、微控制器和可编程器件,例如专用集成电路(asic)、现场可编程门阵列(fpga)和可编程逻辑阵列(pld)等。
36.在本公开的各个实施例中,本公开中基于足势的游戏/应用的控制方法,可以在游戏/应用控制过程504实现以控制游戏/应用503的行为。足势特征信息获取设备501不限于图1所示的嵌入传感器的鞋类。它可以是任何类型可提供所需足势特征信息,包括脚触地状态、脚指向方向和脚倾斜角度的传感器系统,例如摄像机系统。
37.基于足势的控制的重要应用是游戏和应用程序中的角色移动控制。例如,与使用手动控制器进行移动控制相比,在虚拟现实(vr)游戏中基于足势的游戏角色移动控制可以提供更自然和身临其境的控制体验。本公开提出了用于基于足势的游戏/应用角色移动控制方法,以实现准确,实时的角色移动控制。
38.游戏和应用中的角色移动控制包括游戏角色的移动开始控制、移动方向控制、移动速度/类型控制和移动停止控制。在本公开中,首先提出移动方向控制方法。利用用户右脚和/或左脚的脚指方向,可以很自然地实现在游戏空间2d(二维)平面中的角色移动方向控制。使用用户脚指向方向来控制角色在游戏/应用程序空间的2d平面中的移动方向的第一种方法是使用来自测量的左脚或右脚指向方向角(或两者的组合)直接映射到应用程序/游戏平面中的一个移动方向。如图2所示,用户的左/右脚指向方向(或左脚指向和右脚指向的组合,例如,两个脚指向方向角的平均值)具有360度的范围。可将其映射到游戏/应用程序平面中的2d方向(具有360度范围)作为游戏/应用程序角色移动的方向。为了将用户脚指向方向映射到游戏/应用程序中2d平面中的方向,可以使用以下校准过程。
39.步骤1:游戏/应用程序503指示用户500将其左/右脚指向一个由用户选择的方向,该方向对应于游戏/应用程序空间中一个已知的2d方向(角度)。游戏/应用空间中已知的2d方向可以是角色当前的移动方向,也可以是游戏/应用中一个容易识别的方向,等。例如,在足球比赛中,该已知方向可以是球场长度方向之一。
40.步骤2:用户500通知游戏/应用程序503其左/右脚指向方向已经选定。这可以通过多种方式完成,例如,通过点击手动控制器上的功能按钮。
41.步骤3:当应用程序得到用户通知,获取当前用户左/右脚指向方向(角度),并将其作为参考左/右脚指向方向(角度)ω
lref

rref

42.经过以上校准过程之,参考左/右脚指向方向(角度),例如,ω
lref

rref
对应于游戏/应用空间中的已知(2d)方向(角度)。游戏应用空间中对应于任一用户左/右脚指向方向(如脚指向方向角度ω
l
或ω
r
)的2d方向可以使用用户左/右脚指向与参考左/右脚指向方向的角度差(如(ω
l

ω
lref
)或(ω
r

ω
rref
))和游戏/应用程序空间中的已知2d方向求得。
43.在本公开的各种实施例中,对于校准过程的步骤2,可用足势通知应用程序/游戏设置参考脚指向方向。例如该足势由用户500执行并由游戏/应用程序控制进程504进行检测以更新参考脚指向方向角度。用足势设置参考脚指向方向的推荐方法如下。检测用户左/右脚倾斜角γ
l

r
的绝对值大于一个较大阈值,例如50度。如果用户的左/右脚停留在该倾角状态超过设定的时间阈值,例如5s,则设置为当前测量的左/右脚指向方向(角)为参考左/右脚指向方向ω
lref

rref
。以上用于设置参考脚指向方向足势的优点是该足势不易被用户无意的脚部动作触发。此外还可以对以上用于设置参考脚指向方向的足势增加对脚指向方向的变化率的的要求,例如,要求在设置左/右参考脚指向方向时左/右脚指向方向变化率接近于0。此外还可对该足势增加对脚触地状态的要求。例如,要求设置左/右参考脚指向方向时需检测到左脚和/或右脚按压地面(着地)。
44.注意,用于角色移动方向控制的第一种方式涉及将具有360度范围的用户脚指向方向直接映射到应用程序/游戏空间中的2d方向。这种控制方式要求用户能够自由转身。在一些应用中,比如用户戴着虚拟现实(vr)头显玩vr游戏时,这项要求很容易满足。当用户在现实世界中转身时,游戏/应用空间中映射的2d方向将相应更新。但是,也有很多应用场景,用户/玩家不方便转身。例如,当使用固定屏幕进行显示时,用户在使用游戏/应用过程中需要面向屏幕。因此,用户左/右脚指向方向的变化范围非常有限。
45.在这种情况下,可以由用户设置参考左/右脚指向方向ω
lref

rref
。例如,可将ω
lref

rref
设置为当用户左/右脚指向屏幕时的左/右脚指向方向ω
l

r
。在本公开的一些实施例中,参考左/右脚指向方向角ω
lref

rref
,可以设置为当前移动开始时的左/右脚指向方向角ω
l

r
。获得的左/右脚指向方向ω
l

r
与参考脚指向方向之间的差值ω
lref

rref
,即ω
l

ω
lref orω
r

ω
rref
可用于游戏/应用中移动方向变化的控制。
46.在这种情况下,ω
l

ω
lref
或ω
r

ω
rref
的范围通常比[

90
°
90]度小得多。对于移动方向控制,可使用脚指向方向的角度差ω
l

ω
lref
或ω
r

ω
rref
控制角色移动方向在2d游戏/应用空间中的转动速率。例如,当ω
l

ω
lref
或ω
r

ω
rref
落在[

20 20]度区间内时,游戏/应用空间中移动方向的转动速率为零,即移动方向没有变化.当ω
l

ω
lref
或ω
r

ω
rref
落入第二范围,例如[

50

20]度时,2d游戏/应用空间中移动方向的转动速率为

5度/秒。当ω
l

ω
lref
或ω
r

ω
rref
落入第三个范围,例如[20 50]度时,2d游戏/应用空间中移动方向的转动
速率为5度/秒。通过这种方式,用户能够有效地改变游戏/应用中角色的移动方向并在游戏/应用程序空间的二维平面中进行转向。
[0047]
在本公开的其它实施例中,游戏/应用程序中的移动方向控制为向前、向后、向左或向右。角度差ω
l

ω
lref
或ω
r

ω
rref
和相应的脚倾斜角γ
l
或γ
r
可用于生成四个方向的移动控制。例如,当ω
r

ω
rref
落在第一范围内,例如[

15 15]度时,可以根据右脚倾斜角γ
r
确定为向前或向后移动。如当γ
r
大于某一正阈值,移动方向为向后移动;当γ
r
小于一负阈值移动方向为向前移动。当ω
r

ω
rref
落入第二范围时,例如[

50

20]度,根据右脚倾斜角γ
r
确定为向右或向左移动。如当γ
r
大于某一正阈值移动方向为向左移动;当γ
r
小于一负阈值移动方向为向右移动。
[0048]
注意,以上游戏角色移动方向控制方法允许用户使用一只脚来控制角色在游戏/应用空间的(2d)平面中的移动。在这种情况下,用户可以使用另一只脚来控制游戏/应用角色在向上和向下方向的移动,并实现三维(3d)游戏/应用空间中的游戏/应用角色的移动控制。在本公开的各种实施例中,游戏/应用程序角色在游戏/应用程序空间的上下方向上的移动可以使用用户的左脚倾斜角γ
l
或右脚倾斜角γ
r
决定游戏角色在上、下方向移动的速度或加速度。
[0049]
除了移动方向控制,游戏/应用中的移动控制还包括移动开始控制、移动停止控制和移动参数控制,包括类型、速度等。使用来自足势特征信息获取装置501的脚触地状态信息,可以准确地检测和区分(例如,通过游戏控制过程504)用户跑和跳等足势。
[0050]
足势状态{a|b c|d}表示用户左脚和右脚都在按压地面(着地)时的脚触地状态的集合。其中左脚触地状态为{a|b}
l
,同时右脚触地状态为{c|d}
r
。{a|b}
l
表示左脚底a和/或b区域正在按压地面。{c|d}
r
表示右边脚底c和/或d区域正在按压地面;足势状态{a|b}表示右脚离地且左脚在按压地面(着地)的脚触地状态的集合。足势状态{c|d}对应用户右脚着地,左脚离地时的脚触地状态集合。足势状态{}对应于用户双脚离地的触地状态{}。相应地,走,作为足势,具有以下足势状态序列
[0051]

{a|b c|d}

>{a|b}

>{a|b c|d}

>{c|d}

>{a|b c|d}

>{a|b}

>{a|b c|d}

>{c|d}

[0052]
注意,足势状态序列表示足势状态的转变,即足势状态随时间的变化。这里,足势“走”的每个足势状态对应于一组允许的脚触地状态。标记
“‑
>”用于连接相邻的足势状态。
[0053]
跑作为足势具有以下足势状态序列:
[0054]

{ }

>{a|b}

>{ }

>{c|d}

>{ }

>{a|b}

>{ }

>{c|d}

[0055]
可以看出,“走”和“跑”作为足势都包含足势状态{a|b}和{c|d}。然而,它们具有不同的足势状态序列。用户“走”的足势可以通过检测以下(最小长度)足势状态序列来检测(确认)
[0056]
{a|b}

>{a|b c|d}

>{c|d}or{c|d}

>{a|b c|d}

>{a|b}
[0057]
上述足势状态序列是足势“走”的足势状态序列中的片段,是该足势的特征足势状态序列。当上述“走”的特征足势状态序列之一被检测到时(例如,通过504基于用户触地状态的测量的检测),用户足势“走”即被检测到并可用于触发游戏/应用中对应于“走”的移动。足势“走”具有的更长的特征足势状态序列,例如{a|b c|d}

>{a|b}

>{a|b c|d}

>{c|d}也可以用于检测该足势,但它会进一步降低检测速度并加大控制延时。
[0058]
用户”跑“的足势可以通过以下”跑“的特征足势状态序列来进行检测。{ }

>{a|b}

>{ },{ }

>{c|d}

>{ },{a|b}

>{ }

>{c|d},{c|d}

>{ }

>{a|b}
[0059]
根据用户脚触地状态的测量,当检测到上述特征足势状态序列之一时,可以判定检测到用户“跑”足势,并用根据该检测结果于触发游戏中角色对应于“跑”的移动。更长的足势“跑”的特征状态序列如{a|b}

>{ }

>{c|d}

>{},和{c|d}

>{ }

>{a|b}

>{}可用于足势“跑”的检测,并用于区分“跑”和用户单脚跳跃足势。但这将增加检测延时。
[0060]
注意,左脚单脚跳跃具有特征足势状序列{ }

>{a|b}

>{ },右脚单脚跳跃具有特征足势状态序列{ }

>{c|d}

>{ }。如果希望避免将单脚跳跃足势检测为“跑”,则不应使用特征足势状态序列{ }

>{a|b}

>{ }和{ }

>{c|d}

>{ }进行“跑”足势检测。
[0061]
综上,在本公开的各种实施例中,可以通过检查所得的足势状态序列是否与对应足势的特征足势状态序列匹配来检测用户“走”、“跑”等足势。该检测过程包括获取用户的左脚和右脚的脚触地状态的测量。基于当前用户脚触地状态确定当前足势状态。检查由当前和过去足势状态构成的足势状态所序列是否与被检测足势(如走、跑)的特征足势状态序列匹配。当检测到测量足势状态序列和被检测足势的特征足势状态序列匹配时,确定检测到该足势。被检测足势,如“走”或“跑”,的特足势状态序列的选择涉及检测速度和检测精度之间的权衡。在本公开的各种实施例中,诸如“走”或“跑”之类的足势的检测可用于在游戏和应用中开始相应的角色移动。
[0062]
在本公开的各种实施例中,对“走”或“跑”足势的终止/停止的检测可用于停止游戏和应用中的角色移动。确定“走”/“跑”足势停止的一种方式是检测“走”/“跑”对应的足势状态序列的中断。但是,这可能会导致大的检测延迟。例如,当用户停止行走时,相应的足势状态序列在{a|bc|d}处停止(即双脚着地)。在这种情况下,虽然用户已经停止行走,但足势“走”的足势势状态序列并未中断。
[0063]
该问题可通过添加对足势状态持续时间的限制来解决。如果检测到的足势状态超过设定的时间tau
e
没有改变,则可以判定该走或跑足势终止。但是,如果超时阈值选择过大,则会引入明显的对足势停止的检测延迟,从而可能导致生成移动停止控制的较大延迟。如果超时阈值选得太小,可能会误检测足势“走”/“跑”的终止,从而导致不必要的移动中断。
[0064]
为解决上述问题,在本公开的各个实施例中,可使用足势状态{a|bc|d}(包括用户双脚均着地时所有可能的脚触地状态)和一个小的超时阈值tau
e
,例如,tau
e
=0.2s,进行“走”/“跑”足势停止的检测。如果检测到用户双脚着地(即足势状态{a|b c|d})超过超时阈值tau
e
,则可判定“走”/“跑”足势停止,并且生成游戏/应用程序角色移动停止的控制。以上公开的足势“走”的停止检测的方法基于这样一个事实,在足势走中,足势状态{a|b c|d}的持续时间很短。因为当一个人走路时,人的左右脚同时着地(对应脚的手势状态{a|b c|d})的时间很短。相比之下,“走”的另外两个足势状态,即{a|b}和{c|d},具有更长的持续时间。对于移动停止控制,对足势状态{a|b c|d}使用短的超时阈值tau
e
(例如0.2秒)的限制不易导致错误的足势停止检测。
[0065]
对于“跑”足势,可以使用与“走”相同的停止检测方法。注意{a|b c|d}不是“跑”的足势状态。检测到足势状态{a|b c|d}即检测到足势“跑”的足势状态序列的中断,表示“跑”的终止。此外,用户的步行/跑步动作正常且自然地停止在足势状态{a|b c|d}。所公开的

走”/“跑”的停止检测方法提供了自然且反应灵敏的检测和控制性能。
[0066]
以上公开的通过检测“走”/“跑”足势的开始和停止来控制移动开始和停止的方法允许用户用其走路/跑步的动作自然地控制角色在游戏/应用的移动。然而,这些方法有一些缺点。首先,步行/跑步动作的检测只能在一个方向上开始移动,例如“前进”方向。它不能用于控制开始向后或横向移动。其次,不论使用本公开中的检测方法或其检测方法的,用户走/跑动作的检测有显着延迟。无论采用何种检测方式,用户的走或跑的动作只有在用户开始走/跑一两步后才可能被检测并确认。用户走/跑动作检测延迟可能在1秒左右,不适合对时间精度和响应速度要求高的游戏/应用角色移动控制。
[0067]
为解决该问题,在本公开的各个实施例中,可以使用基于用户脚倾斜角的方法来生成游戏/应用中角色移动开始的控制。
[0068]
用户的左/右脚倾斜角在理论上有[

90 90]的范围内。实际上中用户脚倾斜角的范围要小得多。图5示出了使用用户左/右脚斜角实现移动开始、结束和移动类型控制的方案,其中将左/右脚倾斜角γ
l

r
的范围被划分为多个子范围。当测量的脚倾斜角γ
l

r
落在某子范围内,可以生成相应的游戏/应用角色移动控制。
[0069]
如图5所示,角度范围171/181表示是用户左/右脚倾斜角γ
l

r
实际的变化范围。子范围172/182对应脚倾斜角接近于零的范围,即对应于图3(c)中脚处于倾斜的程度小的水平状态。当用户的左/右脚倾斜角γ
l

r
落于子范围172/182内时,可以生成停止游戏/应用角色移动的控制。
[0070]
当(测得的)用户左/右脚倾斜角γ
l

r
落于子范围174/184内时,即用户的左/右脚处于如图3(a)所示负倾斜状态,可以生成在一个方向开始移动的控制,例如角色在向前方向上开始移动的控制。
[0071]
当(测得的)用户左/右脚倾斜角γ
l

r
落在子范围173/183中时,即对应于图3(b))中的正倾斜状态,可以生成在另一个方向开始移动的控制,例如角色向后方向上开始移动的控制。
[0072]
预定义的子范围172/182、173/183、174/184允许将左/右脚倾斜角(测量)转换为三种状态之一,并且可以自然地用于控制游戏/应用角色沿某方向开始移动、逆某方向开始移动和停止移动。如图5所示,可以定更多的脚倾斜角子范围,例如175/185、176/186、177/187、178/188,以支持更多类型的移动控制。例如,当用户的左/右脚倾斜角γ
l

r
落在子范围177/187或178/188内时,可以增加在某方向的移动速度。
[0073]
在本公开的各种实施例中,可以使用左/右脚倾斜角来控制游戏/应用中角色的移动的加速度。例如,当左/右脚倾斜角度在172/182范围内时,加速度为零;当左/右脚倾斜角度在174/184范围内时,可以对移动施加正加速度以增加移动方向上的速度;当左/右脚倾斜角度在173/183范围内时,可以对移动施加负加速度以降低移动方向上的速度。
[0074]
以上公开的基于脚倾斜角的用于游戏/应用中移动开始、停止和类型控制的方法可以实现准确、低延时的移动控制。因为用户脚倾的角变化可以在几乎没有延迟的情况下被检测到。然而,这类移动控制方法可能要求用户在角色移动中保持脚处于倾斜的状态,并且它们可能不允许用户/玩家在角色移动中执行步行、跑步、和转身等动作。
[0075]
本公开提出了基于足势的移动控制方法,该方法结合了基于脚倾斜角的移动控制和基于检测用户“走”/“跑”等动作的移动控制的优点,以实现游戏/应用程序中自然而且实
时(低延时)的角色移动控制。
[0076]
图6(a)示出了根据本公开的各种实施例的用于在四个可能的方向上开始游戏角色移动的四向移动开始控制过程。四个方向可以是向前、向后、向左和向右。一般来说,游戏角色可以是任何应用中的角色。在步骤s100中获取用户的左脚脚倾斜角和右脚脚倾斜角。使用来自s100的脚倾斜角值,在步骤s101、s102、s103和s104中,确定用户左/右脚是否处于(如图3(a)所示)负倾斜状态或(如图3(b)所示)正倾斜状态。如果在s101中检测到用户右脚处于正倾斜状态,则步骤s105生成开始在第一个方向(例如向后)的移动的控制。如果在s102中检测到右脚处于负倾斜状态,则步骤s106生成开始在第二个方向(例如向前)的移动控制。如果在s103中检测到左脚处于正倾斜状态,则步骤s107生成开始沿第三个方向(例如向左)的移动控制。如果在s104中检测到左脚处于负倾斜状态,则步骤s108生成开始在第四个方向(例如向右)的移动控制。
[0077]
在本公开的一些实施例中,如图6(b)所示,步骤s111检测右脚从(如图3(c)所示)水平状态到(如图3(b)所示)正倾斜状态的变化;步骤s112检测右脚从水平状态到(如图3(a)所示)负倾斜状态的变化;步骤s113检测左脚从水平状态到正向倾斜状态的变化;步骤s114检测左脚从水平状态到负倾斜状态的变化。如果在步骤s111/s112/s113/s114中检测到对应的脚倾斜状态的改变,则在步骤s105/s106/s107/s108中将生成相应的在四个方向之一开始角色移动的控制。
[0078]
所公开的四向移动开始控制过程(如可以在游戏/应用控制过程504中实现)允许用户使用脚的动作来有效地开始游戏/应用角色在四个可能方向上的移动,例如向前、向前、向后、向左和向右方向。这是许多游戏和应用程序中普遍需要的移动控制功能。四向移动开始控制过程检测的用户足势易于执行,并且具有很小的检测延迟,可实现准确、低延时的移动开始控制。相比之下,前述基于“走”或“跑”等足势检测的控制方法可导致明显的控制延迟。所公开的四向移动开始控制方法不需要用户脚指向方向信息,这允许将用户脚指向方向信息用于其他控制目的,例如控制四个移动方向所对应的在游戏/应用空间中的方向。
[0079]
在四向移动开始控制过程的实施例中,可以选择用于确定用户的脚是否处于正/负倾斜状态的阈值以实现在控制灵敏度和误触发移动开始控制的几率之间的折衷。另外,可以增加对脚触地状态和脚指向方向的变化率的要求,进一步降低误触发角色移动开始控制的几率。例如,可要求生成移动开始控制时(检测到/确定)用户的一只脚或两只脚按压地面(着地)。如在本开中,用户左、右脚是否按压地面(着地)可以使用用户脚触地状态测量来确定。还可要求生成游戏/应用角色移动开始控制时(检测到)用户的左、右脚指向方向之一或两者的变化率接近于零。这减少了用户转身时误生成角色移动开始控制的几率。
[0080]
在本公开的各个实施例中,当确定游戏/应用程序角色处于静止状态时,可以使用以上的四向移动开始控制过程来开始游戏/应用中角色的移动。当确定游戏/应用程序角色处于移动状态时,可以(例如,通过504)使用其它足势(例如“走”、“跑”等)的检测来控制正在进行的角色移动的性质和参数,如移动类型和/或移动速度。用户“走”、“跑”等动作可以(例如,通过504)使用用户脚触地状态的测量来检测,或通过其它方式进行检测。
[0081]
在许多游戏和应用程序中,可以改变在游戏/应用程序2d平面中对应于四个移动方向的(例如向前、向后、向左和向右)的移动方向。在许多情况下,游戏/应用程序空间的
(2d)平面中对应的四个移动方向可以根据游戏/应用2d平面中的“参考前”方向来确定。该方向对应于向前的移动方向。当“参考前”方向改变时,游戏/应用程序空间中对应向前、向后、向左或向右移动的方向也会相应改变。
[0082]
在一些游戏和应用中,“参考前”方向由手动操作的设备控制。例如,在许多第一人称视角游戏中,“参考前”方向是由游戏/应用空间中游戏角色的视角方向决定的,该方向可由鼠标控制。在许多vr应用中,游戏空间中的“参考前”方向由vr头显的方向控制。在本公开的各种实施例中,当用户脚指向方向信息可用时,可以使用用户(500)的左/右脚指向方向角(例如,ω
l

r
)或用户的左脚指向方向角和右脚指向方向角的组合来控制在游戏/应用2d平面中的“参考前”方向。这允许在游戏/应用程序中分离角色的移动方向和观看方向(视角)的控制。这样,用户/玩家500可以改变游戏/应用程序角色的视角而不影响正在进行的移动的方向。这符合现实生活中的移动控制体验。注意,在本公开的各个实施例中,之前提出的用于在游戏/应用中使用用户的脚指向方向来控制角色移动方向的方法可以用于控制“参考前”方向。
[0083]
在本公开的各种实施例中,当确定游戏/应用角色处于移动状态时(例如,通过504),可以使用基于脚倾斜角的足势来停止正在进行的角色移动。当左脚或右脚被(例如504)检测到从水平状态(如图3(c)所示)变为倾斜状态(如图3(a)或图3(b)所示)可生成停止角色移动的控制。当得到的左/右脚倾斜角度增加到某正阈值以上或减少到某负阈值以下时,则检测到用户脚从水平状态变为倾斜状态。这些阈值的绝对值可以选择得足够大,例如40度,以避免误生成移动停止控制。另外,为了避免误生成移动停止的控制,可以增加对用户脚触地状态的要求。如在生成移动停止控制时要求左脚和右脚中的一个或两个(被检测为)着地。该移动停止控制过程可与公开的如图6(b)所示的四向移动开始控制过程(即(在s111、s112、s113和s114中)使用对左脚和右脚的倾斜状态变化的检测来生成游戏/应用程序角色的移动开始的控制方法)兼容。
[0084]
本公开提出了一种脚踏地

离地足势,允许将用户(500)的脚踏地

离地动作自然的用于各种游戏/应用的控制。图7示出了根据本公开的各种实施例的右脚踏地

离地足势的示例性过程及其参数。在时间t0,(如由504)检测到用户的右脚着地/按压地面,即检测到右脚足势状态从{}
r
变为{c|d}
r
。在t0时的右脚倾斜角,记为γ
r0
,和t0时刻的右脚指向方向角,记为ω
r0
,可以被记录并用作踏地

离地足势的参数。当(如由504)检测到右脚处于着地状态时,即右脚触地状态属于{c|d}
r
,可以(如由504)检测到用户右脚一次或多次由水平状态变为倾斜状态,如在时间t1,t2,

,t
k
。检测用户右脚由水平状态变为倾斜状态。其中,t
k
表示在踏地

离地足势过程中检测到的最后一次脚倾斜状态(从水平状态到倾斜状态)变化的时间。在每次检测到用户右脚倾斜状态变化时,可以获取相应时间的右脚指向方向角ω
r1,
ω
r2
,


rk
,作为踏地

离地足势的参数。在时间t
e
,(如由504)检测到右脚足势状态从{c|d}
r
变为{}
r
,即检测到右脚离开(停止按压)地面,则检测到踏地

离地足势的结束。在t
e
时获取的右脚倾斜角γ
re
,以及在t
e
时获取的右脚指向方向角ω
re
,可以作为踏地

离地足势的参数。在时间t
e
,可以从γ
re

re

r0

r0

r1

r2
,


rk
中选取一组参数作为踏地

离地足势的参数以生成游戏/程序控制。在本发明的各个实施例中,由右脚踏地

离地足势的控制参数包括脚倾斜角γ
re
(即t
e
时获取/确定的脚倾斜角),第一脚指向方向角如ω
re
(即t
e
时的脚指向方向角),以及第二脚指向方向角(第二脚指方向角可以是ω
r0,
ω
r1,
ω
r2
,

,
ω
rk
中一个)。注意ω
r0,
ω
r1,
ω
r2
,


rk
中的哪一个脚指向方向角应该用作踏地

离地足势的第二脚指向方向角参数是预先确定的。第二脚指向方向角参数可以是第一次、第二次、第三次、
……
、第n次或最后一次检测到用户脚倾斜状态变化(即由水平状态变为倾斜状态)时获得的脚指向方向角,或是在用户右脚开始踏地时获取的脚指向方向角ω
r0

[0085]
图8示出了根据本公开的各种实施例的左脚踏地

离地足势的示例性过程及其控制参数。在时间t0,(由504)检测到用户的左脚按压地面(着地),即左脚触地状态从{}
l
变为{a|b}
l
。在时间t0,可以得到左脚脚指向方向角,记为ω
l0
,和左脚脚倾斜角,记为γ
l0
,以用作踏地

离地足势的参数。当用户的左脚持续按压地面(着地)时(即左脚触地状态满足{a|b}
l
),可以(由504,根据用户左脚脚倾斜角的测量)检测到可能的一次或多次(如在时间t1,t2,t3..,和t
k
)用户的左脚从(如图3(c)所示)水平状态改变为(如图3(a)或图3(b)所示)倾斜状态。注,t
k
表示在该足势期间检测到最后一次用户左脚脚倾斜状态(从水平状态到倾斜状态)变化的时间。并且可以得到在t1,t2,t3..,和t
k
时对应的左脚脚指向方向角,表示为ω
l1,
ω
l2
,


lk
。在时间t
e
,(如由504)检测到右脚足势状态从{a|b}l到{}l)的变化,即右脚离开地面,判定左脚踏地

离地足势结束。在时间t
e
,可根据左脚踏地

离地足势的参数生成控制。该足势可用的控制参数包括γ
le

le

l0

l0

l1

l2
,


lk
。在本公开的各个实施例中,由左脚踏地

离地足势的控制参数包括脚倾斜角γ
le
(即在时间t
e
获取/确定的左脚脚倾斜角),第一脚指向方向角ω
le
(即在时间t
e
获取/确定的左脚指向方向角),以及第二脚指向方向角(第二脚指方向角可以是ω
l0,
ω
l1,
ω
l2
,


lk
中一个)。注意ω
l0,
ω
l1,
ω
l2
,


lk
中的哪一个脚指向方向角应该用作踏地

离地足势的第二脚指向方向角参数是预先确定的。第二脚指向方向角参数可以是第一次、第二次、第三次、
……
、第n次或最后一次检测到用户脚倾斜状态变化(由水平状态变为倾斜状态)时获得的脚指向方向角,或是在用户左脚开始踏地时获取的脚指向方向角ω
l0

[0086]
综上,在本公开的各种实施例中,可(由504)用如下方法检测左/右脚踏地

离地足势。检测用户的左/右脚是否着地。当确定左/右脚开始着地(按压地面)时,如果需要ω
l0

r0
和/或γ
l0

r0
作为踏地

离地足势的参数,获取并记录所需足势参数。当检测到用户的左/右脚在持续按压地面(着地)时,如需要ω
l1

r1,
ω
l2

r2
,


lk

rk
中的一个或多个作为足势参数,使用获得的左/右脚倾斜角得到用户左/右脚的脚倾斜状态;检测并确定所需的左/右脚从水平状态到倾斜状态的变化次数;并获得所需的一个或多个左/右脚指向方向角参数,例如ω
l1

r1

lk

rk
等。当检测到用户的左/右脚在持续按压地面(着地)时,检测用户的左/右脚停止按压地面(离地)。该检测可使用本公开中的用户脚触地状态测量或其它方式进行。在确定(检测到)用户的左/右脚停止按压地面地(即离地)时,根据需要,获取ω
le

re
和/或γ
le

re
作为左/右脚踏地

离地足势的参数;并根据检测到的踏地

离地足势参数生成游戏/应用的控制。在本公开的各个实施例中,左/右脚踏地

离地足势的参数包括脚倾斜角γ
le

re
、第一脚指向方向角ω
le

re
和第二脚指向方向角。其中第二脚指向方向角是ω
l0

r0

l1

r1,
ω
l2

r2
,

,和ω
lk

rk
之一。
[0087]
在本公开的各种实施例中,以上(左/右脚)踏地

离地足势可以用于实现各种游戏/应用程序中的控制功能。例如足球、橄榄球等游戏中常见的踢球的控制。游戏中的踢球的控制包括踢球方向控制、踢球力量控制和球旋转控制,这些控制可以通过本公开的踏地

离地足势自然的实现。
[0088]
根据本公开的各种实施例,图9示出了在游戏的3d空间中踢球控制的方向600。该3d方向可以由两个参数给出:i)二维(2d)xy平面中的踢球方向601,和ii)仰角602。其中2d xy平面中的方向601可以由左/右脚踏地

离地足势的一个脚指向方向角参数确定,如第二脚指向角,ω
l1

r1,
或ω
l2

r2
。踢球方向的仰角602可以由踏地

离地足势的脚倾斜角参数确定,如γ
le

re
。此外,如图9所示、在xy平面的另外一个方向603可以用来控制踢球动作造成的球旋转。图10示出了使用xy平面中方向601和方向603控制2d平面中的踢球方向,以及球的旋转状态。图10(a)示出了对应于生成逆时针球旋转的踢球控制。该控制可使成球飞行轨迹在一个方向上弯曲。图10(b)示出了对应于生成顺时针球旋转的踢球控制。该控制可能使球飞行轨迹在游戏中向另一个方向弯曲。踢球控制造成的球的旋转(包括球旋转的方向和程度)可以由方向601和方向603的角度差来确定。使用踏地

离地足势,以上在xy平面中的方向603可以是由另一个来自足势的脚指向参数确定,例如第一脚指向方向参数ω
le

re

[0089]
注意,在检测到踏地

离地足势结束前,即当(检测到)用户的左/右脚仍在踏地状态时,游戏/应用程序控制过程504可以根据最新的用户脚指向方向角即ω
l
或ω
r
得到待定的2d踢球控制的方向601,和根据最新的脚倾斜角γ
l
或γ
r
得到待定的踢球控制的仰角602。可以在游戏/应用程序503中向用户500显示所得的待定二维踢球控制的方向601和待定的踢球控制的仰角602。这样用户500可预知踏地

离地足势的结果,并相应地调整控制。此外,球踢控制的力度可以通过手动控制器控制,或者由在踏地

离地足势之后获得的用户脚部运动的速度和/或加速度来确定。
[0090]
在本公开的各种实施例中,可以在攀爬游戏中使用踏地

离地足势以使用用户的脚部动作有效地进行游戏控制。图11示出了在游戏中攀爬表面上具有的攀爬支撑点的一般的游戏场景。用户/玩家控制虚拟手(例如,使用手持游戏控制器)和虚拟脚(如使用脚操作的控制器,例如,足势信息获取设备)以抓/踩到选定的支撑点而在游戏中移动。攀爬游戏中虚拟左/右脚的控制包括:i)从一组可及的支撑点中确定(下一步的)目标支撑点,以及ii)控制虚拟左/右脚移动到确定的目标支撑点(即选定目标支撑点)。本公开中的踏地

离地足势的实施例可以自然地实现上述控制功能。
[0091]
一般而言,目标支撑点是从根据当前虚拟手和/或虚拟脚所在的支撑点所得到的一组可及的支撑点中确定的。图12示出了游戏中攀爬表面上的一组可及支撑点以及游戏中当虚拟左/右脚所在支撑点的示例。使用踏地

离地足势,可以通过该足势的脚指向方向角参数,ω
le
(左脚)或ω
re
(右脚)(即踏地

离地足势的第一脚指向方向角参数)以及设定的从脚指向方向角到可及支撑点的映射来确定目标支撑点。如图12所示,当由ω
l

r
控制的虚拟脚指向方向落入一定范围内时,可以将相应的支撑点定为目标支撑点。或者,目标支撑点可以由踏地

离地足势的两个脚指向方向角度参数的差值,例如,ω
le

ω
l0,
或ω
le

ω
l1
(左脚),或ω
re

ω
r0
(右脚)(即踏地

离地足势的第一脚指向方向角度参数和第二脚指向方向角参数之间的差值)以及从该差值到可及支撑点的映射确定。
[0092]
可以添加对脚倾斜角参数(如γ
le

re
)的要求,以确定在踏地

离地足势后在游戏中是否选择目标支撑点。例如,可以要求用户的脚需要处于倾斜状态(即γ
le

re
的绝对值大于某阈值),否则目标支撑点不会在足势结束后被选中。
[0093]
踏地

离地足势的脚倾斜角参数,如γ
le

re
,也可以用于目标支撑点的选择。图
13示出了一个示例场景,其中用户左/右脚的可及的支撑点被分成两个组。一组包含被视为向上的支撑点,另一组包含被视为向下的支撑点。脚倾斜角度参数可用于确定应从哪组支撑点中选择目标支撑点。例如,当γ
le

re
大于某正阈值,则目标支撑点由向上支撑点集合中选择;当γ
le

re
小于某负阈值时,目标支撑点由向下支撑点集合中选取。综上,以左/右脚踏地

离地组势做为控制,目标支撑点可由脚倾斜角参数γ
le

re
,和脚指向方向角参数(如ω
le

re
)或两个脚指向方向角的角度差(ω
le

ω
l0
或ω
re

ω
r0
),以及由以上参数到可及支撑点的映射确定。
[0094]
在本发明的各个实施例中,在踏地

离地足势结束之前,即当(检测到)用户的左脚/右脚仍着地时,可根据最新的用户左/右脚指向方向角ω
l

r
和脚倾斜角γ
l

r
得到待选目标支撑点,并在游戏/应用程序进行显示待选目标支撑点以使用户/玩家知道当前踏地

离地足势控制的预期结果,并可以相应地调整控制以选择所要的目标支撑点。待选目标支撑点可通过将当前的脚指向方向角ω
l

r
和当前脚倾斜角γ
l

r
作为踏地

离地足势的参数ω
le

re
和γ
le

re
而确定。
[0095]
在本公开的各种实施例中,踏地

离地足势可用于在各种游戏和应用中(如由游戏/应用控制进程504)改变所选对象。例如在攀爬游戏中,对象为支撑点;在图形用户界面(gui)应用中,对象可以是包括菜单项或应用程序图标。
[0096]
综上,根据本公开的各种实施例中,踏地

离地足势提供多个参数,包括第一脚指向方向角(如ω
le

re
)、第二脚指向方向角(例如ω
l1

r1
)和脚倾斜角(如γ
le

re
)。通常,(在游戏/应用中)由当前选择的对象可以确定一组可及的对象。之后可确定由第一脚指向角(如ω
le

re
)或第一脚指向方向角与第二脚指向方向角之间的差值(如ω
le

ω
l0
或ω
re

ω
r0
),和/或脚倾斜角参数(如γ
le

re
)到可及对象的映射。通过该映射可由(左/右脚)踏地

离地足势的参数确定一个或零个可及对象为目标对象。当检测到踏地

离地足势结束(当检测到用户的脚离开地面)时,可根据需要由该足势获得第一脚指向方向角(如ω
le

re
)、第二脚指向方向角(例如ω
l1

r1
)和脚倾斜角(如γ
le

re
)。基于得到的踏地

离地足势的参数和到可及对象的映射,可以从可及对象中确定目标对象,并生成选择目标对象的控制。
[0097]
注,根据本公开的各种实施例中,可仅用脚指向角ω
le

re
(即第一脚指向方向角)和/或脚倾角γ
le

re
由可及对象中确定目标对象。在这种情况下无需由踏地

离地足势获取第二脚指向方向角。
[0098]
在踏地

离地足势完成之前,即当(检测到)用户的左/右脚还在踏地时,可根据最新的用户左/右脚指向方向角ω
l

r
和脚倾斜角γ
l

r
得到待选目标对象,并在游戏/应用程序中显示待选目标对象以使用户/玩家知道当前踏地

离地足势控制的预期结果,并相应地调整控制以选择所要的目对象。待选目标对象可通过将当前的脚指向方向角ω
l

r
和当前脚倾斜角γ
l

r
作为踏地

离地足势的参数ω
le

re
和γ
le

re
而获取。注,第二脚指向方向角(例如ω
l1

r1
)可以在踏地

离地足势结束前(即当检测到用户的左/右脚仍在着地时)确定并用于待选目标对象的确定。
[0099]
在诸如滑雪、滑雪板、滑冰的体育游戏应用中,游戏角色的移动控制由在游戏2d平面中的当前移动方向和虚拟2d脚指向(对应于滑雪板、滑雪板、滑冰刀在游戏空间的二维平面中的指向)之间的关系决定。图14示出了根据本公开的各个实施例的示例滑雪游戏中,在
游戏空间的2d平面内游戏角色虚拟脚指向方向(对应于滑雪板的指向方向,即2001和2002)以及角色当前移动方向2000的关系。注,游戏应用中虚拟左/右脚的2d指向方向可由用户左/右脚的脚指向方向控制。
[0100]
图14(a)示出了左右虚拟脚指向方向,即2001和2002,与游戏角色的移动方向2000大致一致的情况。该情况对应于沿当前移动方向2000直线移动的控制。图14(b)可对应于游戏角色左转的控制。并可以通过虚拟脚指向方向2001、2002和当前移动方向2000之间的角度差来控制转弯速率。图14(c)可以对应于游戏角色右转的控制。图14(d)可对应于制动的控制。图14(e)可以对应于平行制动的控制。
[0101]
在本公开的各种实施例中,在诸如滑雪、滑冰的游戏中基于足势的移动控制方法包括i)根据测量的用户左和/或右脚的脚指向方向确定在2d游戏空间中虚拟左和/或右脚指向的方向,ii)基于游戏2d平面中虚拟脚指向方向与当前移动方向之间的差值,确定游戏角色的移动控制,包括直行、转弯、减速等。另外用户的左脚和右脚的脚触状态可用于确定相应的左/右虚拟脚(以及相应的左/右滑雪板、滑雪板、冰刀)在游戏中是否正在按压/接触地面,并用于确定是否应使用左和/或右虚拟脚指向方向来控制游戏角色的移动。
[0102]
在本公开的各种实施例中,角色的移动方向2000可以对应于用户的参考脚指向方向。例如,该参考脚指向ω
lref
或ω
rref
可以设置为当前角色移动开始时用户的左/右脚指向方向角度;或者,该参考脚指向方向角可以是通过本发明公开中的校准过程预先确定的用户脚指向方向角。在这种情况下,2d虚拟脚指向方向,即2001或2002与游戏角色的当前移动方向2000之间的角度差可以由测量/获取的用户脚指向方向角与参考脚指向方向角的差值(如ω
l

ω
lref
或ω
r

ω
rref
)得到。
[0103]
本公开还提供了一种存储程序指令的计算机可读存储介质。程序指令可以被加载到计算机或可编程数据处理设备,使得计算机或可编程数据处理设备通过执行程序指实现所公开的方法。
[0104]
虽然在此已经示出和描述了本公开的一些实施例,但是对于本领域技术人员来说,这些实施例显然仅为本公开的示例。在不脱离本公开的情况下,本领域的技术人员可得到各种根据本公开的变化的实现。在实现本公开时,可以采用这里描述的本公开的实施例的各种变化所得的方案。本公开中的各种实施例可进行多种不同组合,这样的组合应被认为是本公开的一部分。此外,本文中讨论的任一实施例的所有相关特征可以容易地适用于本文的其它实施例。以下权利要求旨在给出本发明的范围,并且由此涵盖在这些权利要求的方法和结构及其等同物。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1