CN117298568A - 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 - Google Patents
虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 Download PDFInfo
- Publication number
- CN117298568A CN117298568A CN202210730440.7A CN202210730440A CN117298568A CN 117298568 A CN117298568 A CN 117298568A CN 202210730440 A CN202210730440 A CN 202210730440A CN 117298568 A CN117298568 A CN 117298568A
- Authority
- CN
- China
- Prior art keywords
- scene
- target
- target virtual
- terminal
- progress
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 135
- 238000009877 rendering Methods 0.000 claims description 108
- 230000008569 process Effects 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 abstract description 14
- 230000000694 effects Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000036316 preload Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000005923 long-lasting effect Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/537—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
- A63F13/5372—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for tagging characters, objects or locations in the game scene, e.g. displaying a circle under the character controlled by the player
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
Abstract
本申请提供了一种虚拟场景的同步方法、虚拟场景的显示方法、装置及设备,属于计算机技术领域。该虚拟场景的同步方法包括:接收第一终端发送的对目标虚拟场景的中途加入请求;向第一终端发送目标虚拟场景的多个场景图像帧的数据;响应于第一终端将目标虚拟场景的场景进度运行至目标进度,向第一终端和至少一个第二终端发送携带对象标识的对象加载指令,以使第一终端和至少一个第二终端在目标虚拟场景中加载目标虚拟对象。上述方案能够将中途加入的虚拟对象对应的终端与已存在的虚拟对象对应的终端进行同步,保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种虚拟场景的同步方法、虚拟场景的显示方法、装置及设备。
背景技术
随着计算机技术的发展,网络游戏越来越多。如何使网络游戏的各个客户端保持同步,是需要解决的问题。
目前,可以采用帧同步的方式来进行游戏同步。帧同步是网络游戏的一种同步方法,服务器将获取到的多个客户端的操作指令序列转发给各个客户端,由客户端根据接收到的操作指令序列执行游戏逻辑进而渲染虚拟场景的场景图像帧,以实现各个客户端同步显示虚拟场景的场景图像帧。
然而,上述方案针对的是虚拟场景中已存在的虚拟对象对应的客户端之间进行同步,而无法实现虚拟场景外的虚拟对象加入该虚拟场景并保持各个客户端进行同步。
发明内容
本申请实施例提供了一种虚拟场景的同步方法、虚拟场景的显示方法、装置及设备,能够将中途加入的虚拟对象对应的终端与已存在的虚拟对象对应的终端进行同步,促进更多的虚拟对象加入目标虚拟场景,从而提高参与度。所述技术方案如下:
一方面,提供了一种虚拟场景的同步方法,所述方法包括:
接收第一终端发送的对目标虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为第一终端控制的虚拟对象,所述目标虚拟场景采用帧同步的方式进行数据同步,所述目标虚拟场景包括由至少一个第二终端控制的虚拟对象;
向所述第一终端发送所述目标虚拟场景的多个场景图像帧的数据,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧,所述多个场景图像帧的数据用于将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
响应于所述第一终端将所述目标虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述目标虚拟场景中加载所述目标虚拟对象。
在一些实施例中,所述方法还包括:
响应于接收到所述第一终端和所述至少一个第二终端发送的对象控制请求,向所述第一终端和所述至少一个第二终端发送确认控制指令,所述确认控制指令用于指示将所述目标虚拟对象切换为可控制状态。
另一方面,提供了一种虚拟场景的显示方法,所述方法包括:
响应于对目标虚拟场景的中途加入操作,获取所述目标虚拟场景的多个场景图像帧的数据,所述目标虚拟场景采用帧同步的方式进行数据同步,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧;
基于所述多个场景图像帧的数据,将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
在所述目标虚拟场景中,加载所述目标虚拟对象。
在一些实施例中,所述在所述目标虚拟场景中,加载所述目标虚拟对象,包括:
在所述目标虚拟场景的场景进度加载至所述目标进度之前,在所述目标虚拟场景中预加载所述目标虚拟对象。
另一方面,提供了一种虚拟场景的同步装置,所述装置包括:
接收模块,用于接收第一终端发送的对目标虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为第一终端控制的虚拟对象,所述目标虚拟场景采用帧同步的方式进行数据同步,所述目标虚拟场景包括由至少一个第二终端控制的虚拟对象;
发送模块,用于向所述第一终端发送所述目标虚拟场景的多个场景图像帧的数据,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧,所述多个场景图像帧的数据用于将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
所述发送模块,还用于响应于所述第一终端将所述目标虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述目标虚拟场景中加载所述目标虚拟对象。
在一些实施例中,所述发送模块,用于获取所述目标虚拟场景的所述多个场景图像帧的数据,所述场景图像帧的数据包括第一类数据和第二类数据,所述第一类数据用于执行渲染逻辑,所述第二类数据用于执行操作逻辑;向所述第一终端发送所述多个场景图像帧的第二类数据。
在一些实施例中,所述装置还包括:
第一获取模块,用于从所述多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;
所述发送模块,还用于向所述第一终端发送所述多个目标场景图像帧的第一类数据。
在一些实施例中,所述装置还包括:
确定模块,用于基于所述多个场景图像帧的数据,确定多个渲染内容;
第二获取模块,用于从所述多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据,所述目标渲染内容对应的数据为所述目标渲染内容所在的场景图像帧的第一类数据中的部分数据;
所述发送模块,还用于向所述第一终端发送所述目标渲染内容对应的数据。
在一些实施例中,所述发送模块,还用于响应于接收到所述第一终端和所述至少一个第二终端发送的对象控制请求,向所述第一终端和所述至少一个第二终端发送确认控制指令,所述确认控制指令用于指示将所述目标虚拟对象切换为可控制状态。
在一些实施例中,所述接收模块,还用于接收所述第一终端发送的对所述目标虚拟场景的场景离开请求,所述场景离开请求携带所述目标虚拟对象的对象标识;
所述发送模块,还用于向所述第一终端和所述至少一个第二终端发送离开校验指令,所述离开校验指令用于指示判断所述目标虚拟对象的离开对象状态是否为可离开状态;
所述发送模块,还用于响应于接收到所述第一终端发送的对象结算请求,向所述第一终端和所述至少一个第二终端发送对象结算指令,所述对象结算指令用于指示所述第一终端上报所述目标虚拟对象当前的属性信息,指示所述至少一个第二终端从所述目标虚拟场景中移除所述目标虚拟对象。
在一些实施例中,所述装置还包括:
标记模块,用于对于所述目标虚拟场景的场景进度为初始进度时存在的任一第一虚拟对象,采用第一标记对所述第一虚拟对象进行标记,所述第一标记用于指示所述第一虚拟对象一直存在于所述目标虚拟场景中。
在一些实施例中,所述标记模块,还用于响应于所述目标虚拟对象的所述中途加入请求,在所述目标虚拟对象为所述第一虚拟对象的情况下,将所述目标虚拟对象的加载标记由所述第一标记修改为第二标记,所述第二标记用于指示所述目标虚拟对象离开过所述目标虚拟场景,且本次加入所述目标虚拟场景;
所述标记模块,还用于在所述目标虚拟对象不为所述第一虚拟对象的情况下,采用第三标记对所述目标虚拟对象进行标记,所述第三标记用于指示所述目标虚拟对象本次加入所述目标虚拟场景。
在一些实施例中,所述装置还包括:
第三获取模块,用于响应于所述目标虚拟对象的所述中途加入请求,获取所述目标虚拟场景中存在过的至少一个第二虚拟对象的加载标记,所述第二虚拟对象的标记为所述第一标记、所述第二标记或者所述第三标记;
所述标记模块,还用于对于任一第二虚拟对象,在所述第二虚拟对象的加载标记为所述第二标记的情况下,将所述第二虚拟对象的加载标记修改为第四标记,所述第四标记用于指示所述第二虚拟对象非本次加入所述目标虚拟场景;
所述标记模块,还用于在所述第二虚拟对象的加载标记为所述第三标记的情况下,将所述第二虚拟对象的加载标记修改为第五标记,所述第五标记用于指示所述第二虚拟对象非本次加入所述目标虚拟场景。
另一方面,提供了一种虚拟场景的显示装置,所述装置包括:
获取模块,用于响应于对目标虚拟场景的中途加入操作,获取所述目标虚拟场景的多个场景图像帧的数据,所述目标虚拟场景采用帧同步的方式进行数据同步,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧;
运行模块,用于基于所述多个场景图像帧的数据,将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
加载模块,用于在所述目标虚拟场景中,加载所述目标虚拟对象。
在一些实施例中,所述场景图像帧的数据包括第一类数据和第二类数据,所述第一类数据用于执行渲染逻辑,所述第二类数据用于执行操作逻辑;
所述运行模块,包括:
加载单元,用于加载场景进度为初始进度时的所述目标虚拟场景;
获取单元,用于从所述多个场景图像帧的数据中,获取所述多个场景图像帧的第二类数据;
运行单元,用于基于所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度。
在一些实施例中,所述运行单元,用于从所述多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;获取所述多个目标场景图像帧的第一类数据;基于所述多个目标场景图像帧的第一类数据和所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度。
在一些实施例中,所述运行单元,用于基于所述多个场景图像帧的数据,确定多个渲染内容;从所述多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据,所述目标渲染内容对应的数据为所述目标渲染内容所在的场景图像帧的第一类数据中的部分数据;基于所述目标渲染内容对应的数据和所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度。
在一些实施例中,所述装置还包括:
第一确定模块,用于基于所述多个场景图像帧的数据,确定所述目标虚拟场景关联的至少一个虚拟对象的加载标记;
所述加载模块,还用于在存在目标加载标记的情况下,在场景进度为初始进度的所述目标虚拟场景中,加载具有所述目标加载标记的虚拟对象,所述目标加载标记用于指示在所述目标虚拟场景的场景进度为初始进度时存在所述虚拟对象。
在一些实施例中,所述运行模块用于显示场景进度为初始进度时的所述目标虚拟场景;将所述多个场景图像帧的数据按照时序划分为第一帧数据组和第二帧数据组;基于所述第一帧数据组,采用部分渲染的方式,渲染所述目标虚拟场景;基于所述第二帧数据组,采用全部渲染的方式,渲染所述目标虚拟场景,以使所述目标虚拟场景加载至所述目标进度。
在一些实施例中,所述加载模块,用于在所述目标虚拟场景的场景进度加载至所述目标进度之前,在所述目标虚拟场景中预加载所述目标虚拟对象。
在一些实施例中,所述装置还包括:
第二确定模块,用于响应于对所述目标虚拟场景的离开操作,确定所述目标虚拟对象的离开对象状态;
发送模块,用于响应于所述离开对象状态为可离开状态,向服务器发送所述目标虚拟对象当前的属性信息。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行以实现本申请实施例中的虚拟场景的同步方法,或者,所述至少一段计算机程序由所述处理器加载并执行以实现本申请实施例中的虚拟场景的显示方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一段计算机程序,所述至少一段计算机程序由处理器加载并执行以实现如本申请实施例中虚拟场景的同步方法,或者,所述至少一段计算机程序由处理器加载并执行以实现如本申请实施例中虚拟场景的显示方法。
另一方面,提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请实施例中虚拟场景的同步方法,或者,被处理器执行时实现本申请实施例中虚拟场景的显示方法。
本申请实施例提供了一种虚拟场景的同步方案,通过在第一终端控制的目标虚拟对象请求加入目标虚拟场景中时,向第一终端返回该目标虚拟场景从场景进度为初始进度运行到目标进度这一过程中全部的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现第一终端将该目标虚拟场景的场景进度由初始进度运行至目标进度,再通过在第一终端的目标虚拟场景运行至目标进度时,向第一终端和目标虚拟场景中虚拟对象所在的至少一个第二终端发送携带对象标识的对象加载指令,使得各个终端能够在处于目标进度的目标虚拟场景中分别加载目标虚拟对象,从而实现目标虚拟场景在各个终端上同步显示,使得目标虚拟对象加入虚拟对局中的虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟对局中的虚拟场景,均能够保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的一种虚拟场景的同步方法的实施环境;
图2是根据本申请实施例提供的一种虚拟场景的同步方法的流程图;
图3是根据本申请实施例提供的一种虚拟场景的显示方法的流程图;
图4是根据本申请实施例提供的另一种虚拟场景的同步方法的交互流程图;
图5是根据本申请实施例提供的一种第一虚拟场景的示意图;
图6是根据本申请实施例提供的一种目标虚拟对象加入目标虚拟场景的交互流程图;
图7是根据本申请实施例提供的一种目标虚拟对象离开目标虚拟场景的交互流程图;
图8是根据本申请实施例提供的一种虚拟场景的同步装置的结构示意图;
图9是根据本申请实施例提供的另一种虚拟场景的同步装置的结构示意图;
图10是根据本申请实施例提供的一种虚拟场景的显示装置的结构示意图;
图11是根据本申请实施例提供的另一种虚拟场景的显示装置的结构示意图;
图12是根据本申请实施例提供的一种终端的结构示意图;
图13是根据本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的场景图像帧的数据都是在充分授权的情况下获取的。
为了便于理解,以下,对本申请涉及的术语进行解释。
帧同步:是网络游戏的一种同步方法。服务器将获取到的多个终端触发的操作指令序列分别转发给多个终端,由多个终端分别根据接收到的操作指令序列执行游戏逻辑进而渲染虚拟场景,以实现多个终端之间的同步。
快速追帧:是帧同步中的一种执行游戏逻辑的方式。对于中途加入虚拟场景的虚拟对象,根据该虚拟场景中触发的操作指令序列,按照时序快速执行游戏逻辑进而渲染虚拟场景,以实现操控该虚拟对象的终端的游戏进度与其他显示该虚拟场景的终端的游戏场景进度一致。
虚拟对象:是指在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等。比如:在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。本申请实施例中的虚拟对象用于代表用户的虚拟形象。
本申请实施例提供的虚拟场景的同步方法,能够由计算机设备执行。在一些实施例中,该计算机设备为终端或服务器。下面以计算机设备为服务器为例,介绍一下本申请实施例提供的虚拟场景的同步方法的实施环境,图1是根据本申请实施例提供的一种虚拟场景的同步方法的实施环境示意图。参见图1,该实施环境包括终端101和服务器102。终端101和服务器102能够通过有线或无线通信方式进行直接或间接地连接,本申请对此不进行限制。
在一些实施例中,终端101是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电、车载终端等,但并不局限于此。终端101安装和运行有应用程序。该应用程序支持进行虚拟对局,该虚拟对局中可以包括一个虚拟场景或者多个虚拟场景。当虚拟对局包括一个虚拟场景时,中途加入该虚拟场景是指从虚拟对局外请求加入该虚拟对局并加入该虚拟场景;或者在虚拟对局中但未处于虚拟场景时,请求加入该虚拟场景。当虚拟对局包括多个虚拟场景时,中途加入虚拟场景是指从虚拟对局为请求加入该虚拟对局并加入某一个虚拟场景;或者在虚拟对局中但未处于虚拟场景时,请求加入某一个虚拟场景;或者请求从虚拟对局中的一个虚拟场景加入另一个虚拟场景。该应用程序可以是第一人称射击游戏(First-Person Shooting game,FPS)、第三人称射击游戏、多人在线战术竞技游戏(Multiplayer Online Battle Arena games,MOBA)、虚拟现实应用程序、三维地图程序或者多人枪战类生存游戏中的任意一种。终端101是用户使用的终端,登录有用户账号。用户使用终端101操控位于虚拟场景中的虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,该虚拟对象是虚拟人物,比如仿真人物角色或动漫人物角色。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
在一些实施例中,服务器102是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、大数据和人工智能平台等基础云计算服务的云服务器。服务器102用于为支持虚拟场景的应用程序提供后台服务。在一些实施例中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102和终端101二者之间采用分布式计算架构进行协同计算。
图2是根据本申请实施例提供的一种虚拟场景的同步方法的流程图,参见图2,在本申请实施例中以由服务器执行为例进行说明。该虚拟场景的同步方法包括以下步骤:
201、服务器接收第一终端发送的对目标虚拟场景的中途加入请求,该中途加入请求携带目标虚拟对象的对象标识,该目标虚拟对象为第一终端控制的虚拟对象,该目标虚拟场景采用帧同步的方式进行数据同步,该目标虚拟场景包括由至少一个第二终端控制的虚拟对象。
在本申请实施例中,该服务器为图1的服务器102。该第一终端为图1所示的终端101,该第一终端上登录有用户账号。通过该用户账号能够操控目标虚拟对象加入目标虚拟场景。第一终端向服务器发送对目标虚拟场景的中途加入请求。该中途加入请求中携带有目标虚拟对象的对象标识以及目标虚拟场景的场景标识。服务器通过解析该中途加入请求,能够确定目标虚拟对象请求加入目标虚拟场景。该目标虚拟场景采用帧同步的方式进行数据同步,也即服务器能够获取该目标虚拟场景关联的多个终端触发的操作指令序列,然后,服务器将获取到的多个终端触发的操作指令序列同步给该多个终端,由多个终端根据接收到的操作指令序列执行操作逻辑进而渲染该目标虚拟场景,以实现目标虚拟场景在多个终端上的同步显示。该多个终端包括至少一个第二终端,该第二终端为操控目标虚拟场景中虚拟对象的终端。除了该至少一个第二终端,该多个终端还可以包括其他终端,该其他终端控制的虚拟对象进入过该目标虚拟场景,且当前时刻该其他终端控制的虚拟对象不在该目标虚拟场景中。
202、服务器向第一终端发送目标虚拟场景的多个场景图像帧的数据,该多个场景图像帧为目标虚拟场景运行过程中的全部场景图像帧,该多个场景图像帧的数据用于将目标虚拟场景的场景进度由初始进度运行至目标进度,该目标进度为目标虚拟场景当前所处的场景进度。
在本申请实施例中,服务器存储有多个虚拟场景的数据,基于目标虚拟场景的场景标识,获取该目标虚拟场景的多个场景图像帧的数据。该场景图像帧的数据包括用于执行操作逻辑的数据以及用于执行渲染逻辑的数据。在此过程中,第一终端能够基于多个场景图像帧的数据,对该多个场景图像帧进行渲染,也即第一终端能够基于多个场景图像帧的数据,将目标虚拟场景的场景进度由初始进度运行至目标进度,实现对该目标虚拟场景的快速追帧。其中,初始进度为目标虚拟场景首次被创建时所处的场景进度,也可以称为零进度。
203、响应于第一终端将目标虚拟场景的场景进度运行至目标进度,服务器向第一终端和至少一个第二终端发送携带对象标识的对象加载指令,以使第一终端和至少一个第二终端在目标虚拟场景中加载目标虚拟对象。
在本申请实施例中,在第一终端将目标虚拟场景的场景进度运行至目标进度的情况下,服务器向第一终端和至少一个第二终端发送对象加载指令。其中,服务器向至少一个第二终端发送的对象加载指令中携带有目标虚拟对象的对象标识。然后,第一终端和至少一个第二终端响应于对象加载指令,在目标虚拟场景中加载目标虚拟对象。
本申请实施例提供了一种虚拟场景的同步方案,通过在第一终端控制的目标虚拟对象请求加入目标虚拟场景中时,向第一终端返回该目标虚拟场景从场景进度为初始进度运行到目标进度这一过程中全部的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现在第一终端将该目标虚拟场景的场景进度由初始进度运行至目标进度,再通过在第一终端的目标虚拟场景运行至目标进度时,向第一终端和目标虚拟场景中虚拟对象所在的至少一个第二终端发送携带对象标识的对象加载指令,使得各个终端能够在处于目标进度的目标虚拟场景中分别加载目标虚拟对象,从而实现目标虚拟场景在各个终端上同步显示,使得目标虚拟对象加入虚拟对局中的虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟对局中的虚拟场景,均能够保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
图3是根据本申请实施例提供的一种虚拟场景的显示方法的流程图,参见图3,在本申请实施例中以由第一终端执行为例进行说明。该虚拟场景的显示方法包括以下步骤:
301、响应于对目标虚拟场景的中途加入操作,第一终端获取目标虚拟场景的多个场景图像帧的数据,该目标虚拟场景采用帧同步的方式进行数据同步,该多个场景图像帧为目标虚拟场景运行过程中的全部场景图像帧。
在本申请实施例中,用户能够通过第一终端上登录的用户账号,在第一终端上触发针对目标虚拟场景的中途加入操作。服务器通过目标虚拟场景的场景标识,确定目标虚拟场景。然后,服务器获取该目标虚拟场景运行过程中全部场景图像帧的数据,然后向第一终端返回该数据。
302、第一终端基于多个场景图像帧的数据,将目标虚拟场景的场景进度由初始进度运行至目标进度,该目标进度为目标虚拟场景当前所处的场景进度。
在本申请实施例中,该目标虚拟场景中当前存在至少一个虚拟对象,该至少一个虚拟对象对应有至少一个第二终端,该至少一个第一终端上显示的目标虚拟场景的场景进度为目标进度。由于第一终端操控的目标虚拟对象是中途加入的虚拟对象,为了使得第一终端和该至少一个第二终端保持同步,第一终端能够基于全部场景图像帧的数据,对该目标虚拟场景进行快速追帧,也即将目标虚拟场景的场景进度快速由初始进度运行至目标进度。
303、第一终端在目标虚拟场景中,加载目标虚拟对象。
在本申请实施例中,在第一终端的目标虚拟场景的场景进度为目标进度的情况下,第一终端在该目标虚拟场景中加载该目标虚拟对象。需要说明的是,在第一终端加载目标虚拟对象的,该至少一个第二终端也在该目标虚拟场景中加载该目标虚拟对象。
本申请实施例提供了一种虚拟场景的显示方案,通过在第一终端控制的目标虚拟对象请求加入目标虚拟场景中时,获取该目标虚拟场景从场景进度为初始进度运行到目标进度这一过程中全部的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现将该目标虚拟场景的场景进度由初始进度运行至目标进度,再在该目标虚拟场景中加载目标虚拟对象,从而第一终端显示的目标虚拟场景的场景进度与其他终端显示的目标虚拟场景的场景进度同步,使得目标虚拟对象加入虚拟对局中的虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟对局中的虚拟场景,均能够保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
图4是根据本申请实施例提供的一种虚拟场景的同步方法的交互流程图,参见图4,在本申请实施例中以终端和服务器之间的交互为例进行说明。该虚拟场景的显示方法包括以下步骤:
401、响应于对目标虚拟场景的中途加入操作,第一终端向服务器发送中途加入请求,该目标虚拟场景采用帧同步的方式进行数据同步,该中途加入请求携带目标虚拟对象的对象标识,该目标虚拟对象为第一终端控制的虚拟对象。
在本申请实施例中,在目标虚拟场景当前处于运行过程中时,该目标虚拟对象可以从其他虚拟场景请求中途加入该目标虚拟场景,也可以在未处于虚拟场景的情况下请求中途加入该目标虚拟场景,相应的,目标虚拟对象请求中途加入目标场景,包括下述三种情况。
情况一,该目标虚拟场景是虚拟对局包括多个虚拟场景中的某一个虚拟场景。该多个虚拟场景分别采用帧同步的方式进行同步。在虚拟对局进行过程中,该目标虚拟对象处于虚拟对局中该目标虚拟场景外的另一个虚拟场景中。此时,该目标虚拟对象能够从该另一个虚拟场景请求中途加入该目标虚拟场景。相应地,第一终端显示第一虚拟场景,该第一虚拟场景显示有目标虚拟对象和中途加入控件。该第一虚拟场景即为目标虚拟对象当前所处的其他虚拟场景。然后,在中途加入控件被触发的情况下,确定目标虚拟对象请求加入目标虚拟场景,第一终端向服务器发送该中途加入请求。其中,该第一虚拟场景和目标虚拟场景均是虚拟对局中的虚拟场景,且该第一虚拟场景和目标虚拟场景之间相互独立,互不影响。本申请实施例提供的方案,通过在目标虚拟对象请求由虚拟对局中的第一虚拟场景加入目标虚拟场景时,向服务器发送中途加入请求,从而能够实现目标虚拟对象能够从虚拟对局中的一个虚拟场景中途加入到另一个虚拟场景中。
例如,图5是根据本申请实施例提供的一种第一虚拟场景的示意图。参见图5,该第一虚拟场景中显示有目标虚拟对象、中途加入控件以及地图显示区域等。该地图显示区域中包括该虚拟对局的九个虚拟场景。其中,编号为2的虚拟场景为目标虚拟对象所处的第一虚拟场景。目标虚拟对象能够在该第一虚拟场景中执行该第一虚拟场景中的对局任务。编号为5的虚拟场景为目标虚拟场景。该目标虚拟场景可以通过触发地图显示区域中的编号确定。通过触发该中途加入控件,目标虚拟对象能够从编号为2的虚拟场景,加入编号为5的虚拟场景。
情况二,该目标虚拟场景是虚拟对局包括多个虚拟场景中的某一个虚拟场景。在虚拟对局开始的时候,该目标虚拟对象并未参与该虚拟对局,也就未处于任一虚拟场景;或者,在虚拟对局开始的时候,该目标虚拟对象参与了该虚拟对局,但是该目标虚拟对象处于等待状态,也就未处于任一虚拟场景。此时,目标虚拟对象请求加入目标虚拟场景的过程为:第一终端显示对象选择界面,该对象选择界面中显示有多个虚拟对象。响应于对目标虚拟对象的选中操作,第一终端显示场景选择界面,该场景选择界面中显示有该虚拟对局的多个虚拟场景,响应于对目标虚拟场景的选中操作,第一终端向服务器发送中途加入请求。需要说明的是,还可以不选择目标虚拟场景,而是将该目标虚拟对象随机加入该多个虚拟场景中的任一虚拟场景,该随机加入的虚拟场景即为目标虚拟场景。
情况三,该目标虚拟场景是虚拟对局的唯一虚拟场景。在虚拟对局开始的时候,该目标虚拟对象并未参与该虚拟对局,也就未加入该目标虚拟场景;或者,在虚拟对局开始的时候,该目标虚拟对象参与了该虚拟对局,但是该目标虚拟对象处于等待状态,未加入该目标虚拟场景。目标虚拟对象请求加入目标虚拟场景的过程为:第一终端显示对象选择界面,该对象选择界面中显示有多个虚拟对象。响应于对目标虚拟对象的选中操作,第一终端向服务器发送中途加入请求。该中途加入请求携带目标虚拟对象的对象标识。
上述情况二和情况三,通过在目标虚拟对象未处于虚拟场景且请求加入目标虚拟场景时,向服务器发送中途加入请求,从而能够实现在未处于虚拟场景的情况下,该目标虚拟对象能够中途加入该虚拟对局的目标虚拟场景,使得加入虚拟对局的时机不受限制,从而使得虚拟对象能够自由的加入目标虚拟场景,提高了参与虚拟对局的灵活度。
在一些实施例中,目标虚拟对象可以主动请求加入该目标虚拟场景,也可以在接收到目标虚拟场景中的任一虚拟对象邀请的情况下,请求加入该目标虚拟场景。目标虚拟对象中途加入目标虚拟场景的加入方式,包括下述三种。
加入方式一,目标虚拟对象通过在地图显示区域中选择目标虚拟场景,来主动请求加入目标虚拟场景。此时,第一终端显示第一虚拟场景,该第一虚拟场景显示有地图显示区域,该地图显示区域包括多个虚拟场景对应的标识。响应于对任一虚拟场景对应的标识的触发操作,第一终端向服务器发送中途加入请求,以使该目标虚拟对象能够从第一虚拟场景加入该目标虚拟场景。
加入方式二,目标虚拟对象通过进入目标虚拟场景的虚拟通道,来主动请求加入该目标虚拟场景。虚拟对局的多个虚拟场景之间有虚拟通道连接,响应于目标虚拟对象加入目标虚拟场景对应的虚拟通道,第一终端向服务器发送中途加入请求,以使该目标虚拟对象能够从第一虚拟场景加入该目标虚拟场景。
加入方式三,目标虚拟对象受邀加入该目标虚拟场景。在目标虚拟场景中的任一虚拟对象向该目标虚拟对象发送邀请的情况下,第一终端显示邀请提示信息和中途加入控件,响应于对该中途加入控件的触发操作,第一终端向服务器发送中途加入请求,以使该目标虚拟对象能够从第一虚拟场景加入该目标虚拟场景,为该目标虚拟场景中的其他虚拟对象提供支援。
402、服务器接收第一终端发送的对目标虚拟场景的中途加入请求,向第一终端发送目标虚拟场景的多个场景图像帧的数据,并且向至少一个第二终端发送目标虚拟对象的对象标识,该多个场景图像帧为目标虚拟场景运行过程中的全部场景图像帧。
在本申请实施例中,该目标虚拟场景包括由至少一个第二终端控制的虚拟对象。该多个场景图像帧的数据包括服务器与该目标虚拟场景关联的终端之间的操作指令序列、用于渲染虚拟场景的数据以及用于渲染虚拟对象的数据。该目标虚拟场景关联的终端指的是在该目标虚拟场景中出现过的虚拟对象对应的终端。该操作指令序列包括多个对象控制指令,该对象控制指令用于控制虚拟对象,包括攻击指令、逃跑指令或者姿势调整指令等,本申请实施例对此不进行限制。该多个场景图像帧的数据还包括服务器与该目标虚拟场景关联的终端之间的对象创建指令和对象移除指令。
需要说明的是,目标虚拟对象可以多次中途加入或者离开该目标虚拟场景,在每次目标虚拟对象中途加入目标虚拟场景的过程中,第一终端可以基于多个场景图像帧的数据将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度;也可以在目标虚拟对象离开目标虚拟场景时,对处于离开进度的目标虚拟场景进行保存,以便在目标虚拟对象中途加入目标虚拟场景时,从该离开进度开始运行至目标虚拟场景当前所处的场景进度,以提高同步进度。其中,上述将目标虚拟场景的场景进度由某一进度运行至当前所处的场景进度的过程,可以称为快速追帧。
在一些实施例中,服务器可以将场景图像帧中的数据划分为第一类数据和第二类数据。其中,该第一类数据用于执行渲染逻辑,该第二类数据用于执行操作逻辑。由于第一终端短时间内执行大量的操作逻辑和渲染逻辑,会使得第一终端加载虚拟场景以及虚拟对象的速度较慢,导致第一终端和其他终端进行同步的耗时变长,从而降低用户体验。因此,服务器能够从多个场景图像帧的数据中选择出部分数据向第一终端发送,使得该第一终端通过接收到的部分数据来将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度,以减少同步耗时,提高同步效率。服务器向第一终端发送数据的方式包括下述四种。
发送方式一,若第一终端在快速追帧过程中不显示各个场景图像帧,则对场景图像帧进行渲染是非必要的,服务器可以不向第一终端发送用于执行渲染逻辑的第一类数据,而仅向第一终端发送用于执行操作逻辑的第二类数据。相应地,服务器获取用于加载目标虚拟场景的多个场景图像帧的数据。然后,服务器根据数据的属性信息,从多个场景图像帧的数据获取多个场景图像帧的第二类数据。服务器向第一终端发送多个场景图像帧的第二类数据。其中,数据的属性信息用于指示数据的用途,也即用于指示数据用于执行渲染逻辑或者操作逻辑。本申请实施例提供的方案,通过仅向第一终端发送用于执行操作逻辑的第二类数据,使得第一终端只需处理该多个场景图像帧的第二类数据,就能够将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度,处理的数据较少,能够提高将目标虚拟场景运行至当前所处的场景进度的效率。
发送方式二,若第一终端不执行渲染逻辑,那么会使得目标虚拟场景中的虚拟对象在快速追帧将要结束时释放的技能的特效无法呈现,进而用户有可能会因看不到该技能特效而执行误操控,例如操控目标虚拟对象进入该技能特效的范围内。因此,服务器在向第一终端发送多个场景图像帧的第二类数据的基础上,还可以向第一终端发送部分场景图像帧的第一类数据。相应地,服务器从多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧。然后,服务器向第一终端发送多个目标场景图像帧的第一类数据。其中,该目标帧数范围为多个场景图像帧中排序靠后的60帧、90帧或者120帧,本申请实施例对此不进行限制。需要说明的是,在第一终端进行快速追帧的过程中,目标虚拟场景可能会产生新的场景图像帧的数据,服务器将新产生的场景图像帧的数据发送给第一终端,由第一终端按照时间顺序,从后往前选择目标帧数范围的多个场景图像帧进行渲染。本申请实施例提供的方案,通过在向第一终端发送多个场景图像帧的第二类数据的基础上,还向第一终端发送排序靠后的多个目标场景图像帧的第一类数据,使得第一终端能够基于多个目标场景图像帧的第一类数据进行渲染,从而当目标虚拟场景运行至当前所处的场景进度时,第一终端能够呈现目标虚拟场景中的情况,避免因第一终端未呈现其他虚拟对象所释放技能的技能特效,导致用户执行误操作。
发送方式三,目标虚拟场景中可能会存在持续性较长的技能特效,当加载完成目标虚拟对象后,该技能特效可能依旧存在。如果不渲染这些技能特效,会导致快速追帧结束后无法呈现该技能特效。因此,服务器在向第一终端发送多个场景图像帧的第二类数据的基础上,还可以向第一终端发送优先级较高的渲染内容对应的数据。相应地,服务器基于多个场景图像帧的数据,确定多个渲染内容。然后,服务器从多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据。然后,服务器向第一终端发送目标渲染内容对应的数据。其中,该目标渲染内容对应的数据为该目标渲染内容所在的场景图像帧的第一类数据中的部分数据。本申请实施例提供的方案,通过在向第一终端发送多个场景图像帧的第二类数据的基础上,还向第一终端发送渲染优先级较高的目标渲染内容对应的数据,使得第一终端能够一直呈现目标渲染内容,避免第一终端未呈现该目标渲染内容,导致用户执行误操作。
例如,该目标渲染内容为目标虚拟场景的场景进度为初始进度时,该目标虚拟场景的NPC(non-player character,非玩家角色)释放的火焰陷阱,该火焰陷阱持续整个虚拟对局。在将目标虚拟场景的场景进度由初始进度运行至目标进度的过程中,若第一终端未渲染该火焰陷阱,则会出现由于用户未看到该火焰陷阱而误操控该目标虚拟对象进入该火焰陷阱的范围内,从而导致目标虚拟对象受到伤害,进而给用户带来有bug(漏洞)的错觉,用户体验感较差。
发送方式四,服务器还能够向第一终端同时发送多个场景图像帧的第二类数据、排序靠后的多个目标场景图像帧的第一类数据以及渲染优先级较高的目标渲染内容对应的数据,在此不再赘述。本申请实施例提供的方案,通过向第一终端发送上述数据,使得第一终端无需处理该多个场景图像帧的全部数据,就能够将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度,处理的数据较少,能够提高将目标虚拟场景运行至当前所处的场景进度的效率,并且,当目标虚拟场景运行至当前所处的场景进度时,第一终端能够呈现目标虚拟场景中的情况,该目标虚拟场景中显示有目标渲染内容,避免用户因未看到目标虚拟场景中存在的技能特效,而执行误操作。
需要说明的是,由于每次目标虚拟对象中途加入目标虚拟场景的过程中,第一终端都要进行快速追帧。因此,该多个场景图像帧的数据中可以包括目标虚拟场景的初始设置,也即场景进度为初始进度时该目标虚拟场景的数据。对于第一终端来说,除了要加载目标虚拟对象外,还要加载该目标虚拟场景中的至少一个第一虚拟对象,为了使得第一终端能够区分所要加载的虚拟对象,并且在正确的时机加载该虚拟对象,服务器能够对该目标虚拟对象以及该至少一个第一虚拟对象进行标记。不同的虚拟对象加入该目标虚拟场景的时机可能不同,服务器根据虚拟对象加入该目标虚拟场景的时机,对该虚拟对象进行标记,可分为下述五种情况。
第一种情况,从目标虚拟场景的场景进度为初始进度,也即创建目标虚拟场景开始到当前时刻,一直处于该目标虚拟场景中的虚拟对象。相应地,对于目标虚拟场景的场景进度为初始进度时存在任一第一虚拟对象,服务器采用第一标记对该虚拟对象进行标记。该第一标记用于指示该第一虚拟对象一直存在于目标虚拟场景中,未离开过。那么,第一终端需要在目标虚拟场景的场景进度为初始进度时加载该第一虚拟对象。
第二种情况,创建目标虚拟场景时存在且在当前时刻请求加入该目标虚拟场景的虚拟对象。由于该虚拟对象在创建虚拟对局存在,服务器采用第一标记对该虚拟对象进行标记。当该虚拟对象离开目标虚拟场景后,再次请求加入该目标虚拟场景时,服务器对该第一标记进行修改。以目标虚拟对象为例。相应地,响应于目标虚拟对象的中途加入请求,判断场景进度为初始进度时的目标虚拟场景中是否存在目标虚拟对象,也即该目标虚拟对象是否为上述第一虚拟对象。在场景进度为初始进度时的目标虚拟场景中存在该目标虚拟对象,也即目标虚拟对象为第一虚拟对象的情况下,服务器将目标虚拟对象的加载标记由第一标记修改为第二标记。该第二标记用于指示目标虚拟对象离开过目标虚拟场景,且本次加入目标虚拟场景。其中,本次加入目标虚拟场景是指在目标虚拟场景处于目标进度时加入。那么,第一终端需要在目标虚拟场景的场景进度为初始进度时加载该目标虚拟对象,在目标虚拟对象离开目标虚拟场景时移除目标虚拟对象,在目标虚拟场景的场景进度为目标进度时再次加载目标虚拟对象。需要说明的是,目标虚拟对象可以多次加入和离开目标虚拟场景,本申请是以目标虚拟对象的加载标记为第一标记时进行说明。可选的,目标虚拟对象的加载标记还可以为其他标记,参见下文。
第三种情况,创建目标虚拟场景时不存在,在当前时刻请求加入该目标虚拟场景的虚拟对象。由于创建目标虚拟场景时该虚拟对象不存在,则当该虚拟对象首次请求加入该目标虚拟场景时,服务器能够对该虚拟对象进行标记。以该虚拟对象是目标虚拟对象为例。相应地,响应于该目标虚拟对象的中途加入请求,服务器判断场景进度为初始进度时的目标虚拟场景中是否存在该目标虚拟对象,也即判断该目标虚拟对象是否为上述第一虚拟对象。若场景进度为初始进度时的目标虚拟场景中不存在该目标虚拟对象,也即目标虚拟对象不为第一虚拟对象的情况下,服务器采用第三标记对该目标虚拟对象进行标记。该第三标记用于目标虚拟对象本次加入目标虚拟场景。那么,第一终端需要在目标虚拟场景的场景进度为目标进度时加载该目标虚拟对象。
第四种情况,创建目标虚拟场景时存在,离开过目标虚拟场景,在当前时刻之前请求加入该目标虚拟场景的虚拟对象。由于该虚拟对象在创建目标虚拟对局时存在,则初始的加载标记为第一标记,那么在该虚拟对象离开目标虚拟场景又再次加入该目标虚拟场景时,加载标记修改为第二标记。在目标虚拟对象请求家该目标虚拟场景时,服务器能够对该虚拟对象的第二标记再次进行修改。相应地,响应于目标虚拟对象的中途加入请求,服务器获取目标虚拟场景中存在过的至少一个第二虚拟对象的加载标记,第二虚拟对象的加载标记为第一标记、第二标记或者第三标记。然后,对于任一第二虚拟对象,在第二该虚拟对象的加载标记为第二标记的情况下,则服务器将该第二虚拟对象的加载标记由第二标记修改为第四标记。其中,该第四标记用于指示第二虚拟对象非本次加入目标虚拟场景。那么,第一终端需要在目标虚拟场景的场景进度为初始进度时加载目标虚拟对象,然后在快速追帧过程中,移除和重新加载该目标虚拟对象。
第五种情况,创建目标虚拟场景时不存在,在当前时刻之前请求加入该目标虚拟场景的第二虚拟对象。当第二虚拟对象首次请求加入该目标虚拟场景时,服务器采用第三标记对该第二虚拟对象进行标记。在目标虚拟对象请求加入该目标虚拟场景时,服务器能够对该第二虚拟对象的第三标记进行修改。相应地,在第二虚拟对象的加载标记为第三标记的情况下,则服务器将该第二虚拟对象的加载标记由第三标记修改为第五标记。该第五标记用于指示该第二虚拟对象非本次加入该目标虚拟场景。那么,第一终端需要在该第二虚拟对象首次申请加入目标虚拟场景时,加载该第二虚拟对象。
本申请实施例提供的方案,通过对该目标虚拟场景关联的虚拟对象进行标记,使得第一终端在基于多个场景图像帧的数据进行快速追帧的过程中,能够基于虚拟对象携带的加载标记,在对应的时机加载虚拟对象,保证了第一终端能够准确还原目标虚拟场景的运行过程,从而能够提高加载目标虚拟场景以及该目标虚拟场景中虚拟对象的准确性。
需要说明的是,服务器还能够存储该目标虚拟场景关联的虚拟对象的对象信息。该对象信息包括对象标识、虚拟对象所携带的加载标记以及虚拟对象的属性信息等。这些信息都属于目标虚拟场景的多个场景图像帧的数据。其中,虚拟对象所携带的加载标记用于指示第一终端加载虚拟对象的时机。本申请实施例对于在目标虚拟场景的运行过程中,虚拟对象加入该目标虚拟场景的次数以及离开该目标虚拟场景的次数,不进行限制。
403、第一终端基于多个场景图像帧的数据,将目标虚拟场景的场景进度由初始进度运行至目标进度,该目标进度为目标虚拟场景当前所处的场景进度。
在本申请实施例中,第一终端从服务器获取目标虚拟场景的多个场景图像帧的数据,该多个场景图像帧的数据可以是多个场景图像帧全部的数据,也可以是经服务器处理后的部分数据,本申请实施例对此不进行限制。其中,第一终端可以快速地显示按照时序排列的多个场景图像帧,或者,第一终端还可以不显示该多个场景图像帧,只显示加载界面(loading界面)。该加载界面中显示有至少一个加载进度条。通过该至少一个加载进度条,能够直观地显示第一终端加载该目标虚拟场景的进度以及至少一个第二终端加载该目标虚拟对象的对象资源的进度。
在一些实施例中,第一终端获取的多个场景图像帧的数据为该多个场景图像帧的全部数据。对于任一场景图像帧,该场景图像帧的数据包括第一类数据和第二类数据。其中,该第一类数据用于执行渲染逻辑,该第二类数据用于执行操作逻辑。由于第一终端短时间内执行大量的操作逻辑和渲染逻辑,会导致第一终端加载虚拟场景以及虚拟对象的速度较慢,导致第一终端和其他终端进行同步的耗时变长,从而降低用户体验。因此,第一终端能够从多个场景图像帧的全部数据中选择部分数据来加载该目标虚拟场景。第一终端加载目标虚拟场景的方式,包括下述四种。
加载方式一,若在快速追帧过程中不显示各个场景图像帧,则对场景图像帧进行渲染是非必要的,第一终端能够获取用于执行操作逻辑的第二类数据,来加载该目标虚拟场景,使得目标虚拟场景的场景进度由初始进度运行至目标进度。相应地,第一终端加载场景进度为初始进度时的目标虚拟场景。然后,第一终端根据数据的属性信息,从多个场景图像帧的数据中,获取多个场景图像帧的第二类数据。然后,第一终端基于多个场景图像帧的第二类数据,将目标虚拟场景的场景进度由初始进度运行至该目标进度。其中,数据的属性信息用于指示数据的用途,也即用于指示数据用于执行渲染逻辑或者操作逻辑。本申请实施例提供的方案,只需处理该多个场景图像帧的第二类数据,就能够将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度,由于处理的数据较少,因此能够提高将目标虚拟场景运行至当前所处的场景进度的效率。
加载方式二,若第一终端完全不执行渲染逻辑,那么会使得目标虚拟场景中的虚拟对象在快速追帧将要结束时释放的技能的特效无法呈现,进而用户有可能会因看不到该技能特效而执行误操控,例如操控该目标虚拟对象进入该技能特效的范围内,从而导致目标虚拟对象受到伤害。因此,第一终端能够在获取多个场景图像帧的第二类数据的基础上,还可以从多个场景图像帧的数据中获取部分场景图像帧的第一类数据。相应地,第一终端从多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧。然后,第一终端获取多个目标场景图像帧的第一类数据。然后,第一终端基于多个目标场景图像帧的第一类数据和多个场景图像帧的第二类数据,将目标虚拟场景的场景进度由初始进度运行至该目标进度。其中,该目标帧数范围为多个场景图像帧中排序靠后的60帧、90帧或者120帧,本申请实施例对此不进行限制。本申请实施例提供的方案,通过获取多个场景图像帧的第二类数据以及排序靠后的多个目标场景图像帧的第一类数据,使得第一终端能够基于多个目标场景图像帧的第一类数据进行渲染,从而当目标虚拟场景运行至当前所处的场景进度时,第一终端能够呈现目标虚拟场景中的情况,避免因第一终端未呈现其他虚拟对象所释放技能的技能特效,而导致用户执行误操作。
加载方式三,目标虚拟场景中可能会存在持续性较长的技能特效,当加载完成目标虚拟对象后,该技能特效可能依旧存在。如果不渲染这些技能特效,会导致快速追帧结束后无法呈现该技能特效。因此,第一终端在获取多个场景图像帧的第二类数据的基础上,还能够获取优先级较高的渲染内容对应的数据。优先级较高的渲染内容是需要进行渲染的内容。相应地,第一终端基于多个场景图像帧的数据,确定多个渲染内容。然后,第一终端从多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据。然后,第一终端基于目标渲染内容对应的数据和多个场景图像帧的第二类数据,将该目标虚拟场景的场景进度由初始进度运行至该目标进度。其中,目标渲染内容对应的数据为目标渲染内容所在的场景图像帧的第一类数据中的部分数据。本申请实施例提供的方案,通过获取多个场景图像帧的第二类数据以及渲染优先级较高的目标渲染内容对应的数据,使得第一终端能够一直呈现目标渲染内容,避免第一终端未呈现该目标渲染内容,导致用户执行误操作。
加载方式四,第一终端还能够从多个场景图像帧的数据中,同时获取多个场景图像帧的第二类数据、排序靠后的多个目标场景图像帧的第一类数据以及渲染优先级较高的目标渲染内容对应的数据,以便基于这些数据,将目标虚拟场景的场景进度由初始进度运行至目标进度,在此不再赘述。本申请实施例提供的方案,通过从多个场景图像帧的全部数据中获取上述数据,使得第一终端无需处理该多个场景图像帧的全部数据,就能够将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度,处理的数据较少,能够提高将目标虚拟场景运行至当前所处的场景进度的效率,并且,当目标虚拟场景运行至当前所处的场景进度时,第一终端能够呈现目标虚拟场景中的情况,该目标虚拟场景中显示有目标渲染内容,避免用户因未看到目标虚拟场景中存在的技能特效,而执行误操作。
在一些实施例中,第一终端能够采用部分渲染和全部渲染两种方式,对该目标虚拟场景进行渲染。相应地,第一终端显示场景进度为初始进度时的目标虚拟场景。然后,第一终端将多个场景图像帧的数据按照时序划分为第一帧数据组和第二帧数据组。然后,第一终端基于第一帧数据组,采用部分渲染的方式,渲染该目标虚拟场景。然后,第一终端基于第二帧数据组,采用全部渲染的方式,渲染该目标虚拟场景,以使该目标虚拟场景加载至目标进度。其中,第一帧数据组比第二帧数据组时序靠前。全部渲染的方式比部分渲染的方式能够渲染更多的细节部分。该部分渲染的方式可能只渲染该目标虚拟场景中渲染优先级较高的技能特效,或者,也可能只渲染该目标虚拟场景中虚拟对象、场景元素的轮廓,本申请实施例对此不进行限制。本申请实施例提供的方案,通过采用部分渲染和全部渲染两种方式,对该目标虚拟场景进行渲染,就能够将目标虚拟场景的场景进度由初始进度运行至当前所处的场景进度,由于处理的数据较少,因此能够提高将目标虚拟场景运行至当前所处的场景进度的效率。
在一些实施例中,该目标虚拟场景关联的虚拟对象携带有加载标记,第一终端能够基于该加载标记对虚拟对象进行加载。相应地,第一终端基于多个场景图像帧的数据,确定目标虚拟场景关联的至少一个虚拟对象的加载标记。然后,在存在目标加载标记的情况下,在场景进度为初始进度的目标虚拟场景中,加载具有目标加载标记的虚拟对象。其中,该目标加载标记用于指示在场景进度为初始进度时目标虚拟场景时存在该虚拟对象。该目标加载标记可以是第一标记、第二标记或者第四标记,本申请实施例对此不进行限制。本申请实施例提供的方案,通过虚拟对象携带的加载标记,在对应的时机加载虚拟对象,保证了第一终端能够准确还原目标虚拟场景的运行过程,从而能够提高加载目标虚拟场景以及该目标虚拟场景中虚拟对象的准确性。
需要说明的是,当第一终端将目标虚拟场景运行至目标进度时,第一终端能够向服务器发送对象加载请求,该对象加载请求携带有目标虚拟对象的对象标识。第一终端请求服务器允许加载该目标虚拟对象。
需要说明的是,在第一终端将目标虚拟场景的场景进度由初始进度运行至目标进度的过程中,该目标虚拟场景中还会产生新的场景图像帧的数据。第一终端能够接收服务器发送的新的场景图像帧的数据。在第一终端将目标虚拟场景运行至目标进度后,第一终端基于新的场景图像帧的数据继续加载该目标虚拟场景。
404、响应于第一终端将目标虚拟场景的场景进度运行至目标进度,服务器向第一终端和至少一个第二终端发送携带对象标识的对象加载指令,以使第一终端和至少一个第二终端在目标虚拟场景中加载目标虚拟对象。
在本申请实施例中,服务器接收第一终端发送的对象加载请求。服务器基于该对象加载请求,确定第一终端将目标虚拟场景的场景进度运行至目标进度。然后,服务器向第一终端和至少一个第二终端发送对象加载指令。该对象加载指令携带有目标虚拟对象的对象标识,使得第一终端和至少一个第二终端根据该对象标识分别创建该目标虚拟对象。其中,服务器可以同时向第一终端和至少一个第二终端发送对象加载指令,此时该对象加载指令用于指示终端在接收到该对象加载指令时创建目标虚拟对象;也可以在不同时间向第一终端和至少一个第二终端分别发送对象加载指令,此时该对象加载指令用于指示终端在该对象加载指令所指示的场景图像帧中创建目标虚拟对象,本申请实施例对此不进行限制。
需要说明的是,当服务器接收到第一终端发送的中途加入请求后,服务器能够就可以将中途加入请求中携带的目标虚拟对象的对象标识转发给至少一个第二终端,以通知该至少一个第二终端目标虚拟对象请求加入该目标虚拟场景。该至少一个第二终端能够基于该对象标识,预加载该目标虚拟对象对应的对象资源。那么,上述对象加载指令,可以不携带目标虚拟对象的对象标识。
405、第一终端基于对象加载指令,加载该目标虚拟对象。
在本申请实施例中,加载目标虚拟对象包括创建目标虚拟对象和显示目标虚拟对象两个步骤,在目标虚拟对象创建完成之后,第一终端可以基于目标虚拟对象的对象标识,从本地获取该目标虚拟对象的特效资源,该特效资源用于呈现该目标虚拟对象加入该目标虚拟场景。然后。第一终端在该目标虚拟场景中显示该特效资源和目标虚拟对象。
在一些实施例中,在目标虚拟场景的场景进度加载至目标进度之前,第一终端还能够在目标虚拟场景中预加载该目标虚拟对象。在目标虚拟场景的场景进度加载至目标进度时,显示预加载完成的目标虚拟对象。其中,预加载的内容可以是目标虚拟对象的三维模型,本申请实施例对此不进行限制。本申请实施例提供的方案,通过在将目标虚拟场景的场景进度由初始进度加载至目标进度的过程中,对目标虚拟对象进行预加载,能够提高加载该目标虚拟对象的速度,从而提高目标虚拟对象中途加入目标虚拟场景的效率。
406、第二终端基于对象加载指令,加载该目标虚拟对象。
在本申请实施例中,以任一第二终端为例,该第二终端接收到对象加载指令之后,创建该目标虚拟对象。在该目标虚拟对象创建完成之后,该二终端基于目标虚拟对象的对象标识,从本地获取该目标虚拟对象的特效资源。然后,在目标虚拟场景中显示该特效资源和该目标虚拟对象。
需要说明的是,本申请实施例中的步骤编号是为了便于描述,不限制步骤的执行顺序,如步骤405可以在步骤406之前执行,也可以在步骤406之后执行,还可以与步骤406同步执行,本申请实施例对此不进行限制。
407、第一终端向服务器发送对象控制请求。
在本申请实施例中,该对象控制请求携带有目标虚拟对象的对象标识,用于请求目标虚拟对象切换为可控制状态。
408、第二终端向服务器发送对象控制请求。
在本申请实施例中,该对象控制请求携带有目标虚拟对象的对象标识,用于请求目标虚拟对象切换为可控制状态。
需要说明的是,本申请实施例中的步骤编号是为了便于描述,不限制步骤的执行顺序,如步骤407可以在步骤408之前执行,也可以在步骤408之后执行,还可以与步骤408同步执行,本申请实施例对此不进行限制。
409、响应于接收到第一终端和至少一个第二终端发送的对象控制指令,服务器向第一终端和至少一个第二终端发送确认控制指令,该确认控制指令用于指示将目标虚拟对象切换为可控制状态。
在本申请实施例中,只有在接收到第一终端发送的对象控制指令以及至少一个第二终端发送的对象控制指令的情况下,服务器才会向第一终端和至少一个第二终端发送确认控制指令,该对象控制指令指示第一终端和至少一个第二终端在同一时刻将目标虚拟对象由不可控制状态切换为可控制状态,以确保同步。其中,服务器可以同时向第一终端和至少一个第二终端发送对象控制指令,此时该对象控制指令用于指示终端在接收到该对象控制指令时,将目标虚拟对象由不可控制状态切换为可控制状态;也可以在不同时间向第一终端和至少一个第二终端发送对象控制指令,此时该对象控制指令用于指示终端在显示该对象控制指令所指示的场景图像帧时,将目标虚拟对象由不可控制状态切换为可控制状态,本申请实施例对此不进行限制。
410、第一终端显示目标虚拟对象在目标虚拟场景中执行对局任务。
在本申请实施例中,响应于接收到服务器发送的确认控制指令,第一终端将目标虚拟对象切换为可控制状态。然后,该第一终端操控该目标虚拟对象在该目标虚拟场景中对局任务。由于虚拟对局的多个虚拟场景之间是相互独立的,则多个虚拟场景对应的多个对局任务也是相互独立的。当目标虚拟对象处于可控制状态时,该目标虚拟对象可以攻击其他虚拟对象,也会受到其他虚拟对象的攻击。
411、第二终端显示目标虚拟对象在目标虚拟场景中执行对局任务。
在本申请实施例中,响应于接收到服务器发送的确认控制指令,该第二终端将目标虚拟对象切换为可控制状态。然后,该第二终端分别显示目标虚拟对象在目标虚拟场景中进行各种活动。当目标虚拟对象处于可控制状态时,该目标虚拟对象可以在用户账号的控制下与其他虚拟对象进行交互。
需要说明的是,如步骤410可以在步骤411之前执行,也可以在步骤411之后执行,还可以与步骤411同步执行,本申请实施例对此不进行限制。
为了更加清楚地描述目标虚拟对象请求加入目标虚拟场景的过程,下面结合附图对该过程进行进一步的描述。图6是根据本申请实施例提供的一种目标虚拟对象加入目标虚拟场景的交互流程图。参见图6,目标虚拟对象请求加入目标虚拟场景的过程可通过以下步骤601至步骤613来实现。601、当目标虚拟对象请求加入该目标虚拟场景时,服务器向第一终端发送多个场景图像帧的数据,并且向至少一个第二终端发送目标虚拟对象的对象标识。602、第一终端基于多个场景图像帧的数据,将目标虚拟场景的场景进度由初始进度运行至目标进度。603、该至少一个第二终端基于对象标识,加载该目标虚拟对象的对象资源。604、在第一终端将目标虚拟场景的场景进度运行至目标进度的情况下,第一终端向服务器发送对象加载请求。605、对于任一第二终端,在该第二终端加载完成该目标虚拟对象的对象资源的情况下,该第二终端向服务器发送对象加载请求。该对象加载请求携带目标虚拟对象的对象标识。606、在接收到第一终端发送的对象加载请求和该至少一个第二终端发送的对象加载请求的情况下,服务器向第一终端和至少一个第二终端发送携带对象标识的对象加载指令。607、第一终端基于对象加载指令,加载该目标虚拟对象,并且显示该目标虚拟对象的特效资源。608、第二终端基于对象加载指令,加载该目标虚拟对象,并且显示该目标虚拟对象的特效资源。609、第一终端向服务器发送对象控制请求。610、第二终端向服务器发送对象控制请求。611、响应于接收到第一终端和至少一个第二终端发送的对象控制指令,服务器向第一终端和至少一个第二终端发送确认控制指令。612、第一终端显示目标虚拟对象在目标虚拟场景中执行对局任务。613、第二终端显示目标虚拟对象在目标虚拟场景中执行对局任务。
412、响应于对目标虚拟场景的离开操作,第一终端发送场景离开请求,该场景离开请求携带目标虚拟对象的对象标识。
在本申请实施例中,通过触发离开操作,目标虚拟对象能够请求离开该目标虚拟场景。响应于该离开操作已被触发,第一终端向服务器发送场景离开请求。由于该场景离开请求中携带目标虚拟对象的对象标识,则服务器能够确定要离开目标虚拟场景的虚拟对象。
413、服务器接收第一终端发送的对目标虚拟场景的场景离开请求,向第一终端和至少一个第二终端发送离开校验指令,该离开校验指令用于指示判断目标虚拟对象的离开对象状态是否为可离开状态。
在本申请实施例中,在接收到第一终端发送的对目标虚拟场景的场景离开请求的情况下,服务器分别向第一终端和至少一个第二终端发送离开校验指令。该离开校验指令携带该目标虚拟对象的对象标识。其中,服务器可以同时向第一终端和至少一个第二终端发送离开校验指令,此时该离开校验指令用于指示终端在接收到该离开校验指令时进行校验;也可以在不同时间向第一终端和至少一个第二终端发送离开校验指令,此时该离开校验指令用于指示终端在显示该离开校验指令所指示的场景图像帧时进行校验,本申请实施例对此不进行限制。该第一终端和至少一个第二终端基于该对象标识,对该目标虚拟对象进行校验。其中,第二终端控制的虚拟对象为目标虚拟场景中除目标虚拟对象外其他任一虚拟对象。不可离开的状态为处于被攻击的状态、处于加入目标虚拟场景的状态或者处于释放技能的状态等,本申请实施例对此不进行限制。
需要说明的是,由于第一终端的目标虚拟场景和至少一个第二终端的目标虚拟场景是同步的,服务器可以无需向该至少一个第二终端发送校验离开请求,只需向第一终端发送校验离开请求,在第一终端确定该目标虚拟对象处于可离开状态的情况下,允许该目标虚拟对象离开该目标虚拟场景。并且,服务器在目标虚拟对象离开该目标虚拟场景后,同步给该至少一个第二终端即可。
414、响应于目标虚拟对象的离开对象状态为可离开状态,第一终端向服务器发送对象结算请求。
在本申请实施例中,响应于对目标虚拟场景的离开操作,第一终端确定该目标虚拟对象的离开对象状态。然后,响应于离开对象状态为可离开状态,第一终端向服务器发送对象结算请求。该对象结算请求用于请求服务器指示第一终端对当前时刻该目标虚拟对象的属性信息进行结算。
415、响应于接收到第一终端发送的对象结算请求,服务器向第一终端和至少一个第二终端发送对象结算指令,该对象结算指令用于指示第一终端上报目标虚拟对象当前的属性信息,指示至少一个第二终端从目标虚拟场景中移除目标虚拟对象。
在本申请实施例中,服务器可以同时向第一终端和至少一个第二终端发送对象结算指令,此时该对象结算指令用于指示终端在接收到该对象结算指令时上报目标虚拟对象当前的属性信息;也可以在不同时间向第一终端和至少一个第二终端发送对象结算指令,此时该对象结算指令用于指示终端在显示该对象结算指令所指示的场景图像帧时上报目标虚拟对象当前的属性信息,本申请实施例对此不进行限制。该目标虚拟对象的属性信息包括目标虚拟对象的虚拟生命值、攻击力以及防御力等信息。当第一终端接收到该对象结算指令时,第一终端能够对该目标虚拟对象的属性信息进行结算。此时,该目标虚拟对象的属性信息不会再发生变化。第一终端根据加入目标虚拟场景时目标虚拟对象的属性信息和在该目标虚拟场景中消耗的部分进行结算。当至少一个第二终端接收到该对象结算指令时,该至少一个第二终端从目标虚拟场景中移除目标虚拟对象,也即不再显示该目标虚拟对象。
416、第一终端向服务器发送目标虚拟对象当前的属性信息。
在本申请实施例中,第一终端将该属性信息上传至服务器,由服务器对该目标虚拟对象的属性信息进行存储。当该目标虚拟对象再次加入其他虚拟场景时,服务器能够将该目标虚拟对象的属性信息同步给该虚拟场景关联的其他终端,此时该目标虚拟对象的属性信息作为该目标虚拟对象加入该虚拟场景的初始信息。第一终端控制该目标虚拟对象离开该目标虚拟场景,第一终端不显示该目标虚拟场景。
417、第二终端从目标虚拟场景中移除目标虚拟对象。
在本申请实施例中,该第二终端从该目标虚拟场景中移除该目标虚拟对象,该第二终端依旧显示该目标虚拟场景。
为了更加清楚地描述目标虚拟对象离开目标虚拟场景的过程,下面结合附图对该过程进行进一步的描述。图7是根据本申请实施例提供的一种目标虚拟对象离开目标虚拟场景的交互流程图。参见图7,目标虚拟对象请求离开目标虚拟场景的过程可通过以下步骤701至步骤708来实现。701、响应于对目标虚拟场景的离开操作,第一终端发送场景离开请求。702、当接收到第一终端发送的场景离开请求,服务器向第一终端和至少一个第二终端发送离开校验指令。703、第一终端校验目标虚拟对象的离开对象状态是否为可离开状态,并且若为可离开状态,则将目标虚拟对象的设置为不可操控状态。704、第二终端校验目标虚拟对象的离开对象状态是否为可离开状态,并且若为可离开状态,则将目标虚拟对象的设置为不可操控状态。705、响应于目标虚拟对象的离开对象状态为可离开状态,第一终端向服务器发送对象结算请求。706、在接收到第一终端发送的对象结算请求的情况下,服务器向第一终端和至少一个第二终端发送对象结算指令。707、第一终端向服务器发送目标虚拟对象当前的属性信息。708、第二终端从目标虚拟场景中移除目标虚拟对象。此时该目标虚拟对象正式离开该目标虚拟场景。
本申请实施例提供了一种虚拟场景的同步方案,通过在第一终端控制的目标虚拟对象请求加入目标虚拟场景中时,向第一终端返回该目标虚拟场景从场景进度为初始进度运行到目标进度这一过程中全部的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现第一终端将该目标虚拟场景的场景进度由初始进度运行至目标进度,再通过在第一终端的目标虚拟场景运行至目标进度时,向第一终端和目标虚拟场景中虚拟对象所在的至少一个终端发送携带对象标识的对象加载指令,使得各个终端能够在处于目标进度的目标虚拟场景中分别加载目标虚拟对象,从而实现目标虚拟场景在各个终端上同步显示,使得目标虚拟对象加入虚拟对局中的虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟对局中的虚拟场景,均能够保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
图8是根据本申请实施例提供的一种虚拟场景的同步装置的结构示意图。该装置用于执行上述虚拟场景的同步方法执行时的步骤,参见图8,该虚拟场景的同步装置包括:接收模块801和发送模块802。
接收模块801,用于接收第一终端发送的对目标虚拟场景的中途加入请求,中途加入请求携带目标虚拟对象的对象标识,该目标虚拟对象为第一终端控制的虚拟对象,该目标虚拟场景采用帧同步的方式进行数据同步,该目标虚拟场景包括由至少一个第二终端控制的虚拟对象;
发送模块802,用于向第一终端发送目标虚拟场景的多个场景图像帧的数据,该多个场景图像帧为目标虚拟场景运行过程中的全部场景图像帧,该多个场景图像帧的数据将目标虚拟场景的场景进度由初始进度运行至目标进度,该目标进度为目标虚拟场景当前所处的场景进度;
发送模块802,还用于响应于第一终端将目标虚拟场景的场景进度运行至目标进度,向第一终端和至少一个第二终端发送携带对象标识的对象加载指令,以使第一终端和至少一个第二终端在目标虚拟场景中加载目标虚拟对象。
在一些实施例中,图9是根据本申请实施例提供的另一种虚拟场景的同步装置的结构示意图。参见图9,该发送模块802,用于获取目标虚拟场景的多个场景图像帧的数据,该场景图像帧的数据包括第一类数据和第二类数据,该第一类数据用于执行渲染逻辑,该第二类数据用于执行操作逻辑;向第一终端发送多个场景图像帧的第二类数据。
在一些实施例中,继续参见图9,该装置还包括:
第一获取模块803,用于从多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;
发送模块802,还用于向第一终端发送多个目标场景图像帧的第一类数据。
在一些实施例中,继续参见图9,该装置还包括:
确定模块804,用于基于多个场景图像帧的数据,确定多个渲染内容;
第二获取模块805,用于从多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据,该目标渲染内容对应的数据为目标渲染内容所在的场景图像帧的第一类数据中的部分数据;
发送模块802,还用于向第一终端发送目标渲染内容对应的数据。
在一些实施例中,继续参见图9,发送模块802,还用于响应于接收到第一终端和至少一个第二终端发送的对象控制请求,向第一终端和至少一个第二终端发送确认控制指令,该确认控制指令用于指示将目标虚拟对象切换为可控制状态。
在一些实施例中,继续参见图9,接收模块801,还用于接收第一终端发送的对目标虚拟场景的场景离开请求,该场景离开请求携带目标虚拟对象的对象标识;
发送模块802,还用于向第一终端和至少一个第二终端发送离开校验指令,该离开校验指令用于指示判断目标虚拟对象的离开对象状态是否为可离开状态;
发送模块802,还用于响应于接收到第一终端发送的对象结算请求,向第一终端和至少一个第二终端发送对象结算指令,该对象结算指令用于指示第一终端上报目标虚拟对象当前的属性信息,指示至少一个第二终端从目标虚拟场景中移除目标虚拟对象。
在一些实施例中,继续参见图9,该装置还包括:
标记模块806,用于对于目标虚拟场景的场景进度为初始进度时存在的任一第一虚拟对象,采用第一标记对第一虚拟对象进行标记,该第一标记用于指示第一虚拟对象一直存在于目标虚拟场景中。
在一些实施例中,继续参见图9,标记模块806,还用于响应于目标虚拟对象的中途加入请求,在目标虚拟对象为第一虚拟对象的情况下,将目标虚拟对象的加载标记由第一标记修改为第二标记,该第二标记用于指示目标虚拟对象离开过目标虚拟场景,且本次加入目标虚拟场景;
标记模块806,还用于在目标虚拟对象不为第一虚拟对象的情况下,采用第三标记对目标虚拟对象进行标记,该第三标记用于指示目标虚拟对象本次加入目标虚拟场景。
在一些实施例中,继续参见图9,该装置还包括:
第三获取模块807,用于响应于目标虚拟对象的中途加入请求,获取目标虚拟场景中存在过的至少一个第二虚拟对象的加载标记,该第二虚拟对象的标记为第一标记、第二标记或者第三标记;
标记模块806,还用于对于任一第二虚拟对象,在第二虚拟对象的加载标记为第二标记的情况下,将第二虚拟对象的加载标记修改为第四标记,该第四标记用于指示第二虚拟对象非本次加入目标虚拟场景;
标记模块806,还用于在第二虚拟对象的加载标记为第三标记的情况下,将第二虚拟对象的加载标记修改为第五标记,该第五标记用于指示第二虚拟对象非本次加入目标虚拟场景。
本申请实施例提供了一种虚拟场景的同步装置,通过在第一终端控制的目标虚拟对象请求加入目标虚拟场景中时,向第一终端返回该目标虚拟场景从场景进度为初始进度运行到目标进度这一过程中全部的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现第一终端将该目标虚拟场景的场景进度由初始进度运行至目标进度,再通过在第一终端的目标虚拟场景运行至目标进度时,向第一终端和目标虚拟场景中虚拟对象所在的至少一个终端发送携带对象标识的对象加载指令,使得各个终端能够在处于目标进度的目标虚拟场景中分别加载目标虚拟对象,从而实现目标虚拟场景在各个终端上同步显示,使得目标虚拟对象加入虚拟对局中的虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟对局中的虚拟场景,均能够保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
需要说明的是,上述实施例提供的虚拟场景的同步装置在运行应用程序时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟场景的同步装置与虚拟场景的同步方法实施例属于同一构思,其实现过程见方法实施例,这里不再赘述。
图10是根据本申请实施例提供的一种虚拟场景的显示装置的结构示意图。该装置用于执行上述虚拟场景的显示方法执行时的步骤,参见图10,该虚拟场景的显示装置包括:获取模块1001、运行模块1002以及加载模块1003。
获取模块1001,用于响应于对目标虚拟场景的中途加入操作,获取目标虚拟场景的多个场景图像帧的数据,该目标虚拟场景采用帧同步的方式进行数据同步,该多个场景图像帧为目标虚拟场景运行过程中的全部场景图像帧;
运行模块1002,用于基于多个场景图像帧的数据,将目标虚拟场景的场景进度由初始进度运行至目标进度,该目标进度为目标虚拟场景当前所处的场景进度;
加载模块1003,用于在目标虚拟场景中,加载目标虚拟对象。
在一些实施例中,图11是根据本申请实施例提供的另一种虚拟场景的显示装置的结构示意图。参见图11,场景图像帧的数据包括第一类数据和第二类数据,该第一类数据用于执行渲染逻辑,该第二类数据用于执行操作逻辑;
该运行模块1002,包括:
加载单元1101,用于加载场景进度为初始进度时的目标虚拟场景;
获取单元1102,用于从多个场景图像帧的数据中,获取多个场景图像帧的第二类数据;
运行单元1103,用于基于多个场景图像帧的第二类数据,将目标虚拟场景的场景进度由初始进度运行至目标进度。
在一些实施例中,继续参见图11,运行单元1103,用于从多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;获取多个目标场景图像帧的第一类数据;基于多个目标场景图像帧的第一类数据和多个场景图像帧的第二类数据,将目标虚拟场景的场景进度由初始进度运行至目标进度。
在一些实施例中,继续参见图11,运行单元1103,用于基于多个场景图像帧的数据,确定多个渲染内容;从多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据,该目标渲染内容对应的数据为目标渲染内容所在的场景图像帧的第一类数据中的部分数据;基于目标渲染内容对应的数据和多个场景图像帧的第二类数据,将目标虚拟场景的场景进度由初始进度运行至目标进度。
在一些实施例中,继续参见图11,该装置还包括:
第一确定模块1004,用于基于多个场景图像帧的数据,确定目标虚拟场景关联的至少一个虚拟对象的加载标记;
加载模块1003,还用于在存在目标加载标记的情况下,在场景进度为初始进度的目标虚拟场景中,加载具有目标加载标记的虚拟对象,该目标加载标记用于指示在目标虚拟场景的场景进度为初始进度时存在该虚拟对象。
在一些实施例中,继续参见图11,运行模块1002,用于显示场景进度为初始进度时的目标虚拟场景;将多个场景图像帧的数据按照时序划分为第一帧数据组和第二帧数据组;基于第一帧数据组,采用部分渲染的方式,渲染目标虚拟场景;基于第二帧数据组,采用全部渲染的方式,渲染目标虚拟场景,以使目标虚拟场景加载至目标进度。
在一些实施例中,继续参见图11,加载模块1003,用于在目标虚拟场景的场景进度加载至目标进度之前,在目标虚拟场景中预加载目标虚拟对象。
在一些实施例中,继续参见图11,该装置还包括:
第二确定模块1005,用于响应于对目标虚拟场景的离开操作,确定目标虚拟对象的离开对象状态;
发送模块1006,用于响应于离开对象状态为可离开状态,向服务器发送目标虚拟对象当前的属性信息。
本申请实施例提供了一种虚拟场景的显示装置,通过在第一终端控制的目标虚拟对象请求加入目标虚拟场景中时,获取该目标虚拟场景从场景进度为初始进度运行到目标进度这一过程中全部的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现将该目标虚拟场景的场景进度由初始进度运行至目标进度,再在该目标虚拟场景中加载目标虚拟对象,从而第一终端显示的目标虚拟场景的场景进度与其他终端显示的目标虚拟场景的场景进度同步,使得目标虚拟对象加入虚拟对局中的虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟对局中的虚拟场景,均能够保证目标虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。
需要说明的是,上述实施例提供的虚拟场景的显示装置在运行应用程序时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟场景的显示装置与虚拟场景的显示方法实施例属于同一构思,其实现过程见方法实施例,这里不再赘述。
在本申请实施例中,计算机设备能够被配置为终端或者服务器,当计算机设备被配置为终端时,可以由终端作为执行主体来实施本申请实施例提供的技术方案,当计算机设备被配置为服务器时,可以由服务器作为执行主体来实施本申请实施例提供的技术方案,也可以通过终端和服务器之间的交互来实施本申请提供的技术方案,本申请实施例对此不作限定。
图12是根据本申请实施例提供的一种终端1200的结构示意图。该终端1200可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1201所执行以实现本申请中方法实施例提供的虚拟场景的同步方法或者虚拟场景的显示方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207和电源1208中的至少一种。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。在一些实施例中,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在终端1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端1200的不同表面或呈折叠设计;在另一些实施例中,显示屏1205可以是柔性显示屏,设置在终端1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。在一些实施例中,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
电源1208用于为终端1200中的各个组件进行供电。电源1208可以是交流电、直流电、一次性电池或可充电电池。当电源1208包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1200还包括有一个或多个传感器1209。该一个或多个传感器1209包括但不限于:加速度传感器1210、陀螺仪传感器1211、压力传感器1212、光学传感器1213以及接近传感器1214。
加速度传感器1210可以检测以终端1200建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1210可以用于检测重力加速度在三个坐标轴上的分量。处理器1201可以根据加速度传感器1210采集的重力加速度信号,控制显示屏1205以横向视图或纵向视图进行用户界面的显示。加速度传感器1210还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1211可以检测终端1200的机体方向及转动角度,陀螺仪传感器1211可以与加速度传感器1210协同采集用户对终端1200的3D动作。处理器1201根据陀螺仪传感器1211采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1212可以设置在终端1200的侧边框和/或显示屏1205的下层。当压力传感器1212设置在终端1200的侧边框时,可以检测用户对终端1200的握持信号,由处理器1201根据压力传感器1212采集的握持信号进行左右手识别或快捷操作。当压力传感器1212设置在显示屏1205的下层时,由处理器1201根据用户对显示屏1205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1213用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1213采集的环境光强度,控制显示屏1205的显示亮度。具体地,当环境光强度较高时,调高显示屏1205的显示亮度;当环境光强度较低时,调低显示屏1205的显示亮度。在另一个实施例中,处理器1201还可以根据光学传感器1213采集的环境光强度,动态调整摄像头组件1206的拍摄参数。
接近传感器1214,也称距离传感器,通常设置在终端1200的前面板。接近传感器1214用于采集用户与终端1200的正面之间的距离。在一个实施例中,当接近传感器1214检测到用户与终端1200的正面之间的距离逐渐变小时,由处理器1201控制显示屏1205从亮屏状态切换为息屏状态;当接近传感器1214检测到用户与终端1200的正面之间的距离逐渐变大时,由处理器1201控制显示屏1205从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图13是根据本申请实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)1301和一个或一个以上的存储器1302,其中,该存储器1302中存储有至少一条计算机程序,该至少一条计算机程序由该处理器1301加载并执行以实现上述各个方法实施例提供的虚拟场景的同步方法或者虚拟场景的显示方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一段计算机程序,该至少一段计算机程序由计算机设备的处理器加载并执行以实现上述实施例的虚拟场景的同步方法或者虚拟场景的显示方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请实施例中虚拟场景的同步方法,或者,被处理器执行时实现本申请实施例中虚拟场景的显示方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种虚拟场景的同步方法,其特征在于,所述方法包括:
接收第一终端发送的对目标虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为第一终端控制的虚拟对象,所述目标虚拟场景采用帧同步的方式进行数据同步,所述目标虚拟场景包括由至少一个第二终端控制的虚拟对象;
向所述第一终端发送所述目标虚拟场景的多个场景图像帧的数据,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧,所述多个场景图像帧的数据用于将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
响应于所述第一终端将所述目标虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述目标虚拟场景中加载所述目标虚拟对象。
2.根据权利要求1所述的方法,其特征在于,所述向所述第一终端发送所述目标虚拟场景的多个场景图像帧的数据,包括:
获取所述目标虚拟场景的所述多个场景图像帧的数据,所述场景图像帧的数据包括第一类数据和第二类数据,所述第一类数据用于执行渲染逻辑,所述第二类数据用于执行操作逻辑;
向所述第一终端发送所述多个场景图像帧的第二类数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
从所述多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;
向所述第一终端发送所述多个目标场景图像帧的第一类数据。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
基于所述多个场景图像帧的数据,确定多个渲染内容;
从所述多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据,所述目标渲染内容对应的数据为所述目标渲染内容所在的场景图像帧的第一类数据中的部分数据;
向所述第一终端发送所述目标渲染内容对应的数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一终端发送的对所述目标虚拟场景的场景离开请求,所述场景离开请求携带所述目标虚拟对象的对象标识;
向所述第一终端和所述至少一个第二终端发送离开校验指令,所述离开校验指令用于指示判断所述目标虚拟对象的离开对象状态是否为可离开状态;
响应于接收到所述第一终端发送的对象结算请求,向所述第一终端和所述至少一个第二终端发送对象结算指令,所述对象结算指令用于指示所述第一终端上报所述目标虚拟对象当前的属性信息,指示所述至少一个第二终端从所述目标虚拟场景中移除所述目标虚拟对象。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述目标虚拟场景的场景进度为初始进度时存在的任一第一虚拟对象,采用第一标记对所述第一虚拟对象进行标记,所述第一标记用于指示所述第一虚拟对象一直存在于所述目标虚拟场景中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述目标虚拟对象的所述中途加入请求,在所述目标虚拟对象为所述第一虚拟对象的情况下,将所述目标虚拟对象的加载标记由所述第一标记修改为第二标记,所述第二标记用于指示所述目标虚拟对象离开过所述目标虚拟场景,且本次加入所述目标虚拟场景;
在所述目标虚拟对象不为所述第一虚拟对象的情况下,采用第三标记对所述目标虚拟对象进行标记,所述第三标记用于指示所述目标虚拟对象本次加入所述目标虚拟场景。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于所述目标虚拟对象的所述中途加入请求,获取所述目标虚拟场景中存在过的至少一个第二虚拟对象的加载标记,所述第二虚拟对象的加载标记为所述第一标记、所述第二标记或者所述第三标记;
对于任一第二虚拟对象,在所述第二虚拟对象的加载标记为所述第二标记的情况下,将所述第二虚拟对象的加载标记修改为第四标记,所述第四标记用于指示所述第二虚拟对象非本次加入所述目标虚拟场景;
在所述第二虚拟对象的加载标记为所述第三标记的情况下,将所述第二虚拟对象的加载标记修改为第五标记,所述第五标记用于指示所述第二虚拟对象非本次加入所述目标虚拟场景。
9.一种虚拟场景的显示方法,其特征在于,所述方法包括:
响应于对目标虚拟场景的中途加入操作,获取所述目标虚拟场景的多个场景图像帧的数据,所述目标虚拟场景采用帧同步的方式进行数据同步,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧;
基于所述多个场景图像帧的数据,将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
在所述目标虚拟场景中,加载所述目标虚拟对象。
10.根据权利要求9所述的方法,其特征在于,所述场景图像帧的数据包括第一类数据和第二类数据,所述第一类数据用于执行渲染逻辑,所述第二类数据用于执行操作逻辑;
所述基于所述多个场景图像帧的数据,将所述目标虚拟场景的场景进度由初始进度运行至目标进度,包括:
加载场景进度为初始进度时的所述目标虚拟场景;
从所述多个场景图像帧的数据中,获取所述多个场景图像帧的第二类数据;
基于所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度。
11.根据权利要求10所述的方法,其特征在于,所述基于所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度,包括:
从所述多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;
获取所述多个目标场景图像帧的第一类数据;
基于所述多个目标场景图像帧的第一类数据和所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度。
12.根据权利要求10所述的方法,其特征在于,所述基于所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度,包括:
基于所述多个场景图像帧的数据,确定多个渲染内容;
从所述多个场景图像帧的数据中,获取渲染优先级高于目标优先级的目标渲染内容对应的数据,所述目标渲染内容对应的数据为所述目标渲染内容所在的场景图像帧的第一类数据中的部分数据;
基于所述目标渲染内容对应的数据和所述多个场景图像帧的第二类数据,将所述目标虚拟场景的场景进度由初始进度运行至所述目标进度。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
基于所述多个场景图像帧的数据,确定所述目标虚拟场景关联的至少一个虚拟对象的加载标记;
在存在目标加载标记的情况下,在场景进度为初始进度的所述目标虚拟场景中,加载具有所述目标加载标记的虚拟对象,所述目标加载标记用于指示在所述目标虚拟场景的场景进度为初始进度时存在所述虚拟对象。
14.根据权利要求9所述的方法,其特征在于,所述基于所述多个场景图像帧的数据,将所述目标虚拟场景的场景进度由初始进度运行至目标进度,包括:
显示场景进度为初始进度时的所述目标虚拟场景;
将所述多个场景图像帧的数据按照时序划分为第一帧数据组和第二帧数据组;
基于所述第一帧数据组,采用部分渲染的方式,渲染所述目标虚拟场景;
基于所述第二帧数据组,采用全部渲染的方式,渲染所述目标虚拟场景,以使所述目标虚拟场景加载至所述目标进度。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
响应于对所述目标虚拟场景的离开操作,确定所述目标虚拟对象的离开对象状态;
响应于所述离开对象状态为可离开状态,向服务器发送所述目标虚拟对象当前的属性信息。
16.一种虚拟场景的同步装置,其特征在于,所述装置包括:
接收模块,用于接收第一终端发送的对目标虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为第一终端控制的虚拟对象,所述目标虚拟场景采用帧同步的方式进行数据同步,所述目标虚拟场景包括由至少一个第二终端控制的虚拟对象;
发送模块,用于向所述第一终端发送所述目标虚拟场景的多个场景图像帧的数据,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧,所述多个场景图像帧的数据用于将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
所述发送模块,还用于响应于所述第一终端将所述目标虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述目标虚拟场景中加载所述目标虚拟对象。
17.一种虚拟场景的显示装置,其特征在于,所述装置包括:
获取模块,用于响应于对目标虚拟场景的中途加入操作,获取所述目标虚拟场景的多个场景图像帧的数据,所述目标虚拟场景采用帧同步的方式进行数据同步,所述多个场景图像帧为所述目标虚拟场景运行过程中的全部场景图像帧;
运行模块,用于基于所述多个场景图像帧的数据,将所述目标虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述目标虚拟场景当前所处的场景进度;
加载模块,用于在所述目标虚拟场景中,加载所述目标虚拟对象。
18.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行权利要求1至8任一项权利要求所述的虚拟场景的同步方法,或者,所述至少一段计算机程序由所述处理器加载并执行权利要求9至15任一项权利要求所述的虚拟场景的显示方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储至少一段计算机程序,所述至少一段计算机程序用于执行权利要求1至8任一项权利要求所述的虚拟场景的同步方法,或者,所述至少一段计算机程序用于执行权利要求9至15任一项权利要求所述的虚拟场景的显示方法。
20.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项权利要求所述的虚拟场景的同步方法,或者,所述计算机程序被处理器执行时实现如权利要求9至15任一项权利要求所述的虚拟场景的显示方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210730440.7A CN117298568A (zh) | 2022-06-24 | 2022-06-24 | 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 |
PCT/CN2023/088688 WO2023246250A1 (zh) | 2022-06-24 | 2023-04-17 | 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210730440.7A CN117298568A (zh) | 2022-06-24 | 2022-06-24 | 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117298568A true CN117298568A (zh) | 2023-12-29 |
Family
ID=89245144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210730440.7A Pending CN117298568A (zh) | 2022-06-24 | 2022-06-24 | 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117298568A (zh) |
WO (1) | WO2023246250A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8363051B2 (en) * | 2009-05-07 | 2013-01-29 | International Business Machines Corporation | Non-real-time enhanced image snapshot in a virtual world system |
CN112156456B (zh) * | 2020-09-23 | 2021-10-15 | 完美世界(北京)软件科技发展有限公司 | 游戏副本的展示方法及装置、存储介质、电子装置 |
CN113521743A (zh) * | 2020-11-26 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 游戏同步方法、装置、终端、服务器和存储介质 |
CN112973116B (zh) * | 2021-03-04 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 虚拟场景画面展示方法、装置、计算机设备及存储介质 |
CN112843681B (zh) * | 2021-03-04 | 2022-12-02 | 腾讯科技(深圳)有限公司 | 虚拟场景控制方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-24 CN CN202210730440.7A patent/CN117298568A/zh active Pending
-
2023
- 2023-04-17 WO PCT/CN2023/088688 patent/WO2023246250A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023246250A1 (zh) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110141859B (zh) | 虚拟对象控制方法、装置、终端及存储介质 | |
CN112494955B (zh) | 虚拟对象的技能释放方法、装置、终端及存储介质 | |
CN111589167B (zh) | 赛事观战方法、装置、终端、服务器及存储介质 | |
CN111589127B (zh) | 虚拟角色的控制方法、装置、设备及存储介质 | |
CN111744185B (zh) | 虚拟对象控制方法、装置、计算机设备及存储介质 | |
EP3943171A1 (en) | Virtual scenario display method and device, terminal, and storage medium | |
CN111596838B (zh) | 业务处理方法、装置、计算机设备及计算机可读存储介质 | |
CN112891931A (zh) | 虚拟角色的选择方法、装置、设备及存储介质 | |
CN111589141B (zh) | 虚拟环境画面的显示方法、装置、设备及介质 | |
CN111589116B (zh) | 显示功能选项的方法、装置、终端及存储介质 | |
CN110833695B (zh) | 基于虚拟场景的业务处理方法、装置、设备及存储介质 | |
CN113457173B (zh) | 远程教学方法、装置、计算机设备及存储介质 | |
CN113134232B (zh) | 虚拟对象的控制方法、装置、设备及计算机可读存储介质 | |
CN112274936B (zh) | 虚拟道具的子道具补充方法、装置、设备及存储介质 | |
CN112604302B (zh) | 虚拟环境中虚拟对象的互动方法、装置、设备及存储介质 | |
CN111752697B (zh) | 应用程序的运行方法、装置、设备及可读存储介质 | |
CN111589117B (zh) | 显示功能选项的方法、装置、终端及存储介质 | |
CN113599819A (zh) | 提示信息的显示方法、装置、设备及存储介质 | |
CN113144598A (zh) | 虚拟对局的预约方法、装置、设备及介质 | |
CN112156454A (zh) | 虚拟对象的生成方法、装置、终端及可读存储介质 | |
CN112675538B (zh) | 数据同步方法、装置、设备及介质 | |
CN113171613B (zh) | 组队对局方法、装置、设备及存储介质 | |
CN112843703B (zh) | 信息显示方法、装置、终端及存储介质 | |
CN111672107B (zh) | 虚拟场景的显示方法、装置、计算机设备及存储介质 | |
CN114405013A (zh) | 在同一对局中的不同队伍间的交流方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40099873 Country of ref document: HK |