WO2023246250A1 - 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 - Google Patents

虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 Download PDF

Info

Publication number
WO2023246250A1
WO2023246250A1 PCT/CN2023/088688 CN2023088688W WO2023246250A1 WO 2023246250 A1 WO2023246250 A1 WO 2023246250A1 CN 2023088688 W CN2023088688 W CN 2023088688W WO 2023246250 A1 WO2023246250 A1 WO 2023246250A1
Authority
WO
WIPO (PCT)
Prior art keywords
scene
virtual
terminal
target
progress
Prior art date
Application number
PCT/CN2023/088688
Other languages
English (en)
French (fr)
Inventor
秦睿杰
黄沛鑫
Original Assignee
腾讯科技(深圳)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Publication of WO2023246250A1 publication Critical patent/WO2023246250A1/zh
Priority to US18/739,499 priority Critical patent/US20240325893A1/en

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling 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/537Controlling 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/5372Controlling 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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

Definitions

  • the present application relates to the field of computer technology, and in particular to a virtual scene synchronization method, virtual scene display method, device and equipment.
  • Frame synchronization is a synchronization method for online games.
  • the server forwards the obtained operation instruction sequences of multiple clients to each client.
  • the client executes the game logic according to the received operation instruction sequence and then renders the scene image frame of the virtual scene. , to enable each client to display scene image frames of the virtual scene synchronously.
  • Embodiments of the present application provide a virtual scene synchronization method, virtual scene display method, device and equipment, which can synchronize the terminals of virtual objects added midway with the terminals of existing virtual objects, thereby promoting the creation of more virtual objects. Increase engagement by adding virtual scenarios.
  • the technical solutions are as follows:
  • a virtual scene synchronization method includes:
  • the server receives a midway join request to the virtual scene sent by the first terminal.
  • the midway join request carries an object identifier of a target virtual object.
  • the target virtual object is a virtual object controlled by the first terminal.
  • the virtual scene includes: At least one virtual object controlled by the second terminal;
  • the server sends data of multiple scene image frames of the virtual scene to the first terminal, and the data of the multiple scene image frames is used to run the scene progress of the virtual scene from an initial progress to a target progress,
  • the target progress is the progress of the scene where the virtual scene is currently located;
  • the server responds to the first terminal running the scene progress of the virtual scene to the target progress, and sends an object loading instruction carrying the object identifier to the first terminal and the at least one second terminal, So that the first terminal and the at least one second terminal load the target virtual object in the virtual scene.
  • a method for displaying a virtual scene includes:
  • the first terminal acquires data of a plurality of scene image frames of the virtual scene in response to a midway join operation on the virtual scene, the midway join operation indicates adding a target virtual object to the virtual scene;
  • the first terminal runs the scene progress of the virtual scene from an initial progress to a target progress based on the data of the multiple scene image frames, and the target progress is the scene progress where the virtual scene is currently located;
  • the first terminal loads the target virtual object in the virtual scene.
  • a virtual scene synchronization device which is provided in a server.
  • the device includes:
  • a receiving module configured to receive a request to join the virtual scene midway sent by the first terminal, where the request to join midway carries An object identifier with a target virtual object, the target virtual object is a virtual object controlled by the first terminal, and the virtual scene includes a virtual object controlled by at least one second terminal;
  • a sending module configured to send data of multiple scene image frames of the virtual scene to the first terminal, where the data of the multiple scene image frames are used to run the scene progress of the virtual scene from the initial progress to the target.
  • Progress, the target progress is the progress of the scene where the virtual scene is currently located;
  • the sending module is further configured to send a message carrying the object identifier to the first terminal and the at least one second terminal in response to the first terminal running the scene progress of the virtual scene to the target progress.
  • object loading instructions to cause the first terminal and the at least one second terminal to load the target virtual object in the virtual scene.
  • a virtual scene display device which is provided in the first terminal, and the device includes:
  • An acquisition module configured to acquire data of a plurality of scene image frames of the virtual scene in response to a midway join operation on the virtual scene, the midway join operation indicating that a target virtual object is added to the virtual scene;
  • An operation module configured to run the scene progress of the virtual scene from an initial progress to a target progress based on the data of the plurality of scene image frames, where the target progress is the progress of the scene where the virtual scene is currently located;
  • a loading module is used to load the target virtual object in the virtual scene.
  • a computer device includes a processor and a memory.
  • the memory is used to store at least one computer program.
  • the at least one computer program is loaded and executed by the processor to implement the present application.
  • the virtual scene synchronization method in the embodiment, or the at least one section of the computer program is loaded and executed by the processor to implement the virtual scene display method in the embodiment of the present application.
  • a computer-readable storage medium stores at least one section of a computer program.
  • the at least one section of the computer program is loaded and executed by a processor to implement virtualization as in the embodiment of the present application.
  • the scene synchronization method, or the at least one section of the computer program is loaded and executed by the processor to implement the virtual scene display method in the embodiment of the present application.
  • a computer program product When the computer program product is executed by a processor, it implements the synchronization method of the virtual scene in the embodiment of the present application, or when executed by the processor, it implements the display of the virtual scene in the embodiment of the present application. method.
  • Embodiments of the present application provide a synchronization solution for virtual scenes.
  • the target virtual object controlled by the first terminal requests to join the virtual scene
  • the virtual scene is returned to the first terminal from the scene progress to the initial progress to the target progress.
  • the data of the scene image frames in the process enables the first terminal to quickly chase frames based on the acquired data, so that the first terminal can run the scene progress of the virtual scene from the initial progress to the target progress.
  • the first terminal's virtual When the scene reaches the target progress, send an object loading instruction carrying the object identifier to the first terminal and at least one second terminal where the virtual object in the virtual scene is located, so that each terminal can load the target virtual object in the virtual scene at the target progress.
  • Figure 1 is an implementation environment of a virtual scene synchronization method provided according to an embodiment of the present application
  • Figure 2 is a flow chart of a virtual scene synchronization method provided according to an embodiment of the present application.
  • Figure 3 is a flow chart of a virtual scene display method provided according to an embodiment of the present application.
  • Figure 4 is an interactive flow chart of another virtual scene synchronization method provided according to an embodiment of the present application.
  • Figure 5 is a schematic diagram of a first virtual scene provided according to an embodiment of the present application.
  • Figure 6 is an interaction flow chart for adding a target virtual object to a virtual scene according to an embodiment of the present application
  • Figure 7 is an interaction flow chart for a target virtual object leaving a virtual scene according to an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of a virtual scene synchronization device provided according to an embodiment of the present application.
  • Figure 11 is a schematic structural diagram of another virtual scene display device provided according to an embodiment of the present application.
  • the virtual scene synchronization method provided by the embodiment of the present application can be executed by a computer device.
  • the computer device is a terminal or a server.
  • the following uses a computer device as a server as an example to introduce the implementation environment of the virtual scene synchronization method provided by the embodiment of the present application.
  • Figure 1 is a schematic diagram of the implementation environment of the virtual scene synchronization method provided by the embodiment of the present application. Referring to Figure 1, the implementation environment includes a terminal 101 and a server 102. The terminal 101 and the server 102 can be connected directly or indirectly through wired or wireless communication methods, which is not limited in this application.
  • the terminal 101 is a smartphone, a tablet computer, a notebook computer, a desktop computer, a smart speaker, a smart watch, a smart voice interaction device, a smart home appliance, a vehicle-mounted terminal, etc., but is not limited thereto.
  • the terminal 101 has applications installed and running.
  • the application supports virtual games, which can include one virtual scene or multiple virtual scenes.
  • joining the virtual scene midway means requesting to join the virtual game from outside the virtual game and joining the virtual scene; or when in the virtual game but not in the virtual scene, requesting to join the virtual scene. virtual scene.
  • joining the virtual scene midway means requesting from the virtual game to join the virtual game and joining a certain virtual scene; or requesting to join when in the virtual game but not in the virtual scene.
  • the application can be a first-person shooting game (FPS), a third-person shooting game, a multiplayer online game Any of Multiplayer Online Battle Arena games (MOBA), virtual reality applications, three-dimensional map programs, or multiplayer gunfight survival games.
  • Terminal 101 is a terminal used by a user, and a user account is logged in.
  • the number of the above terminals may be more or less. For example, there may be only one terminal, or there may be dozens, hundreds, or more terminals. The embodiments of this application do not limit the number of terminals and device types.
  • the virtual scene uses frame synchronization for data synchronization, that is, the server can obtain the operation instruction sequences triggered by multiple terminals associated with the virtual scene, and then the server synchronizes the obtained operation instruction sequences triggered by multiple terminals to the multiple terminals.
  • the multiple terminals execute the operation logic according to the received operation instruction sequence and then render the virtual scene, so as to realize the synchronous display of the virtual scene on multiple terminals.
  • the plurality of terminals include at least one second terminal, which is a terminal for manipulating virtual objects in the virtual scene. In addition to the at least one second terminal, the plurality of terminals may also include other terminals.
  • the virtual objects controlled by the other terminals have entered the virtual scene, and the virtual objects controlled by the other terminals are not in the virtual scene at the current moment.
  • the service The server sends an object loading instruction to the first terminal and at least one second terminal.
  • the object loading instruction sent by the server to at least one second terminal carries the object identifier of the target virtual object.
  • the first terminal and at least one second terminal respond to the object loading instruction, determine the target virtual object indicated by the object identifier, and load the target virtual object in the virtual scene.
  • the first terminal runs the scene progress of the virtual scene from the initial progress to the target progress.
  • the target progress is the scene progress of the virtual scene currently.
  • the scene progress of the virtual scene displayed on the at least one second terminal is the target progress. Since the target virtual object controlled by the first terminal is a virtual object added midway, in order to keep the first terminal and the at least one second terminal synchronized, the first terminal quickly tracks the virtual scene based on the data of multiple scene image frames. Frame, that is, the scene progress of the virtual scene is quickly moved from the initial progress to the target progress.
  • the first virtual scene and the second virtual scene are both virtual scenes in a virtual game, and the first virtual scene and the second virtual scene are independent of each other and do not affect each other.
  • the solution provided by the embodiment of the present application sends a midway joining request to the server when the target virtual object requests to join the second virtual scene from the first virtual scene in the virtual game, thereby enabling the target virtual object to join the virtual game from the first virtual scene.
  • One virtual scene joins another virtual scene midway.
  • FIG. 5 is a schematic diagram of a first virtual scene provided according to an embodiment of the present application.
  • the first virtual scene displays a target virtual object, a control added midway, a map display area, etc.
  • the map displays nine virtual scenes including the virtual game in the area.
  • the virtual scene numbered 2 is the first virtual scene where the target virtual object is located.
  • the target virtual object can perform the game task in the first virtual scene in the first virtual scene.
  • the virtual scene numbered 5 is the second virtual scene.
  • the second virtual scene can be determined by triggering a number in the map display area. By triggering the midway joining control, the target virtual object can join the second virtual scene numbered 5 from the first virtual scene numbered 2.
  • the virtual scene is a virtual scene in which the virtual game includes multiple virtual scenes.
  • the target virtual object does not participate in the virtual game, and is not in any virtual scene; or, when the virtual game begins, the target virtual object participates in the virtual game, However, the target virtual object is in a waiting state and is not in any virtual scene.
  • the process of the target virtual object requesting to join the virtual scene is: the first terminal displays an object selection interface, and multiple virtual objects are displayed in the object selection interface.
  • the first terminal displays a scene selection interface.
  • the scene selection interface displays multiple virtual scenes of the virtual game.
  • the first terminal displays a scene selection interface.
  • the server sends a join request midway. It should be noted that, instead of selecting a virtual scene, the target virtual object may be randomly added to any virtual scene among the plurality of virtual scenes.
  • the virtual scene is the only virtual scene of the virtual game.
  • the target virtual object did not participate in the virtual game, and therefore did not join the virtual scene; or, at the beginning of the virtual game, the target virtual object participated in the virtual game, but The target virtual object is in a waiting state and has not joined the virtual scene.
  • the process of the target virtual object requesting to join the virtual scene is as follows: the first terminal displays an object selection interface, and multiple virtual objects are displayed in the object selection interface. In response to the selection operation of the target virtual object, the first terminal sends a midway join request to the server.
  • the join request carries the object identifier of the target virtual object.
  • the target virtual object when it is not in the virtual scene and requests to join the virtual scene, it sends a midway join request to the server, so that the target virtual object can join the virtual scene midway without being in the virtual scene.
  • the virtual scene of the virtual game makes the opportunity to join the virtual game unrestricted, allowing virtual objects to freely join the virtual scene and improving the flexibility of participating in the virtual game.
  • the target virtual object can actively request to join the virtual scene, or can request to join the virtual scene upon receiving an invitation from any virtual object in the virtual scene.
  • the target virtual object joins the virtual scene midway
  • the joining methods include the following three.
  • the target virtual object actively requests to join the virtual scene by selecting the virtual scene in the map display area.
  • the first terminal displays a first virtual scene, and the first virtual scene displays a map display area.
  • the map display area includes scene identifiers of multiple virtual scenes.
  • the first terminal sends a midway join request to the server so that the target virtual object can join the virtual scene from the first virtual scene.
  • the target virtual object actively requests to join the virtual scene by entering the virtual channel of the virtual scene.
  • Multiple virtual scenes of the virtual game are connected by virtual channels.
  • the first terminal sends a midway joining request to the server so that the target virtual object can pass through the first virtual scene.
  • the virtual channel joins the virtual scene.
  • Joining method three the target virtual object is invited to join the virtual scene.
  • the first terminal displays the invitation prompt information and the join-in-the-way control.
  • the first terminal sends the invitation message to the server.
  • a join request is made to enable the target virtual object to join the virtual scene from the first virtual scene to provide support for other virtual objects in the virtual scene.
  • the server receives the midway join request to the virtual scene sent by the first terminal, sends data of multiple scene image frames of the virtual scene to the first terminal, and sends the object identifier of the target virtual object to at least one second terminal.
  • the virtual scene includes a virtual object controlled by at least one second terminal.
  • the multiple scene image frames are all scene image frames during the running of the virtual scene.
  • the data of the multiple scene image frames include the operation instruction sequence between the server and the terminal associated with the virtual scene, data for rendering the virtual scene, and Data used to render virtual objects.
  • the terminal associated with the virtual scene refers to the terminal corresponding to the virtual object that has appeared in the virtual scene.
  • the operation instruction sequence includes multiple object control instructions, and the object control instructions are used to control virtual objects, including attack instructions, escape instructions, posture adjustment instructions, etc., which are not limited in the embodiments of the present application.
  • the data of the plurality of scene image frames also includes object creation instructions and object removal instructions between the server and the terminal associated with the virtual scene.
  • the target virtual object can join or leave the virtual scene many times midway.
  • the first terminal can change the scene of the virtual scene based on the data of multiple scene image frames.
  • the progress runs from the initial progress to the current scene progress; when the target virtual object leaves the virtual scene, the virtual scene at the leaving progress can be saved, so that when the target virtual object joins the virtual scene midway, it can start from the leaving progress.
  • Run to the current scene progress of the virtual scene to improve synchronization progress.
  • the above-mentioned process of running the scene progress of the virtual scene from a certain progress to the current scene progress can be called fast frame chasing.
  • the server may divide the data in the scene image frame into first type data and second type data.
  • the first type of data is used to execute operation logic
  • the second type of data is used to execute rendering logic. Since the first terminal executes a large amount of operation logic and rendering logic in a short period of time, the speed of loading virtual scenes and virtual objects on the first terminal will be slower, resulting in longer synchronization time between the first terminal and other terminals, thus reducing user experience. Therefore, the server can select partial data from the data of multiple scene image frames and send it to the first terminal, so that the first terminal uses the received partial data to run the scene progress of the virtual scene from the initial progress to the current stage. Scene progress to reduce synchronization time and improve synchronization efficiency.
  • the server sends data to the first terminal in the following four ways.
  • the server obtains the data of the target rendering content from the data of multiple scene image frames.
  • the rendering priority of the target rendering content is higher than the target priority.
  • the target priority can be flexibly set by the server.
  • the server sends data of the target rendering content to the first terminal.
  • the data of the target rendering content is part of the second type data of the scene image frame in which the target rendering content is located.
  • the solution provided by the embodiment of the present application on the basis of sending the first type of data of multiple scene image frames to the first terminal, also sends the data of the target rendering content with a higher rendering priority to the first terminal, so that the first terminal
  • the target rendering content can always be presented to avoid the first terminal not presenting the target rendering content, causing the user to perform misoperations.
  • the virtual object exists when the virtual scene is created, but has left the virtual scene and requested to join the virtual scene before the current time. Since the virtual object exists when the virtual scene is created, the initial mark is the first mark. Then when the virtual object leaves the virtual scene and joins the virtual scene again, the mark is modified to the second mark.
  • the server can modify the second mark of the virtual object again.
  • the server responds to the midway joining request of the target virtual object and obtains the mark of at least one second virtual object that has existed in the virtual scene, and the mark of the second virtual object is the first mark, the second mark or the third mark.
  • the second virtual object is any virtual object that has existed in the virtual scene.
  • the virtual object does not exist when the virtual scene is created, and a request is made to join the virtual scene before the current time. Since the virtual object does not exist when the virtual scene is created, when the second virtual object requests to join the virtual scene for the first time, the server uses the third tag to mark the virtual object.
  • the server can modify the third tag of the virtual object.
  • the server obtains the mark of at least one second virtual object that has existed in the virtual scene, and the mark of the second virtual object is the first mark, the second mark, or the third mark.
  • the tag of the second virtual object is the third tag
  • the server modifies the third tag of the second virtual object to the fifth tag.
  • the fifth mark indicates that the second virtual object is not added to the virtual object this time. Scenes. Then, the first terminal needs to load the second virtual object when the second virtual object applies to join the virtual scene for the first time. It should be noted that there is a difference between the fourth mark and the fifth mark.
  • the fourth mark indicates that the virtual object does not join the virtual scene this time, and the virtual object exists when the virtual scene is created, but has left the virtual scene and was requested before the current moment. Join this virtual scene.
  • the fifth mark indicates that the virtual object is not joining the virtual scene this time, and the virtual object does not exist when the virtual scene is created, and the virtual object is requested to join the virtual scene before the current time.
  • the first terminal runs the scene progress of the virtual scene from the initial progress to the target progress.
  • the target progress is the scene progress of the virtual scene currently.
  • the first terminal obtains the data of multiple scene image frames of the virtual scene from the server.
  • the data of the multiple scene image frames may be all the data of the multiple scene image frames, or may be the data after being processed by the server. Some data, the embodiments of this application do not limit this.
  • the first terminal may quickly display multiple scene image frames arranged in time sequence, or the first terminal may not display the multiple scene image frames and only display a loading interface (loading interface).
  • At least one loading progress bar is displayed in the loading interface. Through the at least one loading progress bar, the progress of the first terminal loading the virtual scene and the progress of the at least one second terminal loading the target virtual object can be visually displayed.
  • the data of the multiple scene image frames acquired by the first terminal is all data of the multiple scene image frames.
  • the data of the scene image frame includes first type data and second type data.
  • the first type of data is used to execute operation logic
  • the second type of data is used to execute rendering logic. Since the first terminal executes a large amount of operation logic and rendering logic in a short period of time, it will cause the first terminal to load virtual scenes and virtual objects slowly, causing the first terminal to take longer to synchronize with other terminals, thereby reducing user experience. Therefore, the first terminal can select partial data from all data of multiple scene image frames to load the virtual scene.
  • the first terminal loads virtual scenes in four ways:
  • the first terminal can, on the basis of acquiring the first type data of multiple scene image frames, also acquire the second type data of part of the scene image frames from the data of the multiple scene image frames.
  • the first terminal acquires multiple target scene image frames within the target frame number range from the multiple scene image frames.
  • the first terminal acquires second type data of a plurality of target scene image frames. Then, the first terminal runs the scene progress of the virtual scene from the initial progress to the target progress based on the second type data of the plurality of target scene image frames and the first type data of the plurality of scene image frames.
  • the target frame number range is 60 frames, 90 frames or 120 frames that are ranked lower among multiple scene image frames, and the embodiment of the present application does not limit this.
  • the solution provided by the embodiment of the present application enables the first terminal to obtain the first type of data of multiple scene image frames and the second type of data of multiple target scene image frames in the lower order, so that the first terminal can obtain the first type of data based on the multiple target scene image frames.
  • the second type of data is rendered, so that when the virtual scene reaches the current scene progress, the first terminal can present the situation in the virtual scene to avoid the first terminal not displaying the special effects of skills released by other virtual objects. Causing users to perform incorrect operations.
  • the first terminal runs the scene progress of the virtual scene from the initial progress to the target progress based on the data of the target rendering content and the first type data of the plurality of scene image frames.
  • the data of the target rendering content is part of the second type data of the scene image frame in which the target rendering content is located.
  • the first terminal can also obtain the first type data of multiple scene image frames, the second type data of multiple target scene image frames in the lower order, and the rendering priority from the data of multiple scene image frames.
  • the data of the higher-level target rendering content is used to run the scene progress of the virtual scene from the initial progress to the target progress based on these data, which will not be described again here.
  • the solution provided by the embodiment of the present application obtains the above data from all the data of multiple scene image frames, so that the first terminal can change the scene progress of the virtual scene from the initial progress without processing all the data of the multiple scene image frames.
  • Running to the current scene progress requires less data to be processed, which can improve the efficiency of running the virtual scene to the current scene progress.
  • the first terminal can The situation in the virtual scene is presented.
  • the virtual scene displays target rendering content to prevent users from performing misoperations because they do not see the special effects of skills that exist in the virtual scene.
  • the first terminal can render the virtual scene in two ways: partial rendering and full rendering.
  • the first terminal displays the virtual scene when the scene progress is the initial progress.
  • the first terminal divides the data of the plurality of scene image frames into a first frame data group and a second frame data group according to time sequence.
  • the first terminal uses partial rendering to render the virtual scene based on the first frame data group.
  • the first terminal renders the virtual scene in a full rendering manner, so that the virtual scene is loaded to the target progress.
  • the first frame data group is earlier than the second frame data group.
  • Full rendering can render more details than partial rendering.
  • This partial rendering method may only render the skill special effects with higher rendering priority in the virtual scene, or it may only render the outlines of virtual objects and scene elements in the virtual scene. This is not limited by the embodiments of the present application.
  • the solution provided by the embodiment of the present application uses two methods of partial rendering and full rendering to render the virtual scene, so that the scene progress of the virtual scene can be run from the initial progress to the current scene progress. Due to the processed data Less, so it can improve the efficiency of running the virtual scene to the current scene progress.
  • the solution provided by the embodiment of the present application uses the tag carried by the virtual object to load the virtual object at the corresponding timing, ensuring that the first terminal can accurately restore the running process of the virtual scene, thereby improving the performance of the virtual scene and the virtual objects in the virtual scene. accuracy.
  • the first terminal when the first terminal runs the virtual scene to the target progress, the first terminal can send an object loading request to the server, and the object loading request carries the object identifier of the target virtual object.
  • the first terminal requests the server to allow loading of the target virtual object.
  • new scene image frame data will also be generated in the virtual scene.
  • the first terminal can receive the data of the new scene image frame sent by the server. After the first terminal runs the virtual scene to the target progress, the first terminal continues to load the virtual scene based on the data of the new scene image frame.
  • the server In response to the first terminal running the scene progress of the virtual scene to the target progress, the server sends an object loading instruction carrying the object identifier to the first terminal and at least one second terminal, so that the first terminal and at least one second terminal Load the target virtual object in the virtual scene.
  • the server receives the object loading request sent by the first terminal. Based on the object loading request, the server determines that the first terminal runs the scene progress of the virtual scene to the target progress. Then, the server sends the object loading instruction to the first terminal and at least one second terminal.
  • the object loading instruction carries the object identifier of the target virtual object, so that the first terminal and at least one second terminal create the target virtual object respectively according to the object identifier.
  • the server can send an object loading instruction to the first terminal and at least one second terminal at the same time. At this time, the object loading instruction instructs the terminal to create the target virtual object when receiving the object loading instruction; it can also send the object loading instruction to the first terminal at different times. and at least one second terminal respectively send an object loading instruction. At this time, the object loading instruction instructs the terminal to create a target virtual object in the scene image frame indicated by the object loading instruction. The embodiment of the present application does not limit this.
  • the server when the server receives the midway join request sent by the first terminal, the server can forward the object identifier of the target virtual object carried in the midway join request to at least one second terminal to notify the at least one third terminal.
  • the second terminal target virtual object requests to join the virtual scene.
  • the at least one second terminal can preload the target virtual object based on the object identification. Then, the above object loading instruction does not need to carry the object identifier of the target virtual object.
  • the first terminal loads the target virtual object in the virtual scene.
  • loading the target virtual object includes two steps: creating the target virtual object and displaying the target virtual object.
  • the first terminal can obtain the target locally based on the object identifier of the target virtual object.
  • the special effects resource of the virtual object is used to present the target virtual object and add it to the virtual scene. Then.
  • the first terminal displays the special effect resource and the target virtual object in the virtual scene.
  • the first terminal before the scene progress of the virtual scene is loaded to the target progress, can also preload the target virtual object in the virtual scene.
  • the preloaded target virtual object is displayed.
  • the preloaded content may be a three-dimensional model of the target virtual object, which is not limited in the embodiments of the present application.
  • the solution provided by the embodiment of the present application can increase the speed of loading the target virtual object by preloading the target virtual object during the process of loading the scene progress of the virtual scene from the initial progress to the target progress, thereby improving the target virtual object. The efficiency of adding virtual scenes midway.
  • the second terminal loads the target virtual object in the virtual scene.
  • the second terminal creates a target virtual object after receiving the object loading instruction. After the creation of the target virtual object is completed, the second terminal obtains the special effects resources of the target virtual object locally based on the object identifier of the target virtual object. Then, the special effect resource and the target virtual object are displayed in the virtual scene.
  • step 405 may be executed before step 406, may be executed after step 406, or may be executed simultaneously with step 406.
  • step 405 may be executed before step 406, may be executed after step 406, or may be executed simultaneously with step 406.
  • the embodiment of the present application does not limit this.
  • the first terminal sends an object control request to the server.
  • the object control request carries the object identifier of the target virtual object, and is used to request that the target virtual object be switched to a controllable state.
  • the object control request carries the object identifier of the target virtual object, and is used to request that the target virtual object be switched to a controllable state.
  • step 407 may be executed before step 408, may be executed after step 408, or may be executed simultaneously with step 408.
  • step 408 may be executed before step 407
  • step 407 may be executed before step 408, may be executed after step 408, or may be executed simultaneously with step 408.
  • step 407 may be executed before step 408, may be executed after step 408, or may be executed simultaneously with step 408.
  • step 408 may be executed simultaneously with step 408.
  • the server In response to the object control instruction sent by the first terminal and at least one second terminal, the server sends a confirmation control instruction to the first terminal and at least one second terminal, where the confirmation control instruction instructs to switch the target virtual object to a controllable state.
  • the server only after receiving an object control instruction sent by the first terminal and an object control instruction sent by at least one second terminal, the server will send confirmation control to the first terminal and at least one second terminal.
  • the object control instruction instructs the first terminal and at least one second terminal to switch the target virtual object from an uncontrollable state to a controllable state at the same moment to ensure synchronization.
  • the server can send an object control instruction to the first terminal and at least one second terminal at the same time, and the object control instruction instructs the terminal to switch the target virtual object from an uncontrollable state to a controllable state when receiving the object control instruction; also
  • the object control instruction may be sent to the first terminal and at least one second terminal at different times. At this time, the object control instruction instructs the terminal to switch the target virtual object from an uncontrollable state when displaying the scene image frame indicated by the object control instruction. It is a controllable state, and the embodiment of the present application does not limit this.
  • the first terminal displays the target virtual object to perform the game task in the virtual scene.
  • the first terminal switches the target virtual object to a controllable state in response to the confirmation control instruction sent by the server. Then, the first terminal controls the target virtual object to compete in the virtual scene. Since the multiple virtual scenes of the virtual game are independent of each other, the multiple game tasks corresponding to the multiple virtual scenes are also independent of each other. When the target virtual object is in a controllable state, the target virtual object can attack other virtual objects and will also be attacked by other virtual objects.
  • the second terminal displays the target virtual object to perform the game task in the virtual scene.
  • step 410 may be executed before step 411, may be executed after step 411, or may be executed simultaneously with step 411, which is not limited in the embodiment of the present application.
  • Figure 6 is an interaction flow chart for adding a target virtual object to a virtual scene according to an embodiment of the present application.
  • the process of the target virtual object requesting to join the virtual scene can be implemented through the following steps 601 to 613. 601.
  • the server sends data of multiple scene image frames to the first terminal, and sends the object identification of the target virtual object to at least one second terminal.
  • the first terminal runs the scene progress of the virtual scene from the initial progress to the target progress based on the data of the multiple scene image frames. 603.
  • the first terminal In response to the leave operation of the virtual scene, the first terminal sends a scene leave request, where the scene leave request carries the object identifier of the target virtual object.
  • the target virtual object can request to leave the virtual scene.
  • the first terminal sends a scene leaving request to the server. Since the scene leaving request carries the object identifier of the target virtual object, the server can determine the virtual object that wants to leave the virtual scene.
  • the first terminal sends an object settlement request to the server.
  • the second terminal removes the target virtual object from the virtual scene.
  • FIG. 7 is an interaction flow chart of a target virtual object leaving a virtual scene according to an embodiment of the present application.
  • the process of the target virtual object requesting to leave the virtual scene can be implemented through the following steps 701 to 708. 701.
  • the first terminal sends a scene leaving request. 702.
  • the server sends a leaving verification instruction to the first terminal and at least one second terminal. 703.
  • the first terminal checks whether the status of the target virtual object is a leaveable state, and if it is a leaveable state, sets the target virtual object to an uncontrollable state. 704.
  • the second terminal checks whether the status of the target virtual object is a leaveable state, and if it is a leaveable state, sets the target virtual object to an uncontrollable state. 705.
  • the first terminal sends an object settlement request to the server. 706.
  • the server Upon receiving the object settlement request sent by the first terminal, the server sends an object settlement instruction to the first terminal and at least one second terminal. 707.
  • the first terminal sends the current attribute information of the target virtual object to the server. 708.
  • the second terminal removes the target virtual object from the virtual scene. At this time, the target virtual object officially leaves the virtual scene.
  • the receiving module 801 is configured to receive a request to join the virtual scene midway sent by the first terminal.
  • the join request carries the object identifier of the target virtual object.
  • the target virtual object is a virtual object controlled by the first terminal.
  • the virtual scene includes at least a virtual object controlled by a second terminal;
  • the sending module 802 is configured to send data of multiple scene image frames of the virtual scene to the first terminal.
  • the data of the multiple scene image frames run the scene progress of the virtual scene from the initial progress to the target progress.
  • the target progress is the virtual scene.
  • the data of the scene image frame also includes a second type of data, and the second type of data is used to execute rendering logic; the device also includes:
  • the determination module 804 is used to determine multiple rendering contents based on the data of multiple scene image frames
  • the second acquisition module 805 is used to obtain the data of the target rendering content from the data of multiple scene image frames.
  • the rendering priority of the target rendering content is higher than the target priority.
  • the data of the target rendering content is where the target rendering content is located. Part of the second type data of the scene image frame;
  • the sending module 802 is also used to send data of the target rendering content to the first terminal.
  • the sending module 802 is also configured to respond to the object settlement request sent by the first terminal and send an object settlement instruction to the first terminal and at least one second terminal.
  • the object settlement instruction instructs the first terminal to report the current attribute information of the target virtual object, Instructing at least one second terminal to remove the target virtual object from the virtual scene.
  • the device further includes:
  • the marking module 806 is used to mark any first virtual object in the virtual scene with a first mark.
  • the first virtual object is a virtual object that exists when the scene progress of the virtual scene is the initial progress.
  • the first mark indicates that the first virtual object always exists in the virtual scene.
  • the marking module 806 is also configured to mark the target virtual object with a third mark when the target virtual object is not the first virtual object.
  • the third mark indicates that the target virtual object joins the virtual scene this time.
  • the third acquisition module 807 is used to obtain the mark of at least one second virtual object that has existed in the virtual scene in response to the midway join request, and the mark of the second virtual object is the first mark, the second mark or the third mark;
  • the marking module 806 is also configured to, for any second virtual object, if the mark of the second virtual object is a second mark, modify the second mark of the second virtual object to a fourth mark, and the fourth mark indicates The second virtual object is not added to the virtual scene this time;
  • the marking module 806 is also configured to modify the third mark of the second virtual object to a fifth mark when the mark of the second virtual object is a third mark, and the fifth mark indicates that the second virtual object is not added this time. virtual scene.
  • Embodiments of the present application provide a synchronization device for a virtual scene.
  • the target virtual object controlled by the first terminal requests to be added to the virtual scene
  • the virtual scene is returned to the first terminal from the scene progress to the initial progress to the target progress.
  • the data of the scene image frames in the process enables the first terminal to quickly chase frames based on the acquired data, so that the first terminal can run the scene progress of the virtual scene from the initial progress to the target progress.
  • an object loading instruction carrying the object identifier is sent to the first terminal and at least one terminal where the virtual object in the virtual scene is located, so that each terminal can load the target virtual object respectively in the virtual scene at the target progress, thereby
  • the virtual scene can be displayed synchronously on each terminal, so that the time when the target virtual object joins the virtual scene is not restricted. No matter when the virtual object requests to join the virtual scene, the consistency of the virtual scene display on each terminal can be guaranteed, improving participation in the virtual scene. Scenario flexibility.
  • FIG. 10 is a schematic structural diagram of a virtual scene display device provided according to an embodiment of the present application.
  • the device is used to perform the steps when executing the above virtual scene display method.
  • the virtual scene display device includes: an acquisition module 1001, an operation module 1002, and a loading module 1003.
  • the acquisition module 1001 is configured to acquire data of multiple scene image frames of the virtual scene in response to a midway join operation on the virtual scene, where the midway join operation instructs the target virtual object to be added to the virtual scene;
  • the running module 1002 is used to run the scene progress of the virtual scene from the initial progress to the target progress based on the data of multiple scene image frames.
  • the target progress is the progress of the scene where the virtual scene is currently located;
  • the loading module 1003 is used to load the target virtual object in the virtual scene.
  • FIG. 11 is a schematic structural diagram of another virtual scene display device provided according to an embodiment of the present application.
  • the data of the scene image frame includes the first type of data, and the first type of data is used to execute the operation logic;
  • the running module 1002 includes:
  • the loading unit 1101 is used to load the virtual scene when the scene progress is the initial progress;
  • the acquisition unit 1102 is configured to acquire the first type of data of multiple scene image frames from the data of multiple scene image frames;
  • the data of the scene image frame also includes a second type of data, and the second type of data is used to execute rendering logic; the running unit 1103 is used to obtain the target frame from multiple scene image frames. Multiple target scene image frames within a number range; obtain the second type data of multiple target scene image frames; based on the second type data of multiple target scene image frames and the first type data of multiple scene image frames, the virtual The scene progress of the scene runs from the initial progress to the target progress.
  • the device further includes:
  • the first determination module 1004 is configured to determine the mark of at least one virtual object associated with the virtual scene based on the data of multiple scene image frames;
  • the device further includes:
  • the second determination module 1005 is used to determine the state of the target virtual object in response to the leaving operation of the virtual scene
  • FIG 12 is a schematic structural diagram of a terminal 1200 provided according to an embodiment of the present application.
  • the terminal 1200 can be a portable mobile terminal, such as: a smart phone, a tablet computer, an MP3 player (Moving Picture Experts Group Audio Layer III, moving picture experts compression standard audio layer 3), MP4 (Moving Picture Experts Group Audio Layer IV, dynamic Video Expert compresses standard audio levels 4) player, laptop or desktop computer.
  • the terminal 1200 may also be called a user equipment, a portable terminal, a laptop terminal, a desktop terminal, and other names.
  • the peripheral device interface 1203 may be used to connect at least one I/O (Input/Output) related peripheral device to the processor 1201 and the memory 1202 .
  • the processor 1201, the memory 1202, and the peripheral device interface 1203 are integrated on the same chip or circuit board; in some other embodiments, any one of the processor 1201, the memory 1202, and the peripheral device interface 1203 or Both of them can be implemented on separate chips or circuit boards, which is not limited in this embodiment.
  • the wireless communication protocol includes but is not limited to: World Wide Web, metropolitan area network, intranet, mobile communication networks of all generations (2G, 3G, 4G and 5G), wireless local area network and/or WiFi (Wireless Fidelity, wireless fidelity) network.
  • the radio frequency circuit 1204 may also include NFC (Near Field Communication) related circuits, which is not limited in this application.
  • Embodiments of the present application also provide a computer-readable storage medium, which stores at least one computer program.
  • the at least one computer program is loaded and executed by the processor of the computer device to implement the virtualization of the above embodiments.
  • Scene synchronization method or virtual scene display method is read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), compact disc read-only memory (Compact Disc Read-Only Memory, CD-ROM), Tapes, floppy disks and optical data storage devices, etc.
  • Embodiments of the present application also provide a computer program product, which when executed by a processor implements the synchronization method of the virtual scene in the embodiment of the present application, or when executed by the processor implements the method of synchronizing the virtual scene in the embodiment of the present application. Display method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种虚拟场景的同步方法、虚拟场景的显示方法、装置及设备,属于计算机技术领域。该方法包括:接收第一终端发送的对虚拟场景的中途加入请求(201);向第一终端发送虚拟场景的多个场景图像帧的数据(202);响应于第一终端将虚拟场景的场景进度运行至目标进度,向第一终端和至少一个第二终端发送携带对象标识的对象加载指令,以使第一终端和至少一个第二终端在虚拟场景中加载目标虚拟对象(203)。上述方案能够保证虚拟场景在各个终端显示的一致性,提高了参与虚拟对局的灵活度。

Description

虚拟场景的同步方法、虚拟场景的显示方法、装置及设备
本申请要求于2022年06月24日提交、申请号为202210730440.7、发明名称为“虚拟场景的同步方法、虚拟场景的显示方法、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别涉及一种虚拟场景的同步方法、虚拟场景的显示方法、装置及设备。
背景技术
随着计算机技术的发展,网络游戏越来越多。如何使网络游戏的各个客户端保持同步,是需要解决的问题。
目前,可以采用帧同步的方式来进行游戏同步。帧同步是网络游戏的一种同步方法,服务器将获取到的多个客户端的操作指令序列转发给各个客户端,由客户端根据接收到的操作指令序列执行游戏逻辑进而渲染虚拟场景的场景图像帧,以实现各个客户端同步显示虚拟场景的场景图像帧。
然而,上述方案针对的是虚拟场景中已存在的虚拟对象对应的客户端之间进行同步,而无法实现虚拟场景外的虚拟对象加入该虚拟场景并保持各个客户端进行同步。
发明内容
本申请实施例提供了一种虚拟场景的同步方法、虚拟场景的显示方法、装置及设备,能够将中途加入的虚拟对象的终端与已存在的虚拟对象的终端进行同步,促进更多的虚拟对象加入虚拟场景,从而提高参与度。所述技术方案如下:
一方面,提供了一种虚拟场景的同步方法,所述方法包括:
服务器接收第一终端发送的对虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为所述第一终端控制的虚拟对象,所述虚拟场景包括由至少一个第二终端控制的虚拟对象;
所述服务器向所述第一终端发送所述虚拟场景的多个场景图像帧的数据,所述多个场景图像帧的数据用于将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
所述服务器响应于所述第一终端将所述虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述虚拟场景中加载所述目标虚拟对象。
另一方面,提供了一种虚拟场景的显示方法,所述方法包括:
第一终端响应于对虚拟场景的中途加入操作,获取所述虚拟场景的多个场景图像帧的数据,所述中途加入操作指示将目标虚拟对象加入所述虚拟场景;
所述第一终端基于所述多个场景图像帧的数据,将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
所述第一终端在所述虚拟场景中,加载所述目标虚拟对象。
另一方面,提供了一种虚拟场景的同步装置,设置于服务器中,所述装置包括:
接收模块,用于接收第一终端发送的对虚拟场景的中途加入请求,所述中途加入请求携 带目标虚拟对象的对象标识,所述目标虚拟对象为所述第一终端控制的虚拟对象,所述虚拟场景包括由至少一个第二终端控制的虚拟对象;
发送模块,用于向所述第一终端发送所述虚拟场景的多个场景图像帧的数据,所述多个场景图像帧的数据用于将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
所述发送模块,还用于响应于所述第一终端将所述虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述虚拟场景中加载所述目标虚拟对象。
另一方面,提供了一种虚拟场景的显示装置,设置于第一终端中,所述装置包括:
获取模块,用于响应于对虚拟场景的中途加入操作,获取所述虚拟场景的多个场景图像帧的数据,所述中途加入操作指示将目标虚拟对象加入所述虚拟场景;
运行模块,用于基于所述多个场景图像帧的数据,将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
加载模块,用于在所述虚拟场景中,加载所述目标虚拟对象。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行以实现本申请实施例中的虚拟场景的同步方法,或者,所述至少一段计算机程序由所述处理器加载并执行以实现本申请实施例中的虚拟场景的显示方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一段计算机程序,所述至少一段计算机程序由处理器加载并执行以实现如本申请实施例中虚拟场景的同步方法,或者,所述至少一段计算机程序由处理器加载并执行以实现如本申请实施例中虚拟场景的显示方法。
另一方面,提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请实施例中虚拟场景的同步方法,或者,被处理器执行时实现本申请实施例中虚拟场景的显示方法。
本申请实施例提供了一种虚拟场景的同步方案,在第一终端控制的目标虚拟对象请求加入虚拟场景中时,向第一终端返回该虚拟场景从场景进度为初始进度运行到目标进度这一过程中的场景图像帧的数据,使得第一终端能够基于获取到的数据进行快速追帧,以实现第一终端将该虚拟场景的场景进度由初始进度运行至目标进度,在第一终端的虚拟场景运行至目标进度时,向第一终端和虚拟场景中虚拟对象所在的至少一个第二终端发送携带对象标识的对象加载指令,使得各个终端能够在处于目标进度的虚拟场景中分别加载目标虚拟对象,从而实现虚拟场景在各个终端上同步显示,使得目标虚拟对象加入虚拟场景的时机不受限制,无论虚拟对象何时请求加入虚拟场景,均能够保证虚拟场景在各个终端显示的一致性,提高了参与虚拟场景的灵活度。
附图说明
图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 Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group 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 Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1201所执行以实现本申请中方法实施例提供的虚拟场景的同步方法或者虚拟场景的显示方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、显示屏1205或摄像头组件1206中的至少一种。
外围设备接口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-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。在一些实施例中,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图13是根据本申请实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1301和一个或一个以上的存储器1302,其中,该存储器1302中存储有至少一条计算机程序,该至少一条计算机程序由该处理器1301加载并执行以实现上述各个方法实施例提供的虚拟场景的同步方法或者虚拟场景的显示方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一段计算机程序,该至少一段计算机程序由计算机设备的处理器加载并执行以实现上述实施例的虚拟场景的同步方法或者虚拟场景的显示方法。例如,该计算机可读存储介质是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请实施例中虚拟场景的同步方法,或者,被处理器执行时实现本申请实施例中虚拟场景的显示方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (22)

  1. 一种虚拟场景的同步方法,所述方法包括:
    服务器接收第一终端发送的对虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为所述第一终端控制的虚拟对象,所述虚拟场景包括由至少一个第二终端控制的虚拟对象;
    所述服务器向所述第一终端发送所述虚拟场景的多个场景图像帧的数据,所述多个场景图像帧的数据用于将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
    所述服务器响应于所述第一终端将所述虚拟场景的场景进度运行至所述目标进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述虚拟场景中加载所述目标虚拟对象。
  2. 根据权利要求1所述的方法,其中,所述服务器向所述第一终端发送所述虚拟场景的多个场景图像帧的数据,包括:
    所述服务器获取所述多个场景图像帧的数据,所述场景图像帧的数据包括第一类数据,所述第一类数据用于执行操作逻辑;
    所述服务器向所述第一终端发送所述多个场景图像帧的第一类数据。
  3. 根据权利要求2所述的方法,其中,所述场景图像帧的数据还包括第二类数据,所述第二类数据用于执行渲染逻辑;所述服务器向所述第一终端发送所述虚拟场景的多个场景图像帧的数据,还包括:
    所述服务器从所述多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;
    所述服务器向所述第一终端发送所述多个目标场景图像帧的第二类数据。
  4. 根据权利要求2所述的方法,其中,所述场景图像帧的数据还包括第二类数据,所述第二类数据用于执行渲染逻辑;所述方法还包括:
    所述服务器基于所述多个场景图像帧的数据,确定多个渲染内容;
    所述服务器从所述多个场景图像帧的数据中,获取目标渲染内容的数据,所述目标渲染内容的渲染优先级高于目标优先级,所述目标渲染内容的数据为所述目标渲染内容所在的场景图像帧的第二类数据中的部分数据;
    所述服务器向所述第一终端发送所述目标渲染内容的数据。
  5. 根据权利要求1所述的方法,其中,所述方法还包括:
    所述服务器接收所述第一终端发送的对所述虚拟场景的场景离开请求,所述场景离开请求携带所述目标虚拟对象的对象标识;
    所述服务器向所述第一终端发送离开校验指令,所述离开校验指令指示判断所述目标虚拟对象的状态是否为可离开状态;
    所述服务器响应于所述第一终端发送的对象结算请求,向所述第一终端和所述至少一个第二终端发送对象结算指令,所述对象结算指令指示所述第一终端上报所述目标虚拟对象当前的属性信息,指示所述至少一个第二终端从所述虚拟场景中移除所述目标虚拟对象。
  6. 根据权利要求1所述的方法,其中,所述方法还包括:
    所述服务器对于所述虚拟场景中的任一第一虚拟对象,采用第一标记对所述第一虚拟对象进行标记,所述第一虚拟对象为所述虚拟场景的场景进度为初始进度时存在的虚拟对象, 所述第一标记指示所述第一虚拟对象一直存在于所述虚拟场景中。
  7. 根据权利要求6所述的方法,其中,所述方法还包括:
    所述服务器响应于所述中途加入请求,在所述目标虚拟对象为所述第一虚拟对象的情况下,将所述目标虚拟对象的所述第一标记修改为第二标记,所述第二标记指示所述目标虚拟对象离开过所述虚拟场景,且本次加入所述虚拟场景;
    所述服务器在所述目标虚拟对象不为所述第一虚拟对象的情况下,采用第三标记对所述目标虚拟对象进行标记,所述第三标记指示所述目标虚拟对象本次加入所述虚拟场景。
  8. 根据权利要求7所述的方法,其中,所述方法还包括:
    所述服务器响应于所述中途加入请求,获取所述虚拟场景中存在过的至少一个第二虚拟对象的标记,所述第二虚拟对象的标记为所述第一标记、所述第二标记或者所述第三标记;
    所述服务器对于任一第二虚拟对象,在所述第二虚拟对象的标记为所述第二标记的情况下,将所述第二虚拟对象的所述第二标记修改为第四标记,所述第四标记指示所述第二虚拟对象非本次加入所述虚拟场景;
    所述服务器在所述第二虚拟对象的标记为所述第三标记的情况下,将所述第二虚拟对象的所述第三标记修改为第五标记,所述第五标记指示所述第二虚拟对象非本次加入所述虚拟场景。
  9. 根据权利要求1所述的方法,其中,所述方法还包括:
    所述服务器响应于所述第一终端和所述至少一个第二终端发送的对象控制请求,向所述第一终端和所述至少一个第二终端发送确认控制指令,所述确认控制指令指示将所述目标虚拟对象切换为可控制状态。
  10. 一种虚拟场景的显示方法,所述方法包括:
    第一终端响应于对虚拟场景的中途加入操作,获取所述虚拟场景的多个场景图像帧的数据,所述中途加入操作指示将目标虚拟对象加入所述虚拟场景;
    所述第一终端基于所述多个场景图像帧的数据,将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
    所述第一终端在所述虚拟场景中,加载所述目标虚拟对象。
  11. 根据权利要求10所述的方法,其中,所述场景图像帧的数据包括第一类数据,所述第一类数据用于执行操作逻辑;
    所述第一终端基于所述多个场景图像帧的数据,将所述虚拟场景的场景进度由初始进度运行至目标进度,包括:
    所述第一终端加载场景进度为初始进度时的所述虚拟场景;
    所述第一终端从所述多个场景图像帧的数据中,获取所述多个场景图像帧的第一类数据;
    所述第一终端基于所述多个场景图像帧的第一类数据,将所述虚拟场景的场景进度由初始进度运行至所述目标进度。
  12. 根据权利要求11所述的方法,其中,所述场景图像帧的数据还包括第二类数据,所述第二类数据用于执行渲染逻辑;所述第一终端基于所述多个场景图像帧的第一类数据,将所述虚拟场景的场景进度由初始进度运行至所述目标进度,包括:
    所述第一终端从所述多个场景图像帧中获取在目标帧数范围内的多个目标场景图像帧;
    所述第一终端获取所述多个目标场景图像帧的第二类数据;
    所述第一终端基于所述多个目标场景图像帧的第二类数据和所述多个场景图像帧的第一 类数据,将所述虚拟场景的场景进度由初始进度运行至所述目标进度。
  13. 根据权利要求11所述的方法,其中,所述场景图像帧的数据还包括第二类数据,所述第二类数据用于执行渲染逻辑;所述第一终端基于所述多个场景图像帧的第一类数据,将所述虚拟场景的场景进度由初始进度运行至所述目标进度,包括:
    所述第一终端基于所述多个场景图像帧的数据,确定多个渲染内容;
    所述第一终端从所述多个场景图像帧的数据中,获取目标渲染内容的数据,所述目标渲染内容的渲染优先级高于目标优先级,所述目标渲染内容的数据为所述目标渲染内容所在的场景图像帧的第二类数据中的部分数据;
    所述第一终端基于所述目标渲染内容的数据和所述多个场景图像帧的第一类数据,将所述虚拟场景的场景进度由初始进度运行至所述目标进度。
  14. 根据权利要求10所述的方法,其中,所述方法还包括:
    所述第一终端基于所述多个场景图像帧的数据,确定所述虚拟场景关联的至少一个虚拟对象的标记;
    所述第一终端在存在目标标记的情况下,在场景进度为初始进度的所述虚拟场景中,加载具有所述目标标记的虚拟对象,所述目标标记指示在所述虚拟场景的场景进度为初始进度时存在所述虚拟对象。
  15. 根据权利要求10所述的方法,其中,所述第一终端基于所述多个场景图像帧的数据,将所述虚拟场景的场景进度由初始进度运行至目标进度,包括:
    所述第一终端显示场景进度为初始进度时的所述虚拟场景;
    所述第一终端将所述多个场景图像帧的数据按照时序划分为第一帧数据组和第二帧数据组;
    所述第一终端基于所述第一帧数据组,采用部分渲染的方式,渲染所述虚拟场景;
    所述第一终端基于所述第二帧数据组,采用全部渲染的方式,渲染所述虚拟场景,以使所述虚拟场景加载至所述目标进度。
  16. 根据权利要求10所述的方法,其中,所述方法还包括:
    所述第一终端响应于对所述虚拟场景的离开操作,确定所述目标虚拟对象的状态;
    所述第一终端在所述目标虚拟对象的状态为可离开状态的情况下,向服务器发送所述目标虚拟对象当前的属性信息。
  17. 根据权利要求10所述的方法,其中,所述第一终端在所述虚拟场景中,加载所述目标虚拟对象,包括:
    所述第一终端在所述虚拟场景的场景进度加载至所述目标进度之前,在所述虚拟场景中预加载所述目标虚拟对象。
  18. 一种虚拟场景的同步装置,设置于服务器中,所述装置包括:
    接收模块,用于接收第一终端发送的对虚拟场景的中途加入请求,所述中途加入请求携带目标虚拟对象的对象标识,所述目标虚拟对象为所述第一终端控制的虚拟对象,所述虚拟场景包括由至少一个第二终端控制的虚拟对象;
    发送模块,用于向所述第一终端发送所述虚拟场景的多个场景图像帧的数据,所述多个场景图像帧的数据用于将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
    所述发送模块,还用于响应于所述第一终端将所述虚拟场景的场景进度运行至所述目标 进度,向所述第一终端和所述至少一个第二终端发送携带所述对象标识的对象加载指令,以使所述第一终端和所述至少一个第二终端在所述虚拟场景中加载所述目标虚拟对象。
  19. 一种虚拟场景的显示装置,设置于第一终端中,所述装置包括:
    获取模块,用于响应于对虚拟场景的中途加入操作,获取所述虚拟场景的多个场景图像帧的数据,所述中途加入操作指示将目标虚拟对象加入所述虚拟场景;
    运行模块,用于基于所述多个场景图像帧的数据,将所述虚拟场景的场景进度由初始进度运行至目标进度,所述目标进度为所述虚拟场景当前所处的场景进度;
    加载模块,用于在所述虚拟场景中,加载所述目标虚拟对象。
  20. 一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行权利要求1至9任一项权利要求所述的虚拟场景的同步方法,或者,所述至少一段计算机程序由所述处理器加载并执行权利要求10至17任一项权利要求所述的虚拟场景的显示方法。
  21. 一种计算机可读存储介质,所述计算机可读存储介质用于存储至少一段计算机程序,所述至少一段计算机程序用于执行权利要求1至9任一项权利要求所述的虚拟场景的同步方法,或者,所述至少一段计算机程序用于执行权利要求10至17任一项权利要求所述的虚拟场景的显示方法。
  22. 一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项权利要求所述的虚拟场景的同步方法,或者,所述计算机程序被处理器执行时实现如权利要求10至17任一项权利要求所述的虚拟场景的显示方法。
PCT/CN2023/088688 2022-06-24 2023-04-17 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备 WO2023246250A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/739,499 US20240325893A1 (en) 2022-06-24 2024-06-11 Virtual Scene Synchronization and Display

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210730440.7A CN117298568A (zh) 2022-06-24 2022-06-24 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备
CN202210730440.7 2022-06-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/739,499 Continuation US20240325893A1 (en) 2022-06-24 2024-06-11 Virtual Scene Synchronization and Display

Publications (1)

Publication Number Publication Date
WO2023246250A1 true WO2023246250A1 (zh) 2023-12-28

Family

ID=89245144

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/088688 WO2023246250A1 (zh) 2022-06-24 2023-04-17 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备

Country Status (3)

Country Link
US (1) US20240325893A1 (zh)
CN (1) CN117298568A (zh)
WO (1) WO2023246250A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100283795A1 (en) * 2009-05-07 2010-11-11 International Business Machines Corporation Non-real-time enhanced image snapshot in a virtual world system
CN112843681A (zh) * 2021-03-04 2021-05-28 腾讯科技(深圳)有限公司 虚拟场景控制方法、装置、电子设备及存储介质
CN112973116A (zh) * 2021-03-04 2021-06-18 腾讯科技(深圳)有限公司 虚拟场景画面展示方法、装置、计算机设备及存储介质
CN113521743A (zh) * 2020-11-26 2021-10-22 腾讯科技(深圳)有限公司 游戏同步方法、装置、终端、服务器和存储介质
CN113797528A (zh) * 2020-09-23 2021-12-17 完美世界(北京)软件科技发展有限公司 游戏副本的展示方法及装置、存储介质、电子装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100283795A1 (en) * 2009-05-07 2010-11-11 International Business Machines Corporation Non-real-time enhanced image snapshot in a virtual world system
CN113797528A (zh) * 2020-09-23 2021-12-17 完美世界(北京)软件科技发展有限公司 游戏副本的展示方法及装置、存储介质、电子装置
CN113521743A (zh) * 2020-11-26 2021-10-22 腾讯科技(深圳)有限公司 游戏同步方法、装置、终端、服务器和存储介质
CN112843681A (zh) * 2021-03-04 2021-05-28 腾讯科技(深圳)有限公司 虚拟场景控制方法、装置、电子设备及存储介质
CN112973116A (zh) * 2021-03-04 2021-06-18 腾讯科技(深圳)有限公司 虚拟场景画面展示方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
US20240325893A1 (en) 2024-10-03
CN117298568A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US12075128B2 (en) Method and apparatus for playing video signal of multi-user interaction, and device
US20230321532A1 (en) Game picture display methods and apparatuses, device and storage medium
CN112915537B (zh) 虚拟场景画面展示方法、装置、计算机设备及存储介质
CN111314714B (zh) 一种游戏直播方法和装置
US20180078851A1 (en) Intelligent hardware interaction method and system
DE102020108752A1 (de) Beitreten oder wiederholen einer spielinstanz aus einer spielübertragung
WO2022267701A1 (zh) 虚拟对象的控制方法、装置、设备、系统及可读存储介质
US20230356082A1 (en) Method and apparatus for displaying event pop-ups, device, medium and program product
CN114082198A (zh) 云游戏直播中的交互方法及装置、存储介质、电子装置
CN113348024A (zh) 建立和管理多玩家会话
CN113521743A (zh) 游戏同步方法、装置、终端、服务器和存储介质
CN113546416B (zh) 游戏场景处理方法、装置、计算机设备及存储介质
CN114210071A (zh) 游戏直播的显示方法和装置、存储介质及电子设备
CN113244609A (zh) 多画面的显示方法和装置、存储介质及电子设备
WO2024119725A1 (zh) 增益虚拟物品发送方法、装置、移动终端和存储介质
WO2023246250A1 (zh) 虚拟场景的同步方法、虚拟场景的显示方法、装置及设备
WO2023134276A1 (zh) 资源预加载方法和装置、存储介质及计算机设备
CN108271057B (zh) 视频互动方法、用户客户端、服务器及可读存储介质
CN113058265B (zh) 虚拟场景中团队间的交互方法、装置、设备及存储介质
CN112156475B (zh) 一种业务数据处理方法、装置、电子设备及存储介质
EP2861313B1 (en) Processing system, information processing apparatus, control method, program and storage medium
WO2024198679A1 (zh) 基于虚拟世界的信息传递方法、装置、设备和介质
WO2023221730A1 (zh) 虚拟道具的分享方法、装置、设备及计算机可读存储介质
WO2024067168A1 (zh) 基于社交场景的消息显示方法、装置、设备、介质及产品
US20240350915A1 (en) Method and apparatus for processing mark in virtual scene, device, medium, and product

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23825903

Country of ref document: EP

Kind code of ref document: A1