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

基于Blast的实时物理破坏同步技术的制作方法

2022-04-16 15:24:08 来源:中国专利 TAG:

基于blast的实时物理破坏同步技术
技术领域
1.本发明涉及游戏开发技术领域,具体是基于blast的实时物理破坏同步技术。


背景技术:

2.随着游戏的发展,游戏设计者希望游戏中武器和角色技能的破坏能力不仅能针对人物和小型物件,而且能对游戏场景中的大型建筑造成物理破坏效果,从而丰富游戏的玩法。而在多人游戏中,物理破坏效果如何能够同步给所有的玩家,并且保证其效果的一致性,是当前需要解决的一个问题。
3.blast是nvidia开发的破坏计算库,能够支持游戏实现物理模拟的破坏效果。blast将物理学和图形学这两部分留给游戏本身来处理。它提供破坏的核心算法,将破坏的计算结果传递给游戏,更新物理和图形的数据。
4.unrealengine是一款游戏制作引擎,其具有物理计算能力和图形表现效果。blast针对unrealengine提供了一个插件,能够在unrealengine中实现物理破坏的效果。
5.现有技术的技术方案:
6.目前的多人同步的破坏效果,主要只同步破坏行为,即服务器将破坏事件同步到客户端,各客户端通过计算模拟物理或生成特效实现破坏效果;服务器和客户端上受到破坏的物体则完全被销毁,来确保破坏之后的效果一致,但各客户端上的破坏过程,如:碎块的出现和物理运动轨迹等,并不一致。
7.以《战地:硬仗》和《彩虹六号:围攻》为例:
8.《战地》的同步破坏效果主要是大规模的破坏,比如破坏掉整面墙,破坏的位置等参数会同步到客户端,表现效果以烟火扬尘类特效为主,破碎的碎块形状、飞行轨迹以及破坏后遗留的废墟效果均为客户端预设好的,并非模拟物理计算出的结果,破坏之后的特效和碎块会很快消失,每场战斗玩家每次破坏同一面墙之后,废墟的效果都是一样的(请参阅图2)。
9.《彩虹六号》的破坏效果更为细腻,破坏规模更小,例如在墙上破出一个洞。该方案同样是同步破坏参数,不过客户端的破坏效果是真实切割被破坏的物体来产生碎块,各客户端使用同样的切割方式来达到同样的破坏效果,然后通过客户端的物理计算模拟出碎块的飞行轨迹,再使用特效辅助破坏效果(请参阅图3和4)。
10.两个现有方案的缺陷:
11.《战地》的方案:
12.1、只适用于大规模大物体的破坏,因为其破坏计算是预设好的,并非切割被破坏物体,他的破坏只能让被破坏体在场景中整体消失,而不能产生局部破坏效果,例如破洞效果。
13.2、破坏后效果表现单一,因为其破坏后的废墟效果也是预设好的,和玩家破坏的方式,角度,力度等都无关,这与真实世界的逻辑是不一致的。
14.《彩虹六号》的方案:
15.1、破坏后碎块不能改变场景,只能消失。由于其碎块的物理模拟是由各客户端自行计算的,由于帧率波动、随机事件等导致计算的碎块分布结果很有可能不一致,所以碎块不能改变场景布局,只能消失。
16.2、碎块不能与玩家交互,如:产生伤害。由于各客户端碎块的飞行轨迹也是不同的,所以碎块不能影响玩家,否则某些客户端会造成穿帮的效果,如:看起来没有被砸中却受到了伤害。
17.因此,本发明提供了基于blast的实时物理破坏同步技术,以解决上述提出两个的问题:
18.1、在破坏过程中同步给客户端碎块的飞行轨迹,保证碎块在所有客户端的物理运动一致。使得碎块能和玩家交互而不会造成穿帮。
19.2、保证破碎后碎块的分布结果一致。使得碎块能够改变游戏场景。


技术实现要素:

20.本发明的目的在于提供基于blast的实时物理破坏同步技术,以解决上述背景技术中提出的问题。
21.为实现上述目的,本发明提供如下技术方案:
22.基于blast的实时物理破坏同步技术,具体步骤如下:
23.第一步:破坏事件发生时,将所有的参数告知客户端;
24.第二步:服务器和客户端使用blast库,根据破坏参数计算破坏得到结果,使用结果数据在场景中产生碎块;
25.第三步:服务器和客户端分别使用物理模拟,根据冲击力参数,实时计算出碎块的运动状态;
26.第四步:服务器端按照频率将所有碎块的位置、转角、速度、角速同步给各客户端;
27.第五步:客户端将客户端碎块的物理状态根据服务器同步来的数据和修正参数实时做平滑修正。
28.作为本发明进一步的方案:所述第一步中,参数包括位置、破坏范围、冲击力方向和大小。
29.作为本发明再进一步的方案:所述第二步中,客户端和服务器使用同样的库和参数能计算出相同的结果,产生相同的碎块数量、位置和形状。
30.作为本发明再进一步的方案:所述第三步中,碎块运行状态由渲染模块表现出来。
31.作为本发明再进一步的方案:所述第四步中,服务器端内设有同步模块,用于将碎块同步给客户端。
32.作为本发明再进一步的方案:所述第五步中,客户端内设有修正模块,用于保证各客户端与服务器数据一致。
33.与现有技术相比,本发明的有益效果是:
34.1、本发明能够完全同步物理破坏过程中服务器和各客户端碎块运动轨迹的一致,从而与场景中的角色产生相互作用。
35.2、本发明能保证破坏后服务器和各客户端的碎块位置分布均一致,从而能够由破坏改变环境且客户端不会出现穿帮。
附图说明
36.图1为基于blast的实时物理破坏同步技术的流程示意图。
37.图2为基于blast的实时物理破坏同步技术的背景技术中《战地》破坏后效果的示意图。
38.图3为基于blast的实时物理破坏同步技术的背景技术中《彩虹六号》破坏后效果的示意图。
39.图4为基于blast的实时物理破坏同步技术的背景技术中《彩虹六号》现有破坏后效果的流程示意图。
具体实施方式
40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.请参阅图1~4,本发明实施例中,基于blast的实时物理破坏同步技术,具体步骤如下:
42.第一步:破坏事件发生时,将所有的参数告知客户端,所述参数包括位置、破坏范围、冲击力方向和大小;
43.第二步:服务器和客户端使用blast库,根据破坏参数计算破坏得到结果,使用结果数据在场景中产生碎块,所述客户端和服务器使用同样的库和参数能计算出相同的结果,产生相同的碎块数量、位置和形状;
44.第三步:服务器和客户端分别使用物理模拟,根据冲击力参数,实时计算出碎块的运动状态,所述碎块运行状态由渲染模块表现出来;
45.第四步:服务器端按照频率将所有碎块的位置、转角、速度、角速同步给各客户端,所述服务器端内设有同步模块,用于将碎块同步给客户端;
46.第五步:客户端将客户端碎块的物理状态根据服务器同步来的数据和修正参数实时做平滑修正,所述客户端内设有修正模块,用于保证各客户端与服务器数据一致。
47.本发明中服务器端加入了破坏同步模块,可实时同步破坏碎块物理数据;客户端加入了物理状态插值修正模块,可以平滑修正碎块状态与服务器一致;破坏过程加入了碎块数据同步流程,保证各客户端的破坏过程和结果都与服务器一致。
48.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献