角色攀爬方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:37437003发布日期:2024-03-25 19:35阅读:37来源:国知局
角色攀爬方法、装置、计算机设备及计算机可读存储介质与流程

本技术涉及游戏设计,特别是涉及一种角色攀爬方法、装置、计算机设备及计算机可读存储介质。


背景技术:

1、近年来,游戏设计技术飞速发展,为了更好的游戏体验,游戏开发人员对游戏的要求也越来越高,现在市面上的很多游戏都十分注重玩家在游戏时与游戏世界中的地形、建筑等的交互,所以在游戏中增加了角色的攀爬、翻越等功能,使得游戏的玩法增加,玩家可以体会别样的游戏感受。

2、相关技术中,游戏在设计时,游戏开发人员会在游戏中设置一些可以攀爬的建筑,沿着可以攀爬的建筑制作攀爬路线,或者设置一些特定的攀爬玩法、攀爬场景,这样,玩家在游戏时,便可以控制自己的角色在游戏世界中按照设计的攀爬路线、攀爬玩法以及攀爬场景进行攀爬,实现对游戏世界的探索。

3、在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

4、有些游戏对可以攀爬的地形、建筑、物件等,是有制作标准限制的,比如角度、大小、高度、厚度等等。所以,攀爬时,人物交互的动作按照设定好的动作规范执行,就可以表现得比较合理;但是,如果地形、建筑、物件等是不做任何限制时,交互动作就会表现得不够自然合理了,如抖动、穿模、反关节、浮空等等,游戏的细节展示和真实感较差,导致游戏失真且游戏的角色缺乏生命力,无法为玩家带来更新奇的游戏体验。


技术实现思路

1、有鉴于此,本技术提供了一种角色攀爬方法、装置、计算机设备及计算机可读存储介质,主要目的在于解决目前游戏的细节展示和真实感较差,导致游戏失真且游戏的角色缺乏生命力,无法为玩家带来更新奇的游戏体验的问题。

2、依据本技术第一方面,提供了一种角色攀爬方法,该方法包括:

3、在检测到虚拟角色处于攀爬状态的条件下,确定所述虚拟角色胶囊体与所述虚拟角色攀爬对象地形之间的物理碰撞检测数据;

4、依据所述物理碰撞检测数据,对所述虚拟角色当前的攀爬姿态进行调整,以使所述虚拟角色模型紧贴所述攀爬对象地形进行攀爬。

5、可选地,所述物理碰撞检测数据包括所述虚拟角色与所述攀爬对象地形的碰撞点位置和所述碰撞点位置对应的法线数据,通过所述法线数据计算得到所述虚拟角色胶囊体的朝向,通过所述碰撞点位置计算所述虚拟角色的骨骼模型位置并通过矩阵转换得到所述虚拟角色骨骼模型相对于所述虚拟角色胶囊体的相对位置,将所述相对位置应用,以使所述虚拟角色骨骼模型紧贴所述攀爬对象地形。

6、可选地,所述依据所述物理碰撞检测数据,对所述虚拟角色当前的攀爬姿态进行调整,包括:

7、以所述虚拟角色的胶囊体为基准,在水平方向环形、垂直方向分层向所述攀爬对象进行射线检测,得到法线数据组和碰撞点位置数据组;

8、基于所述法线数据组计算平均法线值,以所述平均法线值的横轴方向作为所述虚拟角色的朝前方向,计算所述虚拟角色的角色朝向和切斜值,以及按照所述角色朝向和所述切斜值对所述胶囊体的朝向进行调整;

9、基于所述碰撞点位置数据组计算平均位置值,以所述平均位置值计算所述虚拟角色的骨骼模型位置,对所述骨骼模型位置进行矩阵转换,得到骨骼模型相对于所述胶囊体的相对位置,以及按照所述相对位置对所述虚拟角色的胶囊体进行调整。

10、可选地,所述在水平方向环形、垂直方向分层向所述攀爬对象进行射线检测,得到法线数据组和碰撞点位置数据组,包括:

11、从所述胶囊体的顶端到底端,将所述胶囊体划分为预设数目的层;

12、对所述预设数目的层中的每一层执行以下处理:以所述胶囊体为基准,在水平方向上每隔预设角度进行射线检测,以及获取基于射线检测返回的检测结果,将所述检测结果携带的碰撞点位置和法线信息存入缓存数组,直至当前射线检测的角度返回至射线检测的起始角度;

13、在所述缓存数组中获取在所述预设数目的层中确定的多个法线信息,生成包括所述多个法线信息的所述法线数据组;

14、在所述缓存数组中获取在所述预设数目的层中确定的多个碰撞点位置,生成包括所述多个碰撞点位置的所述碰撞点位置数据组。

15、可选地,所述方法还包括:

16、在所述虚拟角色攀爬的过程中,根据所述虚拟角色在所述攀爬对象地形的攀爬姿态,对所述虚拟角色肢体部分的攀爬肢体参数进行预测,所述虚拟角色攀爬姿态包括所述虚拟角色肢体部分攀爬姿态,所述攀爬肢体参数至少包括肢体放置位置、肢体角度其中任意一项或两项;

17、根据所述攀爬肢体参数调整所述虚拟角色肢体部分攀爬姿态,以使所述虚拟角色肢体部分模型紧贴所述攀爬对象地形进行攀爬。

18、可选地,所述在所述虚拟角色攀爬的过程中,根据所述虚拟角色在所述攀爬对象地形的攀爬姿态,对所述虚拟角色肢体部分的攀爬肢体参数进行预测,包括:

19、在所述虚拟角色攀爬过程中,获取所述虚拟角色当前所述攀爬姿态,利用逆向运动学算法,计算所述虚拟角色的肢体部分位置参数,基于所述肢体部分位置参数计算所述虚拟角色的肢体部分的放置位置;

20、根据所述肢体部分的放置位置与所述攀爬对象地形碰撞点法线信息,计算所述肢体部分旋转的肢体角度;

21、将所述放置位置和所述肢体角度作为所述攀爬肢体参数。

22、可选地,所述利用逆向运动学算法,计算所述虚拟角色的肢体部分位置参数,基于所述肢体部分位置参数计算所述虚拟角色的肢体部分的放置位置,包括:

23、以所述虚拟对象的胶囊体当前所处位置为基准,在所述胶囊体顶部竖直方向向上预设高度、水平方向向前预设长度进行球形检测,确定头部位置点,其中,所述胶囊体的高度是所述预设高度的二倍,所述预设长度是所述胶囊体的半径长度的四倍;

24、在所述胶囊体中间部位水平方向向前所述预设长度进行球形检测,确定中间部分位置点;

25、利用所述逆向运动学算法,对所述头部位置点和所述中间部分位置点进行计算,得到所述肢体部分位置参数;

26、按照所述肢体部分位置参数对所述虚拟角色进行调整,以及在调整后的虚拟角色上确定四肢骨骼点;

27、从所述四肢骨骼点水平向所述攀爬对象进行射线检测,确定所述射线检测在所述攀爬对象上的碰撞点,以及将所述碰撞点作为所述虚拟角色的肢体部分的放置位置。

28、可选地,所述方法还包括:

29、当从所述四肢骨骼点水平向所述攀爬对象进行的射线检测未与所述攀爬对象发生碰撞时,从所述中间部分位置点水平向所述攀爬对象进行射线检测,确定所述射线检测在所述攀爬对象上的碰撞点作为基准点;

30、获取固定偏移量,以所述四肢骨骼点为起始向所述基准点的方向移动所述固定偏移量,确定一位置点,以及将所述位置点作为所述虚拟角色的肢体部分的放置位置。

31、可选地,所述根据所述肢体部分的放置位置与所述攀爬对象地形碰撞点法线信息,计算所述肢体部分旋转的肢体角度,包括:

32、在所述肢体部分上确定多个预设位置点,分别确定所述多个预设位置点中每个预设位置点与所述攀爬对象的碰撞点,以及获取碰撞点的碰撞点法线信息,得到多个碰撞点法线信息;

33、对所述多个碰撞点法线信息进行向量和计算,得到所述肢体部分旋转的肢体角度。

34、可选地,所述根据所述攀爬肢体参数调整所述虚拟角色肢体部分攀爬姿态,以使所述虚拟角色肢体部分模型紧贴所述攀爬对象地形进行攀爬,包括:

35、确定所述攀爬肢体参数指示的放置位置,控制所述虚拟角色的四肢由当前位置移动至所述放置位置;

36、按照所述攀爬肢体参数指示的肢体角度对所述虚拟角色的四肢进行调整;

37、按照所述虚拟角色的四肢当前所处位置和角度,对所述虚拟角色的关节部分进行位置和角度的调整,以使所述关节部分的动画表现与所述虚拟角色的四肢相匹配。

38、依据本技术第二方面,提供了一种角色攀爬装置,该装置包括:

39、确定模块,用于在检测到虚拟角色处于攀爬状态的条件下,确定所述虚拟角色胶囊体与所述虚拟角色攀爬对象地形之间的物理碰撞检测数据;

40、调整模块,用于依据所述物理碰撞检测数据,对所述虚拟角色当前的攀爬姿态进行调整,以使所述虚拟角色模型紧贴所述攀爬对象地形进行攀爬。

41、可选地,所述物理碰撞检测数据包括所述虚拟角色与所述攀爬对象地形的碰撞点位置和所述碰撞点位置对应的法线数据,通过所述法线数据计算得到所述虚拟角色胶囊体的朝向,通过所述碰撞点位置计算所述虚拟角色的骨骼模型位置并通过矩阵转换得到所述虚拟角色骨骼模型相对于所述虚拟角色胶囊体的相对位置,将所述相对位置应用,以使所述虚拟角色骨骼模型紧贴所述攀爬对象地形。

42、可选地,所述调整模块,用于以所述虚拟角色的胶囊体为基准,在水平方向环形、垂直方向分层向所述攀爬对象进行射线检测,得到法线数据组和碰撞点位置数据组;基于所述法线数据组计算平均法线值,以所述平均法线值的横轴方向作为所述虚拟角色的朝前方向,计算所述虚拟角色的角色朝向和切斜值,以及按照所述角色朝向和所述切斜值对所述胶囊体的朝向进行调整;基于所述碰撞点位置数据组计算平均位置值,以所述平均位置值计算所述虚拟角色的骨骼模型位置,对所述骨骼模型位置进行矩阵转换,得到骨骼模型相对于所述胶囊体的相对位置,以及按照所述相对位置对所述虚拟角色的胶囊体进行调整。

43、可选地,所述调整模块,用于从所述胶囊体的顶端到底端,将所述胶囊体划分为预设数目的层;对所述预设数目的层中的每一层执行以下处理:以所述胶囊体为基准,在水平方向上每隔预设角度进行射线检测,以及获取基于射线检测返回的检测结果,将所述检测结果携带的碰撞点位置和法线信息存入缓存数组,直至当前射线检测的角度返回至射线检测的起始角度;在所述缓存数组中获取在所述预设数目的层中确定的多个法线信息,生成包括所述多个法线信息的所述法线数据组;在所述缓存数组中获取在所述预设数目的层中确定的多个碰撞点位置,生成包括所述多个碰撞点位置的所述碰撞点位置数据组。

44、可选地,所述装置还包括:

45、预测模块,用于在所述虚拟角色攀爬的过程中,根据所述虚拟角色在所述攀爬对象地形的攀爬姿态,对所述虚拟角色肢体部分的攀爬肢体参数进行预测,所述虚拟角色攀爬姿态包括所述虚拟角色肢体部分攀爬姿态,所述攀爬肢体参数至少包括肢体放置位置、肢体角度其中任意一项或两项;

46、所述调整模块,还用于根据所述攀爬肢体参数调整所述虚拟角色肢体部分攀爬姿态,以使所述虚拟角色肢体部分模型紧贴所述攀爬对象地形进行攀爬。

47、可选地,所述预测模块,用于在所述虚拟角色攀爬过程中,获取所述虚拟角色当前所述攀爬姿态,利用逆向运动学算法,计算所述虚拟角色的肢体部分位置参数,基于所述肢体部分位置参数计算所述虚拟角色的肢体部分的放置位置;根据所述肢体部分的放置位置与所述攀爬对象地形碰撞点法线信息,计算所述肢体部分旋转的肢体角度;将所述放置位置和所述肢体角度作为所述攀爬肢体参数。

48、可选地,所述预测模块,用于以所述虚拟对象的胶囊体当前所处位置为基准,在所述胶囊体顶部竖直方向向上预设高度、水平方向向前预设长度进行球形检测,确定头部位置点,其中,所述胶囊体的高度是所述预设高度的二倍,所述预设长度是所述胶囊体的半径长度的四倍;在所述胶囊体中间部位水平方向向前所述预设长度进行球形检测,确定中间部分位置点;利用所述逆向运动学算法,对所述头部位置点和所述中间部分位置点进行计算,得到所述肢体部分位置参数;按照所述肢体部分位置参数对所述虚拟角色进行调整,以及在调整后的虚拟角色上确定四肢骨骼点;从所述四肢骨骼点水平向所述攀爬对象进行射线检测,确定所述射线检测在所述攀爬对象上的碰撞点,以及将所述碰撞点作为所述虚拟角色的肢体部分的放置位置。

49、可选地,所述预测模块,还用于当从所述四肢骨骼点水平向所述攀爬对象进行的射线检测未与所述攀爬对象发生碰撞时,从所述中间部分位置点水平向所述攀爬对象进行射线检测,确定所述射线检测在所述攀爬对象上的碰撞点作为基准点;获取固定偏移量,以所述四肢骨骼点为起始向所述基准点的方向移动所述固定偏移量,确定一位置点,以及将所述位置点作为所述虚拟角色的肢体部分的放置位置。

50、可选地,所述预测模块,用于在所述肢体部分上确定多个预设位置点,分别确定所述多个预设位置点中每个预设位置点与所述攀爬对象的碰撞点,以及获取碰撞点的碰撞点法线信息,得到多个碰撞点法线信息;对所述多个碰撞点法线信息进行向量和计算,得到所述肢体部分旋转的肢体角度。

51、可选地,所述调整模块,用于确定所述攀爬肢体参数指示的放置位置,控制所述虚拟角色的四肢由当前位置移动至所述放置位置;按照所述攀爬肢体参数指示的肢体角度对所述虚拟角色的四肢进行调整;按照所述虚拟角色的四肢当前所处位置和角度,对所述虚拟角色的关节部分进行位置和角度的调整,以使所述关节部分的动画表现与所述虚拟角色的四肢相匹配。

52、依据本技术第三方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述方法的步骤。

53、依据本技术第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。

54、借由上述技术方案,本技术提供的一种角色攀爬方法、装置、计算机设备及计算机可读存储介质,本技术在检测到虚拟角色处于攀爬状态的条件下,确定虚拟角色胶囊体与虚拟角色攀爬对象地形之间的物理碰撞检测数据,依据物理碰撞检测数据,对虚拟角色当前的攀爬姿态进行调整,以使虚拟角色模型紧贴攀爬对象地形进行攀爬,根据算法自适应不同的地形,调整虚拟角色的姿态和动作,使得虚拟角色的模型可以紧贴地形,手、脚和腿能够表现得自然合理,身体各个部位处于合适的位置,提升游戏的细节展示和真实感,避免游戏失真,为游戏角色赋予生命力,给玩家带来更加新奇的游戏体验。

55、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1