欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2020112506359
申请人: 深圳市瑞立视多媒体科技有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2025-12-19
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种在虚拟现实环境中实现拧螺丝的方法,其特征在于,包括以下步骤:

在虚幻引擎中添加一个螺丝刀类ScrewDiver和一个螺丝类Screw;

所述螺丝刀类ScrewDiver包括第一组件Arrow和第二组件ArrowNoMove;所述组件ArrowNoMove固定在螺丝刀上;所述第一组件Arrow初始位置和初始方向均与第二组件ArrowNoMove的位置和方向一致;

当检测到螺丝刀和螺丝发生碰撞时,进行拧螺丝步骤:将第一组件Arrow附着到玩家的手上,经过一帧时间后,获取第一组件Arrow的方向向量,计算第一组件Arrow和第二组件ArrowNoMove当前的方向向量在垂直于螺丝刀方向轴的平面上的投影的夹角LocalRot;判断玩家的手的旋转方向为顺时针还是逆时针,根据判断的结果使螺丝旋转一个角度LocalRot;

判断当前螺丝是否拧完,若否,继续进行下一帧的拧螺丝步骤,若是,结束。

2.根据权利要求1所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,在计算得到第一组件Arrow和第二组件ArrowNoMove当前的方向向量在垂直于螺丝刀方向轴的平面上的投影的夹角LocalRot后,把第一组件Arrow重置到螺丝刀上。

3.根据权利要求1所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,当检测到螺丝刀和螺丝发生碰撞时,调用虚幻引擎自带的碰撞框碰撞调用函数BeginOverlap,使螺丝刀接收到BeginOverlap事件,接着调用箭头附着函数SetLastVecPoint,将第一组件Arrow附着到玩家手上。

4.根据权利要求1所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,所述判断玩家的手的旋转方向,具体为:令第一组件Arrow当前在垂直于螺丝刀方向轴的平面的上的投影向量为向量ArrowProjection,第二组件ArrowNoMove当前的向量为向量ArrowNoMove;

将向量ArrowNoMove和向量ArrowProjection进行叉乘得出的向量与螺丝刀方向进行比较,如果方向一致则玩家的手在这一帧的旋转方向是顺时针,如果方向相反则玩家的手在这一帧方向的旋转方向为逆时针。

5.根据权利要求4所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,当玩家的手的旋转方向为逆时针时,将角度LocalRot的值乘上-1后,对角度LocalRot重新赋值。

6.根据权利要求1或5所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,还包括以下步骤:设置螺丝刀的转动有效范围值,当角度LocalRot超出转动有效范围值的范围时,将LocalRot的值设置为0。

7.根据权利要求1所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,还包括以下步骤:在判断玩家的手的旋转方向步骤之后,判断玩家的手的旋转方向是否与螺丝实际需要的旋转方向一致,若否,结束执行该帧的任务。

8.根据权利要求1所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,所述根据判断的结果使旋转一个角度LocalRot,具体为:调用虚幻引擎自带的增量旋转的函数AddLocalRotation使螺丝旋转一个角度LocalRot。

9.根据权利要求1所述的在虚拟现实环境中实现拧螺丝的方法,其特征在于,所述判断当前螺丝是否拧完,具体为:令从头到尾完成螺丝的松紧需要旋转的角度为SuccessAngle,令螺丝的当前进度为CurrentProgress,螺丝每次转动后更新CurrentProgress的值,判断CurrentProgress的值是否大于SuccessAngle的值,若是,则表示螺丝已拧完。