WO2019213879A1 - 输出内容处理方法、输出方法、电子设备及存储介质 - Google Patents
输出内容处理方法、输出方法、电子设备及存储介质 Download PDFInfo
- Publication number
- WO2019213879A1 WO2019213879A1 PCT/CN2018/086217 CN2018086217W WO2019213879A1 WO 2019213879 A1 WO2019213879 A1 WO 2019213879A1 CN 2018086217 W CN2018086217 W CN 2018086217W WO 2019213879 A1 WO2019213879 A1 WO 2019213879A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- output
- frame
- current
- event message
- status data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Definitions
- the present invention relates to the field of Internet technologies, and in particular, to an output content processing method, an output method, an electronic device, and a computer storage medium.
- an immediate replay of part of the video may be involved.
- such replay usually requires the application server to transmit all the video data replayed to the playing terminal; the playing terminal processes the received data and replays it.
- the research finds that this replay technology consumes a lot of bandwidth and processing resources of the playback terminal. Therefore, intelligence is performed on a high-performance playback terminal with superior performance, and jamming may occur in a lower-performance playback terminal. problem.
- embodiments of the present invention are directed to provide an output content processing method, an output method, an electronic device, and a computer storage medium, which at least partially solve the problem of processing resources consumed by the playback and high power consumption.
- an embodiment of the present invention provides an output content processing method, which is applied to an application server, and includes:
- the current to-be-output frame is: a replay frame of the first broadcast frame or the replay output.
- an embodiment of the present invention provides an output method, which is applied to a terminal, and includes:
- an embodiment of the present invention provides an electronic device, where the electronic device is an application server, and includes:
- a first receiving unit configured to receive an operation instruction sent by at least one terminal running the application client
- a determining unit configured to determine a status data and/or an event message of the output object based on the operation instruction; wherein the status data is used to indicate a status of the output object; the event message is used to indicate the Notification of state switching of the output object;
- a first sending unit configured to distribute the status data and/or the event message to the terminal; wherein the status data and/or the event message is used by the terminal to simulate an output of a current frame to be output And displaying the current to-be-outputted frame, where the current to-be-outputted frame is: a first-time frame or a replay frame of the replay output.
- an embodiment of the present invention provides an electronic device, where the electronic device is a terminal, including:
- a detecting unit configured to detect an operation instruction
- a second sending unit configured to send the operation instruction to an application server
- a second receiving unit configured to receive status data and/or an event message returned by the application server based on the operation instruction, where the status data is used to indicate a status of an output object, and the event message is used to indicate a notification of a state switch of the output object;
- An analog unit configured to simulate an output content of a current frame to be output based on the status data and/or the event message
- an output unit configured to output the current to-be-output frame, where the current to-be-output frame is: a first-time frame or a replay frame of a replay output.
- an embodiment of the present invention provides an electronic device, where the electronic device is an application server or a terminal, and includes:
- a memory configured to store information
- a processor coupled to the storage medium for implementing an output content processing method and/or an output method provided by the foregoing technical solution by executing computer executable code stored in the storage medium.
- the embodiment of the present invention provides a computer storage medium, where the computer storage medium stores computer executable code, and after the computer executable code is executed, the output content processing method provided by the foregoing technical solution is implemented. Output method.
- the output content processing method, the output method, the electronic device, and the computer storage medium provided by the embodiments of the present invention.
- the application server does not directly provide the application client with all the data of the video output, but receives the operation instructions of the at least one terminal, and combines the operation instructions to determine the status data of the output object in the output scene and/or Event message; only the status data and/or event message is sent to the corresponding terminal, and the terminal simulates the output scene based on the received status data and/or event message, obviously sending the output data of all output scenes directly to the terminal, reducing Bandwidth reduces data traffic.
- the status data and/or the event message given by the application server is used by the application client to output the current to-be-output frame, where the current to-be-output frame may be the first-time frame or the replay frame of the replay output;
- the application server The first broadcast frame and the replay frame are respectively maintained by using different threads or different simulation scenarios; in this case, the current to-be-output frame received by the application client is only based on the status data and/or event message of the previous output frame, and the application client
- the two threads and two simulation scenarios that respectively simulate the first broadcast scenario and the replay scenario are not maintained locally, which reduces the consumption of software resources of the application client, and is not limited to being applied to a high performance terminal.
- the application client performs the simulation of the output scene based on the state data and/or the event message, and may perform the simulation based on the previous output frame, instead of outputting the scene based on the output data each time.
- the overall simulation reduces the system resources consumed by the terminal itself due to the simulation of the output scene. In this way, even if the processing resources are small or the processing capability is weak, or the currently busy terminal, the output scene can be simulated based on the received state data and/or event message with small amount of data, and the picture quality is simulated at the same time. And/or a good sound output scene.
- the technical solutions of the output content determining method and the output method provided by the embodiment have the characteristics that the output effect is good and at least one of the bandwidth resources, the storage resources, and the computing resources are consumed.
- FIG. 1 is a schematic structural diagram of an output system according to an embodiment of the present invention.
- FIG. 2 is a schematic flowchart of a method for processing output content according to an embodiment of the present invention
- FIG. 3 is a schematic diagram of transmission of a first state data and/or event message according to an embodiment of the present invention
- FIG. 4 is a schematic diagram of transmission of a second state data and/or event message according to an embodiment of the present invention.
- FIG. 5 is a schematic diagram of transmission of a third state data and/or event message according to an embodiment of the present invention.
- FIG. 6 is a schematic diagram of transmission of a second state data and/or event message according to an embodiment of the present invention.
- FIG. 7 is a schematic diagram of transmission of a fourth state data and/or event message according to an embodiment of the present invention.
- FIG. 8A is a schematic diagram of transmission of a fifth state data and/or event message according to an embodiment of the present invention.
- FIG. 8B is a schematic diagram of a sixth state data and/or event message transmission according to an embodiment of the present invention.
- FIG. 9 is a schematic flowchart diagram of an output method according to an embodiment of the present disclosure.
- FIG. 10 is a schematic structural diagram of an application server according to an embodiment of the present disclosure.
- FIG. 11 is a schematic structural diagram of a terminal according to an embodiment of the present disclosure.
- FIG. 12 is a schematic structural diagram of a first electronic device according to an embodiment of the present disclosure.
- FIG. 13 is a schematic structural diagram of a second electronic device according to an embodiment of the present disclosure.
- FIG. 14 is a schematic diagram of a comparison between a playback effect of a first broadcast and a replay according to an embodiment of the present invention.
- FIG. 15 is a schematic diagram of a method for processing and outputting output content according to an embodiment of the present invention.
- FIG. 16 is a schematic flowchart diagram of an output method according to an embodiment of the present disclosure.
- FIG. 17 is a schematic diagram of comparison of replay effects according to an embodiment of the present invention.
- FIG. 18 is a schematic flowchart of switching from a first person perspective to a third person perspective according to an embodiment of the present invention.
- FIG. 19 is a schematic flowchart of switching from a third person perspective to a first person perspective playback according to an embodiment of the present invention.
- the terminal may include: a fixed terminal such as a desktop computer, a TV set top box, an Xbox/PS3 game machine, an outdoor advertising display screen, or a mobile terminal such as a smart phone, a notebook computer, a tablet computer, and a car display screen.
- the terminal in the embodiment of the present invention may be an electronic device such as a mobile terminal or a fixed terminal running the application client.
- Output scenario is related to a service scenario corresponding to the output content; the service scenario may be determined based on an application. For example, a game scene of a game application, a social scene of a social application.
- the game may be divided into a 2D game displaying a two-dimensional game screen and a 3D game in which at least a part of the screen or the display object is a three-dimensional screen or a three-dimensional object.
- the game may include: a multiplayer online match game or a federated game, a single player vs. application server stand-alone game, a virtual display based multiplayer online match game, a federated game, and/or a stand-alone game.
- the output object may include: an environment object and/or a character object; the environment object may include: an environment in which various scenes are built in the display screen, for example, a battlefield in a game scene, and the like.
- the role object may include a subject object that is operable by a terminal or an application server. For example, a game character in a game scene. For example, the king of the game glory, if the user A plays the role of the item feather in the game; then the character of the item is the kind of the game character.
- the track and the facilities surrounding the track (such as a gas station) can constitute the environmental object.
- the car operated by the user is one of the character objects.
- the social interface of the social scene may be one of the environment objects, and the social role operated by the user in the social scene may be one of the character objects.
- State data that can be used to describe the state of an environment object or to describe the state of a role object.
- the state may include one of a motion state, an attribute state, a representation state, and object data.
- the state of motion may include: whether it is currently moving forward, backward, or stationary; whether it is running, walking, or hiding, and various motion-related states.
- the attribute status may include information describing a status corresponding to an attribute of the current environment object and/or the role object.
- the remaining life value of the game character is one of the attribute states, and one of the attribute states of the weapon value of the game battlefield in the game scene.
- the characterizing state may include: hiding whether the scene is hidden, hiding to visibility; a state of the clothing accessory on the character object, and/or a change in the environment in the environment object.
- hiding whether the scene is hidden, hiding to visibility a state of the clothing accessory on the character object, and/or a change in the environment in the environment object.
- the same game scene is switched from the spring scene to the summer scene.
- the object data may be image data for a base image of an application environment creation object and/or a role object.
- the character data of the game character can be used by the application client to simulate the corresponding game character and the like.
- the status data can be: full amount status data and/or incremental status data.
- the full amount of status data may be: data describing the state of all output objects in an output scene.
- the full amount of state data can be further divided into: full state data before processing and full state data after processing.
- the full amount of state data before processing includes: state data of all output objects in the current frame of a certain output scene, and the processed full amount of state data is: comparing the state data before processing of the two outputs before the calculation
- the total state data before the current processing and the difference state data of the full amount of state data before the previous processing are obtained, and the partial difference state data is the full amount of state data after the current processing.
- the data amount of the processed full amount of state data is smaller than the full amount of state data before processing.
- the event message may be a notification sent by the application server to the terminal indicating a status switch of the output object in the current output scene.
- the notification may carry identification information of a trigger event that triggers a state switch.
- the terminal After receiving the identifier information carrying the triggering event, the terminal can know which triggering event triggers the state switching of the output object in the output scenario, and can calculate the state switching based on the trigger logic corresponding to the triggering event. Information such as the amount of state change and/or the final state result.
- the event message can be used to indicate a notification of all state switching of each output object in the current frame to be output.
- the event message may not carry the identifier information of the trigger event, and may only output a notification that the output object has a state change in the scene. In this way, after receiving the terminal, the terminal can query the status data based on the notification, and combine the status data to perform simulation and output of the output scene.
- the first broadcast frame which is the first video frame output in the application client, may also be referred to as the first output frame.
- the replay frame is a video frame that has been output at least once and output again in the application client.
- the replay frame may include: a real-time replay frame and a non-real-time replay frame.
- the real-time replay frame is a replay frame that is replayed immediately after the first playback ends.
- the real-time replay application is in the game field, and can be a replay technology for replaying in the battle. After the replay is over, it is necessary to return to the current latest moment of the battle and continue the battle.
- the non-real-time replay frame is: after the first play ends, the replay frame after inserting some other content.
- one or more objects can be updated and calculated to obtain the current output of the corresponding object, which can be called simulation.
- Figure 1 shows an output system, including: a terminal running an application client and an application background.
- the application background includes one or more application servers.
- FIG. 1 three different types of terminals are shown, which are respectively a terminal 1, a terminal 2, and a terminal 3 running an application client connected to the application background.
- the terminal 1 may be a fixed terminal represented by a personal computer (PC);
- the terminal 2 may be a mobile network terminal such as a non-communication device such as a notebook computer; and the terminal 3 may be a mobile communication device such as a mobile device or a tablet computer.
- Mobile communication terminal are all run the corresponding version of the application client, which can interact with the application server in the application background.
- the terminal running the application client may be one or more of a fixed terminal, a mobile network terminal, and a mobile communication terminal.
- the application client in the terminal may interact with the application background in at least one of an operation instruction, a status data, and/or an event message in a wired manner or in a wireless manner to assist the terminal in utilizing the application server.
- the application background may be implemented in at least one of an operation instruction, a status data, and/or an event message in a wired manner or in a wireless manner to assist the terminal in utilizing the application server.
- the embodiment provides an output content processing method, which is applied to an application server, and includes:
- Step S110 Receive an operation instruction sent by at least one terminal running the application client.
- Step S120 determining, according to the operation instruction, status data and/or an event message of the output object, wherein the status data is used to indicate a status of the output object, and the event message is used to indicate the output object Notification of state switching.
- the step S120 may be: determining state data and/or an event message of an output object of the output scene based on the operation instruction; the output scene is: current output of the application client Scenes or scenes that need to be output in the application client, for example, games of different games correspond to different game scenes, or some different spatial scenes. For example, in a video or game, the relevant game segments or video frames are edited into the same output scene, and the different image frames of the same output scene exhibit the same spatial position.
- Step S130 Distributing the status data and/or the event message to the terminal; wherein the status data and/or the event message is used by the terminal to simulate the output content of the current frame to be output and display the current
- the frame to be output is: the current to-be-output frame is: a first-time frame of the first output frame or a replay frame of the re-output.
- the current to-be-outputted frame is: a first-time frame of the same output scene or a replay frame of a replay output.
- the application client can be one or more.
- the application server only receives an operation instruction sent by a terminal running the application client.
- the application client is a competition game application or a multi-player alliance game application, etc.
- the application server receives an operation instruction that can be sent by two or more terminals that are all running the application client, and these
- the operation instructions can be operation instructions that act on the same output scene, except that these operation instructions can be different output objects that act on the same output scene.
- two game character battles are battle commands that act on respective game characters.
- the step S110 may include: receiving an operation instruction that the at least two terminals act on the same output scenario.
- the application server receives an operation instruction sent by one or more terminals running the application client.
- the step S120 may include at least the following three implementation manners:
- step S120 may also separately send an event message.
- Manner 3 The step 120 simultaneously distributes status data and event messages to the application client.
- the state data may be the current state of the output object or the result state.
- the application client may directly reproduce the output scenario that has been simulated in the application server based on the state data. .
- the application client receives the event message, and at least knows which output objects have state switching based on the event message, and can automatically calculate the state data based on the identification information of the trigger event and the event logic, and then simulate The corresponding output scene is output.
- the application server simultaneously sends the status data and the event message to the application client (ie, the terminal).
- the application client ie, the terminal.
- the implementation may be based on another implementation.
- the simulation and re-production of the output scene ensures the reliability of the output of the output scene.
- the application client can request a retransmission directly from the application server.
- Determining the status data and/or the event message in step S120 in this embodiment may specifically include: the application server simulating a state change of the output object based on the received operation instruction and a state of each output object, And/or, based on a default set trigger event, simulate a state change of the output object to obtain the status data and/or event message.
- At least one of the status data and the event message is directly sent to the corresponding application client in step S130.
- the application client 1 and the application client 2 are playing a game, and at a certain moment, the application client 1 sends a battle command, and the user of the application client 2 also has a future response, due to the application.
- the battle command detected by the client has caused the change of the role object of the output scene in the current frame, and the application server combines the state of the role object of the previous output scene in step S120 based on the battle instruction sent by the terminal where the application client 1 is located.
- the state data of the character object after execution of the battle instruction and/or the event message carrying the instruction identifier of the battle instruction are simulated.
- the status data and/or the event message are then distributed to the terminal where the application client 1 and the application client 2 are located, respectively, for the terminal to simulate an output scenario after the execution of the combat instruction.
- the current to-be-output frame to be outputted in this embodiment may be the first-time output first-time frame, or may not be the first-time output re-frame. Therefore, in this embodiment, the current to-be-output frame may include: a first broadcast frame and a replay frame.
- the application client only performs output of the current to-be-output frame based on the status data and/or the event message, and does not distinguish between the first-time broadcast scene and the re-broadcast scenario. Therefore, two sets of resources are not allocated, which are respectively used for the first broadcast simulation. Output and replay analog output, reducing the use of resources that occupies the application client, and outputting simulations based on state data and/or event messages, rather than receiving output data directly from the application client, reducing both first-time playback and replay The occupation of bandwidth resources.
- step S120 may further include:
- the step S130 may include:
- the incremental state data and the event message are both determined by the difference between the two frames of the adjacent output.
- the application server distributes the full amount of state data and/or event messages of the entire output scene to the application client 1 in the first frame of the output scene to be outputted, and in the kth frame, relative to the kth -1 frame of incremental status data and/or event message is sent to the application client 1, and at the k+1th frame, the incremental status data and/or event message of the kth frame relative to the kth frame is sent to the application Client. Incremental status data and/or event messages are sent until the k+m frame.
- the application client will combine the incremental state data and the event message, adjust the state of the corresponding output object based on the output content of the previous output frame, and obtain the output content of the current frame to be output, thereby passing the incremental state data.
- the event message combined with the output content of the previous output frame, can simulate the output content of the output scene, and fully utilize the correlation between the two frames before and after, and reduce the computing resources and bandwidth resources consumed by the simulation as much as possible. It has the characteristics of small resource consumption and good output effect.
- the application server can use at least one of the incremental state data and the event message, so that the application client can easily simulate the current output of the output scenario.
- the step S120 may include:
- the step S130 may include:
- the application server sends the full amount of status data and/or event messages in the kth frame to the application client 1.
- the full amount of status data and/or event messages at the k+1th frame are sent to the application client 1 until the full amount of status data and/or event messages are sent to the k+m frame.
- the application client 1 can directly simulate the current output frame based on the currently received full amount of status data and/or event messages.
- the step S120 may further include:
- the incremental state data and/or event message is generated based on the operation instruction when the full amount transmission condition is not satisfied;
- step S130 may include:
- the incremental status data and/or event message is sent when the full amount of transmission conditions are not met.
- the application server is provided with an increment buffer and a full buffer; storing full state data and/or event messages in a full buffer; storing incremental state data in the delta buffer and/or Event message.
- the step S120 may include:
- the application server sends the full amount of status data of the kth frame in the full buffer to the application client;
- the application server sends the k+1th to k+n-1th frame incremental data and/or event message in the incremental buffer to the application client;
- the application server sends the full amount of state data of the k+n frame in the full buffer to the application client;
- the application server sends incremental data and/or event messages of the k+n+1th to k+2n-1th frames in the delta buffer to the application client.
- the corresponding event message is generally not synchronously transmitted.
- the application server sends the full amount of status data to the application client every n frames.
- n is a value of 1 or 2 or 3 or the like. Therefore, determining whether the full-quantity transmission condition is satisfied may include: determining whether the transmission of the last full-time status data has been separated by n frames.
- the method further includes automatically triggering a determination of the full amount of transmission conditions, for example, in the upgrade game, the user considers the full amount of transmission conditions to be satisfied every level of the level.
- the output scenario change may include: switching of the application scenario, for example, the application scenario is switched from the application scenario 1 executing the service logic 1 to the application scenario 2 executing the service logic 2, and then the full-send transmission may be considered to be satisfied. condition.
- the full-size transmission condition may be considered to be satisfied if a predetermined number of new output objects are added to an output scene, and the output object herein may be an environment object and/or a role object.
- the application server maintains a full buffer and an increment buffer at the same time, and sends the full amount of state data to the application client when the full amount of the transmission condition is met; otherwise, the incremental state data is sent and/or Or event message.
- the step S120 in this embodiment may include:
- Step S121 Determine, according to the operation instruction, the current full amount state data of the current frame to be output;
- Step S122 Perform the difference calculation between the current full amount state data and the previous full amount state data to obtain the current full amount state data after the current full amount state data is processed with respect to the previous full amount state data.
- the status data only retains the difference status data as the full amount of status data after the current processing. In this case, it is apparent that the amount of data of the full amount of status data sent to the application client can be reduced.
- the method includes:
- the application server performs the difference calculation in the kth frame, and sends the processed full amount of state data of the kth frame to the application client; the full amount of the data after the exit may be the optimized full state data, where optimization is performed.
- the following may include: full amount of state data after the amount of data is compressed.
- the application server performs a difference calculation on the k+n frame relative to the full amount of state data corresponding to the kth frame, and obtains the processed full amount state data of the k+n frame, and sends the application client;
- the application server For frames other than the kth frame and the k+nth frame (equivalent to performing a difference calculation every n frames), the application server performs incremental calculations to obtain incremental state data, and increments state data and/or events.
- the message is sent to the application client.
- the incremental calculation here may be an incremental calculation between two adjacent frames, or an incremental calculation of the k+m frame relative to the kth frame, where m is a positive integer less than n.
- the step S120 may include:
- the step S120 may include: sending the incremental state data and/or the event message to the full amount request based on the terminal or an internal trigger event in the application server. terminal.
- the application client automatically requests the application client for full amount of status data by sending a request for transmission. If the application server receives a full request for requesting full amount of status data, it can be considered that the full amount of transmission conditions are satisfied.
- the application automatically presets a plurality of internal trigger events for transmitting full amount of state data, determines whether the internal trigger event is satisfied based on an output state of the current output scenario, and/or a process state of the application, etc., if the internal trigger event is satisfied When the event is triggered, it can be considered that the full amount of transmission conditions are met, and the full amount of status data is sent to the application client.
- this is only an example, and the specific implementation is not limited to any of the above.
- the application server simulates the output of the output scene and finds that the application scene is switched in the output scene of the simulation, it may be considered that the full-size transmission condition is satisfied, and the full-state status data of the current to-be-output frame needs to be calculated. .
- the method described in this embodiment has two or more implementation manners:
- the full amount of status data of the kth frame that needs to be replayed is sent to the application client, and the application client performs simulation and output of the output scene based on the full amount of state data of the kth frame.
- the incremental state data and/or event message of the kth frame that needs to be replayed relative to the previous output frame is sent to the application client by the application client.
- the replayed replay frame is simulated, and the replay frame is output.
- the method further includes:
- the first perspective and the second perspective here are different perspectives.
- the first perspective may be the primary perspective of the first client
- the second perspective may be the primary perspective of the second client.
- the first client operates the role object A
- the second client operates the role object B
- the primary perspective of the first client is the subjective perspective of the role object A
- the second client's primary perspective Can be the subjective perspective of role object B.
- the playback angle of one of the two application clients is switched to replay.
- the playback speed may be slightly delayed compared to the first playback, and the character object may need to be interpolated during the delay time.
- the interpolation motion here is to increase the intermediate motion node between two motion nodes based on the received motion data through an interpolation algorithm to avoid the output caused by network jitter that cannot receive motion data in time (one of the state data).
- the problem of poor effect is to achieve smooth motion of the character object. If the smooth motion is implemented, there will be no problems such as catastrophic when applying the client output.
- the interpolation delay when the first client replays in the first view is calculated, and the interpolation delay is sent to the second client, and the second client can switch from the first perspective to the first after receiving the second perspective.
- Two views, and playing a specific application scenario based on the interpolation delay for example, game character death and/or upgrade scenario, and the like. This is not because the second client directly plays the interpolation delay replay of the first view angle with the interpolation delay of the second view, resulting in a problem of abnormal play or poor broadcast effect.
- the embodiment provides an output method, which is applied to a terminal running an application client, and includes:
- Step S210 Detecting an operation instruction;
- the operation instruction may include: an operation instruction based on a user input detected from the user interface, and may also be a preset trigger operation instruction of a certain application scenario;
- the operation instruction may include: a startup instruction and/or Or an operation instruction that acts on an output scene that has been output by the application client;
- Step S220 Send the operation instruction to the application server
- Step S230 Receive status data and/or an event message returned by the application server based on an operation instruction sent by at least one terminal, where the status data is used to indicate a status of an output object in an output scenario; a notification indicating a state switch of the output object;
- Step S240 Simulate the output content of the current to-be-output frame based on the status data and/or the event message;
- Step S250 Output the current to-be-outputted frame, where the current to-be-outputted frame may be: a first-time frame or a replay frame of a replay output.
- the output method provided in this embodiment is a method applied to the terminal.
- the operation instruction may be detected from the human-machine interaction interface in step S210.
- a mouse operation command is detected by a mouse
- a keyboard operation command is detected by a keyboard
- a voice operation command input by a user is detected by a voice interaction device
- a touch operation command or the like is detected by using a touch screen.
- the detected operation instruction is sent to the application server.
- the application server may receive one or more operational instructions from the application client that operate on the same output scenario. Based on the received operation instruction, the application server automatically simulates the current output scene, thereby obtaining a state change representative of each output object in the previous output frame, thereby obtaining state data, and at the same time obtaining an event message. . Status data and/or event messages are sent to the application client such that status data and/or event messages are received in step S230.
- the application client After receiving the status data and/or the event message, the application client simulates the output content of the current to-be-output frame in the output scene based on at least one or both of the received status data and the event message, and simulates Output after the current frame to be output.
- the current to-be-output frame here may be a first-time frame or a replayed replay frame.
- the first broadcast frame and the replay frame here are processed by the same set of threads in the application client and the same batch of allocated computing resources and storage resources, and the replay simulation and the first broadcast simulation are not distinguished, thereby reducing the resources consumed by the output scenario simulation.
- the terminal performs simulation according to at least one of the status data and the event message, and does not directly output the output data directly from the application client.
- the step S230 may include:
- the application server receives full amount of state data
- the output scenario may be directly simulated based on the full amount of state data.
- the step S240 may include simulating an output content of the current to-be-outputted frame based on the full amount of state data and/or the event message.
- the step S230 may include:
- the method includes:
- the output content of the current to-be-outputted frame is simulated based on the current full-scale state data and the previous full-scale state data and the previous event message.
- the total amount of state data received this time is combined with the last full amount of state data to obtain all the full amount of state data of the current time, and then the output content of the current frame to be output is simulated based on all the obtained full amount of state data.
- the application client also receives object data, which is one of a full amount of state data that can be used for simulation of environment objects and/or role objects. For example, a new role object is added to the current output scene, and some basic data of the role object needs to be displayed, and the data is special object data in the full amount of state data.
- the object data can be an object identifier.
- the application client stores an object identifier of various displayable output objects in the application and object simulation data for simulating the object, so after receiving the object identifier, querying the object simulation data in the local storage medium may output Corresponding object image.
- the step S230 may include:
- the step S240 may include simulating the output content of the current to-be-output frame based on the incremental state data and/or the event message and in combination with the output content of the previous output frame.
- the application client may receive incremental status data and/or an event message. If an incremental status message is received, the application client is based on the output content of the previous frame, according to the increase.
- the quantity status data fine-tunes part of the output content, and the output content of the current to-be-outputted frame can be obtained. For example, in the game battle scenario, only part of the action of the game character in the game scene needs to be adjusted based on the incremental state data, and it is obvious that the required operation and the consumed resources for simulating the current frame to be output are reduced as much as possible. Resources such as computational resources for the simulated output scenario and storage resources for storing the data during the simulation may be included.
- the embodiment provides an electronic device, where the electronic device is an application server, and the method includes:
- the first receiving unit 110 is configured to receive an operation instruction sent by at least one terminal running the application client;
- the determining unit 120 is configured to determine, according to the operation instruction, status data and/or an event message of the output object, where the status data is used to indicate a status of the output object, and the event message is used to indicate a notification of the state switching of the output object;
- the first sending unit 130 is configured to distribute the status data and/or the event message to the terminal; wherein the status data and/or the event message is used by the terminal to simulate the current frame to be output. Outputting the content and displaying the current to-be-outputted frame, wherein the current to-be-outputted frame is: a first-time frame or a replay frame of the replay output, for example, a first-time frame of the same output scene or a replay frame of the replay output.
- the electronic device provided in this embodiment is an application server.
- the first receiving unit 110 and the first sending unit 130 herein may correspond to a communication interface in the application server, and may be used for data interaction between the application server and the application client.
- the determining unit 120 may correspond to a processor in an application server.
- the processor can be configured to implement confirmation of the status data and/or event message by computer executable code such as a computer program.
- the processor may be: an application processor (AP), a central processing unit (CPU), a digital signal processor (DSP), or a programmable gate.
- AP application processor
- CPU central processing unit
- DSP digital signal processor
- programmable gate programmable gate
- FPGA Field Programmable Gate Array
- MCU microprocessor
- Mirco Processing Unit Mirco Processing Unit
- ASIC Application Specific Integrated Circuit
- the application server sends the status data and/or the message event to the application client by self-simulation based on the operation instruction sent by the terminal of the at least one application client, without distinguishing whether it is a replay frame or a first play frame.
- the bandwidth required by the application client to receive data is reduced.
- the application client no longer distinguishes between the replay frame and the first play frame, so that the application client does not need to separately maintain the replay output.
- the scenario and the required resources (computation resources and storage resources) for the first output of the scenario reduce the use of resources in the application client and can be used for the simulation and output of the output scene of the terminal with low or low capability.
- the application server calculates the obtained incremental state data, and correspondingly, the determining unit 120 is configured to determine the current according to the first operation instruction and/or the second operation instruction.
- the incremental state data and/or event message of the output frame relative to the previous output frame; wherein the incremental state data is used to indicate the current state of the output object whose state has changed in the current frame to be outputted.
- the first sending unit 130 is configured to distribute the incremental status data and/or the event message to the terminal, where the incremental status data and the event message are used for The terminal combines the output content of the previous output frame, simulates the output content of the current frame to be output, and displays the current frame to be output.
- the current to-be-output frame can be obtained by fine-tuning the environment object and/or the character object on the basis of the previous output frame, which may reduce the consumption of the application client.
- the resources required for the simulated output scene are required for the simulated output scene.
- the application client will send full amount of status data when the full amount of transmission conditions are met.
- the determining unit 120 is configured to determine, according to the first operation instruction and the second operation instruction, a full amount of state data and/or an event message of each output object of the current to be outputted frame in the output scene; wherein the full amount state Data, used to indicate the status of each output object in the current frame to be output.
- the first sending unit 130 distributes the full amount of state data and/or the event message to the terminal, where the full amount of state data and/or the event message are respectively used for the The terminal simulates the output content of the current frame to be output and displays the current frame to be output.
- the application client can directly simulate the current frame of the output scene based on the full amount of state data. In this way, when the application client performs the application scenario switching, etc., the full amount of state data can be obtained, and the simulation of the current to-be-output frame of the output scene with large changes of the two frames before and after is implemented.
- the determining unit 120 is configured to determine, according to the operation instruction, the current full amount state data of the current to-be-output frame in the output scenario; and the current full-scale state data and the previous full-scale state data. Performing a difference calculation to obtain the current full-scale state data after the current state data is processed relative to the previous full-time state data;
- the first sending unit 130 is configured to send the processed full amount status data and/or the event message to the terminal, where the processed current full amount status data is used for the terminal to combine
- the previous full amount of state data simulates the output content of the current frame to be output, and displays the current frame to be output.
- the application server further includes:
- a calculating unit configured to calculate an interpolation delay of the first client to replay the predetermined application scenario by using the first view
- the first sending unit 130 may be further configured to send the interpolation delay to the first client and the second client respectively, where the interpolation delay is used by the first client Retrieving the predetermined application scenario from a first perspective, and using the second client that originally outputs the predetermined application scenario in a second perspective, and replaying the predetermined application scenario in the first perspective.
- the calculation unit may correspond to a calculator or a processor or the like.
- the first sending unit 130 delays the interpolation of one application client to another application client that needs to switch the perspective for replay, thereby implementing the perspective switching replay in the replay process, and reducing due to the transmission of the interpolation delay.
- the jitter of the output frame makes the output smoother.
- the first receiving unit 110 is configured to receive an operation instruction that at least two terminals act on the same output scenario.
- At least two terminals here are two terminal devices running the same application client. For example, two battle terminals in a game application.
- the electronic device is a terminal, and the electronic device is a terminal, and includes:
- the detecting unit 210 is configured to detect an operation instruction
- the second sending unit 220 is configured to send the operation instruction to the application server
- the second receiving unit 230 is configured to receive status data and/or an event message returned by the application server based on the operation instruction, where the status data is used to indicate a status of the output object, and the event message is used to a notification indicating a state switch of the output object;
- the simulation unit 240 is configured to simulate an output content of the current to-be-output frame based on the status data and/or the event message;
- the output unit 250 is configured to output the current to-be-output frame.
- This embodiment provides a terminal, where the terminal may be a mobile terminal or a fixed terminal as described above.
- the detecting unit 210 may include various types of human-computer interaction interfaces, for example, a keyboard, a mouse, a voice recognition collection box, a touch screen, and the like, and various interface devices that can be used for terminal-to-human interaction.
- human-computer interaction interfaces for example, a keyboard, a mouse, a voice recognition collection box, a touch screen, and the like, and various interface devices that can be used for terminal-to-human interaction.
- the second sending unit 220 and the second receiving unit 230 may correspond to an external communication interface of the terminal, and the interface may be used for information interaction between an application client running in the terminal and the application client.
- the information interaction here may include: interaction of status data and/or event messages and operation instructions.
- the analog unit 240 may correspond to a processor, where the processor may be the aforementioned CPU, MCU, DSP, AP, PLC, ASIC, or the like.
- the output unit 250 corresponds to at least a display screen; the display screen may be a display result of displaying information such as a liquid crystal display, an electronic ink display screen or a projection display screen or an organic light emitting diode (OLED) display screen.
- the display screen may be a display result of displaying information such as a liquid crystal display, an electronic ink display screen or a projection display screen or an organic light emitting diode (OLED) display screen.
- OLED organic light emitting diode
- the output unit 250 corresponds to an audio output module, such as a speaker or a headphone output channel, in addition to the display screen, such that audio information is output.
- an audio output module such as a speaker or a headphone output channel
- the embodiment provides a terminal that can simulate and output an output scene with less resources.
- the second receiving unit 230 is configured to receive a full amount of state data and/or an event message returned by the application server; the simulation unit 240 is configured to be based on the full amount of state data and/or the event.
- the message simulates the output content of the current frame to be output.
- the state data received in this embodiment is full amount of state data, such that the simulation unit 240 simulates the output content of the current frame to be output based on at least one of the full amount of state data and the event message.
- the second receiving unit 230 is configured to receive the processed full amount status data and/or the event message; the simulation unit 240 is configured to be based on the current full amount status data and the previous The full amount of state data and the previous event message at one time simulate the output content of the current frame to be output.
- the processed full amount of state data substantially received by the second receiving unit 230 in the embodiment reduces the amount of received state data, thereby reducing bandwidth occupation.
- the second receiving unit 230 is configured to receive the incremental status data and/or the event message sent by the application server, where the incremental status data and the event message are used by the terminal. Combining the output content of the previous output frame, the output content of the current frame to be output is simulated and the current frame to be output is displayed.
- the simulation unit 240 is configured to simulate the output content of the current to-be-output frame based on the incremental state data and/or the event message and in combination with the output content of the previous output frame.
- the application client is a second client
- the second receiving unit 220 is configured to receive an interpolation delay of the first client to replay the predetermined application scenario in a first view; the module unit 240, configurable to replay the predetermined application scenario from the second perspective to the first perspective based on the interpolation delay.
- the viewing angle may need to be switched. Therefore, in this embodiment, the interpolation delay needs to be received from the application server, and the predetermined application scenario needs to be replayed in conjunction with the interpolation delay switching perspective.
- the embodiment further provides an electronic device, where the electronic device is an application server or a terminal, and includes:
- the memory 310 is configured to store information
- the processor 320 is connected to the memory 310, and is configured to implement an output content determining method and an output method provided by one or more of the foregoing technical solutions by executing computer executable code stored in the storage medium.
- the memory 310 herein may be various types of storage media such as an optical disk, a hard disk, a magnetic tape, a random storage medium, or a read-only storage medium; the storage medium may be a non-transitory storage medium.
- the processor 320 is connected to the memory 310, and specifically, the processor may be connected by using an integrated circuit (IIC) bus or the like.
- IIC integrated circuit
- the processor here may be the aforementioned CPU, MCU, DSP, AP, PLC or ASIC.
- the electronic device may be the foregoing application processor, or may be the foregoing terminal. If the electronic device is a terminal, the electronic device further includes at least a display screen for displaying an output scene or the like. If the electronic device includes a display screen, the display screen is also coupled to the processor, for example, to the processor via an IIC or serial peripheral interface (IPS) bus or the like.
- IIC IIC or serial peripheral interface (IPS) bus or the like.
- the electronic device 14 includes a hardware layer, a driver layer (the driver layer may include: the middleware 145), and an operating system layer (the operating system layer may include an operating system) 146) and software layer (the software layer may include an application 147 installed in the operating system).
- the structure of the electronic device 14 illustrated in FIG. 13 is merely an example and does not constitute a limitation on the structure of the electronic device 14.
- the electronic device here may be the aforementioned application server or a terminal running an application client.
- the hardware layer of the electronic device 14 includes a processor 141, an input/output interface 143, a storage medium 144, and a network interface 142 through which components can communicate via a system bus connection.
- Processor 141 can be implemented using a central processing unit, a microprocessor specific integrated circuit, or a logic programmable gate array.
- the input/output interface 143 can be implemented using input/output devices such as a display screen, a touch screen, and a speaker.
- the storage medium 144 may be implemented by using a non-volatile storage medium such as a flash memory, a hard disk, or an optical disk, or may be implemented by using a volatile storage medium such as a double rate (DDR) double-dimensional (DDR) dynamic cache, where the storage is useful to execute the above information processing method. Executable instructions.
- a non-volatile storage medium such as a flash memory, a hard disk, or an optical disk
- a volatile storage medium such as a double rate (DDR) double-dimensional (DDR) dynamic cache
- the embodiment further provides a computer storage medium, wherein the computer storage medium stores computer executable code, and after the computer executable code is executed, the output content determining method provided by one or more of the foregoing technical solutions can be implemented. Output method.
- the first half of Fig. 14 is a schematic diagram of the first broadcast effect; the lower half of Fig. 14 is a schematic diagram of the effect of the replay. Both the first broadcast and the replay occur as a real-time simulation of the same battle within a device.
- the character A is killed by the character B of the gun 2 oppositely.
- the real-time replay is performed immediately, and the death shot is played as shown in the lower half of Fig. 14. That is, how to kill the character A holding the gun 1 with the angle of the character B of the killer holding the gun 2.
- character A is reborn, you need to end the death shot, that is, end the replay and resume the game.
- Replay can also be used for more real-time simulations, such as a good moment to play a battle at the right time.
- Replay can also be used as a non-real time scenario.
- the player's battle process can be recorded and saved to the user's device as a file.
- the user can use the file for replay as needed.
- replay can reproduce history more accurately, replay can also be used in project team development, debugging, and performance tuning.
- this example provides an output method that can be used for real-time replay within a game.
- the application server After receiving the operation instructions of both parties, the application server performs the simulation of the kth frame;
- Client 1 and client 2 also perform pre-simulation based on the local operating instructions
- the application server will send the status data and the event message of the kth frame to the client 1 and the client 2 respectively based on its own simulation of the kth frame;
- the client 1 and the client 2 After receiving the status data and the event message of the kth frame, the client 1 and the client 2 respectively perform the verification of the pre-simulation result of the local end, and combine the state data and the event message of the operation at both ends to simulate the entire output scene;
- Client 1 and client 2 respectively acquire the k+1th frame operation
- Client 1 and client 2 respectively report the k+1th frame operation instruction.
- the verification may include: comparing the state data corresponding to the state simulation result of the local end in the state data with the state data of the local end received from the application server, and agreeing to pass the verification, otherwise it may be considered as not passing;
- the client-server network-synchronization mode
- the client reports the client's operation instructions to the application server
- the application server simulates the output scene of the application server, and outputs the entire output.
- the status data and event messages of the scenario are sent to each client, and the client uses the status data and event messages delivered by the server for simulation (including pre-simulation check), and then repeats the process and repeats it one frame at a time.
- the client receives status data and event messages, it does not distinguish between status data and event messages at the historical or current time, and directly performs analog output. In this way, the output effect of the client is that if the status data and the event message of the historical time are received, the client performs the simulation of the historical time by using the resources of the simulated output scene at the current time.
- the client When the client is simulating historical moments, if the server suddenly delivers the latest world status and event messages, the client can immediately return to the latest moment for simulation.
- This example is based on a further improvement of the output method of Example 1, the difference being that the application server sends the full amount of state data of the output scene, all event messages, and each frame to the client.
- the application server can also send the data of the output scene at the latest moment to the client at the same time.
- this example proposes an optimization method, including:
- the application server will continuously save the incremental status data and event messages of each frame in the delta buffer of the server during the normal analog output scenario, and also at a slightly lower frequency (for example, 1 second), the full state data of the output scene is stored in the snapshot buffer. That is, in the present application, the transmission frequency of the full amount of status data is higher than the transmission frequency of the incremental status event.
- the real-time output scene of the application server does not redundantly send the unused real-time game simulation data to the client, and only sends the data of the full buffer and the incremental buffer to the client. Client.
- the application server performs a difference calculation on the full amount of state data, and calculates the difference between the current state data of the current client and the full state data that the current server is ready to deliver. Save synchronization data again, saving bandwidth traffic.
- the traffic and bandwidth of the replay simulation can be saved from the actual data situation, and the transmission rate requirement can be optimized from 300 KB/s to 6 KB/s.
- the application server simultaneously sends the data of the real-time game output scene and the data of the real-time replay output scene to the client, and simultaneously performs real-time game world and real-time replay of the simulation of the two output scenes in the client.
- This approach makes it easier to switch between the two worlds. But this method is simple and rude, because it brings unnecessary bandwidth traffic (mentioned in the previous section), and also brings unnecessary performance loss to the client, which is calculated in mobile devices. A device with poor capabilities will bring a very bad experience.
- the server does not send real-time game data to the client, which saves bandwidth and simulates both real-time games and real-time replay of one output scene.
- the output method may include:
- Step S1 receiving the full amount of state data of the application server
- Step S2 It is determined which object operation is to be performed. If it is necessary to update the object, the process proceeds to step S5. If the object needs to be destroyed, the process proceeds to step S6. If the object to be created is required, the process proceeds to step S3.
- Step S3 extracting data of the created object
- Step S4 determining whether the object A already exists, where the object A is the object to be created pointed to by the data of the created object; if there is no entry step S7, if it already exists, then proceeds to step S9;
- Step S5 acquiring data of the update object
- Step S6 acquiring an identifier of the destroyed object
- Step S7 creating an object A according to the type of the object A;
- Step S8 Destroy the object B, and the object B destroyed here is determined according to the identifier acquired in step S6.
- Step S9 Apply data to the object A.
- the data of the various operational objects obtained in this example can be extracted from the full amount of status data received from the application server.
- the interpolation motion is often applied to the character motion. That is, the character is slightly delayed to move a little while the interpolation is performed during the delayed period. Therefore, if there is network jitter, the client can not smoothly receive the motion data.
- Example 1 This example solves this problem and makes further improvements based on Example 1 and Example 2.
- the interpolation delay of the person who replays the view is also taken into consideration, and delay compensation is performed.
- the server will tell client B the delay A of the client A, and client B will replay the role B with the interpolation delay A, so as to achieve the same effect as the interpolation delay of the client A.
- the left image is a case where the delay compensation is not turned on.
- the front star has left the crosshair.
- Embodiments of the present invention will provide delay compensation based on interpolation delay on.
- the character killed in the distance when killed, accurately reaches the crosshair.
- This example provides an output perspective for two output objects, such as a first person perspective and a third person perspective, where the first person perspective and the third person perspective can be different views of the same output object for image acquisition or output.
- the game player views the perspective in the game scene as a first person perspective
- the perspective of the onlooker's hanging game during the game may be the third person perspective.
- game player A shoots a game character B, and game player A can observe that game character B is shot from his own perspective, but bystander C or player B in the game scene (one of the output scenes) It is seen from the third person perspective that the game character B is shot, and the viewing angle of the game character B seen by the game player A and the observer C or the player B is different.
- the killing instruction of the game player A to kill the game character B may be one of the operation instructions in the foregoing step S110; the state data of the game character B being shot from the alive state to the death state may be the foregoing One of the status data of the output object; or the information carrying the game character B being shot may be one of the aforementioned event messages.
- the terminal device used by game player A after transmitting the killing command, receiving the status data and/or the event message, presents the process in which the game character B is shot from a different person perspective.
- the first broadcast frame of the terminal where the game player A is located may be an output frame of a first person perspective
- the replay frame corresponding to the first broadcast frame may be an output frame of a third person perspective.
- the first broadcast of the first person perspective is first utilized.
- the frame exhibits the process of the predetermined change described above; then the replay frame of the plurality of third person views is utilized to demonstrate the process of the predetermined change described above.
- the terminal simulates outputting the first broadcast frame and the replay frame, the method provided in any one of the foregoing embodiments is adopted, and the first set of threads are used to separately simulate and output the first broadcast frame and the replay frame by receiving the state data and/or the event message.
- the predetermined process may be a process of predetermining the need for replay, in this example replaying the predetermined process with a perspective of the person who distinguishes the first broadcast.
- the death state is increased, and after the player dies, the death action is played from the first person perspective to the third person perspective and the player's death position is displayed.
- Playing the death process (Killcam) after the death state is played, until the character is reborn, allowing the player to see the death process of his game character.
- a function button for changing the character is provided.
- the camera pulls out from the first person perspective and switches to the third person perspective, as if presenting a player's death state. Killcam is only played after the player's death status has finished playing. In the above two stages: the stage of the death state and the stage of playing the Killcam, the game character is allowed to be selected, but the selection of the game character will take effect in a delayed manner, and will switch when the player is reborn.
- the present example provides an information content processing method for switching from a first person view playback to a third person view playback, which may include:
- the output object changes in a predetermined state, for example, the game character dies
- the picture in the terminal is shaken to prompt the user to make a predetermined change
- the first person perspective disappears, and after completing the first output of the first person perspective, the camera is out of the first person perspective;
- the third person perspective appears, the camera turns to the third person perspective, that is, the camera's acquisition perspective is the same as the third person's viewing angle;
- the replay scheduled state change process is completed, and the camera is stationary;
- the first broadcast and the replay of the same predetermined state process of different person perspectives are completed.
- the example further provides an output content processing method, so as to implement switching of the third person perspective playback back to the first person perspective playback, which may include:
- the camera is out of the third person perspective
- the last screen of the predetermined change process is output, and follows the subsequent state change of the character A, for example, the reincarnation of the character A, etc.; here is the last screen of the predetermined change process played in the first person perspective.
- the disclosed apparatus and method may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the unit is only a logical function division.
- there may be another division manner such as: multiple units or components may be combined, or Can be integrated into another system, or some features can be ignored or not executed.
- the coupling, or direct coupling, or communication connection of the components shown or discussed may be indirect coupling or communication connection through some interfaces, devices or units, and may be electrical, mechanical or other forms. of.
- the units described above as separate components may or may not be physically separated, and the components displayed as the unit may or may not be physical units, that is, may be located in one place or distributed to multiple network units; Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- each functional unit in each embodiment of the present invention may be integrated into one processing module, or each unit may be separately used as one unit, or two or more units may be integrated into one unit; the above integration
- the unit can be implemented in the form of hardware or in the form of hardware plus software functional units.
- the foregoing program may be stored in a computer readable storage medium, and the program is executed when executed.
- the foregoing storage device includes the following steps: the foregoing storage medium includes: a mobile storage device, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
- ROM read-only memory
- RAM random access memory
- magnetic disk or an optical disk.
- optical disk A medium that can store program code.
- the above-described integrated unit of the present invention may be stored in a computer readable storage medium if it is implemented in the form of a software function module and sold or used as a standalone product.
- the technical solution of the embodiments of the present invention may be embodied in the form of a software product in essence or in the form of a software product stored in a storage medium, including a plurality of instructions.
- a computer device (which may be a personal computer, server, or network device, etc.) is caused to perform all or part of the methods described in various embodiments of the present invention.
- the foregoing storage medium includes various media that can store program codes, such as a mobile storage device, a ROM, a magnetic disk, or an optical disk.
- the application server sends status data and/or event messages to the application client whether it is replay or first broadcast, and the current output of the output scene is simulated after the application client requests the status data and/or the event message.
- the output frame is not directly received from the application server, and the output data is directly output, thereby reducing the bandwidth resource, and receiving the status data and/or the event message to uniformly simulate the replay frame and the first broadcast frame, and the application client does not need to allocate two sets of resources.
- the simulations for replay and first broadcast respectively reduce the occupation of computing resources and storage resources, thereby reducing the terminal resources required for output.
- the technical solution provided by the embodiment of the present invention has industrial enthusiasm, and in the embodiment of the present invention, executable code execution such as a computer program having a specific function can be implemented, and the output content processing method and the output method are realized, thereby being industrialized. It can be widely implemented to achieve industrial achievability.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种输出内容处理方法、输出方法、电子设备和计算机存储介质。应用于应用服务器中的输出内容处理方法,包括:接收至少一个运行有应用客户端的终端发送的操作指令;基于所述操作指令,确定输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
Description
本发明涉及互联网技术领域,尤其涉及一种输出内容处理方法、输出方法、电子设备和计算机存储介质。
在游戏或体育节目等播出的过程中,可能涉及部分视频的立即重播。在现有技术中,这种重播通常需要应用服务器端将重播的所有视频数据都发动给播放终端;播放终端对接收的数据进行处理,进而重播。
研究发现,这种重播技术对带宽及播放终端的处理资源的消耗都很高,故智能在性能较为优越的高性能的播放终端进行,而在性能较低的播放终端中可能会出现卡死等问题。
发明内容
有鉴于此,本发明实施例期望提供一种输出内容处理方法、输出方法、电子设备和计算机存储介质,至少部分解决播放消耗的处理资源及能耗大的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种输出内容处理方法,应用于应用服务器中,包括:
接收至少一个运行有应用客户端的终端发送的操作指令;
基于所述操作指令,确定输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示 所述输出对象的状态切换的通知;
将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
第二方面,本发明实施例提供一种输出方法,应用于终端中,包括:
检测操作指令;
向应用服务器发送所述操作指令;
接收所述应用服务器基于至少一个终端发送的操作指令返回的状态数据和/或事件消息,其中,所述状态数据,用于指示输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;
基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容;
输出所述当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
第三方面,本发明实施例提供一种电子设备,所述电子设备为应用服务器,包括:
第一接收单元,配置为接收至少一个运行有应用客户端的终端发送的操作指令;
确定单元,配置为基于所述操作指令,确定输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;
第一发送单元,配置为将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
第四方面,本发明实施例提供一种电子设备,所述电子设备为终端, 包括:
检测单元,配置为检测操作指令;
第二发送单元,配置为向应用服务器发送所述操作指令;
第二接收单元,配置为接收所述应用服务器基于所述操作指令返回的状态数据和/或事件消息,其中,所述状态数据,用于指示输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;
模拟单元,配置为基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容;
输出单元,配置为输出所述当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
第五方面,本发明实施例提供一种电子设备,所述电子设备为应用服务器或终端,包括:
存储器,配置为存储信息;
处理器,与所述存储介质连接,用于通过执行所述存储介质中存储的计算机可执行代码,实现前述技术方案提供的输出内容处理方法和/或输出方法。
第六方,本发明实施例提供一种计算机存储介质,所述计算机存储介质存有计算机可执行代码,所述计算机可执行代码被执行后,实现前述技术方案提供的输出内容处理方法和/或输出方法。
本发明实施例所提供的输出内容处理方法、输出方法、电子设备和计算机存储介质。
第一方面,应用服务器不会直接给应用客户端提供视频输出的全部数据时,而是会接收至少一个终端的操作指令,结合这些操作指令确定出输出场景中的输出对象的状态数据和/或事件消息;仅将状态数据和/或事件消息发送给对应的终端,由终端基于接收到的状态数据和/或事件消息模拟输 出场景,显然比将所有输出场景的输出数据直接发送给终端,减少了带宽,减少了数据流量。
第二方面,应用服务器给出的状态数据和/或事件消息是用于应用客户端输出当前待输出帧,这里的当前待输出帧可以为首播帧,也可以是重播输出的重播帧;应用服务器不再利用不同线程或不同的模拟场景分别维护首播帧和重播帧;这样的话,应用客户端接收的当前待输出帧也仅是基于前一个输出帧的状态数据和/或事件消息,应用客户端的本地也不用维护分别模拟首播场景和重播场景的两个线程和两个模拟场景,降低了应用客户端的软件资源的消耗,不局限于应用于高性能的终端中。
第三方面,在本实施例中,应用客户端基于状态数据和/或事件消息进行输出场景的模拟,可以是基于前一个输出帧的进行模拟,而不用每次都基于输出数据进行输出场景的整体模拟,减少了终端自身因为输出场景模拟所消耗的系统资源。这样的话,即便处理资源较少或处理能力较弱,或当前比较繁忙的终端,也能够基于接收的数据量较小的状态数据和/或事件消息进行输出场景的模拟,同时模拟出画面质量优良和/或音效好的输出场景。
总之,本实施例提供的输出内容确定方法、输出方法等技术方案,具有输出效果好且消耗的带宽资源、存储资源及计算资源的至少其中之一少的特点。
图1为本发明实施例提供的输出系统的结构示意图;
图2为本发明实施例提供的一种输出内容处理方法的流程示意图;
图3为本发明实施例提供的第一种状态数据和/或事件消息的传输示意图;
图4为本发明实施例提供的第二种状态数据和/或事件消息的传输示意图;
图5为本发明实施例提供的第三种状态数据和/或事件消息的传输示意图;
图6为本发明实施例提供的第二种状态数据和/或事件消息的传输示意图;
图7为本发明实施例提供的第四种状态数据和/或事件消息的传输示意图;
图8A为本发明实施例提供的第五种状态数据和/或事件消息的传输示意图;
图8B为本发明实施例提供的第六种状态数据和/或事件消息的传输示意图;
图9为本发明实施例提供的一种输出方法的流程示意图;
图10为本发明实施例提供的一种应用服务器的结构示意图;
图11为本发明实施例提供的一种终端的结构示意图;
图12为本发明实施例提供的第一种电子设备的结构示意图;
图13为本发明实施例提供的第二种电子设备的结构示意图;
图14为本发明实施例提供的首播和重播的播放效果比对示意图;
图15为本发明实施例提供的一种输出内容处理及输出方法示意图;
图16为本发明实施例提供的一种输出方法的流程示意图;
图17为本发明实施例提供的重播效果比对示意图;
图18为本发明实施例提供的一种从第一人称视角切换到第三人称视角播放的流程示意图;
图19为本发明实施例提供的一种从第三人称视角切换回第一人称视角播放的流程示意图。
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
终端,可包括:台式机电脑、电视机顶盒、Xbox/PS3游戏机、户外广告展示屏等固定终端;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端。本发明实施例中的所述终端可为运行有所述应用客户端的移动终端或固定终端等电子设备。
输出场景:输出场景与输出内容对应的业务场景相关;所述业务场景可以基于应用确定。例如,游戏应用的游戏场景、社交应用的社交场景。
在本实施例中所述游戏可分为显示二维游戏画面的2D游戏和至少部分画面或显示对象为三维画面或三维对象的3D游戏。
所述游戏可包括:多人在线的对战游戏或联盟游戏、单人与应用服务器对战的单机游戏、基于虚拟显示的多人在线的对战游戏、联盟游戏和/或单机游戏等。
输出对象可包括:环境对象和/或角色对象;所述环境对象可包括:显示画面中的各种景物搭建的环境,例如,游戏场景中的战斗场等。所述角色对象可包括:可被终端或应用服务器操作的主体对象。例如,游戏场景中的游戏角色。例如,游戏王者荣耀,若用户A在游戏中扮演的是角色为项羽;则项羽这个角色即为所述游戏角色的一种。例如,在赛车游戏中,赛道及赛道周边的设施(如加油站)均可构成所述环境对象。而被用户操作的赛车即为所述角色对象的一种。
若所述输出场景为社交场景,则社交场景的社交界面可为环境对象的一种,而社交场景中被用户操作的社交角色可为角色对象的一种。
状态数据,可用于描述环境对象的状态,也可以用于描述角色对象的状态。所述状态可包括:运动状态、属性状态、表征状态及对象数据的一种。
所述运动状态,可包括:当前是前进、后退、还是静止不同;是奔跑、还是行走,还是隐藏等各种与运动相关的状态。
所述属性状态,可包括:描述当前环境对象和/或角色对象的属性对应的状态的信息。例如,在游戏场景中游戏角色剩余生命值为所述属性状态的一种,在游戏场景中游戏战场的武器的武力值业务所述属性状态的一种。
所述表征状态,可包括:可隐藏场景中的是否隐藏、隐藏后到可见度;角色对象上衣服配饰的状态,和/或环境对象中环境的变化。在游戏场景中,在一段时间的战斗之后,同一个游戏场景从春景切换到夏景等状态。
所述对象数据,可为用于应用客户端建立环境对象和/或角色对象的基本图像的图像数据。例如,游戏角色的角色数据,可以用于应用客户端模拟出对应的游戏角色等。
所述状态数据可为:全量状态数据和/或增量状态数据。
所述全量状态数据可为:描述了一个输出场景中所有输出对象的状态的数据。全量状态数据又可分为:处理前的全量状态数据和处理后的全量状态数据。处理前的全量状态数据包括:某一个输出场景当前帧内所有输出对象的状态数据,而处理后的全量状态数据为:将相邻两次输出的处理前的状态数据进行比对等差量计算的,得到本次处理前的全量状态数据,与前一次处理前的全量状态数据的差异状态数据,而这一部分差异状态数据即为本次处理后的全量状态数据。处理后的全量状态数据的数据量是小于处理前的全量状态数据。
事件消息可为由应用服务器发送给终端,指示当前输出场景中输出对象的状态切换的通知。该通知内可以携带有触发状态切换的触发事件的标 识信息。终端接收到这种携带有触发事件的标识信息之后,就可以知道当前是哪一个触发事件触发了输出场景中的输出对象的状态切换,可以基于该触发事件对应的触发逻辑,计算出状态切换导致的状态变化量和/或最终的状态结果等信息。例如,所述事件消息,可用于指示当前待输出帧中每一个输出对象的全部状态切换的通知。
在一些应用场景中,所述事件消息,也可以不携带所述触发事件的标识信息,可仅为一个提示终端输出场景中输出对象有状态变化的通知。这样终端接收到之后可以基于通知,查询状态数据,结合状态数据进行输出场景的模拟和输出。
首播帧,为第一次在应用客户端中输出的视频帧,又可以称为首次输出帧。
重播帧,为已经在应用客户端中输出了至少一次且再次输出的视频帧。所述重播帧,可包括:实时重播帧和非实时重播帧。
实时重播帧为:首次播放结束后立即重播的重播帧。实时重播应用在游戏领域,可为一种战斗内进行重播的重播技术,重播结束后,需要回到战斗当前最新时刻,继续进行战斗。
非实时重播帧为:首次播放结束后,再插播一些其他内容后的重播帧。
模拟,在应用场景中可以对一个或多个对象进行更新、演算得到对应对象的当前输出,可称为模拟。
图1所示的为一种输出系统,包括:运行应用客户端的终端及应用后台。所述应用后台包括一台或多台应用服务器。在图1中显示有三种不同类型的终端,分别均是运行有与应用后台连接的应用客户端的终端1、终端2及终端3。终端1可为以个人电脑(PC)为代表的固定终端;终端2可为以非通信设备如笔记本电脑等移动网络终端;终端3可以为以通信设备如手机或平板电脑等移动通信设备为例的移动通信终端。这些终端均运行有 对应版本的应用客户端,可与应用后台内的应用服务器进行信息交互。在本申请实施例中,运行应用客户端的终端可为固定终端、移动网络终端及移动通信终端中的一种或多种。
如图1所示,所述终端内的应用客户端可以以有线方式或无线方式,与应用后台交互操作指令、状态数据和/或事件消息的至少其中之一,以由应用服务器协助终端利用可能少的带宽资源、计算资源和存储资源进行输出场景的模拟和输出。
如图2所示,本实施例提供一种输出内容处理方法,应用于应用服务器中,包括:
步骤S110:接收至少一个运行有应用客户端的终端发送的操作指令;
步骤S120:基于所述操作指令,确定输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知。例如,在一些实施例中,所述步骤S120可为:基于操作指令,确定出输出场景的输出对象的状态数据和/或事件消息;所述输出场景为:当前在所述应用客户端的输出的场景或者需要在所述应用客户端中输出的场景,例如,不同场次的游戏对应了不同的游戏场景、或者有些上不同的空间场景。例如,在一个视频或游戏中,将具有相关性的游戏片段或视频帧编辑到同一个输出场景中,同一个输出场景的不同图像帧展示的空间位置相同。
步骤S130:将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:首次输出帧的首播帧或重播输出的重播帧。可选地,所述当前待输出帧为:同一所述输出场景的首播帧或重播输出的重播帧。
根据不同的业务场景,确定同一个输出场景显示应用客户端可为一个 或多个。例如,所述应用客户端为单机游戏应用,则应用服务器仅接收一个运行应用客户端的终端发送的操作指令。再例如,所述应用客户端为对战游戏应用或多人联盟游戏应用等,则所述应用服务器接收的可为两个或两个以上的均运行有应用客户端的终端发送的操作指令,且这些操作指令可为作用于同一个输出场景的操作指令,不同的是:这些操作指令可为作用于同一个输出场景中不同的输出对象。例如,对战游戏应用中,两个游戏角色对战是作用于各自游戏角色的战斗指令等。在某些联盟游戏中,不同的应用客户端虽然操作不同的角色对象,但是可能同时攻击另一个游戏角色,这样的话,这些来自不同应用客户端的操作指令可能是作用于同一个输出场景中的相同输出对象的。可选地为:所述步骤S110可包括:接收至少两个终端作用于同一个所述输出场景的操作指令。
总之,在本实施例中,所述应用服务器接收一个或多个运行应用客户端的终端发送的操作指令。
基于该操作指令,确定出输出对象的状态数据和/或事件消息。
所述步骤S120可至少包括以下三种实现方式:
方式一:所述步骤S120中可以仅分发状态数据;
方式二:所述步骤S120也可仅分发送事件消息;
方式三:所述步骤120会同时向应用客户端分发状态数据和事件消息。
在方式一,所述状态数据可为输出对象的当前状态或者是结果状态,接到该状态数据之后,所述应用客户端可以直接基于状态数据重现出在应用服务器中已经模拟出的输出场景。
在方式二中,所述应用客户端接收到事件消息,基于事件消息至少知道有哪些输出对象有状态切换,并可以基于触发事件的标识信息及事件逻辑,自动计算出所述状态数据,再模拟出对应的输出场景。
在方式三中应用服务器同时将所述状态数据和事件消息发送给应用客 户端(即终端),虽然存在着一定的数据冗余,但是当其中一个接收失败或出现错误时,可以基于另一个实现输出场景的模拟和重新,确保输出场景的输出的可靠性。
若在一些情况下,出现状态数据和事件消息的冲突,则根据携带的优先级确定是以状态数据为准还是以事件消息为准,进行模拟和输出。在本实施例中可选为:状态数据的优先级高于事件消息的优先级,当然在另一些场景中可为:事件消息的优先级高于状态数据的优先级。在还有一些实施例中,若出现冲突,则应用客户端可以向应用服务器直接请求重传。
在本实施例中步骤S120中确定出所述状态数据和/或事件消息,具体可包括:所述应用服务器基于接收到的操作指令和各个输出对象的状态,模拟所述输出对象的状态变化,和/或,基于默认设置的触发事件,模拟出所述输出对象的状态变化,从而得到所述状态数据和/或事件消息。
在步骤S130中直接将所述状态数据及所述事件消息中的至少其中之一发送给对应的应用客户端。
例如,在游戏场景中,应用客户端1和应用客户端2在进行游戏对战,在某一个时刻应用客户端1发送了战斗指令,而应用客户端2的用户还未来的及反应,则由于应用客户端检测到的战斗指令,已经导致输出场景的角色对象在当前帧发送的变化,应用服务器基于应用客户端1所在终端发送的战斗指令,在步骤S120中结合之前输出场景的角色对象的状态,模拟出在执行所述战斗指令之后的角色对象的状态数据和/或携带有所述战斗指令的指令标识的事件消息。然后将所述状态数据和/或携带有所述事件消息,分别分发给应用客户端1和应用客户端2所在的终端,用于终端模拟出执行战斗指令之过后的输出场景。
在本实施例中当前待输出的当前待输出帧可为首次输出的首播帧,也可以非首次输出的重播帧。故在本实施例中,当前待输出帧可包括:首播 帧和重播帧。
在本实施例中实质上对于应用客户端仅基于状态数据和/或事件消息进行当前待输出帧的输出,不会区分首次播放场景还是重播场景,故不用分配两套资源,分别用于首播模拟输出和重播模拟输出,从而减少了占用应用客户端的资源的使用,且是基于状态数据和/或事件消息进行输出模拟,并非直接从应用客户端接收输出数据,从而对于首次播放及重播都减少了带宽资源的占用。
可选地,所述步骤S120还可包括:
根据所述操作指令,确定出所述当前待输出帧相对于前一个输出帧的增量状态数据和/或事件消息;其中,所述增量状态数据,用于指示在当前待输出帧中状态发生过变化的输出对象的当前状态。
所述步骤S130可包括:
将所述增量状态数据和/或所述事件消息,分发所述终端,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧。
在本实施例中所述增量状态数据和事件消息,都是表征的相邻输出的两帧之间的差异确定的。
如图4所示,应用服务器在一个输出场景的待输出的首帧,将整个输出场景的全量状态数据和/或事件消息分发给应用客户端1,在第k帧时,将相对于第k-1帧的增量状态数据和/或事件消息发送给应用客户端1,在第k+1帧时,将第k帧相对于第k帧的增量状态数据和/或事件消息发送给应用客户端。一直到第k+m帧发送增量状态数据和/或事件消息。这样的话,应用客户端将结合增量状态数据及事件消息,在前一个输出帧的输出内容的基础上调整对应的输出对象的状态,得到当前待输出帧的输出内容,从而通过增量状态数据和/或事件消息,结合前一个输出帧的输出内容,可以 模拟输出场景的待输出内容,具有充分的利用前后两帧的关联性,尽可能减少了模拟所消耗的计算资源及带宽资源等,具有资源消耗小且输出效果好的特点。这样的话,除了首帧以外,所述应用服务器均可以通过增量状态数据及事件消息中的至少之一,使得应用客户端可以简便模拟出输出场景当前的待输出内容。
在一些实施例中,所述步骤S120可包括:
基于所述操作指令,确定当前待输出帧每一输出对象的全量状态数据和/或事件消息;其中,所述全量状态数据,用于指示当前待输出帧中每一个输出对象全部状态;所述事件消息,用于指示当前待输出帧中每一个输出对象的全部状态切换的通知;
所述步骤S130可包括:
将所述全量状态数据和/或所述事件消息,分发给所述终端,其中,所述全量状态数据和/或所述事件消息,分别用于所述终端模拟出当前待输出帧的输出内容并显示所述当前待输出帧。
如图3所示,应用服务器在第k帧的全量状态数据和/或事件消息都发送给应用客户端1。在第k+1帧的全量状态数据和/或事件消息发送给应用客户端1,一直到第k+m帧发送全量状态数据和/或事件消息。这样的话,所述应用客户端1可以直接基于当前接收到的全量状态数据和/或事件消息直接模拟当前输出帧。
在一些实施例中,所述步骤S120还可包括:
在满足全量发送条件时,基于所述操作指令生成所述全量状态数据和/或事件消息;
在不满足全量发送条件时,基于操作指令生成所述增量状态数据和/或事件消息;
则所述步骤S130可包括:
在满足所述全量发送条件时,发送所述全量状态数据和/或事件消息;
在不满足所述全量发送条件时,发送所述增量状态数据和/或事件消息。
如图5所示,所述应用服务器设置有增量缓冲区和全量缓冲区;在全量缓冲区内存储全量状态数据和/或事件消息;在增量缓冲区内存储增量状态数据和/或事件消息。
所述步骤S120可包括:
应用服务器将全量缓冲区内第k帧的全量状态数据发送给应用客户端;
应用服务器将增量缓冲区内第k+1至第k+n-1帧增量数据和/或事件消息发送给应用客户端;
应用服务器将全量缓冲区内第k+n帧的全量状态数据发送给应用客户端;
应用服务器将增量缓冲区内第k+n+1至第k+2n-1帧的增量数据和/或事件消息发送给应用客户端。
在本实施例中为了尽可能的减少数据的发送,应用客户端在发送全量状态数据时,一般不再同步发送对应的事件消息。
故在上述实施例中,所述应用服务器每隔n帧向应用客户端发送一次所述全量状态数据。在本实施例中n为1或2或3等取值。故判断是否满足所述全量发送条件可包括:判断与上一次全量状态数据的发送是否已经隔了n帧。
在还有一些实施例中,所述方法还包括:自动触发全量发送条件的判断,例如,在升级游戏中,用户每过一关每升一级都认为满足所述全量发送条件。在还有些实施例中,输出场景变化可包括:应用场景的切换,例如,应用场景从执行业务逻辑1的应用场景1切换到执行业务逻辑2的应用场景2,则可认为满足所述全量发送条件。
在还有一些实施例中,若一个输出场景中新增了预定个数的全新输出 对象,这里的输出对象可为环境对象和/或角色对象,则可认为满足所述全量发送条件。
总之,在本实施例中,所述应用服务器同时维护有全量缓冲区和增量缓冲区,在满足全量发送条件时,才向应用客户端发送全量状态数据,否则就发送增量状态数据和/或事件消息。
在一些实施例中,为了进一步减少带宽的使用,避免在带宽比较小时发送全量状态数据导致的带宽不够的问题。如图6所示,在本实施例中所述步骤S120可包括:
步骤S121:基于所述操作指令,确定出当前待输出帧的本次所述全量状态数据;
步骤S122:将本次全量状态数据与前一次全量状态数据进行差量计算,以得到本次全量状态数据相对于前一次全量状态数据的处理后的本次全量状态数据。
首先计算出本次需要发送的全量状态数据,然后进行前后两次发送全量数据的差量计算,得到本次全量状态数据与前一次全量状态数据的差异状态数据,删除与前一次全量状态数据相同的状态数据,仅保留所述差异状态数据作为本次处理后的全量状态数据,这样的话,显然可以减少发送给应用客户端的全量状态数据的数据量。
具体如图7所示,所述方法包括:
应用服务器在第k帧进行差量计算,将第k帧的处理后的全量状态数据,并发送给应用客户端;该出后的全量数据可为如优化后的全量状态数据,此处的优化后可包括:数据量压缩后的的全量状态数据。
应用服务器对第k+n帧相对于第k帧对应的全量状态数据进行差量计算,得到第k+n帧的处理后的全量状态数据,并发送应用客户端;
针对第k帧及第k+n帧以外的帧(相当于每隔n个帧进行一次差量计 算),应用服务器进行增量计算,得到增量状态数据,并增量状态数据和/或事件消息发送给应用客户端。此处的增量计算可为相邻两帧之间的增量计算,也可以是第k+m帧相对于第k帧的增量计算,其中,m为小于n的正整数。
在一些实施例中,所述步骤S120可包括:
基于所述终端的全量请求或所述应用服务器中的内部触发事件,将所述全量状态数据和/或所述事件消息发送给所述终端。在另一些实施例中,所述步骤S120可包括:基于所述终端的全量请求或所述应用服务器中的内部触发事件,将所述增量状态数据和/或所述事件消息发送给所述终端。
例如,应用客户端自动通过发送请求的发送,向应用客户端请求全量状态数据。应用服务器若接收到了请求全量状态数据的全量请求,可认为是满足所述全量发送条件。在还有一些实施例中应用自动预设了很多发送全量状态数据的内部触发事件,基于当前输出场景的输出状态和/或应用的进程状态等确定是否满足所述内部触发事件,若满足了内部触发事件,则可认为满足所述全量发送条件,向应用客户端发送全量状态数据。当然,这里仅是举例,具体实现,不局限于上述任意一种。例如,所述应用服务器在模拟输出场景的输出时,发现本次模拟的输出场景发生了应用场景的切换,则可认为满足了所述全量发送条件,需要计算出当前待输出帧的全量状态数据。
在一些实施例中,应用服务器发送了第k+n帧的增量状态数据和事件消息之后,需要重播第k帧的输出内容,则本实施例所述的方法具有两种以上的实现方式:
方式一:
如图8A所示,将需要重播的第k帧的全量状态数据给应用客户端,由应用客户端基于第k帧的全量状态数据进行输出场景的模拟和输出。
方式二:
如图8B所示,将需要重播的第k帧相对于上一个输出帧(即第k+n-帧)的增量状态数据和/或事件消息发送给所述应用客户端,由应用客户端结合重播的第k帧的增量状态数据和/或事件消息,与第k+n帧的输出内容,模拟出重播的重播帧,并输出重播帧。
总之,在本实施例中不管是进行首次播放帧还是重播帧的播放,都可以仅涉及一套输出场景的线程处理,无需开辟两套线程及分配两个输出场景的资源分别对首次播放和重播的处理,减少应用客户端资源的使用。
在一些场景中,所述方法还包括:
计算第一客户端以第一视角重播预定应用场景的插值延时;
分别将所述插值延时发送给第一客户端和所述第二客户端;其中,所述插值延时,用于所述第一客户端以第一视角重播所述预定应用场景,并用于原本以第二视角首次输出所述预定应用场景的所述第二客户端,以所述第一视角重播所述预定应用场景。
这里的第一视角和第二视角是不同的视角。例如,第一视角可为第一客户端的主视角,第二视角可为第二客户端的主视角。例如,在游戏应用中,第一客户端操作角色对象A,第二客户端操作角色对象B;所述第一客户端的主视角即为所述角色对象A的主观视角;第二客户端的主视角可为角色对象B的主观视角。
在一些重播场景,例如,游戏对战场景或游戏联盟对战场景,进行游戏角色死亡或者升级场景的重播时,是需要切换视角进行播放的。
但是两个应用客户端中其中一个的播放视角切换一下重播。在模拟输出场景的过程中,通常重播时可能播放速度会比首次播放时稍微延迟一些,而在延迟时间内需要进行角色对象可能需要进行插值运动。这里的插值运动为,基于接收到运动数据通过插值算法,增加两个运动节点之间的中间 运动节点,以避免网络抖动导致的不能够及时接收运动数据(为状态数据的一种)导致的输出效果差的问题,实现角色对象的平滑运动。若实现了平滑运动则在应用客户端输出时,不会出现卡顿等问题。
在本实施例中计算的是第一客户端以第一视角重播时的插值延时,将该插值延时发送给第二客户端,第二客户端接收到后能够从第一视角切换到第二视角,并基于所述插值延时播放特定应用场景,例如,游戏角色死亡和/或升级场景等。这样不会因为,第二客户端直接以第二视角的插值延时来播放第一视角的插值延时重播,导致的播放异常或播出效果差的问题。
如图9所示,本实施例提供一种输出方法,应用于运行有应用客户端的终端中,包括:
步骤S210:检测操作指令;该操作指令可包括:基于从用户界面检测的用户输入的操作指令,还可以是某一个应用场景的预设触发的操作指令;该操作指令可包括:启动指令和/或作用于应用客户端已经输出的输出场景的操作指令;
步骤S220:向应用服务器发送所述操作指令;
步骤S230:接收所述应用服务器基于至少一个终端发送的操作指令返回的状态数据和/或事件消息,其中,所述状态数据,用于指示输出场景中输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;
步骤S240:基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容;
步骤S250:输出所述当前待输出帧,其中,所述当前待输出帧可为:首播帧或重播输出的重播帧。
在本实施例中提供的输出方法,为应用于终端中的方法。
在步骤S210中可以从人机交互接口检测所述操作指令。例如,利用鼠 标检测鼠标操作指令,利用键盘检测键盘操作指令,利用语音交互装置检测用户输入的语音操作指令,或者,利用触摸屏幕检测触摸操作指令等。
在本实施例中将检测到的操作指令发送给应用服务器。
应用服务器可能会接收到一个或多个操作同一个输出场景的应用客户端的操作指令。基于应用服务器基于接收到的操作指令,会自动模拟出当前的输出场景,从而获得表征相对于前一个输出帧中各个输出对象的状态变化,从而会获得状态数据,与此同时还可以获得事件消息。并将状态数据和/或事件消息发送给应用客户端,这样在步骤S230中会接收到状态数据和/或事件消息。
应用客户端在接收到状态数据和/或事件消息之后,至少基于接收到的状态数据及事件消息中的一个或两个,模拟出输出场景中的当前待输出帧的输出内容,并在模拟出当前待输出帧后输出。这里的当前待输出帧可为首播帧或重播的重播帧。
这里的首播帧和重播帧,利用应用客户端内同一套线程和同一批分配的计算资源及存储资源进行处理,并不会区分重播模拟和首播模拟,这样减少了输出场景模拟所消耗的资源。且在本实施例中,所述终端将根据状态数据和事件消息中的至少一个进行模拟,并不会直接从应用客户对端接收输出数据直接输出。
在一些实施例中,所述步骤S230可包括:
接收所述应用服务器返回的全量状态数据和/或事件消息。在本实施例中若所述应用服务器接收到是全量状态数据,则可以直接基于全量状态数据模拟出输出场景。
所述步骤S240可包括:基于所述全量状态数据和/或所述事件消息模拟所述当前待输出帧的输出内容。
在另一些实施例中,所述步骤S230可包括:
接收处理后的本次全量状态数据和/或所述事件消息。这里应用客户端相当于接收到的不全的全量状态数据。故在所述步骤S240,包括:
基于本次全量状态数据及前一次的全量状态数据及前一次的事件消息,模拟当前待输出帧的输出内容。
将本次接收到的全量状态数据结合上一次的全量状态数据,得到本次所有的全量状态数据,然后基于得到的所有的全量状态数据模拟出当前待输出帧的输出内容。
在一些实施例中,所述应用客户端还会接收到对象数据,该对象数据为可为全量状态数据中的一种,该对象数据可用于环境对象和/或角色对象的模拟。例如,当前输出场景新增一个角色对象,需要显示该角色对象的一些基本数据,而这些数据即为所述全量状态数据中特殊的对象数据。该对象数据可以是对象标识。应用客户端中存储有应用中各种可显示的输出对象的对象标识和用于模拟该对象的对象模拟数据,故接收到该对象标识之后,查询本地存储介质中的对象模拟数据,则可以输出对应的对象图像。
在另一些实施例中,所述步骤S230可包括:
接收所述应用服务器发送的增量状态数据和/或事件消息,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧;
所述步骤S240可包括:基于所述增量状态数据和/或所述事件消息,并结合前一个输出帧的输出内容,模拟所述当前待输出帧的输出内容。
在本实施例中所述应用客户端,可能接收到的是增量状态数据和/或事件消息,若接收到增量状态消息,则应用客户端基于前一帧的输出内容,根据所述增量状态数据微调输出内容的部分内容,就可以得到当前待输出帧的输出内容。例如,在游戏对战场景中,仅需基于增量状态数据调整游戏场景中游戏角色的部分动作即可,显然尽可能的减少了模拟当前待输出 帧的所需的操作及消耗的资源,该资源可包括模拟输出场景的计算资源及模拟过程中存储数据的存储资源等资源。
如图10所示,本实施例提供一种电子设备,所述电子设备为应用服务器,其中,包括:
第一接收单元110,配置为接收至少一个运行有应用客户端的终端发送的操作指令;
确定单元120,配置为基于所述操作指令,确定输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;
第一发送单元130,配置为将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧,例如,同一所述输出场景的首播帧或重播输出的重播帧。
本实施例提供的电子设备为应用服务器。这里的第一接收单元110及第一发送单元130可对应于应用服务器中的通信接口,可以用于应用服务器与应用客户端的数据交互。
所述确定单元120,可对应于应用服务器中的处理器。所述处理器,可用于通过计算机程序等计算机可执行代码,实现上述状态数据和/或事件消息的确认。
在本实施例中,所述处理器可为:应用处理器AP(AP,Application Processor)、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程门阵列(FPGA,Field Programmable Gate Array)、微处理器(MCU,Mirco Processing Unit)或专用集成电路(ASIC,Application Specific Integrated Circuit)。
在本实施例中所述应用服务器会基于至少一个应用客户端的终端发送的操作指令,通过自行模拟得到状态数据和/或消息事件,发送给应用客户端,而不区分是重播帧还是首次播放帧,通过状态数据和/或消息事件的发送,减少了应用客户端接收数据所需的带宽,另一方面是应用客户端不再区分重播帧和首次播放帧,从而应用客户端不用分别维护重播输出场景和首次输出场景的所需的资源(计算资源和存储资源),减少了应用客户端中资源的使用,可以用于资源少或低能力的终端的输出场景的模拟和输出。
在一些实施例中,应用服务器计算得到的增量状态数据,则对应地,所述确定单元120,配置为根据所述第一操作指令和/或所述第二操作指令,确定出所述当前待输出帧相对于前一个输出帧的增量状态数据和/或事件消息;其中,所述增量状态数据,用于指示在在当前待输出帧中状态发生过变化的输出对象的当前状态。对应地,所述第一发送单元130,配置为将所述增量状态数据和/或所述事件消息,分发所述终端,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧。
结合增量状态数据及前一个输出帧的输出内容,在前一个输出帧的基础上通过环境对象和/或角色对象的微调,就可以得到当前待输出帧,进可能的减少应用客户端所消耗的模拟输出场景所需的资源。
在另一些实施例中,所述应用客户端会在满足全量发送条件时,发送全量状态数据。则所述确定单元120,配置为基于所述第一操作指令和第二操作指令,确定输出场景中当前待输出帧每一输出对象的全量状态数据和/或事件消息;其中,所述全量状态数据,用于指示当前待输出帧中每一个输出对象全部状态。对应地,所述第一发送单元130为将所述全量状态数据和/或所述事件消息,分发给所述终端,其中,所述全量状态数据和/或所述事件消息,分别用于所述终端模拟出当前待输出帧的输出内容并显示所 述当前待输出帧。
若应用客户端接收到是全量状态数据,则应用客户端可以直接基于全量状态数据进行输出场景的当前帧的模拟。这样,应用客户端在进行应用场景切换等情况下,可以获得全量状态数据,实现前后两帧变化较大的输出场景的当前待输出帧的模拟。
可选地,所述确定单元120,配置为基于所述操作指令,确定出所述输出场景中当前待输出帧的本次所述全量状态数据;将本次全量状态数据与前一次全量状态数据进行差量计算,以得到本次全量状态数据相对于前一次全量状态数据的处理后的本次全量状态数据;
所述第一发送单元130,配置为将处理后的本次全量状态数据和/或所述事件消息,发送给所述终端,其中,处理后的本次全量状态数据,用于所述终端结合所述前一次全量状态数据模拟出当前待输出帧的输出内容,并显示所述当前待输出帧。
在本实施例中需要减少全量状态数据的发送,会基于前后两次的全量状态数据的差值计算,得到处理后的全量状态数据,从而应用客户端接收到的数据量是减少的,可以减少带宽并减少传输时延和输出时延。
在一些实施例中,所述应用服务器还包括:
计算单元,用于计算第一客户端以第一视角重播预定应用场景的插值延时;
所述第一发送单元130,还可用于分别将所述插值延时发送给第一客户端和所述第二客户端;其中,所述插值延时,用于所述第一客户端以第一视角重播所述预定应用场景,并用于原本以第二视角首次输出所述预定应用场景的所述第二客户端,以所述第一视角重播所述预定应用场景。
所述计算单元可对应于计算器或处理器等。
所述第一发送单元130会将一个应用客户端的插值延时,发送给需要 切换视角进行重播的另一个应用客户端,从而实现重播过程中的视角切换重播,且由于插值延时的发送,减少了输出帧的抖动,使得输出更加顺畅。
在一些实施例中,所述第一接收单元110,可用于接收至少两个终端作用于同一个所述输出场景的操作指令。这里至少两个终端均为运行同一个应用客户端的两个终端设备。例如,游戏应用中两台对战的终端等。
如图11所示,本实施例一种电子设备,所述电子设备为终端,包括:
检测单元210,配置为检测操作指令;
第二发送单元220,配置为向应用服务器发送所述操作指令;
第二接收单元230,配置为接收所述应用服务器基于所述操作指令返回的状态数据和/或事件消息,其中,所述状态数据,用于指示输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;
模拟单元240,配置为基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容;
输出单元250,配置为输出所述当前待输出帧。
本实施例提供了一种终端,这里的终端可为移动终端,也可以为前述的固定终端。
所述检测单元210可包括各种类型的人机交互接口,例如,键盘、鼠标、语音识别采集装盒子、触摸屏等各种可用于终端与人交互的接口设备。
在本实施例中,所述第二发送单元220及所述第二接收单元230可对应于终端的外部通信接口,该接口可以用于运行在终端中的应用客户端与应用客户端的信息交互。这里的信息交互,可包括:状态数据和/或事件消息及操作指令等交互。
所述模拟单元240可对应于处理器,这里的处理器可为前述的CPU、MCU、DSP、AP、PLC或ASIC等。
所述输出单元250,至少对应于显示屏;所述显示屏可为液晶显示屏、 电子墨水显示屏或投影显示屏或有机发光二级管(OLED)显示屏等可以显示信息的显示结果。
在一些实施例中,所述输出单元250除了对应于所述显示屏以外,还对应于音频输出模组,例如,扬声器或耳机输出声道,这样输出音频信息。
总之,本实施例提供了一种终端,可以以更少的资源的进行输出场景的模拟并输出。
可选地,所述第二接收单元230,配置为接收所述应用服务器返回的全量状态数据和/或事件消息;所述模拟单元240,配置为基于所述全量状态数据和/或所述事件消息模拟所述当前待输出帧的输出内容。
在本实施例中接收的状态数据为全量状态数据,这样模拟单元240是基于全量状态数据及事件消息中的至少一个模拟当前待输出帧的输出内容。
在另一些实施例中,所述第二接收单元230,配置为接收处理后的本次全量状态数据和/或所述事件消息;所述模拟单元240,配置为基于本次全量状态数据及前一次的全量状态数据及前一次的事件消息,模拟当前待输出帧的输出内容。
第二接收单元230在本实施例中实质上接收的处理后的全量状态数据,减少了接收的状态数据量,从而减少了带宽的占用。
可选地,所述第二接收单元230,配置为接收所述应用服务器发送的增量状态数据和/或事件消息,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧。对应地,所述模拟单元240,配置为基于所述增量状态数据和/或所述事件消息,并结合前一个输出帧的输出内容,模拟所述当前待输出帧的输出内容。
在一些实施例中,所述应用客户端为第二客户端;所述第二接收单元 220,可配置为接收第一客户端以第一视角重播预定应用场景的插值延时;所述模块单元240,可配置为基于所述插值延时从第二视角切换到第一视角重播所述预定应用场景。
在本实施例中进行预定应用场景的重播时,可能需要切换视角,故在本实施例中需要从应用服务器接收插值延时,需要结合插值延时切换视角重播预定应用场景。
如图12所示,本实施例还提供一种电子设备,所述电子设备为应用服务器或终端,包括:
存储器310,配置为存储信息;
处理器320,与所述存储器310连接,用于通过执行所述存储介质中存储的计算机可执行代码,能够实现前述的一个或多个技术方案提供的输出内容确定方法及输出方法。
这里的存储器310可为各种类型的存储介质,例如,光盘、硬盘、磁带、随机存储介质或只读存储介质;所述存储介质可为非瞬间存储介质。
在本实施例中所述处理器320与存储器310相连,具体可如利用集成电路(IIC)总线等连接所述处理器。
这里的处理器可为前述的CPU、MCU、DSP、AP、PLC或ASIC等。
所述电子设备可为前述的应用处理器,也可以为前述的终端。若所述电子设备为终端,则所述电子设备还至少包括显示屏,所述显示屏用于显示输出场景等。若所述电子设备包括显示屏,所述显示屏同样连接到所述处理器,例如,通过IIC或串行外设接口(IPS)总线等连接到所述处理器。
参见图13示出的电子设备14的一个可选的软硬件结构示意图,电子设备14包括硬件层、驱动层(驱动层可包括:中间件145)、操作系统层(操作系统层可包括操作系统146)和软件层(软件层可包括安装在操作系统内的应用147)。然而,本领域的技术人员应当理解,图13示出的电子设备 14的结构仅为示例,并不构成对电子设备14结构的限定。这里的电子设备可为前述应用服务器或运行有应用客户端的终端。
电子设备14的硬件层包括处理器141、输入/输出接口143,存储介质144以及网络接口142,组件可以经系统总线连接通信。
处理器141可以采用中央处理器、微处理器专用集成电路或逻辑可编程门阵列实现。
输入/输出接口143可以采用如显示屏、触摸屏、扬声器等输入/输出器件实现。
存储介质144可以采用闪存、硬盘、光盘等非易失性存储介质实现,也可以采用双倍率(DDR,Double Data Rate)动态缓存等易失性存储介质实现,其中存储有用以执行上述信息处理方法的可执行指令。
本实施例还提供一种计算机存储介质,所述计算机存储介质存有计算机可执行代码,所述计算机可执行代码被执行后,能够实现前述的一个或多个技术方案提供的输出内容确定方法及输出方法。
以下结合上述任意一个实施例提供几个具体示例:
示例1:
图14的上半图为首播效果示意图;图14的下半图为重播的效果示意图。首播和重播都发生为一个设备内,在同一场战斗的实时模拟结果。
图14中首播时,角色A被对面拿着枪2的角色B击杀,当角色A死亡后,立刻进行实时重播,进行死亡镜头的播放如图14中的下半图所示。即以击杀者拿着枪2的角色B的角度去重温是如何击杀拿着枪1的角色A的。当角色A重生时,需要结束死亡镜头,即结束重播,重新恢复游戏。
重播还可以用作更多的其他实时模拟情况,比如可以在合适的时候,用来播放一场战斗的某个精彩的时刻。
重播也可以用作非实时的情况。比如可以把玩家的战斗过程都记录下 来,然后以文件形式保存到用户设备本地,用户可以按需使用该文件进行重播。
因为重播能够比较精确地重现历史情况,所以重播也可用于项目组开发过程中,进行调试、性能调优。
如图15所示,本示例提供一种输出方法,可用于游戏内的实时重播。
应用服务器分别从客户端1和客户端2接收的第k帧的操作指令;
接收到双方的操作指令之后,应用服务器进行模拟第k帧;
客户端1和客户端2也会各自基于本端的操作指令进行预先模拟;
应用服务器将基于自身对第k帧的模拟,分别向客户端1和客户端2发送第k帧的状态数据和事件消息;
客户端1和客户端2在接收到第k帧的状态数据和事件消息后,分别实用本端的预先模拟结果进行校验,结合两端操作的状态数据和事件消息进行整个输出场景的模拟;
客户端1和客户端2分别采集第k+1帧操作;
客户端1和客户端2分别上报第k+1帧操作指令。
所述校验可包括:对状态数据中本端的状态模拟结果对应的状态数据,与从应用服务器接收的本端的状态数据进行比对是否一致,一致则认为通过验证,否则可认为不通过;
在实时游戏过程中,我们采取客户端-服务器(Client-Server)的网络同步模式,即客户端把本客户端操作指令上报给应用服务器、应用服务器把应用服务器进行输出场景的模拟、将整个输出场景的状态数据和事件消息发送给各个客户端、客户端使用服务器下发的状态数据和事件消息进行模拟(包括预先模拟校验),然后重复本过程,一帧一帧地重复执行下去。
如果客户端收到状态数据和事件消息,不会区分是历史时刻还是当前时刻的状态数据和事件消息,直接进行模拟输出。这样对于客户端的输出 效果为,若接收到的是历史时刻的状态数据和事件消息,则客户端利用当前时刻的模拟输出场景的资源,进行历史时刻的模拟。
在客户端在模拟历史时刻的时候,如果服务器突然下发最新的世界状态和事件消息,则客户端又能立刻回到最新的时刻进行模拟。
这样简便的实现了历史时刻的重播和当前时刻的首播的简单切换,且能够尽可能的减少使用资源。
示例2:
本示例基于示例1的输出方法的进一步改进,区别点在于:应用服务器都把输出场景的全量状态数据、所有事件消息,每一帧都发送给客户端。在客户端已经回到历史时刻进行重播的时候,应用服务器也可以把最新时刻的输出场景的数据同时发给客户端。但是这样可能会导致发送的数据量比较大,有鉴于此,本示例提出了一种优化方法,包括:
应用服务器会在正常模拟输出场景的过程中,不断地把每一帧的增量状态数据和事件消息,保存在服务器的增量缓冲区(delta buffer)里,另外也会以稍微低的频率(比如1秒1次),把输出场景的全量状态数据保存在全量缓冲区(snapshot buffer)里。即在本申请中所述全量状态数据的发送频次高于增量状态事件的发送频次。
这样的话,当且仅当客户端切换为重播模拟的第一帧、或切换为实时游戏模拟的第一帧,才需要从服务器的全量缓冲区将全量状态数据下发给客户端、其他大部分时间,都是从增量缓冲区里把增量状态数据和事件消息下发给客户端,从而大量节省带宽。
另外,客户端进行实时重播模拟的时候,应用服务器的实时输出场景并不会多余地把没用的实时游戏模拟数据也发送给客户端,仅仅把全量缓冲区、增量缓冲区的数据发给客户端。
另外,应用服务器下发全量状态数据之前,应用服务器也会就此全量 状态数据再进行一次差量计算,计算出当前客户端的全量状态数据和当前服务器准备下发的全量状态数据之间的差别,从而再一次节省同步数据、从而节省带宽流量。
经过以上优化,从实际数据情况,可节省重播模拟的流量和带宽,传输速率要求可以从300KB/s优化到了6KB/s。
在一些情况下,应用服务器同时将实时游戏输出场景的数据、实时重播输出场景的数据都发给客户端,在客户端里同时进行实时游戏世界、实时重播世界两个输出场景的模拟。这种做法能比较方便地实现两个世界之间的切换。但这中方法简单粗暴的实现方法,因为这带来了没必要的(上一节提到的)带宽流量的同时,也给客户端带来了不必要的性能损耗,这在移动设备等运算能力比较差的设备上,会带来非常不好的体验。
在实际情况下,两个全量状态数据之间,世界内的角色实例是差别不大的,仅仅是这些角色的一些位置、旋转、技能等状态数值的不一样而已,利用这一点特性,在实时游戏、实时重播互相切换时的全量状态数据下发时,重用同一批角色,当收到创建角色数据,如16所示,仅仅将这些数据应用到这些已经存在的角色里。最差情况下,两个全量状态数据之间的角色实例完全不一样。此时本将销毁所有旧角色、创建所有新角色,这将带来比较客观的性能损耗,但从实际情况看来,这种情况几乎不存在,基于统计,平均每次全量数据,只有2%左右的几率需要创建或销毁角色,98%的几率都是进行角色的状态数值更新,从而节省了大量的创建或销毁操作,从而优化了性能。
从而,在这个基础上,最关键地,在客户端里,一个时刻只进行一个输出场景的模拟,从而大幅地节省了同时模拟两个输出场景的额外消耗,这大幅地节省了客户端性能。
正如前面提到的,在实时重播模拟的时候,服务器不会发实时游戏的 数据给客户端,这既节省带宽,也只用进行一个输出场景的实时游戏、实时重播两者情况的模拟。
如图16所示,在本示例中,输出方法可包括:
步骤S1:收到应用服务器的全量状态数据;
步骤S2:判断是哪一种对象操作,若是需要更新对象则进入步骤S5,若需要销毁对象则进入步骤S6,若需要进行创建对象,则进入步骤S3。
步骤S3:提取创建对象的数据;
步骤S4:判断对象A是否已存在,这里的对象A为所述创建对象的数据指向的待创建的对象;若不存在进入步骤S7,若已存在,则进入步骤S9;
步骤S5:获取更新对象的数据;
步骤S6:获取销毁对象的标识;
步骤S7:根据对象A的类型,创建对象A;
步骤S8:销毁对象B,这里销毁的对象B为根据步骤S6中获取的标识确定的。
步骤S9:将数据应用到对象A。
在本示例中获取的各种操作对象的数据,均可为从应用服务器中接收到的全量状态数据中提取。
示例3:
为了避免网络抖动带来的不流畅的感觉,在模拟的过程中,常对角色运动采取插值延迟的处理。即让角色稍微延迟一点移动,而在延迟的时间段内进行插值运动。从而如果有网络抖动导致客户端不及时收到运动数据时,也能做到平滑移动。
但这种重播时一般情况下将遇到问题。比如客户端A操作角色A、客户端B操作角色B,角色A把角色B杀死。在实时重播死亡镜头时,客户端B是以角色A的视角去观察的。因为客户端A中的角色B是有插值延迟 A的,所以如果客户端B中的角色B以客户端B的插值延迟B进行,将导致位置不精确问题。
本示例解决了这个问题,在示例1和示例2的基础上做了进一步改进。在重播的时候,将重播视角的人的插值延迟也考虑进去,进行延迟补偿。接着上面的例子,即服务器会把客户端A的插值延迟A告诉客户端B,客户端B将以插值延迟A去重播角色B,从而达到和客户端A的插值延迟效果一样。
从图17可以看出,左部图像是没开启延迟补偿的情况,在重播中,远处的角色被杀死时,已经往左离开了准星。本发明实施例会基于插值延迟开启的延迟补偿。图17中右部图,远处被杀死的角色,被杀死时精确地到达准星。
以下结合上述任意实施例提供几个具体示例:
本示例提供两种输出对象的输出视角,例如,第一人称视角和第三人称视角,第一人称视角和第三人称视角可对同一个输出对象进行图像采集或输出的不同视角。例如,游戏玩家观看游戏场景中的视角为第一人称视角,而游戏玩家在游戏时旁观者的挂看游戏的视角可为所述第三人称视角。
例如,在游戏场景中,游戏玩家A枪杀了一个游戏角色B,游戏玩家A可以从自身的视角观测到游戏角色B被枪杀,但是游戏场景(输出场景的一种)中旁观者C或者玩家B是从第三人称视角看到游戏角色B被枪杀的,游戏玩家A和旁观者C或者玩家B看到的游戏角色B被枪杀的观看角度是不一样。在本示例中,所述游戏玩家A强杀游戏角色B的枪杀指令可为前述步骤S110中操作指令的一种;所述游戏角色B被枪杀从活着状态切换到死亡状态的状态数据可为前述输出对象的状态数据的一种;或者携带有游戏角色B被枪杀的信息可为前述事件消息的一种。游戏玩家A所使用的终端设备在发送了枪杀指令、接收到状态数据和/或事件消息之后,会从 不同的人称视角来呈现游戏角色B被枪杀的过程。游戏玩家A所在终端的所述首播帧可为第一人称视角的输出帧,对应于该首播帧的重播帧可为第三人称视角的输出帧。如此,即便首播帧和重播帧输出的是同一个输出场景中同一输出事件,但是以不同的人称视角进行输出,从而会使得用户有不同的观看感受,从而提升用户的用户体验。
在一些情况下:在输出场景中某一个输出对象的发生预定状态变化之后,例如,游戏场景中游戏角色死亡或者掉血或者游戏角色变身等状态变化后,首先利用多个第一人称视角的首播帧展示上述预定变化的过程;然后利用多个第三人称视角的重播帧展示上述预定变化的过程。在终端模拟输出首播帧和重播帧时采用前述任意一个实施例中提供给的方法,通过状态数据和/或事件消息的接收,利用同一套线程来分别模拟并输出首播帧和重播帧。值得注意的是在本示例中首播帧和重播帧虽然是展示的同一个输出场景中的预定过程,但是是从不同的视角展示的。该预定过程可为预先确定需要重播的过程,在本示例中以区分首播的人称视角来重播该预定过程。
例如,在游戏场景中,增加死亡状态播放,在玩家死亡之后,会从第一人称视角转换为第三人称视角播放死亡动作并显示玩家死亡的位置。在死亡状态播放完之后播放死亡过程(Killcam),直到角色重生,能够让玩家看到自己的游戏角色的死亡过程。与此同时,在播放死亡状态和死亡场景的时候,都提供更换角色的功能按钮。玩家角色死亡之后,摄像机从第一人称视角拉出,切换为第三人称视角,好像呈现一个玩家的死亡状态。玩家死亡状态播放完后,才开始播放Killcam。在上述两个阶段:呈现死亡状态阶段和播放Killcam阶段中,都允许选择游戏角色,但选择游戏角色会延时生效,在玩家重生的瞬间才会切换。
如图18所示,本示例提供一种信息内容处理方法,以实现从第一人 称视角播放切换至第三人称视角播放,可包括:
输出对象发生预定状态变化,例如,游戏角色死亡;
终端中的画面抖动,以提示用户发生预定变化;
播出预定状态变化;
第一人称视角消失,在完成第一人称视角的首次输出之后,摄像机脱离第一人称视角;
第三人称视角出现,摄像机转向第三人称视角,即摄像机的采集视角与第三人称的观看视角相同;
重播预定状态变化过程完毕,摄像机静止;
在发生预定变化位置静止,完成了不同人称视角的同一个预定状态过程的首播和重播。
如图19所示,本示例还提供一种输出内容处理方法,以实现第三人称视角播放切换回第一人称视角播放,可包括:
以第三人称视角进入预定状态变换回放,例如,游戏角色死亡回放;
播放预定变化过程,并黑屏;
摄像机脱离第三人称视角;
转换为发生预定变化的角色A的视角,摄像头跟随角色A;
输出预定变化过程的最后画面,并跟随角色A的后续状态变化,例如,角色A的重生等;此处为以第一人称视角播放预定变化过程的最后画面。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接 口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发 明之权利范围,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
本发明实施例中应用服务器不管是进行重播还是首播,向应用客户端发送的是状态数据和/或事件消息,应用客户端请求到状态数据和/或事件消息之后会模拟出输出场景的当前输出待输出帧,而非从应用服务器直接接收待输出数据直接输出,减少了带宽资源,且接收状态数据和/或事件消息统一进行重播帧和首播帧的模拟,应用客户端中不用分配两套资源分别用于重播和首播的模拟,减少计算资源和存储资源的占用,从而减少了输出所需的终端资源。故本发明实施例提供的技术方案具有工业上的积极性,且在本发明实施例中可以通过具有特定功能的计算机程序等可执行代码执行,实现输出内容处理方法及输出方法的实现,从而在工业上可以广泛推广实现,从而具有工业可实现性。
Claims (23)
- 一种输出内容处理方法,应用于应用服务器中,包括:接收至少一个运行有应用客户端的终端发送的操作指令;基于所述操作指令,确定输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
- 根据权利要求1所述的方法,其中,所述基于所述操作指令,确定出当前待输出帧中输出对象的状态数据和/或事件消息,包括:根据所述操作指令,确定出所述当前待输出帧相对于前一个输出帧的增量状态数据和/或事件消息;其中,所述增量状态数据,用于指示在在当前待输出帧中状态发生过变化的输出对象的当前状态;所述将所述状态数据和/或所述事件消息分发给所述终端,包括:将所述增量状态数据和/或所述事件消息,分发所述终端,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧。
- 根据权利要求1或2所述的方法,其中,所述基于所述操作指令,确定输出对象的状态数据和/或事件消息,包括:基于所述操作指令,确定当前待输出帧每一输出对象的全量状态数据和/或事件消息;其中,所述全量状态数据,用于指示当前待输出帧中每一个输出对象全部状态;所述事件消息,用于指示当前待输出帧中每一个输 出对象的全部状态切换的通知;所述将所述状态数据和/或所述事件消息分发给所述终端,包括:将所述全量状态数据和/或所述事件消息,分发给所述终端,其中,所述全量状态数据和/或所述事件消息,分别用于所述终端模拟出当前待输出帧的输出内容并显示所述当前待输出帧。
- 根据权利要求3所述的方法,其中,所述基于所述操作指令,确定输出对象的状态数据和/或事件消息,包括:基于所述操作指令,确定出当前待输出帧的本次所述全量状态数据;将本次全量状态数据与前一次全量状态数据进行差量计算,以得到本次全量状态数据相对于前一次全量状态数据的处理后的本次全量状态数据;所述将所述全量状态数据和/或所述事件消息,分发给所述终端,包括:将处理后的本次全量状态数据和/或所述事件消息,发送给所述终端,其中,处理后的本次全量状态数据,用于所述终端结合所述前一次全量状态数据模拟出当前待输出帧的输出内容,并显示所述当前待输出帧。
- 根据权利要求1或2所述的方法,其中,所述方法包括:在全量缓冲区内存储全量状态数据和/或事件消息,其中,所述全量状态数据,用于指示当前待输出帧中每一个输出对象全部状态;所述事件消息,用于指示当前待输出帧中每一个输出对象的全部状态切换的通知;在增量缓冲区内存储增量状态数据和/或事件消息,其中,所述增量状态数据,用于指示在在当前待输出帧中状态发生过变化的输出对象的当前状态。
- 根据权利要求5所述的方法,其中,所述将所述全量状态数据和/或所述事件消息,分发给所述终端,包括:基于所述终端的全量请求或所述应用服务器中的内部触发事件,将所述全量状态数据和/或所述事件消息发送给所述终端;或者,基于所述终端的全量请求或所述应用服务器中的内部触发事件,将所述增量状态数据和/或所述事件消息发送给所述终端。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:计算第一客户端以第一视角重播预定应用场景的插值延时;分别将所述插值延时发送给第一客户端和第二客户端;其中,所述插值延时,用于所述第一客户端以第一视角重播所述预定应用场景,并用于原本以第二视角首次输出所述预定应用场景的所述第二客户端,以所述第一视角重播所述预定应用场景。
- 根据权利要求1或2所述的方法,其特征在于,所述接收至少一个终端的操作指令,包括:接收至少两个终端作用于同一个输出场景的操作指令,其中,所述输出场景为:当前在所述应用客户端的输出的场景或者需要在所述应用客户端中输出的场景。
- 一种输出方法,其中,应用于终端中,包括:检测操作指令;向应用服务器发送所述操作指令;接收所述应用服务器基于至少一个终端发送的操作指令返回的状态数据和/或事件消息,其中,所述状态数据,用于指示输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容;输出所述当前待输出帧,其中,所述当前待输出帧为:同一所述输出场景的首播帧或重播输出的重播帧。
- 根据权利要求9所述的方法,其中,所述接收所述应用服务器基于所述操作指令返回的状态数据和/或事件消息,包括:接收所述应用服务器返回的全量状态数据和/或事件消息;所述基于所述状态数据和/或所述事件消息模拟输出场景中当前待输出帧的输出内容,包括:基于所述全量状态数据和/或所述事件消息模拟所述当前待输出帧的输出内容。
- 根据权利要求10所述的方法,其中,所述接收所述应用服务器返回的全量状态数据和/或事件消息,包括:接收处理后的本次全量状态数据和/或所述事件消息;所述基于所述全量状态数据和/或所述事件消息模拟所述当前待输出帧的输出内容,包括:基于本次全量状态数据及前一次的全量状态数据及前一次的事件消息,模拟当前待输出帧的输出内容。
- 根据权利要求9所述的方法,其中,所述接收所述应用服务器基于所述操作指令返回的状态数据和/或事件消息,包括:接收所述应用服务器发送的增量状态数据和/或事件消息,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧;所述基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容,包括:基于所述增量状态数据和/或所述事件消息,并结合前一个输出帧的输出内容,模拟所述当前待输出帧的输出内容。
- 根据权利要求9至12任一项所述的方法,其特征在于,所述应用客户端为第二客户端;所述方法还包括:接收第一客户端以第一视角重播预定应用场景的插值延时;基于所述插值延时从第二视角切换到第一视角重播所述预定应用场景。
- 一种电子设备,所述电子设备为应用服务器,包括:第一接收单元,配置为接收至少一个运行有应用客户端的终端发送的操作指令;确定单元,配置为基于所述操作指令,确定输出场景中输出对象的状态数据和/或事件消息;其中,所述状态数据,用于指示所述输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;第一发送单元,用于将所述状态数据和/或所述事件消息分发给所述终端;其中,所述状态数据和/或所述事件消息,用于待输出所述输出场景的终端模拟出当前待输出帧的输出内容并显示当前待输出帧,其中,所述当前待输出帧为:同一所述输出场景的首次输出帧或重播输出的重播帧。
- 根据权利要求14所述的电子设备,其中,所述确定单元,配置为根据所述操作指令,确定出所述当前待输出帧相对于前一个输出帧的增量状态数据和/或事件消息;其中,所述增量状态数据,用于指示在在当前待输出帧中状态发生过变化的输出对象的当前状态;所述第一发送单元,配置为将所述增量状态数据和/或所述事件消息,分发所述终端,其中,所述增量状态数据和所述事件消息,用于所述终端 结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧。
- 根据权利要求14或15所述的电子设备,其中,所述确定单元,配置为基于所述操作指令,确定当前待输出帧每一输出对象的全量状态数据和/或事件消息;其中,所述全量状态数据,用于指示当前待输出帧中每一个输出对象全部状态;所述事件消息,用于指示当前待输出帧中每一个输出对象的全部状态切换的通知;所述第一发送单元,配置为将所述全量状态数据和/或所述事件消息,分发给所述终端,其中,所述全量状态数据和/或所述事件消息,分别用于所述终端模拟出当前待输出帧的输出内容并显示所述当前待输出帧。
- 根据权利要求16所述的电子设备,其中,所述确定单元,配置为基于所述操作指令,确定出当前待输出帧的本次所述全量状态数据;将本次全量状态数据与前一次全量状态数据进行差量计算,以得到本次全量状态数据相对于前一次全量状态数据的处理后的本次全量状态数据;所述第一发送单元,配置为将处理后的本次全量状态数据和/或所述事件消息,发送给所述终端,其中,处理后的本次全量状态数据,用于所述终端结合所述前一次全量状态数据模拟出当前待输出帧的输出内容,并显示所述当前待输出帧。
- 一种电子设备,所述电子设备为终端,包括:检测单元,配置为检测操作指令;第二发送单元,配置为向应用服务器发送所述操作指令;第二接收单元,配置为接收所述应用服务器基于所述操作指令返回的 状态数据和/或事件消息,其中,所述状态数据,用于指示输出对象的状态;所述事件消息,用于指示所述输出对象的状态切换的通知;模拟单元,配置为基于所述状态数据和/或所述事件消息模拟当前待输出帧的输出内容;输出单元,配置为输出所述当前待输出帧,其中,所述当前待输出帧为:首播帧或重播输出的重播帧。
- 根据权利要求18所述的电子设备,其中,所述第二接收单元,配置为接收所述应用服务器返回的全量状态数据和/或事件消息;所述模拟单元,配置为基于所述全量状态数据和/或所述事件消息模拟所述当前待输出帧的输出内容。
- 根据权利要求19所述的电子设备,其中,所述第二接收单元,配置为接收处理后的本次全量状态数据和/或所述事件消息;所述模拟单元,配置为基于本次全量状态数据及前一次的全量状态数据及前一次的事件消息,模拟当前待输出帧的输出内容。
- 根据权利要求18所述的电子设备,其中,所述第二接收单元,配置为接收所述应用服务器发送的增量状态数据和/或事件消息,其中,所述增量状态数据和所述事件消息,用于所述终端结合前一个输出帧的输出内容,模拟出当前待输出帧的输出内容并显示当前待输出帧;所述模拟单元,配置为基于所述增量状态数据和/或所述事件消息,并结合前一个输出帧的输出内容,模拟所述当前待输出帧的输出内容。
- 一种电子设备,所述电子设备为应用服务器或终端,包括:存储器,配置为存储信息;处理器,与所述存储介质连接,用于通过执行所述存储介质中存储的计算机可执行代码,能够实现权利要求1至8或9至13任一项提供的方法。
- 一种计算机存储介质,所述计算机存储介质存有计算机可执行代码,所述计算机可执行代码被执行后,能够实现权利要求1至8或9至13任一项提供的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2018/086217 WO2019213879A1 (zh) | 2018-05-09 | 2018-05-09 | 输出内容处理方法、输出方法、电子设备及存储介质 |
| CN201880003422.0A CN110769904B (zh) | 2018-05-09 | 2018-05-09 | 输出内容处理方法、输出方法、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2018/086217 WO2019213879A1 (zh) | 2018-05-09 | 2018-05-09 | 输出内容处理方法、输出方法、电子设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019213879A1 true WO2019213879A1 (zh) | 2019-11-14 |
Family
ID=68467222
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2018/086217 Ceased WO2019213879A1 (zh) | 2018-05-09 | 2018-05-09 | 输出内容处理方法、输出方法、电子设备及存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN110769904B (zh) |
| WO (1) | WO2019213879A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111494951B (zh) * | 2020-04-15 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、终端及存储介质 |
| CN112657181B (zh) * | 2020-12-21 | 2024-09-10 | 北京像素软件科技股份有限公司 | 状态同步方法和装置 |
| CN115964179A (zh) * | 2023-01-10 | 2023-04-14 | 先临三维科技股份有限公司 | 一种数据处理的方法及装置、介质、设备、三维扫描仪 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1862553A (zh) * | 2006-06-02 | 2006-11-15 | 北京金山数字娱乐科技有限公司 | 游戏录像及回放的方法及系统 |
| JP2008304581A (ja) * | 2007-06-06 | 2008-12-18 | Square Enix Holdings Co Ltd | プログラム記録媒体、再生装置、再生制御プログラム及び再生制御方法 |
| CN105013174A (zh) * | 2015-07-28 | 2015-11-04 | 珠海金山网络游戏科技有限公司 | 一种游戏录像回放方法及系统 |
| CN105763825A (zh) * | 2016-04-12 | 2016-07-13 | 杭州电魂网络科技股份有限公司 | 一种对帧同步录像功能进行优化的方法 |
| US20160248970A1 (en) * | 2012-01-31 | 2016-08-25 | Canon Kabushiki Kaisha | Electronic apparatus, image sensing apparatus, control method and storage medium |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140213372A1 (en) * | 2013-01-31 | 2014-07-31 | Zynga Inc. | Systems and methods for providing game gestures |
| CN104915542B (zh) * | 2015-05-08 | 2018-05-22 | 珠海金山网络游戏科技有限公司 | 一种基于数据同步的网游录像与回放的方法 |
| CN107050850A (zh) * | 2017-05-18 | 2017-08-18 | 腾讯科技(深圳)有限公司 | 虚拟场景的录制和回放方法、装置以及回放系统 |
| CN108635848A (zh) * | 2018-05-21 | 2018-10-12 | 武汉山骁科技有限公司 | 一种无限时长快速定位的游戏场景回放方法 |
-
2018
- 2018-05-09 CN CN201880003422.0A patent/CN110769904B/zh active Active
- 2018-05-09 WO PCT/CN2018/086217 patent/WO2019213879A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1862553A (zh) * | 2006-06-02 | 2006-11-15 | 北京金山数字娱乐科技有限公司 | 游戏录像及回放的方法及系统 |
| JP2008304581A (ja) * | 2007-06-06 | 2008-12-18 | Square Enix Holdings Co Ltd | プログラム記録媒体、再生装置、再生制御プログラム及び再生制御方法 |
| US20160248970A1 (en) * | 2012-01-31 | 2016-08-25 | Canon Kabushiki Kaisha | Electronic apparatus, image sensing apparatus, control method and storage medium |
| CN105013174A (zh) * | 2015-07-28 | 2015-11-04 | 珠海金山网络游戏科技有限公司 | 一种游戏录像回放方法及系统 |
| CN105763825A (zh) * | 2016-04-12 | 2016-07-13 | 杭州电魂网络科技股份有限公司 | 一种对帧同步录像功能进行优化的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110769904B (zh) | 2021-01-05 |
| CN110769904A (zh) | 2020-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112691377B (zh) | 虚拟角色的控制方法、装置、电子设备及存储介质 | |
| CN111767503B (zh) | 一种游戏数据处理方法、装置、计算机及可读存储介质 | |
| US10771565B2 (en) | Sending application input commands over a network | |
| JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
| US8403757B2 (en) | Method and apparatus for providing gaming services and for handling video content | |
| US9873045B2 (en) | Systems and methods for a unified game experience | |
| CN113521743B (zh) | 游戏同步方法、装置、终端、服务器和存储介质 | |
| CN114339438B (zh) | 基于直播画面的互动方法、装置、电子设备及存储介质 | |
| WO2018095366A1 (zh) | 视频推荐确定、信息显示、基于帧同步的数据处理方法 | |
| JP2017056193A (ja) | ブロードキャスタを有するリモートレンダリングサーバ | |
| JP6379107B2 (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
| CN111467798B (zh) | 游戏应用程序中的帧显示方法、装置、终端和存储介质 | |
| US12337233B2 (en) | Bifurcation of gameplay between mobile and non-mobile play with intelligent game state saving, and startups | |
| CN108965989B (zh) | 一种交互式应用场景的处理方法和装置以及存储介质 | |
| WO2019213879A1 (zh) | 输出内容处理方法、输出方法、电子设备及存储介质 | |
| CN110580257A (zh) | 数据共享方法、服务器及介质 | |
| US20240316451A1 (en) | Turn-based battle-based interface display method, turn-based battle-based information providing method, and system | |
| CN113797539A (zh) | 游戏中小地图的构建方法、装置和电子设备 | |
| CN109481938B (zh) | 图像生成装置和图像生成系统 | |
| CN115525185A (zh) | 一种场景切换方法、装置、计算机设备及存储介质 | |
| CN115243110A (zh) | 弹幕显示方法、装置、计算机设备和存储介质 | |
| US12194388B2 (en) | Method and apparatus for providing a computer implemented game | |
| US20260039934A1 (en) | Content streaming system and method | |
| HK40053502A (zh) | 游戏同步方法、装置、终端、服务器和存储介质 | |
| CN115779412A (zh) | 游戏特效的设置方法、装置和电子设备 |
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: 18918335 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18918335 Country of ref document: EP Kind code of ref document: A1 |