一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种VR角色控制方法与流程

2022-02-20 22:29:49 来源:中国专利 TAG:

一种vr角色控制方法
技术领域
1.本技术属于vr领域,尤其涉及一种vr角色控制方法。


背景技术:

2.在现有的vr游戏中,存在着一些问题:一是由于虚拟和现实的物理差异,操纵者必然无法保证自己的动作和游戏中完全一致,这会导致穿模、和游戏物体交互不真实等问题;二是大部分vr采用站姿进行角色控制,虽然更加拟真一些,但很消耗体力,不适合在家长时间且舒适地游玩vr,而坐姿下的移动输入和下肢控制并不完善,相比站姿少了很多自由度。


技术实现要素:

3.本发明的目的在于克服现有技术中的缺陷与不足,提供一种vr角色控制方法,一方面利用操纵者与游戏角色的动作不一致性,通过

灵魂体’定位点牵引法避免了vr游戏中的穿模且实现了与vr中虚拟物品更加真实的交互;另一方面提供了一种坐姿下通过特定步骤解决人体中心移动输入的方法。
4.为了实现上述目的,本发明按照以下技术方案实现:s1:根据上半身定位设备和

灵魂体’定位点牵引法控制上半身位姿;s2:根据下肢控制器的输入信息控制下半身位姿;s3:根据vr头显的旋转信息和手部控制器上的单个按键控制人体中心的三自由度旋转;s4:通过下肢控制器的特定操作控制人体中心的二自由度水平平移;s5:通过下肢控制器的特定操作和游戏地形控制防跌倒碰撞体的高度,进而控制人体中心的垂直平移。
5.优选地,所述上半身定位设备包括有一个vr头显,一对大臂定位器,一对手部控制器,都必须有六自由度的信息;其中手部控制器最好包含手指的位姿信息,比如使用valve index的指虎手柄。
6.进一步,所述步骤s1中的

灵魂体’定位点牵引法具体步骤为:在

灵魂体’的特定部位上设置有定位点,角色实体对应部位也设置有定位点,其中角色实体上的定位点带有刚体组件且相对于身体某个部位固定;以角色实体中的定位点为向量起点,灵魂体中的相应定位点作为向量终点,定义向量a;每一个物理帧赋给角色实体上的定位点一个相对于人体中心的新速度v,v等于向量a除以物理帧刷新时间,若a模长大于设定值则不改变定位点的速度;同时根据定位点的质量,之前的速度和动量定理在下躯干施加反作用力。
7.优选地,所述下肢控制器采用申请号为202010133708x中的下肢控制器。
8.进一步,所述步骤s3中控制人体中心的三自由度旋转的具体步骤为:根据初始头显四元数,t时刻头显的四元数,可以计算出由到的旋转向量n;操纵者按下手部控制器上的按键,且n对应的旋转角大于设定值,则游戏角色的人体中心会绕n旋转;若角色处于地面状态,则先将n投影到世界坐标系的竖直轴获得向量ny,然后进行同样的操作。
9.进一步,所述步骤s4中控制人体中心的二自由度水平平移的具体步骤为:对于单个下肢控制器的输入数据,建立对应的x,y,z相空间,每一个物理帧获得一个相坐标(t),根据上一帧的相坐标点可以获得一个相速度(t),计算此时的(t)=(t)(t);将一个时间周期内的(t)平均化得到,再计算,k为控制系数;将两个下肢控制器得到的速度相加得到合速度,在一个时间周期结束时赋给人体中心合速度,并保证人体中心沿自身坐标竖直轴速度不变。
10.进一步,所述步骤s5中控制人体中心的垂直平移的具体步骤为:添加一个防跌倒碰撞体,其水平世界坐标与下躯干水平世界坐标相同,初始位置位于下躯干下方;每一个物理帧获取地面高度h,若h与前一帧中的地面高度之差d小于设定值,则防跌倒碰撞体沿竖直轴移动d,其中防跌倒碰撞体的高度被限制在h lmin与h lmax之间;当左右下肢控制器输入的y值均大于设定值,防跌倒碰撞体的高度持续降低;当左右下肢控制器输入的y值均小于设定值,防跌倒碰撞体的高度持续升高并且自身具有动量;当左右下肢控制器输入的y值均位于一定范围内,防跌倒碰撞体的高度持续升高但自身不具有动量。
11.本发明的好处是:1、通过

灵魂体’定位点牵引法,角色实体会根据玩家的实际位姿和游戏中的物理限制呈现一个合理的姿态,并且玩家可以控制灵魂体和角色实体的距离,从而改变施加在与角色实体碰撞的游戏物体上的力,进而实现不同的交互效果;比如挥舞轻的武器速度快,重的武器速度慢,用身体部位按压大质量物体可以使人体中心位置改变,如爬梯子等;这些以前较难实现的功能现在只需要通过添加刚体、碰撞体、物理材质等纯物理手段就可以实现了,很少甚至不需要用到传统的逻辑判断手段。2、人体中心的旋转控制相比直接用摇杆旋转节省了操作键,而人体中心的平移通过类似踏踏板的运动控制,这使得有关人体中心的移动都是让玩家有了小范围的运动趋势再让虚拟人物移动,既控制方便舒适,又可以一定程度上缓解晕动症。
附图说明
12.图1是本发明提供的vr角色控制方法步骤流程图。
13.图2是本发明实施例提供的下肢控制器的坐标示意图。
具体实施方式
14.为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
15.将人体主要看作是由头部,一双大臂,一双小臂,一双手,上躯干,下躯干,一双大腿,一双小腿,一双脚这15个刚体通过14个关节连接而成;其中腰、颈、髋、肩、腕关节视作拥有三自由度,脚踝视作拥有二自由度,膝、肘关节视作拥有一自由度。将下躯干视作人体中心,对于角色人体中心的六自由度移动操作都是作用在下躯干上的,同时假设玩家采取坐姿进行游戏时操纵者下躯干的位姿不发生大的改变。
16.玩家佩戴好相应硬件后,开始阶段要获取四个数据,分别是头显中心到颈部的距
离(简称头-颈),大臂定位器中心到对应肩部的距离(简称大臂-肩),大臂定位器中心到对应肘部的距离(简称大臂-肘),手部控制器中心到对应腕部的距离(简称手-腕),获取方式不限。
17.以操纵者的下躯干中心作为坐标原点,读取上半身五个传感器的位姿(手部传感器可以包含手指信息,这里方便讨论将一整个手部看作刚体,因为即使有手指最后的处理方法也是类似的);根据头显位姿和头-颈计算颈部坐标,大臂位姿和大臂-肩与大臂-肘计算肩关节与肘关节坐标,手部控制器位姿和手-腕计算腕关节坐标。
18.游戏角色上半身(即头部,一双大臂,一双小臂,一双手,上躯干)可分为

灵魂体’和角色实体,其中灵魂体的动作和玩家真实动作保持完全一致并且不受游戏中物理定律的支配,而角色实体在没有碰撞时能够与灵魂体重合,受到碰撞时遵守游戏里的物理定律且拥有向灵魂体运动的趋势。根据两个肩关节和颈关节的三个坐标可以确定上躯干灵魂体的位姿;根据肘关节和腕关节的坐标以及关节约束条件可以确定小臂灵魂体的位姿;至此灵魂体相对于下躯干的位姿完全确定。
19.在灵魂体的腕、肘、肩、头上任意左右两点、手上任意两点(如果有手指追踪器可以多加上手指)设置定位点;角色实体对应部位也设置有定位点,角色实体上的定位点带有刚体组件,不开启重力,且与上位肢体固定(比如手腕相对小臂固定,手肘相对大臂固定),本实施例中定位点质量设定为游戏角色总质量的百分之一(如果有手指追踪器,由于手指关节点比较多,手指关节点的质量可以再小一些,比如游戏角色千分之一)。
20.定位点牵引法,具体地说,以角色实体中的定位点为向量起点,灵魂体中的定位点作为向量终点,定义向量a;每一个物理帧赋给角色实体上的定位点一个相对于人体中心的新速度v,v等于向量a除以物理帧刷新时间;在本实施例中,若a模长数值大于人体高度的1/10则不改变定位点的速度;同时根据定位点的质量,之前的速度和动量定理在下躯干施加反作用力。
21.本实施例中,所述下肢控制器采用申请号为202010133708x中的下肢控制器,对应下肢控制方法大致相同,即将对腿部位姿的操作全部转化为对于脚踝关节的操作,但不同的是本实施例中是直接根据下肢控制器的输入数据给脚踝关节点赋值相应速度和角速度,而不需要用到前述专利中的任何修正方案和控制人体中心的方法,因为在本发明中所有身体部位自带有关节与刚体组件,腿部位姿会自动根据关节约束条件进行修正。
22.接下来讨论下躯干(人体中心)的六自由度运动;现实中人是通过精巧地运用摩擦力、重力与自身关节等来实现这些功能的,但是在游戏中坐姿下要实现这样的效果几乎不可能,因为各种误差的存在,只要有轻微的扰动人体中心的运动就会偏离预计轨道,所以现阶段坐姿下只有用直接模拟运动的方法来控制。
23.先考虑人体中心的三自由度旋转:在本实施例中,初始状态下操纵者头部姿态与下躯干姿态一致,即两者的四元数相等;根据初始头显四元数,t时刻头显的四元数,可以计算出由到的旋转向量n;操纵者按下手部控制器上的按键,且n对应的旋转角大于20
°
,则游戏角色的人体中心会绕n旋转(角速度可以不变也可以正比于n);若角色处于地面状态(一个bool变量,由游戏本身判定或者玩家自己控制),则先将n投影到世界坐标系的y轴(即竖直轴)获得向量ny,然后进行同样的操作。
24.然后考虑人体中心的水平平移,比如玩家要向前进,就用类似踩自行车踏板前进
的方式操作vr下肢控制器,向后和左右移动同理;如图2,在本实施例中,具体的算法为,对于单个下肢控制器的输入数据,建立对应的x,y,z相空间(r方向不参与人体中心的控制,不考虑),每一个物理帧获得一个相坐标(t),根据上一帧的相坐标点可以获得一个相速度(t),计算此时的(t)=(t)(t);将0.5s内的(t)平均化得到,再计算,k为控制系数,k值取决于具体游戏的特性;将两个下肢控制器得到的速度相加得到合速度,在一个时间周期结束时赋给人体中心合速度(合速度位于人体中心自身坐标系的x,z平面,大小存在上限,上限也取决于具体游戏的特性),并保证人体中心沿自身坐标竖直轴速度不变;如果游戏角色处于类似载具的运动物体上,则合速度作为相对于载具的速度。
25.最后考虑人体中心的竖直平移,在平地上由于重力的存在,普通人物很少有沿y轴的大范围运动,所以沿y轴的运动大致可以分为蹲下,站起,跳起以及受地形影响的变化。
26.在本实施例中,添加一个防跌倒碰撞体,其水平世界坐标与下躯干水平世界坐标相同,初始位置位于下躯干下方;每一个物理帧防跌倒碰撞体向下发射射线获取地面高度h,若h与前一帧中的地面高度之差d小于下躯干高度的一半(目的是防止碰撞体穿过下躯干),则防跌倒碰撞体沿竖直轴移动d,其中防跌倒碰撞体的高度被限制在h lmin与h lmax之间,lmin取人体高度的1/4,lmax取人体高度的1/2;当双脚向上抬起超过一定范围,即左右下肢控制器输入的y值均大于0.8(y值最大为1),防跌倒碰撞体的高度持续降低,效果为人物蹲下;当双脚向下按压超过一定范围,即左右下肢控制器输入的y值均小于-0.8(y值最小为-1),防跌倒碰撞体的高度持续升高并自身具有动量,效果为人物跳跃;当双脚向下按压适当距离,即左右下肢控制器输入的y值均位于-0.5到-0.8范围内时,防跌倒碰撞体的高度持续升高,但这里直接给位置赋值,没有用到刚体组件,不会提供动量,效果为人物站起。
27.本发明并不局限于上述具体实施方式,如果对本发明的各种改动或变型不脱离本发明的精神和范围,倘若这些改动和变型属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献