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

一种载具位置修正方法、装置、第二客户端、第二电子设备与流程

2021-12-14 23:03:00 来源:中国专利 TAG:


1.本发明涉及信息处理技术领域,尤其涉及一种载具位置修正方法、装置、第二客户端、电子设备。


背景技术:

2.用户对游戏画面、虚拟现实效果的要求越来越强烈,导致游戏的场景设计的更加宏大。随着游戏开发制作的水平越来越高,游戏的场景也越来越宏大,细节也越来越精细。制作精良的游戏带给玩家更好的游戏体验。但是,大场景、细节多会占用大量的资源,对运行游戏的机器性能要求很高,如果机器性能跟不上需求,很可能产生卡顿的现象,导致用户游戏体验变差。比如,在手机上运行多人共同参与的网络游戏,尤其是2d、3d效果的网络游戏,如果游戏对手机的资源占用太高,将导致手机发烫、游戏卡顿、延迟发生,间接导致用户的流失,在手机端又想实现像pc端一样效果的游戏受到手机硬件和网络的诸多限制,因此通过改善软件的设计方案来解决占用硬件资源的问题,变得越来越迫切。


技术实现要素:

3.本发明提供一种载具位置修正方法、装置、第二客户端、第二电子设备,以解决上述技术问题中的至少一个。
4.本发明实施例提供一种载具位置修正方法,所述方法应用于载具物理模拟系统,所述系统包括服务器及第二客户端,所述第二客户端用于根据载具物理模拟方法对载具m进行物理模拟,并对所述载具m的位置进行修正,所述载具位置修正方法包括:
5.获取所述载具m修正前的位置a;
6.接收所述服务器发送的所述载具m的坐标位置信息,并隐藏所述载具m;
7.在所述位置a设置与所述载具m外观模型相同的载具n;
8.控制所述载具n跟随所述载具m进行运动,并保持所述载具n与所述载具m相对静止,并且不对所述载具n进行物理模拟;
9.在n秒内,将所述载具n平移至所述载具m的坐标位置;
10.在所述载具m与所述载具n之间的相对偏移向量c线性减少至0的情况下,隐藏所述载具n并显示所述载具m。
11.可选的,所述方法还包括:获取所述载具m修正后的位置b;
12.所述相对偏移向量初始时为由所述位置a指向所述位置b的向量,其中,相对偏移向量c=b-a。
13.可选的,所述载具物理模拟方法应用于所述载具物理模拟系统,其中,所述载具物理模拟系统还包括第一客户端,第一用户通过所述第一客户端控制第一角色,第二用户通过所述第二客户端控制第二角色,所述载具物理模拟方法包括以下步骤:
14.在所述第一客户端检测到所述第一角色触发所述载具操控控件的情况下,所述第一客户端获取所述第一用户对所述载具的操作信息以及所述载具的位置信息,并将所述第
一用户对所述载具的操作信息和所述载具的位置信息发送至所述服务器,以使所述服务器接收所述第一客户端发送的所述第一用户对所述载具的操作信息和所述载具的位置信息,并将所述第一用户对所述载具的操作信息和所述载具的位置信息同步至所述第二客户端;
15.所述第二客户端接收所述服务器发送的所述第一用户对载具的操作信息和所述载具的位置信息,并根据所述载具的位置信息和所述第二角色的视距范围对所述载具选择性关闭物理模拟,并在对所述载具选择进行物理模拟时,在所述第二客户端中,根据所述第一用户对载具的操作信息和所述载具的位置信息对所述载具进行物理模拟;
16.其中,所述第一客户端在所述第一客户端检测到所述第一角色触发所述载具离开控件的情况下,根据所述载具的位置信息和所述第一角色的视距范围,对所述载具选择性关闭物理模拟。
17.可选的,在所述第二客户端中,根据所述第一用户对载具的操作信息和所述载具的位置信息对所述载具进行物理模拟,具体包括:
18.所述第二客户端判断所述载具是否在所述第二角色的视距范围内,如果所述载具不在所述第二角色的视距范围内,则不开启对所述载具的物理模拟,如果所述载具在所述第二角色的视距范围内,根据所述服务器发送的所述第一用户对载具的操作信息和所述载具的位置信息,对所述载具进行物理模拟,直至所述载具停稳或离开所述第二角色的视距范围。
19.可选的,所述载具物理模拟方法还包括:
20.在所述第一客户端检测到所述第一角色触发所述载具操控控件的情况下,在所述第一客户端中,获取对所述第一角色所述载具的操作信息,对所述载具进行物理模拟。
21.可选的,所述载具物理模拟方法还包括:
22.在所述第一客户端检测到所述第一角色触发所述载具离开控件的情况下,所述第一客户端判断所述载具是否在所述第一角色的视距范围内,如果所述载具不在所述第一角色的视距范围内,则不开启对所述载具的物理模拟,如果所述载具在所述第一角色的视距范围内,则进一步判断所述载具是否停稳,如果所述载具停稳,则停止对所述载具进行物理模拟,如果所述载具未停稳,则对所述载具进行物理模拟,直至所述载具停稳或离开所述第一角色的视距范围。
23.可选的,所述载具物理模拟方法还包括:
24.所述第一客户端和/或所述第二客户端获取所述服务器生成所述载具时所述载具所处的地形特征,根据所述载具所处的地形特征对所述服务器生成的所述载具进行物理模拟。
25.本发明实施例提供了一种载具位置修正装置,所述装置应用于载具物理模拟系统,所述系统包括服务器及第二客户端,所述第二客户端用于根据载具物理模拟方法对载具m进行物理模拟,并对所述载具m的位置进行修正,所述装置包括:
26.位置获取单元,用于获取所述载具修正前的位置a;
27.载具隐藏单元,用于接收所述服务器发送的所述载具m的坐标位置信息,并隐藏所述载具m;
28.虚假载具设置单元,用于在所述位置a设置与所述载具m外观模型相同的载具n;
29.虚假载具控制单元,用于控制所述载具n跟随所述载具m进行运动,并保持所述载
具n与所述载具m相对静止,并且不对所述载具n进行物理模拟;
30.偏移量调整单元,用于在n秒内,将所述载具n平移至所述载具m的坐标位置;
31.载具显示单元,在所述载具m与所述载具n之间的相对偏移向量c线性减少至0的情况下,用于隐藏所述载具n并显示所述载具m。
32.本发明实施例提供了一种第二客户端,所述第二客户端属于载具物理模拟系统,所述系统还包括服务器,所述第二客户端用于根据载具物理模拟方法对载具m进行物理模拟,并对所述载具m的位置进行修正,所述第二客户端包括:
33.位置获取模块,用于获取所述载具修正前的位置a;
34.载具隐藏模块,用于接收所述服务器发送的所述载具m的坐标位置信息,并隐藏所述载具m;
35.虚假载具设置模块,用于在所述位置a设置与所述载具m外观模型相同的载具n;
36.虚假载具控制模块,用于控制所述载具n跟随所述载具m进行运动,并保持所述载具n与所述载具m相对静止,并且不对所述载具n进行物理模拟;
37.偏移量调整模块,用于在n秒内,将所所述载具n平移至所述载具m的坐标位置;
38.载具显示模块,用于在所述载具m与所述载具n之间的相对偏移向量c线性减少至0的情况下,隐藏所述载具n并显示所述载具m。
39.本发明实施例提供了一种第二电子设备,所述电子设备中安装有第二客户端,所述电子设备包括:
40.处理器;以及
41.存储器,用于存储所述处理器的可执行指令;
42.其中,所述处理器配置为经由执行所述可执行指令来执行上述任一项所述的载具位置修正方法。
附图说明
43.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
44.图1是根据本发明一个实施例的载具物理模拟系统的结构框图;
45.图2是根据本发明一个实施例的载具物理模拟方法的流程图;
46.图3是根据本发明另一个实施例的载具物理模拟方法的流程图;
47.图4是根据本发明又一个实施例的载具物理模拟方法的流程图;
48.图5是根据本发明再一个实施例的载具物理模拟方法的流程图;
49.图6是根据本发明一个实施例的客户端的结构框图;
50.图7是根据本发明另一个实施例的客户端的结构框图;
51.图8是根据本发明又一个实施例的客户端的结构框图;
52.图9是根据本发明一个实施例的载具物理模拟方法的流程图;
53.图10是根据本发明另一个实施例的载具物理模拟方法的流程图;
54.图11是根据本发明一个实施例的服务器的结构框图;
55.图12是根据本发明另一个实施例的服务器的结构框图。
具体实施方式
56.下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
57.下面参考附图描述本发明实施例的载具物理模拟方法、系统、客户端、电子设备以及服务器。
58.图1是根据本发明一个实施例的载具物理模拟系统的结构框图。
59.如图1所示,该载具物理模拟系统包括客户端100和服务器200。
60.其中,客户端100可包括第一客户端110和第二客户端120。
61.下面先简单介绍下实施例中名词的定义。
62.客户端,安装在电子设备中的应用。客户端可以是手机、平板电脑、笔记本电脑、虚拟现实设备、增强现实设备、混合现实设备等电子设备,此处不作具体限定。
63.服务器,提供计算与网络通讯服务的设备。服务器可以是单台设备,也可以是多台设备的集群,此处不作具体限定。
64.第一角色,使用应用的第一用户在该应用中对应的虚拟人物。
65.第二角色,除第一用户外任一用户在该应用中对应的虚拟人物。
66.第一用户通过第一客户端控制第一角色。
67.第二用户通过第二客户端控制第二角色。
68.载具,使用应用的用户在该应用中能够驾驶的交通工具,例如飞机、汽车、自行车、摩托车、游艇、轮船、平衡车等等,此处不作具体限定。
69.物理模拟,是指对真实载具物理状态变化的模拟。假设载具为吉普车,则可以模拟吉普车轮胎的转动、行驶在不平路面上产生的颠簸等。如吉普车在不平整的地面行驶时,四组悬挂弹簧会发生不同程度的伸缩来支撑车体,在此过程中,车体会发生往复式晃动、倾斜等动态效果等。吉普车物理模拟简单描述如下:
70.1.模拟引擎转速并通过变速箱以一定的转速比使轮胎以一定速度转动;
71.2.轮胎与地面接触点有摩擦力,该摩擦力决定轮胎是否会打滑及轮胎对车施加的推力;
72.3.轮胎对车施加的推力使车辆发生移动;
73.4.车辆在不平整地面运动时四组悬挂弹簧会发生不同程度的伸缩来支撑车体,在此过程中车体会发生往复式晃动、倾斜。
74.视距范围,是指使用应用的用户在应用内虚拟人物的视野范围,是指虚拟人物在应用场景中的可视范围。例如第一角色的视野范围、第二角色的视野范围。虚拟人物在向前平视的时候,眼睛左右可观察的角度,上下可观察的角度都是有限的,因此虚拟人物的可视范围是近似一个锥形的区域,用应用地图中三维坐标的集合区域表示范围。
75.载具位置,载具在应用场景(地图)内的三维坐标位置。
76.载具操控控件,交互界面中可供用户操控载具的控件,包括驾驶控件、乘坐控件、离开控件、加速控件、减速控件、方向控件等。用户通过触碰或滑动载具操控控件,对载具进行操控,如驾驶载具、乘坐载具、离开载具、加速、减速、前进、后退、左移、右移等等。
77.在本发明的一个实施例中,在第一客户端110检测到第一角色触发载具操控控件
的情况下,第一客户端110可获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器200。服务器200可接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端120。第二客户端120接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端120中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟。
78.具体地,第二客户端120中判断载具是否在第二角色的视距范围内。如果载具不在第二角色的视距范围内,则不开启对载具的物理模拟,如果载具在第二角色的视距范围内,根据服务器发送的第一用户对载具的操作信息和载具的位置信息,对载具进行物理模拟,直至载具停稳或离开第二角色的视距范围。
79.该实施例描述的是以第二角色的视角观察第一角色对载具进行操控的情况。第一角色指的是对载具进行操控的一类角色,第二角色为观察载具的一类角色。具体来说,服务器中保存与应用相关的数据,其中包括第一角色所操控载具的位置信息以及对载具的操控信息。服务器与多个客户端建立通讯,每个客户端获取使用该客户端的角色的位置信息以及角色对载具的操控信息,并将该位置信息发送至服务器。服务器收到信息后,再把上述信息同步至每个客户端,因此每个客户端在获取同步信息后都包含有所有客户端对应的角色的位置信息以及角色对载具的操控信息。第二客户端获取服务器发送的第一客户端对载具的操控信息以及其所驾驶的实时载具位置信息。其中,载具位置信息可以是服务器以频次100毫秒/次发送的。如果第二角色的视距范围中,观察到第一角色驾驶的载具,那么第二客户端可持续地获取第一角色驾驶的载具的位置信息(三维坐标)并检测其是否发生变化。如果该载具的位置信息持续发生变化,则可确定该载具处于移动状态。在第二客户端中,可利用第一用户对载具的操控信息继续对载具进行物理模拟。应当理解的是,第二客户端在未收到最新信息时,其使用的是最后一次收到的信息,以进行物理模拟。如果载具位置一旦没有持续发生变化,则可确定载具已停稳,第二客户端可停止对载具的物理模拟。以汽车载具为例,第一用户触发了驾驶或乘坐控件,其对应的第一角色进入汽车载具。第一客户端对汽车载具进行物理模拟,在第一角色进入汽车载具时,由于第一角色有重量,汽车载具四组悬挂弹簧承受第一角色重力的压力而收缩来支撑车体,同时车体会发生往复式晃动等物理变化过程的视觉效果。第一客户端记录第一用户触发驾驶或乘坐控件的操作信息并将信息发送至服务器,服务器将第一用户触发驾驶或乘坐控件的操作信息同步至第二客户端。在第二角色的视距范围内,第二客户端接收到服务器发送的第一用户对汽车载具触发驾驶或乘坐控件的操作信息和汽车载具的位置信息,并根据以上信息对第一用户驾驶的载具进行物理模拟,第二用户在第二角色的视距范围内就可以观察到第一用户所驾驶或乘坐汽车载具车体发生的往复式晃动等物理变化过程的视觉效果,第二客户端以第一角色在第一客户端的操作信息模拟对进行物理模拟,使得整个物理变化过程的视觉效果更加接近于真实。同理,第一用户触发驾驶控件后,进入车内,第一用户的交互界面上显示至少包括加速控件的载具操控控件,第一用户触发加速控件,第一设备将第一用户操作信息发送至设备,第二设备从服务器接收到,第一用户触发加速控件的操作信息对第一用户操控的载具进行物理模拟,进而第二角色观察到第一角色驾驶载具加速前进的物理变化过程的视觉效果;如第一用户触发乘坐控件,第一用户的交互界面上不会显示加速控件、减速控件。第一用户触发驾
驶或乘坐控件后,第一角色触发离开控件,那么第二角色还可以观察到第一角色离开载具时,悬挂弹簧震动的效果。应当理解的是,上述第一用户触发控件产生的物理模拟效果,发生在某个第二角色的视距范围内,该第二角色才会观察到第二设备物理模拟出的物理变化过程的视觉效果。不在视距范围内,则第二角色不会观察到物理状态变化过程的视觉效果,就是说对应的第二客户端不会开启物理模拟。
80.为了更加真实地对虚拟角色进行模拟,会进行一些更真实地设定,例如晴天时,虚拟角色最远能够看到500米;雾天时,虚拟角色最远能够看到300米。也就是说,视距范围可随天气的变化而变化。
81.在本发明的另一个实施例中,第一客户端110在检测到第一角色触发载具操控控件的情况下,在第一客户端中,根据服务器发送的第一用户对载具的操作信息和载具的位置信息,对载具进行物理模拟。该实施例描述的是第一角色驾驶载具时,第一角色视角的情况。例如,载具进入第一角色的视野范围内,用户可选择触碰交互界面中的乘坐控件,从而控制第一角色进入到载具中。用户可以在触控交互界面上的加速控件、减速控件等(对加速控件和减速控件的滑动方向或者压力大小输入指令以及对方向控件的滑动方向或者滑动角度输入指令),对载具进行驾驶控制,同时对载具进行物理模拟,如载具加速、载具减速等等。
82.采用此方案的目的是,尽可能模拟真实的驾驶体验,提高应用的可操作性以及用户的操作热情。
83.在本发明的又一个实施例中,第一客户端110还用于在第一客户端检测到第一角色触发载具离开控件的情况下,判断载具是否在第一角色的视距范围内。如果载具不在第一角色的视距范围内,则不开启对载具的物理模拟。如果载具在第一角色的视距范围内,则进一步判断载具是否停稳。如果载具停稳,则停止对载具进行物理模拟;如果载具未停稳,则对载具进行物理模拟,直至载具停稳或离开第一角色的视距范围。该实施例描述的是第一角色离开载具的情况。
84.具体地,第一客户端接收到第一用户在交互界面中点击离开控件的输入指令,第一角色立即离开所驾驶的载具。第一客户端持续获取载具位置并其是否发生变化。如果载具位置没有持续发生变化,则可确定载具已停稳,第一客户端停止对载具的物理模拟,并将停稳时的位置发送至服务器。如果载具位置持续发生变化,则可确定载具仍在移动。第一客户端继续对载具进行物理模拟。进一步地,第一客户端持续地获取载具位置并判断其是否在第一角色的视距范围内。如果所获取的载具位置不在第一角色的视距范围内,则可在第一客户端中,停止对载具的物理模拟,同时持续地获取该载具位置直到载具停稳,并将停稳后的位置发送至服务器。如果所获取的位置在第一角色的视距范围内,那么第一客户端则继续对载具进行物理模拟,直到载具已停稳或载具当前位置离开第一角色的视距范围。第一客户端持续地获得第一角色以及其驾驶的实时载具位置并将上述位置发送至服务器。
85.上述实施例中对载具选择性关闭物理模拟而并非是持续地进行物理模拟,是对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
86.在本发明的再一个实施例中,第一客户端110和/或第二客户端120,还可获取服务器200生成载具时载具所处的地形特征,根据载具所处的地形特征对服务器生成的载具进行物理模拟。该实施例描述的是服务器初始化场景信息,生成载具时的情况。
87.具体地,所有客户端可获得服务器发出的应用开始指令,客户端中处于等待阶段的交互界面切换为应用场景交互界面。进一步(同时),所有客户端获取服务器发出的载具生成指令。其中,载具生成指令包括需要在应用场景(地图)内生成的每一个载具类型以及在应用场景中所出现的载具位置。服务器中会预设各种不同类型载具,不同类型载具应用场景不同。举例来说,一张应用地图通常由陆地,水域和空中三种区域构成。其中汽车、自行车、平衡车适用于陆地交通,游艇、轮船适用于水上交通,飞机适用于空中交通,陆地交通工具停放在陆地上供用户进行陆地交通,水上交通工具停放在水域供用户进行水上交通,飞机停放在陆地上,从地面起飞后供用户进行空中交通。客户端获得服务器发出的应用开始指令,进一步(同时),客户端获得服务器随机选出需要在地图中各区域生成的载具类型以及在地图中各区域范围内随机生成载具所出现的三维坐标位置。在客户端获取到服务器生成的载具生成指令后,可随机地在地图内对应的位置处进行3d建模,生成相应的载具。进一步,各客户端并非直接于地面和水面三维坐标位置处生成载具,而是在地面和水面上方一定高度的三维坐标位置生成载具。载具初始生成位置高出地面或水面一定高度,客户端生成的载具受应用中虚拟重力影响会落下并在落下后与应用场景内如地面、建筑、树木、水域等固定场景接触从而产生物理状态变化,因此客户端可以进行物理模拟来模拟载具的物理状态变化,直到载具的位置不再变化,可视为载具已经停稳,客户端停止物理模拟。设置客户端生成载具位置以及对载具进行物理模拟,直至载具停稳的过程,是为了避免现有技术中将载具模型贴合在固定场景模型中,由于非平面固定场景可能导致的固定场景与载具模型重合,或违反物理现象,如陆地交通工具停在山上陡坡处的视觉效果。通过客户端对载具的物理模拟,载具在各区域内从物理状态发生变化到最终停稳,更贴近与现实环境中的物理现象,提高应用的真实感。
88.此外,在本发明的又一个实施例中,第二客户端120还可以对载具的位置信息进行修正。该实施例描述的是第二客户端120与服务器200之间网络通信发生延迟或丢包的情况。
89.具体地,第二客户端中的第一用户驾驶载具位置会与服务器中保存第一客户端发送的载具位置发生偏差,此时服务器会将保存的第一客户端所发送的载具位置发送给第二客户端。第二客户端可接收第一角色驾驶载具的位置信息,会修正第二角色视距范围中的第一角色所驾驶载具的位置。
90.在上述情况下,采用强行修正载具位置,第二角色会观察到第一角色所驾驶的载具发生瞬移或者闪烁现象,影响第二用户的体验。
91.为了避免或减轻在修正载具位置过程中发生的瞬移或者闪烁现象,在另一个实施例中,第二客户端可对修正后的载具的位置信息进行防闪烁处理。步骤如下:
92.步骤1.假设载具m修正前的位置为a[xa,ya,za],修正后的位置为b[xb,yb,zb];
[0093]
步骤2.第二客户端接收服务器发送的载具坐标位置信息,同时隐藏载具,并在位置a设置一个只是与载具m外观模型相同的载具n。第二客户端仅控制载具n跟随载具m进行移动并保持两者坐标位置相对静止,不对载具n进行物理模拟。在移动过程中,载具m与载具n坐标位置的相对偏移向量为c[xc,yc,zc],其中c=b

a。此时,第二用户只能看到与载具m外观模型相同的载具n,故在视觉上未出现载具瞬移的情况;
[0094]
步骤3.载具m继续移动,载具n因与载具m相对静止而一起移动;
[0095]
步骤4.在n秒内,将相对偏移向量c线性减少至0,即在n秒内把假的载具n平移至真实的载具m的位置;
[0096]
步骤5.当c变为0时,隐藏假的载具n并显示真实的载具m。
[0097]
采用此方案的目的是,载具m是真实载具,第二客户端实时对载具m进行物理模拟,直接平移载具会出现与客户端中场景发生各种碰撞,故使用一个没有碰撞的载具n,由于载具n无需进行物理模拟,直接平移不会出现与客户端中场景发生各种碰撞,而且通过平移载具n可以弱化载具m瞬移或闪烁现象。
[0098]
本发明实施例的载具物理模拟系统,在第一客户端检测到第一角色触发载具操控控件的情况下,第一客户端获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
[0099]
为了实现上述实施例,本发明还提出了一种载具物理模拟方法。
[0100]
图2是根据本发明一个实施例的载具物理模拟方法的流程图。
[0101]
如图2所示,该载具物理模拟方法应用于客户端,包括以下步骤:
[0102]
步骤201,在第一客户端检测到第一角色触发载具操控控件的情况下,第一客户端获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器,以使服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端。
[0103]
其中,客户端包括第一客户端和第二客户端,第一用户通过第一客户端控制第一角色,第二用户通过第二客户端控制第二角色。
[0104]
步骤202,第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟。
[0105]
具体地,第二客户端判断载具是否在第二角色的视距范围内,如果载具不在第二角色的视距范围内,则不开启对载具的物理模拟,如果载具在第二角色的视距范围内,根据服务器发送的第一用户对载具的操作信息和载具的位置信息,对载具进行物理模拟,直至载具停稳或离开第二角色的视距范围。
[0106]
本实施例描述的是以第二角色的视角观察第一角色对载具进行操控的情况。第一角色指的是对载具进行操控的一类角色,第二角色为观察载具的一类角色。具体来说,服务器中保存与应用相关的数据,其中包括第一角色所操控载具的位置信息以及对载具的操控信息。服务器与多个客户端建立通讯,每个客户端获取使用该客户端的角色的位置信息以及角色对载具的操控信息,并将该位置信息发送至服务器。服务器收到信息后,再把上述信息同步至每个客户端,因此每个客户端在获取同步信息后都包含有所有客户端对应的角色的位置信息以及角色对载具的操控信息。第二客户端获取服务器发送的第一客户端对载具
的操控信息以及其所驾驶的实时载具位置信息。其中,载具位置信息可以是服务器以频次100毫秒/次发送的。如果第二角色的视距范围中,观察到第一角色驾驶的载具,那么第二客户端可持续地获取第一角色驾驶的载具的位置信息(三维坐标)并检测其是否发生变化。如果该载具的位置信息持续发生变化,则可确定该载具处于移动状态。在第二客户端中,可利用第一用户对载具的操控信息继续对载具进行物理模拟。应当理解的是,第二客户端在未收到最新信息时,其使用的是最后一次收到的信息,以进行物理模拟。如果载具位置一旦没有持续发生变化,则可确定载具已停稳,第二客户端可停止对载具的物理模拟。以汽车载具为例,第一用户触发了驾驶或乘坐控件,其对应的第一角色进入汽车载具。第一客户端对汽车载具进行物理模拟,在第一角色进入汽车载具时,由于第一角色有重量,汽车载具四组悬挂弹簧承受第一角色重力的压力而收缩来支撑车体,同时车体会发生往复式晃动等物理变化过程的视觉效果。第一客户端记录第一用户触发驾驶或乘坐控件的操作信息并将信息发送至服务器,服务器将第一用户触发驾驶或乘坐控件的操作信息同步至第二客户端。在第二角色的视距范围内,第二客户端接收到服务器发送的第一用户对汽车载具触发驾驶或乘坐控件的操作信息和汽车载具的位置信息,并根据以上信息对第一用户驾驶的载具进行物理模拟,第二用户在第二角色的视距范围内就可以观察到第一用户所驾驶或乘坐汽车载具车体发生的往复式晃动等物理变化过程的视觉效果,第二客户端以第一角色在第一客户端的操作信息模拟对进行物理模拟,使得整个物理变化过程的视觉效果更加接近于真实。同理,第一用户触发驾驶控件后,进入车内,第一用户的交互界面上显示至少包括加速控件的载具操控控件,第一用户触发加速控件,第一设备将第一用户操作信息发送至设备,第二设备从服务器接收到,第一用户触发加速控件的操作信息对第一用户操控的载具进行物理模拟,进而第二角色观察到第一角色驾驶载具加速前进的物理变化过程的视觉效果;如第一用户触发乘坐控件,第一用户的交互界面上不会显示加速控件、减速控件。第一用户触发驾驶或乘坐控件后,第一角色触发离开控件,那么第二角色还可以观察到第一角色离开载具时,悬挂弹簧震动的效果。应当理解的是,上述第一用户触发控件产生的物理模拟效果,发生在某个第二角色的视距范围内,该第二角色才会观察到第二设备物理模拟出的物理变化过程的视觉效果。不在视距范围内,则第二角色不会观察到物理状态变化过程的视觉效果,就是说对应的第二客户端不会开启物理模拟。
[0107]
为了更加真实地对虚拟角色进行模拟,会进行一些更真实地设定,例如晴天时,虚拟角色最远能够看到500米;雾天时,虚拟角色最远能够看到300米。也就是说,视距范围可随天气的变化而变化。
[0108]
其中,由于网络延迟等原因,第二客户端在接收第一用户所驾驶载具的位置信息与第一客户端内第一用户所驾驶载具的位置信息可能会有偏差。
[0109]
服务器端在持续更新第一客户端所发送的第一用户所驾驶载具的位置信息,第二客户端接收上述信息后,对当前第一用户所驾驶载具的位置信息进行修正。具体地,服务器会将保存的第一客户端所发送的第一用户所驾驶载具位置发送给第二客户端。第二客户端可接收第一角色驾驶载具的位置信息,修正第二角色视距范围中的第一角色所驾驶载具的位置。
[0110]
而在第一用户所驾驶载具的位置信息进行修正后,会产生闪烁等现象,因此第二客户端还需要对修正后的载具的位置信息进行防闪烁处理。为了避免或减轻在修正载具位
置过程中发生的瞬移或者闪烁现象,在另一个实施例中,第二客户端可对修正后的载具的位置信息进行防闪烁处理。步骤如下:
[0111]
步骤1.假设载具m修正前的位置为a[xa,ya,za],修正后的位置为b[xb,yb,zb];
[0112]
步骤2.第二客户端接收服务器发送的载具坐标位置信息,同时隐藏载具,并在位置a设置一个只是与载具m外观模型相同的载具n。第二客户端仅控制载具n跟随载具m进行移动并保持两者坐标位置相对静止,不对载具n进行物理模拟。在移动过程中,载具m与载具n坐标位置的相对偏移向量为c[xc,yc,zc],其中c=b

a。此时,第二用户只能看到与载具m外观模型相同的载具n,故在视觉上未出现载具瞬移的情况;
[0113]
步骤3.载具m继续移动,载具n因与载具m相对静止而一起移动;
[0114]
步骤4.在n秒内,将相对偏移向量c线性减少至0,即在n秒内把假的载具n平移至真实的载具m的位置;
[0115]
步骤5.当c变为0时,隐藏假的载具n并显示真实的载具m。
[0116]
采用此方案的目的是,载具m是真实载具,第二客户端实时对载具m进行物理模拟,直接平移载具会出现与客户端中场景发生各种碰撞,故使用一个没有碰撞的载具n,由于载具n无需进行物理模拟,直接平移不会出现与客户端中场景发生各种碰撞,而且通过平移载具n可以弱化载具m瞬移或闪烁现象。
[0117]
在本发明的另一个实施例中,如图3所示,方法还包括:
[0118]
步骤203,在第一客户端检测到第一角色触发载具操控控件的情况下,在第一客户端中,获取对第一角色载具的操作信息,对载具进行物理模拟。
[0119]
本实施例描述的是第一角色驾驶载具时,第一角色视角的情况。例如,载具进入第一角色的视野范围内,用户可选择触碰交互界面中的乘坐控件,从而控制第一角色进入到载具中。用户可以在触控交互界面上的加速控件、减速控件等(对加速控件和减速控件的滑动方向或者压力大小输入指令以及对方向控件的滑动方向或者滑动角度输入指令),对载具进行驾驶控制,同时对载具进行物理模拟,如载具加速、载具减速等等。
[0120]
采用此方案的目的是,尽可能模拟真实的驾驶体验,提高应用的可操作性以及用户的操作热情。
[0121]
在本发明的又一个实施例中,如图4所示,方法还包括:
[0122]
步骤204,在第一客户端检测到第一角色触发载具离开控件的情况下,第一客户端判断载具是否在第一角色的视距范围内。
[0123]
步骤205,如果载具不在第一角色的视距范围内,则不开启对载具的物理模拟。
[0124]
步骤206,如果载具在第一角色的视距范围内,则进一步判断载具是否停稳。
[0125]
步骤207,如果载具停稳,则停止对载具进行物理模拟。
[0126]
步骤208,如果载具未停稳,则对载具进行物理模拟,直至载具停稳或离开第一角色的视距范围。
[0127]
具体地,第一客户端接收到第一用户在交互界面中点击离开控件的输入指令,第一角色立即离开所驾驶的载具。第一客户端持续获取载具位置并其是否发生变化。如果载具位置没有持续发生变化,则可确定载具已停稳,第一客户端停止对载具的物理模拟,并将停稳时的位置发送至服务器。如果载具位置持续发生变化,则可确定载具仍在移动。第一客户端继续对载具进行物理模拟。进一步地,第一客户端持续地获取载具位置并判断其是否
在第一角色的视距范围内。如果所获取的载具位置不在第一角色的视距范围内,则可在第一客户端中,停止对载具的物理模拟,同时持续地获取该载具位置直到载具停稳,并将停稳后的位置发送至服务器。如果所获取的位置在第一角色的视距范围内,那么第一客户端则继续对载具进行物理模拟,直到载具已停稳或载具当前位置离开第一角色的视距范围。第一客户端持续地获得第一角色以及其驾驶的实时载具位置并将上述位置发送至服务器。
[0128]
上述实施例中对载具选择性关闭物理模拟而并非是持续地进行物理模拟,是对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
[0129]
在本发明的再一个实施例中,如图5所示,方法还包括:
[0130]
步骤209,第一客户端和/或第二客户端获取服务器生成载具时载具所处的地形特征,根据载具所处的地形特征对服务器生成的载具进行物理模拟。
[0131]
本实施例描述的是服务器初始化场景信息,生成载具时的情况。
[0132]
具体地,所有客户端可获得服务器发出的应用开始指令,客户端中处于等待阶段的交互界面切换为应用场景交互界面。进一步(同时),所有客户端获取服务器发出的载具生成指令。其中,载具生成指令包括需要在应用场景(地图)内生成的每一个载具类型以及在应用场景中所出现的载具位置。服务器中会预设各种不同类型载具,不同类型载具应用场景不同。举例来说,一张应用地图通常由陆地,水域和空中三种区域构成。其中汽车、自行车、平衡车适用于陆地交通,游艇、轮船适用于水上交通,飞机适用于空中交通,陆地交通工具停放在陆地上供用户进行陆地交通,水上交通工具停放在水域供用户进行水上交通,飞机停放在陆地上,从地面起飞后供用户进行空中交通。客户端获得服务器发出的应用开始指令,进一步(同时),客户端获得服务器随机选出需要在地图中各区域生成的载具类型以及在地图中各区域范围内随机生成载具所出现的三维坐标位置。在客户端获取到服务器生成的载具生成指令后,可随机地在地图内对应的位置处进行3d建模,生成相应的载具。进一步,各客户端并非直接于地面和水面三维坐标位置处生成载具,而是在地面和水面上方一定高度的三维坐标位置生成载具。载具初始生成位置高出地面或水面一定高度,客户端生成的载具受应用中虚拟重力影响会落下并在落下后与应用场景内如地面、建筑、树木、水域等固定场景接触从而产生物理状态变化,因此客户端可以进行物理模拟来模拟载具的物理状态变化,直到载具的位置不再变化,可视为载具已经停稳,客户端停止物理模拟。设置客户端生成载具位置以及对载具进行物理模拟,直至载具停稳的过程,是为了避免现有技术中将载具模型贴合在固定场景模型中,由于非平面固定场景可能导致的固定场景与载具模型重合,或违反物理现象,如陆地交通工具停在山上陡坡处的视觉效果。通过客户端对载具的物理模拟,载具在各区域内从物理状态发生变化到最终停稳,更贴近与现实环境中的物理现象,提高应用的真实感。
[0133]
本发明实施例的载具物理模拟方法,在第一客户端检测到第一角色触发载具操控控件的情况下,第一客户端获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,
提升模拟驾驶体验。
[0134]
为了实现上述实施例,本发明还提出了一种客户端。
[0135]
图6是根据本发明一个实施例的客户端的结构框图。
[0136]
如图6所示,该客户端包括处理模块610和物理模拟模块620。
[0137]
其中,处理模块610,用于在第一客户端检测到第一角色触发载具操控控件的情况下,获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器,以使服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端。
[0138]
物理模拟模块620,用于接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟。
[0139]
如图7所示,该客户端还包括修正模块630。
[0140]
修正模块630,用于对载具的位置信息进行修正。
[0141]
如图8所示,该客户端还包括防闪烁模块640。
[0142]
防闪烁模块640,用于对修正后的载具的位置信息进行防闪烁处理。
[0143]
需要说明的是,前述对载具物理模拟系统的解释说明,也适用于本发明实施例的载具物理模拟方法,本发明实施例中未公布的细节,在此不再赘述。
[0144]
本发明实施例的客户端,在第一客户端检测到第一角色触发载具操控控件的情况下,第一客户端获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
[0145]
为了实现上述实施例,本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上一方面实施例的载具物理模拟方法。
[0146]
为了实现上述实施例,本发明还提出了一种电子设备。
[0147]
电子设备中安装有客户端,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,处理器用于执行本发明上一方面实施例的载具物理模拟方法。
[0148]
本发明实施例的电子设备,在第一客户端检测到第一角色触发载具操控控件的情况下,第一客户端获取第一用户对载具的操作信息以及载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息发送至服务器,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,并将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟
驾驶体验。
[0149]
为了实现上述实施例,本发明还提出了一种载具物理模拟方法。
[0150]
图9是根据本发明一个实施例的载具物理模拟方法的流程图。
[0151]
如图9所示,该载具物理模拟方法应用于服务器,包括以下步骤:
[0152]
步骤901,在第一客户端检测到第一角色触发载具操控控件的情况下,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息。
[0153]
步骤902,将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,以使第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟。
[0154]
如图10所示,本发明实施例还可包括以下步骤:
[0155]
步骤903,服务器初始化应用场景。
[0156]
应用场景包括多种不同的地形特征。
[0157]
步骤904,在多种不同的地形特征上,随机生成载具,以使第一客户端和/或第二客户端根据载具所处的地形特征对服务器生成的载具进行物理模拟。
[0158]
本实施例为载具物理模拟系统对应的服务器侧执行的方法。前述对载具物理模拟系统的解释说明,也适用于本发明实施例的载具物理模拟方法,本发明实施例中未公布的细节,在此不再赘述。
[0159]
本发明实施例的载具物理模拟方法,在第一客户端检测到第一角色触发载具操控控件的情况下,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,以使第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
[0160]
为了实现上述实施例,本发明还提出了一种服务器。
[0161]
图11是根据本发明一个实施例的服务器的结构框图。
[0162]
如图11所示,该服务器包括接收模块1100以及同步模块1120。
[0163]
其中,接收模块1100,用于在第一客户端检测到第一角色触发载具操控控件的情况下,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息。
[0164]
其中,客户端包括第一客户端和第二客户端,第一用户通过第一客户端控制第一角色,第二用户通过第二客户端控制第二角色。
[0165]
同步模块1120,用于将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,以使第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟。
[0166]
如图12所示,该服务器还可包括生成模块1130。
[0167]
生成模块1130,用于初始化应用场景,应用场景包括多种不同的地形特征,并在多种不同的地形特征上,随机生成载具,以使第一客户端和/或第二客户端根据载具所处的地形特征对服务器生成的载具进行物理模拟。
[0168]
需要说明的是,前述对载具物理模拟方法的解释说明,也适用于本发明实施例的
服务器,本发明实施例中未公布的细节,在此不再赘述。
[0169]
本发明实施例的服务器,在第一客户端检测到第一角色触发载具操控控件的情况下,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,以使第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
[0170]
为了实现上述实施例,本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上一方面实施例的载具物理模拟方法。
[0171]
为了实现上述实施例,本发明还提出了一种服务器。
[0172]
服务器包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,处理器用于执行本发明上一方面实施例的载具物理模拟方法。
[0173]
本发明实施例的服务器,在第一客户端检测到第一角色触发载具操控控件的情况下,服务器接收第一客户端发送的第一用户对载具的操作信息和载具的位置信息,将第一用户对载具的操作信息和载具的位置信息同步至第二客户端,以使第二客户端接收服务器发送的第一用户对载具的操作信息和载具的位置信息,并在第二客户端中,根据第一用户对载具的操作信息和载具的位置信息对载具进行物理模拟,从而对设备资源进行优化,提高资源优化装置性能,防止卡顿现象,提升模拟驾驶体验。
[0174]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0175]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0176]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0177]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传
输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
[0178]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0179]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0180]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0181]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

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

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

相关文献