游戏的碰撞检测方法、装置、存储介质以及计算机设备与流程
本技术涉及一种游戏开发,特别是涉及一种游戏的碰撞检测方法、装置、存储介质以及计算机设备。
背景技术:
1、游戏开发中,在角色执行攻击动作时,通常采用碰撞检测机制判定攻击是否命中敌方目标,以驱动后续的伤害计算、命中特效、击退效果和事件触发等游戏逻辑,因此,碰撞检测是动作游戏战斗系统的核心技术支柱,能够直接影响游戏的手感、公平性和性能表现。
2、目前,现有游戏中碰撞检测通常在服务端中进行,此时,服务器端完整运行角色的骨骼动画系统,每帧更新所有战斗角色的骨骼层级变换,从中提取碰撞盒挂载骨骼的世界空间位置用于碰撞检测。进而采用单次全角度扫掠检测方式,即在每个碰撞检测窗口内,仅对窗口首尾的两个世界,执行一次线性扫掠,或全角度弧形扫掠,判断是否产生碰撞。但是,服务器需要对每个参与战斗的角色运行完整的骨骼动画进行更新,包括动画蓝图计算、多骨骼混合、ik解算、物理模拟等,而为每个角色逐帧运行完整的动画更新将消耗海量cpu计算资源,导致服务器单机承载能力急剧下降。同时,针对渲染帧率波动场景以及大角度旋转场景时,采用单次全角度扫掠检测方式会增加漏检风险,增加计算开销。因此,亟需一种游戏碰撞检测方法来解决上述问题。
技术实现思路
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、本技术提供了一种游戏的碰撞检测方法、装置、存储介质以及计算机设备,与现有技术相比,本技术实施例通过加载游戏的资产数据对象,所述资产数据对象为基于不同碰撞体的变换曲线信息预先烘焙得到的结构化数据;响应于碰撞检测指令,按照预设检测时间间隔对渲染帧进行拆分,得到多个检测子窗口,并基于双端确定性参数在所述检测子窗口中进行世界空间变换,得到所述碰撞体的姿态变换;对所述检测子窗口计算首尾角度差,生成碰撞轨迹关键点序列,并基于所述碰撞轨迹关键点序列、所述资产数据对象以及所述姿态变换进行碰撞扫掠检测,得到碰撞检测结果,所述碰撞轨迹关键点序列中的相邻两个关键点组成一个碰撞扫掠段,实现游戏中攻击碰撞检测效果更加精准流程,服务端的cpu资源大幅节约,同等算力可支撑更多并发玩家,降低单位在线用户的服务器成本,减少计算开销,从而提高不同场景下碰撞检测的精度。
46、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com