Information processing system, program, and information processing method
The information processing system addresses asynchronous avatar motions in virtual spaces by adjusting movement speeds to synchronize interaction timings, improving the naturalness and engagement of avatar interactions.
Patent Information
- Application Number
- PCT/JP2025/003697
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-26
- Filing Date
- 2025-02-05
- Publication Date
- 2025-10-02
AI Technical Summary
In virtual spaces where multiple avatars interact, communication delays cause asynchronous motions leading to discomfort for users due to unnatural timing synchronization of avatars' actions.
An information processing system that calculates and adjusts the movement speeds of avatars' pre-motions to synchronize the completion timing of interactions, such as high-fives, by determining initial and new movement speeds based on communication delays and user responses.
Enhances the naturalness of avatar interactions by preventing mechanical pauses and ensuring synchronized completion timings, thereby maintaining user engagement and excitement.
Smart Images

Figure JP2025003697_02102025_PF_FP_ABST
Abstract
Description
Information processing system, program, and information processing method
[0001] The present disclosure relates to an information processing system, a program, and an information processing method.
[0002] In recent years, technology that provides a virtual space where multiple users' avatars are placed has become widespread. In the virtual space, each avatar performs various motions. For example, in some cases, an avatar may make a response that includes a motion in response to a statement made by another avatar.
[0003] Here, due to communication delays and the like, a time lag may occur between the speech of one avatar and the motion of another avatar. When such a time lag occurs, it may cause a sense of discomfort to users viewing the virtual space. To solve this sense of discomfort, Patent Literature 1 discloses a technology that predicts the motion of an avatar operated by a user on the response side and has the avatar respond according to the predicted result, thereby preventing the sense of discomfort from being felt by the user on the response side.
[0004] JP 2016-48855 A
[0005] On the other hand, when an avatar starts a motion, other avatars may respond by performing a motion corresponding to that motion. For example, when one avatar starts a motion to raise its hand, other avatars may respond by performing a motion to raise their hands. After performing such a motion, the avatars can perform a motion to touch each other's hands while keeping their hands raised, allowing the avatars to high-five each other.
[0006] However, due to factors such as communication delays and the timing of the user's response, the user may feel uncomfortable viewing the virtual space in which each avatar performs the above-mentioned motions.
[0007] Therefore, the present disclosure proposes a new and improved technique that can reduce the sense of discomfort felt by the user when motions performed by multiple avatars correspond to each other.
[0008] According to the present disclosure, there is provided an information processing system including a control unit that performs control to calculate a first movement speed, which is the movement speed of a first motion, and a second movement speed, which is the movement speed of a second motion, which corresponds to a first motion, performed by a first avatar in a virtual space, so as to synchronize the completion timing of the first motion and the second motion, which corresponds to the first motion, performed by a second avatar, in a virtual space; and control to make the first avatar perform the first motion at the first movement speed and make the second avatar perform the second motion at the second movement speed.
[0009] Furthermore, according to the present disclosure, there is provided a program that causes a computer to function as a control unit that performs the following control: calculates a first movement speed, which is the movement speed of a first motion, and a second movement speed, which is the movement speed of a second motion, which corresponds to a first motion, performed by a first avatar in a virtual space, so as to synchronize the completion timing of the first motion and the second motion, which corresponds to the first motion, performed by a second avatar; and controls the first avatar to perform the first motion at the first movement speed and the second avatar to perform the second motion at the second movement speed.
[0010] Furthermore, according to the present disclosure, there is provided an information processing method executed by a computer, which includes calculating a first movement speed that is the movement speed of a first motion performed by a first avatar in a virtual space and a second movement speed that is the movement speed of a second motion performed by a second avatar corresponding to the first motion so as to synchronize the completion timing of the first motion and the second motion, and having the first avatar perform the first motion at the first movement speed and the second avatar perform the second motion at the second movement speed.
[0011] Furthermore, according to the present disclosure, there is provided an information processing system having a control unit that performs the following control: receiving, as input information, whether or not to cause an avatar in a virtual space, each operated by a plurality of user terminals, to perform a second motion at an operation speed that matches the completion timing of a first motion performed by another avatar, which is executed based on an operation on a user terminal operating the other avatar; the types of the first motion and the second motion; and conditions for selecting a candidate avatar to perform the second motion; and outputting the input information as parameters for an application to be distributed to the user terminals.
[0012] 1 is a diagram for explaining the overall configuration of an information processing system 1 according to an embodiment of the present disclosure. FIG. 1 is a diagram for explaining the flow of a high-five including a pre-motion and a final motion in real space. FIG. 2 is a diagram for explaining the flow of a high-five in virtual space in a case where a state occurs in which a leader avatar waits for a motion of a follower avatar. FIG. 3 is a diagram for explaining the flow of a high-five in virtual space in a case in which a pre-motion of follower avatar B is controlled so that no time occurs in which leader avatar A stops. A block diagram showing an example of the configuration of a server 10 according to this embodiment. A block diagram showing an example of the configuration of a user terminal 20 according to this embodiment. A diagram for explaining an example of a display screen D1 for inputting an instruction to start an interaction, output by the display output unit 220. A block diagram showing an example of the configuration of a developer terminal 30 according to this embodiment. A diagram for explaining an example of a display screen D2 displayed on the operation display unit 320 for receiving input information that is information regarding settings for synchronization of pre-motions. A diagram for explaining an example of user interaction information managed by the interaction management information DB131. A diagram for explaining an interaction state. A diagram for explaining an example of group interaction information managed by the interaction management information DB131. 1 is a flowchart showing an example of a flow of updating group interaction information managed in the interaction management information DB 131 by the interaction control unit 121. FIG. 2 is a sequence diagram showing an example of a flow of operations by the information processing system 1, for explaining a response time predicted value. FIG. 3 is a diagram showing an example of an expected response time. FIG. 4 is a diagram for explaining a method of calculating an initial frame rate. FIG. 5 is a diagram for explaining a method of calculating new frame rates fa2 and fb2. FIG. 6 is a sequence diagram showing an example of operation processing of the information processing system 1 according to the present embodiment. FIG. 7 is a block diagram showing an example of the hardware configuration of an information processing device 900 that realizes the server 10, the user terminal 20, and the developer terminal 30 according to an embodiment of the present disclosure.
[0013] Preferred embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functional configurations are designated by the same reference numerals, and redundant description will be omitted.
[0014] The explanation will be given in the following order: 1. Overview 2. Configuration example 3. Functional details 4. Operation processing example 5. Hardware configuration 6. Supplementary information
[0015] <<1. Overview>> First, the overall configuration of an information processing system according to an embodiment of the present disclosure will be described with reference to Fig. 1. Fig. 1 is a diagram for describing the overall configuration of an information processing system 1 according to an embodiment of the present disclosure.
[0016] As shown in FIG. 1, an information processing system 1 according to an embodiment of the present disclosure includes a server 10, user terminals 20 (user terminals 20A, 20B, 20C, etc.), and a developer terminal 30. As shown in FIG. 1, the server 10 is configured to be able to communicate with each of the user terminals 20 and the developer terminal 30 via a network 40. As shown in FIG. 1, the user terminals 20A to 20C are each used by a user U (users U-A to U-C). For example, the user terminal 20A is used by user U-A. Hereinafter, when there is no need to particularly distinguish between the user terminals 20A to 20C, they will be collectively referred to as user terminal 20. Furthermore, when there is no need to particularly distinguish between the users U-A to U-C, they will be collectively referred to as user U.
[0017] (Server 10) The server 10 has a function of managing a virtual space provided to users U who use user terminals 20. Avatars operated by each user U are placed in the virtual space. Each avatar is generated, for example, using a character 3D model. Each avatar performs motions based on the operation of the user terminal 20 by each user U. Each user terminal 20 operates one or more avatars. Hereinafter, an example in which each user terminal 20 operates one avatar will be mainly described, but each user terminal 20 may operate multiple avatars. Hereinafter, an avatar that corresponds to a user terminal 20 and that is operated by a user U as a player will also be referred to as a "player avatar." Furthermore, avatars that correspond to other user terminals 20 and that are not operated by the user terminal 20 will also be referred to as "other player avatars."
[0018] In this embodiment, we mainly consider an example in which the virtual space managed by the server 10 is the world of an online game played by each user U, but the virtual space managed by the server 10 is not particularly limited, and may be any virtual space in which the player avatar of each user U is placed.
[0019] The server 10 provides various information related to the virtual space to each user terminal 20 that is connected to the server 10 through the network 40. For example, the server 10 may transmit to the user terminal 20 information on the player avatar of each user terminal 20, information on virtual objects placed in the virtual space, map information of the virtual space, and the like.
[0020] (User Terminal 20) The user terminal 20 is an information processing terminal used by each user U. As shown in Fig. 1, each user terminal 20 is connected to a display 21 and a controller 22. The display 21 functions as a display unit that displays various images output by and generated by the user terminal 20. The display 21 may be connected to the user terminal 20 via an interface such as HDMI (registered trademark) (High-Definition Multimedia Interface), or may be wirelessly connected to the user terminal 20 via a standard such as Bluetooth (registered trademark).
[0021] The display 21 may be a display panel such as a liquid crystal display (LCD), an organic electroluminescence (EL) display, etc. The display 21 may be configured as an integral part of the user terminal 20.
[0022] In addition, various images etc. output by the user terminal 20 may be displayed on a display unit other than the display 21, for example, on an HMD (Head Mounted Display) that covers the entire field of view of the user U.
[0023] The controller 22 receives operation instructions from the user U and outputs the operation contents to the user terminal 20. The display 21 may be connected to the user terminal 20 according to a standard such as USB (Universal Serial Bus), or may be wirelessly connected to the user terminal 20 according to a standard such as Bluetooth (registered trademark).
[0024] The controller 22 may receive operation instructions from the user U through physical components such as buttons, switches, or levers. The controller 22 may also receive operation instructions from the user U through sensors such as a touch sensor, a pressure sensor, or a proximity sensor. The user U may use the controller 22 to operate an avatar or the like in a virtual space displayed on the display 21. While FIG. 1 illustrates an example in which the controller 22 is a game pad, the shape of the controller 22 is not particularly limited. The configuration for outputting operation content to the user terminal 20 is not limited to the controller 22. For example, the motion of the user U may be captured by a camera, an inertial sensor, or the like, and operation content corresponding to the motion may be output to the user terminal 20. The controller 22 may also be configured as an integral part of the user terminal 20.
[0025] The user terminal 20 receives virtual space information from the server 10 and renders a virtual space image in accordance with the virtual space information. Each user terminal 20 may render a virtual space image from a user's perspective based on the virtual space information. The user's perspective in the virtual space may be a perspective that includes within its field of view the player avatar of the user terminal 20, which represents the user U. When the user avatar is included within the field of view, the user U can visually recognize the motion of the player avatar, thereby enabling the user U to enjoy the virtual space more. Note that the user's perspective in the virtual space may be the perspective of the player avatar, in which case, for example, only a part of the player avatar (such as a hand) may be included within the field of view.
[0026] Operations for a player avatar placed in a virtual space provided by the server 10 are input to the user terminal 20 via the controller 22. The user terminal 20 controls the rendering of a virtual space image so as to move the avatar in the virtual space in response to the input operations. For example, the user terminal 20 may receive an instruction to start a specific motion, instructing the player avatar to perform a specific motion. The specific motion may be a motion corresponding to a motion performed by another player avatar operated by another user terminal 20. For example, the specific motion may have at least some movement in common with the motion performed by the other player avatar. Furthermore, the specific motion may be a motion performed in conjunction with a motion performed by the other player avatar. Note that, hereinafter, an avatar performing a motion corresponding to the player avatar will also be referred to as an "opponent avatar."
[0027] When the user terminal 20 receives an instruction to start a specific motion, it controls the rendering of the virtual space image so that the player avatar performs the specific motion. Furthermore, the user terminal 20 transmits, via the server 10, a request notification to the other user terminals 20 that control the other player avatar corresponding to the instruction to start the specific motion, requesting that the other user terminals 20 perform the motion corresponding to the specific motion.
[0028] More specifically, the user terminal 20 may transmit a specific motion start notification to the server 10. The specific motion start notification may include designation of a candidate opponent player avatar that the user U will cause to perform a motion corresponding to the specific motion. The specific motion start notification may also include the type of the specific motion. Upon receiving the specific motion start notification, the server 10 transmits a request notification to each user terminal 20 corresponding to the designated candidate opponent player avatar.
[0029] When the user terminal 20 receives a request response from the server 10 that is a response to a motion request notification from the other user terminal 20, the user terminal 20 controls the drawing of the virtual space image so that the opponent player avatar corresponding to the other user terminal 20 performs a motion corresponding to a specific motion.
[0030] Hereinafter, the user terminal 20 that transmits the instruction to start a specific motion will also be referred to as the "leader-side user terminal 20." The leader-side user terminal 20 corresponds to the first user terminal used by user U, who is the first user according to this embodiment. In addition, the avatar corresponding to the leader-side user terminal 20 will also be referred to as the "leader avatar." The leader avatar corresponds to the first avatar according to this embodiment.
[0031] Furthermore, the user terminal 20 that receives the request notification for the motion corresponding to the leader motion is also referred to as the "follower-side user terminal 20." The follower-side user terminal 20 corresponds to the second user terminal used by user U, who is the second user according to this embodiment. Furthermore, the avatar corresponding to the follower-side user terminal 20 that performs the follower motion in response to the request notification is also referred to as the "follower avatar." The follower avatar corresponds to the second avatar according to this embodiment.
[0032] That is, in the virtual space rendered by the leader's user terminal 20, the player avatar corresponds to the leader avatar and the other party avatar corresponds to the follower avatar. Also, in the virtual space rendered by the follower's user terminal 20, the other party avatar corresponds to the leader avatar and the player avatar corresponds to the follower avatar.
[0033] After the specific motion by the leader avatar and the motion corresponding to the specific motion by the follower avatar, the leader avatar and the follower avatar may perform further motions. Hereinafter, such specific motions performed by the leader and the motions performed by the follower avatars corresponding to the specific motions will also be referred to as "pre-motions." When distinguishing between the pre-motions performed by the leader avatar and the follower avatars, they will also be referred to as "leader-side pre-motions" and "follower-side pre-motions," respectively. The leader-side pre-motions correspond to the first motion in this embodiment. The follower-side pre-motions correspond to the second motion in this embodiment.
[0034] Furthermore, the motion performed after the pre-motion is completed is also referred to as the "final motion." When distinguishing between the final motion performed by the leader avatar and the final motion performed by the follower avatar, they are also referred to as the "final motion on the leader's side" and the "final motion on the follower's side," respectively. Furthermore, the flow from the pre-motion performed by the leader avatar and the follower avatar until the final motion is completed is also referred to as the "interaction."
[0035] The interaction may be performed between the user U's avatar and one partner avatar, or between the user U's avatar and multiple partner avatars.
[0036] Various types of interactions can be performed in the virtual space. Interactions such as high-fives, fist bumps, DAP greetings (complex handshakes), rock-paper-scissors, and huddles, which are performed in the real world, may be reproduced. Details of interactions will be described later.
[0037] (Developer terminal 30) The developer terminal 30 is an example of an information processing device that performs various settings for rendering related to interactions in virtual space images rendered on each user terminal 20. The developer terminal 30 accepts operations by the developer and performs various settings in response to the operations. Specific settings will be described later.
[0038] (Outline of Interaction) Next, an overview of interactions that take place in virtual space will be described. Here, an example in which the interaction is a high-five will be mainly described. First, the flow of a high-five that takes place in real space, which is reproduced in virtual space, will be described using FIG. 2. FIG. 2 is a diagram for explaining the flow of a high-five that includes a pre-motion and a final motion in real space. In real space, for example, a high-five is exchanged between multiple people in order to share emotions when a happy event occurs. More specifically, while watching a sports game, when a team that people are rooting for makes a good play, a high-five is exchanged between people who are spectators in order to empathize with the excitement.
[0039] 2 shows the flow of each person's movements when a high-five is performed in real space between leader A, who is a person who makes a motion that triggers the high-five, and follower B, who is a person who makes a motion following the motion of leader A. It is assumed that both leader A and follower B have their hands down before starting their pre-motion (Sa1, Sb1: initial state).
[0040] Then, the pre-motion of leader A starts when leader A starts to raise his / her hand towards follower B (Sa2-1: Start of pre-motion). In other words, a high-five between leader A and follower B starts when leader A starts to raise his / her hand towards follower B. Leader A raises his / her hand while checking the movement of follower B and adjusting the speed of the pre-motion so that the final motion can be executed simultaneously with follower B, thereby adjusting the timing of the completion of the pre-motion (Sa2-2: Execute pre-motion).
[0041] Follower B's pre-motion begins when follower B confirms that leader A is about to give a high-five and begins to raise his / her hand toward leader A (Sb2-1: Start pre-motion). Follower B raises his / her hand while checking leader A's movements and adjusting the speed of the pre-motion so that the final motion can be executed simultaneously with leader A, thereby adjusting the timing of the completion of the pre-motion (Sb2-2: Execute pre-motion).
[0042] Leader A and follower B adjust their timing and finish raising their hands at the same time, thereby completing the pre-motion simultaneously (Sa2-3, Sb2-3: pre-motion completed).
[0043] Then, as a final motion, the two players make a motion of touching their hands together while keeping their hands raised, completing the high-five (Sa3, Sb3: execution of final motion).
[0044] In real space, a high-five is achieved by adjusting the speed of each of the leader A and follower B's pre-motions to adjust the timing at which the pre-motions are completed. The example of a high-five has been described above, but similarly, in other interactions such as a fist bump, the interaction is achieved by adjusting the timing at which the pre-motions are completed and then performing the final motion.
[0045] On the other hand, when avatars high-five each other in a virtual space, the following occurs. For example, in a virtual space rendered by the leader user terminal 20, a player avatar is controlled to perform a pre-motion as a leader avatar in response to a pre-motion start instruction (i.e., an instruction to start an interaction) from the leader received by the user terminal 20. Because this processing is performed within the user terminal 20, it can be performed quickly. However, with regard to a pre-motion performed by an opponent player avatar as a follower avatar, the pre-motion cannot be reflected in the follower avatar until a response is received after a request notification is sent to the follower user terminal 20. Note that it is also possible to control the opponent player avatar to perform a pre-motion as a follower avatar regardless of whether a response is received. However, such control would destroy the realism of the virtual space, so it is preferable to have the opponent player avatar perform a pre-motion as a follower avatar only when a response is received.
[0046] If the opponent player avatar is made to perform a pre-motion as a follower avatar only when there is a response, there is a problem in that the timing of the completion of the pre-motions between the avatars cannot be synchronized due to communication delays and the time it takes for the user to operate the follower's user terminal 20.
[0047] More specifically, it is conceivable that one avatar may end up waiting for the other avatar to complete its motion. Figure 3 is a diagram for explaining the flow of a high-five in a virtual space when a situation occurs in which the leader avatar waits for the follower avatar to complete its motion. Here, an example will be described in which the virtual space is rendered on the leader's user terminal 20. First, it is assumed that both leader avatar A and follower avatar B have their hands down before starting their pre-motion (Sa1, Sb1: initial state).
[0048] The pre-motion of the leader avatar A is initiated by reflecting a motion of the leader avatar A beginning to raise its hand toward the follower avatar B based on an instruction to open the interaction input by the leader user U (Sa2-1: start of pre-motion). It is considered that the pre-motion of the leader side is reflected in the leader avatar A at a predetermined movement speed.
[0049] Furthermore, when the user U inputs an instruction to disclose the interaction, a request notification is sent to the follower's user terminal 20 .
[0050] On the other hand, the pre-motion of follower avatar B is started when the follower avatar B starts to raise its hand towards the leader avatar A based on the leader user terminal 20 receiving a request response from the follower user terminal 20 (Sb2-1: start of pre-motion). It is considered that the follower avatar B reflects the pre-motion of the follower, which moves at a predetermined movement speed.
[0051] Depending on the length of the pre-motion, communication delays, and the time required for the user of the follower's user terminal 20 to operate, it is expected that the timing at which the leader avatar A's pre-motion completes (Sa2-3: pre-motion complete) will be earlier than the timing at which the follower avatar B's pre-motion completes (Sb2-3: pre-motion complete). Therefore, it is conceivable that once the leader avatar A's pre-motion completes, the leader avatar A's motion will stop and the follower avatar B's completion will be awaited (Sa4: wait). Then, once the follower avatar B's pre-motion completes, the leader avatar A ends its wait and each avatar is made to join hands with their hands raised as the final motion, thereby completing the high-five in the virtual space (Sa3, Sb3: execute final motion).
[0052] As explained above, if the leader avatar A and the follower avatar B are given motions with a predetermined speed, there will be times when the leader avatar A stops during the high-five interaction, resulting in unnatural motions. A user U who sees such motions will sense that the timing is mechanical, which can dampen the excitement.
[0053] Here, it is also possible to control the pre-motion of follower avatar B so that there is no time for leader avatar A to stop. Figure 4 is a diagram illustrating the flow of a high-five in a virtual space when the pre-motion of follower avatar B is controlled so that there is no time for leader avatar A to stop.
[0054] As shown in Figure 4, it is conceivable that the leader user terminal 20 can speed up the movement speed of follower avatar B's pre-motion based on receiving a request response from the follower user terminal 20, thereby shortening the time from Sb2-1 to Sb2-3 and aligning the completion timing of the pre-motion. However, if controlled in this way, the pre-motion of follower avatar B may be too fast, resulting in an unnatural motion. It is also conceivable to omit some of follower avatar B's pre-motion, but this also may result in the motion of follower avatar B becoming unnatural. Therefore, the user U viewing such motion will sense that the timing is being synchronized mechanically, and the problem of the excitement cooling down remains unresolved.
[0055] Therefore, the present disclosure proposes a technology for presenting more natural interactions by effectively adjusting the movement speed of the pre-motion of the leader avatar and the movement speed of the pre-motion of the follower avatar. More specifically, the information processing system 1 according to the present disclosure appropriately calculates the initial movement speed of the leader avatar, which is the movement speed at the start of the pre-motion, and adjusts the movement speed of the pre-motion. Furthermore, the information processing system 1 according to the present disclosure appropriately calculates the new movement speed of the pre-motion of the leader avatar and the movement speed of the pre-motion of the follower avatar based on a request response from the follower's user terminal 20, and adjusts the movement speed of each motion.
[0056] 5 is a block diagram showing an example of the configuration of the server 10 according to this embodiment. As shown in FIG. 5, the server 10 includes a communication unit 110, a control unit 120, and a storage unit 130.
[0057] (Communication Unit 110) The communication unit 110 transmits and receives data to and from external devices via a wired or wireless connection. The communication unit 110 communicates with the user terminal 20 using, for example, a wired / wireless LAN (Local Area Network), Wi-Fi (registered trademark), Bluetooth (registered trademark), a mobile communication network (LTE (Long Term Evolution), 4G (fourth generation mobile communication system), or 5G (fifth generation mobile communication system)).
[0058] The communication unit 110 receives various information related to the virtual space, such as commands indicating operation details related to the virtual space, from the user terminal 20. More specifically, the communication unit 110 may receive a pre-motion start notification (i.e., an interaction start notification) from the user terminal 20. The communication unit 110 may also transmit a request notification based on the interaction start notification to the user terminal 20.
[0059] The communication unit 110 may perform synchronous communication, which periodically exchanges properties such as the state of each avatar with the user terminal 20, and asynchronous communication, which exchanges data with the user terminal 20 when an event occurs. Note that such functions of the communication unit 110 may be implemented as functions of a game engine installed on the server 10.
[0060] (Control Unit 120) The control unit 120 functions as an arithmetic processing unit and a control device, and controls the overall operation of the server 10 in accordance with various programs. The control unit 120 is realized by electronic circuits such as a CPU (Central Processing Unit) or a microprocessor. The control unit 120 may also include a ROM (Read Only Memory) that stores programs to be used, arithmetic parameters, etc., and a RAM (Random Access Memory) that temporarily stores parameters that change as appropriate.
[0061] The control unit 120 performs appropriate processing based on data received from an external device, controls storage in the storage unit 130, and controls transmission of data to the external device. The control unit 120 also functions as an interaction control unit 121.
[0062] (Interaction control unit 121) The interaction control unit 121 executes control related to interactions that take place between multiple avatars corresponding to different user terminals 20. For example, when the communication unit 110 receives a notification of the start of an interaction from a user terminal 20, the interaction control unit 121 may identify a user terminal 20 that corresponds to a candidate follower avatar. Hereinafter, a user terminal 20 that corresponds to a candidate follower avatar is also referred to as a "candidate user terminal 20."
[0063] Candidates for follower avatars may be designated by the user U of the user terminal 20. In this case, the notification of the start of interaction transmitted by the user terminal 20 may include an ID for identifying the follower avatar, or an ID for identifying the candidate user terminal 20. Note that candidates for follower avatars are not limited to being designated by the user U of the user terminal 20, and may be determined as appropriate. For example, candidates for follower avatars may be selected according to avatar selection conditions, which are selection conditions for candidate follower avatars designated by the user U of the user terminal 20.
[0064] The interaction control unit 121 controls the communication unit 110 to transmit a request notification to the identified candidate user terminal 20. Note that the interaction control unit 121 may identify multiple user terminals 20 as candidate user terminals 20 and control the transmission of request notifications to the multiple candidate user terminals 20.
[0065] In addition, when the communication unit 110 receives a request response to a request notification from a candidate user terminal 20, the interaction control unit 121 controls the communication unit 110 to transfer the request response to the leader user terminal 20 that sent the start notification of the interaction corresponding to the request notification.
[0066] It is assumed that asynchronous communication is used for the above-described exchange of interaction start notifications, request notifications, and request responses between the communication unit 110 and each user terminal 20 .
[0067] Furthermore, in response to the exchange of interaction start notifications, request notifications, and request responses, the interaction control unit 121 updates the group interaction information managed in the interaction management information DB 131. In the group interaction information managed in the interaction management information DB 131, the user terminals 20 involved in an interaction are managed as a group.
[0068] Furthermore, the interaction control unit 121 periodically receives from each user terminal 20 the state of the user terminal 20, including the communication delay time, no-operation time, and interaction status of the player avatar of the user terminal 20. The communication delay time is the time of communication delay that occurs between the server 10 and the user terminal 20. The no-operation time is the elapsed time from the time when the user U most recently input an operation related to the virtual space to the present. The interaction control unit 121 updates the user interaction information in the interaction management information DB 131 based on the state information of each user terminal 20 that the communication unit 110 periodically receives from each user terminal 20. The user interaction information includes the state of each user terminal 20.
[0069] The interaction control unit 121 controls the communication unit 110 to periodically distribute the group interaction information and user interaction information managed by the interaction management information DB 131 to each user terminal 20. It is assumed that synchronous communication is used for the periodic information exchange between the communication unit 110 and each user terminal 20 as described above.
[0070] (Storage Unit 130) The storage unit 130 is realized by a ROM that stores programs and calculation parameters used in the processing of the control unit 120, and a RAM that temporarily stores parameters that change as appropriate. The storage unit 130 may store virtual space information. The storage unit 130 also has an interaction management information DB 131.
[0071] (Interaction management information DB 131) The interaction management information DB 131 is a database that manages information related to interactions between multiple avatars. For example, the interaction management information DB 131 manages group interaction information and user interaction information. The group interaction information and user interaction information will be described later with specific examples.
[0072] 6 is a block diagram showing an example of the configuration of the user terminal 20 according to this embodiment. As shown in Fig. 6, the user terminal 20 has a communication unit 210, a display output unit 220, an operation input unit 230, a storage unit 240, and a control unit 250.
[0073] (Communication Unit 210) The communication unit 210 is connected to the server 10 and the developer terminal 30 via wired or wireless communication to send and receive data. The communication unit 210 can communicate using, for example, wired / wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), infrared communication, or a mobile communication network (4G (fourth generation mobile communication method), 5G (fifth generation mobile communication method)), etc.
[0074] For example, the communication unit 210 transmits a command to the server 10 in accordance with the operation content input to the operation input unit 230. More specifically, in the leader user terminal 20, the communication unit 210 transmits an interaction start notification to the server 10 in accordance with the operation content input to the operation input unit 230.
[0075] Furthermore, in the leader user terminal 20, the communication unit 210 receives a request response indicating that the follower user terminal 20 has responded to the request notification sent by the server 10 in response to the interaction start notification.
[0076] Meanwhile, in the follower's user terminal 20, the communication unit 210 receives a request notification transmitted by the server 10 in response to an interaction start notification transmitted by another user terminal 20 to the server 10. In the follower's user terminal 20, the communication unit 210 transmits a request response to the received request notification to the server 10 in accordance with the operation content input to the operation input unit 230.
[0077] (Display Output Unit 220) The display output unit 220 outputs a display screen such as an image of a virtual space to the connected display 21 under the control of the control unit 250.
[0078] (Operation Input Unit 230 ) The operation input unit 230 acquires operation content output from the connected controller 22 and outputs it to the control unit 250 .
[0079] For example, in the leader user terminal 20, the operation input unit 230 may acquire an instruction to start an interaction. The user U may input the instruction to start an interaction in accordance with a display screen output by the display output unit 220. FIG. 7 is a diagram illustrating an example of a display screen D1 output by the display output unit 220 for inputting an instruction to start an interaction. The display screen D1 includes an image of a virtual space V2 drawn by the control unit 250 (described below). Another player's avatar 221 and a player's avatar 222 are arranged in the virtual space V1. The display screen D1 also includes an interaction information selection field IC for inputting an instruction to start an interaction.
[0080] The user U selects an interaction that the user wants the player avatar 222 to perform from the interaction types included in the interaction information selection column IC. Here, "high five" is selected as the interaction type. The user U also selects a selection condition for a candidate follower avatar with which to perform an interaction from the avatar selection conditions included in the interaction information selection column. Here, "avatar nearby" is selected as the avatar selection condition. Note that, while an example is shown in which the avatar selection conditions are included in the interaction information selection column IC, candidate follower avatars may be directly selectable, or candidate follower avatars may be automatically selected by the avatar selection unit 255 described below. By selecting "OK" included in the interaction information selection column IC after each item has been selected, the operation input unit 230 acquires an instruction to start an interaction.
[0081] Although an example has been shown here in which the user U inputs an instruction to start an interaction in accordance with the display screen, the method for inputting the instruction to start an interaction is not limited thereto. For example, the instruction to start an interaction may be input by the user U moving the controller 22 in a motion corresponding to the type of interaction. For example, the instruction to start a high-five interaction may be input when the controller 22 detects that the user U has performed a high-five motion. Alternatively, the instruction to start an interaction may be input by the user U pressing a button on the controller 22 corresponding to the type of interaction.
[0082] Furthermore, the operation input unit 230 may receive a request response in response to the request notification input by the communication unit 210 in the follower's user terminal 20. For example, the operation input unit 230 may receive the request response based on pressing a request response acceptance button included in the request notification display screen output by the display output unit 220. The request notification is not limited to being displayed on the display screen, and may also be notified to the user U by sound, vibration, or the like.
[0083] The display screen of the request notification may further display an acceptance button for accepting a request refusal, indicating that the user U does not respond to the request notification. Furthermore, if a request response or a request refusal is not input within a predetermined time after the request notification is sent to the user U, the request refusal may be automatically accepted.
[0084] The request response may be input by the user U moving the controller 22 in a motion corresponding to the type of interaction, or by the user U pressing a button on the controller 22 corresponding to the interaction response.
[0085] (Storage Unit 240) The storage unit 240 is realized by a ROM that stores programs and calculation parameters used in the processing of the control unit 250, and a RAM that temporarily stores parameters that change as needed. The storage unit 240 may store, for example, a game engine that executes various processes related to online games and a virtual space application that executes various processes related to the virtual space. The virtual space application may be distributed from the developer terminal 30.
[0086] The storage unit 240 may also store information about the player's avatar and other players' avatars. The information about the player's avatar and other players' avatars may include information about the shape, design, texture, etc. of the avatars, and information about the avatars' movements, such as rigs and motions. The information about the player's avatar and other players' avatars may also include information necessary for collision detection and physics calculation between the player's avatar and other players' avatars and objects, such as the position, direction of travel, and size of the player's avatar and other players' avatars in the virtual space.
[0087] (Control Unit 250) The control unit 250 functions as an arithmetic processing unit and a control device, and controls the overall operation of the user terminal 20 in accordance with various programs. The control unit 250 is realized by electronic circuits such as a CPU or a microprocessor. The control unit 250 may also include a ROM for storing the programs to be used, arithmetic parameters, etc., and a RAM for temporarily storing parameters that change as appropriate. The control unit 250 controls the transmission of request responses from the communication unit 210 in response to operations on the operation input unit 230, for example.
[0088] Furthermore, the control unit 250 may execute various processes related to the online game using a game engine stored in the storage unit 240. For example, the control unit 250 may execute, using the game engine, a process for drawing a virtual space in the online game, a physics calculation process related to the online game, a collision process for each object placed in the virtual space, a process for storing a status related to the online game in the storage unit 240, and a process for acquiring operation details input to the operation input unit 230.
[0089] Furthermore, the control unit 250 may execute various processes related to the virtual space using a virtual space application stored in the storage unit 240 .
[0090] 6, the control unit 250 also functions as a communication delay measurement unit 251, an operation status monitoring unit 252, a player control unit 253, an other player control unit 254, an avatar selection unit 255, and a motion synchronization unit 256. Each function may be executed by a virtual space application.
[0091] (Communication Delay Measurement Unit 251) The communication delay measurement unit 251 measures the round-trip communication delay time between the user terminal 20 and the server 10. For example, the communication delay measurement unit 251 may measure the round trip time (RTT) by controlling the communication unit 210 to periodically send a ping command to the server 10. The communication delay measurement unit 251 may then use the average value of multiple RTTs as the communication delay time. There are no particular limitations on the method for measuring the communication delay time, and any existing technology may be used.
[0092] The communication delay measurement unit 251 outputs the measured communication delay time to the motion synchronization unit 256. Furthermore, the communication delay measurement unit 251 controls the communication unit 210 to transmit the measured communication delay time to the server 10.
[0093] (Operation Status Monitoring Unit 252) The operation status monitoring unit 252 monitors the elapsed time from the time when the operation input unit 230 acquired the most recent operation content related to the virtual space by the user U to the present. The operation status monitoring unit 252 periodically monitors, for example, whether or not an input from the controller 22 has been acquired by the operation input unit 230. Then, the operation status monitoring unit 252 measures the time that has elapsed since the operation input unit 230 acquired the most recent input from the controller 22 as the no-operation time. The operation status monitoring unit 252 controls the communication unit 210 to transmit the measured no-operation time to the server 10.
[0094] (Player Control Unit 253) The player control unit 253 controls the player avatar of the user terminal 20. For example, when the operation input unit 230 acquires operation details (position in virtual space, movement direction, movement speed, execution and stop of motion, etc.) related to the player avatar of the user terminal 20, the player control unit 253 performs control so that the operation details are reflected in the player avatar.
[0095] In accordance with the control of the player avatar by the player control unit 253, the control unit 250 renders a virtual space including the player avatar using the game engine.
[0096] More specifically, in the leader user terminal 20, when the operation input unit 230 acquires an instruction to start an interaction, the player control unit 253 causes the player avatar to perform the leader's pre-motion. Furthermore, after the player avatar's pre-motion is completed, the player control unit 253 causes the player avatar to perform the leader's final motion.
[0097] Furthermore, in the follower's user terminal 20, when the operation input unit 230 acquires a request response, the player control unit 253 causes the player avatar to perform the follower's pre-motion. Furthermore, the player control unit 253 causes the player avatar to perform the follower's final motion after the player avatar's follower's pre-motion is completed.
[0098] The player control unit 253 causes the player avatar to perform the pre-motion at the movement speed calculated by the motion synchronization unit 256.
[0099] (Other player control unit 254) The other player control unit 254 controls the other player's avatar of the user terminal 20 (i.e., the player avatar of another user terminal 20). The other player control unit 254 controls the other player's avatar to reflect information in accordance with information about the other player's avatar received by the communication unit 210 from the server 10 (position in virtual space, movement direction, movement speed, execution and stop of motion, etc.).
[0100] In accordance with the control of the other player's avatar by the other player control unit 254, the control unit 250 renders a virtual space including the other player's avatar using the game engine.
[0101] For example, the other player control unit 254 causes an opponent avatar, who is the other player who is the opponent of the player avatar in an interaction, to perform a pre-motion. Furthermore, the other player control unit 254 causes the opponent avatar to perform a final motion after the pre-motion of the opponent avatar is completed.
[0102] More specifically, in the leader user terminal 20, when the communication unit 210 acquires a request response, the other player control unit 254 causes the other player avatar, which is a follower avatar, to perform a pre-motion.
[0103] Furthermore, in the follower user terminal 20, when the communication unit 210 acquires the request notification, the other player control unit 254 causes the other player avatar, who is the leader avatar, to perform the preparatory motion of the leader side.
[0104] The other player control unit 254 causes the other player's avatar to perform the pre-motion at the movement speed calculated by the motion synchronization unit 256.
[0105] (Avatar Selection Unit 255) When an instruction to start an interaction is input, the avatar selection unit 255 selects another player's avatar that can be a candidate for a follower avatar. More specifically, the avatar selection unit 255 may select another player's avatar that satisfies the avatar selection conditions received by the operation input unit 230 or the avatar selection conditions stored in the storage unit 240. The avatar selection conditions are an example of predetermined conditions.
[0106] The avatar selection conditions may be set as appropriate, and may include, for example, being within a predetermined distance from the player avatar on a map in the virtual space, being pre-designated as a friend by user U, participating in the same event or mission as the player avatar in the virtual space, other selected player avatars participating in the same event or mission in the virtual space, being included in the image of the virtual space generated by the control unit 250, communicating with the player avatar through conversation or chat within a certain period of time in the virtual space, having a positive reaction to a predetermined object or event, having the same attributes as the player avatar, such as belonging to the same sports team or being a fan of an artist in the virtual space, etc. Furthermore, the avatar selection unit 255 may automatically recognize the hobbies or thoughts of the player avatar and other player avatars based on the content of conversations between the player avatar and other player avatars. In this case, the avatar selection condition may be a commonality of hobbies or thoughts with the player avatar.
[0107] The avatar selection unit 255 may generate a list of other player avatars that satisfy the avatar selection conditions. Then, the avatar selection unit 255 may control the display output unit 220 to output the list to the display 21. The user U may operate the controller 22 to select a candidate follower avatar from the list.
[0108] Furthermore, the avatar selection unit 255 may automatically select other player avatars that satisfy the avatar selection conditions as candidates for partner avatars (i.e., candidates for follower avatars).
[0109] Furthermore, the storage unit 240 may store multiple avatar selection conditions. The avatar selection unit 255 may select another player's avatar that satisfies one or more avatar selection conditions selected by the user U. Note that the candidate follower avatars may include, in addition to the player avatars operated by each user, NPC (non-player character) avatars that are preset in a predetermined game or the like. For example, if the avatar closest to the leader avatar in a predetermined virtual space is an NPC avatar, the NPC avatar (as a follower avatar) may perform a motion that matches the motion of the leader avatar.
[0110] (Motion synchronization unit 256) The motion synchronization unit 256 calculates the movement speeds of the pre-motions of the leader avatar and the follower avatar in an interaction started based on an interaction start instruction. The movement speed of the pre-motion of the leader avatar is the first movement speed according to this embodiment. The movement speed of the pre-motion of the follower avatar is the second movement speed according to this embodiment. The movement speed may be, for example, the frame rate of the frames that make up the pre-motion. An example in which the movement speed is the frame rate will be described below.
[0111] The motion synchronization unit 256 calculates the frame rate of each pre-motion so as to synchronize the completion timing of the pre-motions of the leader avatar and the follower avatar. Note that, hereinafter, synchronizing the completion timing of the pre-motions of the leader avatar and the follower avatar is also referred to as "synchronization of pre-motions." The method by which the motion synchronization unit 256 calculates the frame rate for synchronizing the pre-motions will be described in detail later.
[0112] Note that the motion synchronization unit 256 may not perform the frame rate calculation process if the synchronization condition is not satisfied. The synchronization condition may be a preset setting that the player avatar and other avatars complete their pre-motions in unison. Such settings may be stored in the storage unit 240.
[0113] Furthermore, the motion synchronization unit 256 may control the communication unit 210 to transmit the interaction status of the player avatar to the server 10. The interaction status of the player avatar may include information on whether or not the player avatar is currently performing an interaction, and, if an interaction is being performed, information on whether the player avatar is performing the interaction as a leader avatar or a follower avatar.
[0114] 8 is a block diagram showing an example of the configuration of a developer terminal 30 according to this embodiment. As shown in FIG. 8, the developer terminal 30 has a communication unit 310, an operation display unit 320, a control unit 330, and a storage unit 340.
[0115] (Communication Unit 310) The communication unit 310 is connected to the server 10 and the user terminal 20 via wired or wireless communication to transmit and receive data. The communication unit 310 can communicate using, for example, a wired / wireless LAN, Wi-Fi (registered trademark), Bluetooth (registered trademark), infrared communication, or a mobile communication network (4G (fourth generation mobile communication method), 5G (fifth generation mobile communication method)), etc.
[0116] (Operation display unit 320) The operation display unit 320 has the function of an operation unit that accepts operation instructions from the developer and outputs the operation details to the control unit 330. The operation display unit 320 may be, for example, a touch sensor, a pressure sensor, or a proximity sensor. The operation display unit 320 may also be a physical configuration such as a button, a switch, or a lever. The operation display unit 320 also has the function of displaying images under the control of the control unit 330. For example, the operation display unit 320 may be a display panel such as a liquid crystal display or an organic EL display.
[0117] The operation display unit 320 receives, as input information, information related to settings by a developer regarding synchronization of pre-motions in the virtual space. For example, the input information may include identification information of a target player avatar and a setting as to whether to synchronize the pre-motions of the player avatar and the opponent player avatar.
[0118] For example, the setting of whether to synchronize pre-motions may be a setting for when the player avatar of each user terminal 20 performs a pre-motion as a leader avatar in the virtual space rendered by each user terminal 20. In the above case, the setting of whether to synchronize pre-motions may be a setting of whether to calculate the frame rate of the pre-motions of the player avatar and the opponent player avatar, and to cause the player avatar and the opponent player avatar to perform the pre-motions at that frame rate.
[0119] Furthermore, the setting of whether to synchronize pre-motions may be a setting for when the player avatar of each user terminal 20 performs pre-motions as a follower avatar in the virtual space rendered by each user terminal 20. In the above-mentioned case, the setting of whether to synchronize pre-motions may be a setting of whether to calculate the frame rate of the pre-motions of the player avatar and the opponent player avatar, and to cause the player avatar and the opponent player avatar to perform pre-motions at that frame rate.
[0120] The input information input to the operation display unit 320 may also include a type of interaction including a synchronized pre-motion. The type of interaction may be, for example, a high-five.
[0121] The input information input to the operation display unit 320 may include an avatar selection condition. The input information input to the operation display unit 320 may also include information specifying an avatar whose pre-motion is to be synchronized with another avatar.
[0122] (Control Unit 330) The control unit 330 functions as an arithmetic processing unit and control device, and controls the overall operation of the developer terminal 30 in accordance with various programs. The control unit 330 is realized by electronic circuits such as a CPU (Central Processing Unit) or microprocessor. The control unit 330 may also include a ROM (Read Only Memory) that stores the programs to be used, arithmetic parameters, etc., and a RAM (Random Access Memory) that temporarily stores parameters that change as appropriate. The control unit 330 performs appropriate processing based on data received from an external device, controls storage in the storage unit 340, and controls transmission of data to the external device.
[0123] The control unit 330 executes control to output input information regarding settings related to pre-motion synchronization, which is input to the operation display unit 320, as parameters for the virtual space application to be distributed to each user terminal 20. The control unit 330 may also execute control to generate an executable file for the virtual space application using the output parameters.
[0124] A component for receiving input information may be used for output control of input information by the control unit 330. The component may be, for example, a part of a development application for generating an executable file of the virtual space application, which is installed in the storage unit 340, or may be included in a library stored in the storage unit 340.
[0125] Such a component may include an API (Application Programming Interface) for receiving information related to pre-motion synchronization. Here, an example of an API will be described in which the input information includes identification information of the target player avatar, a setting for whether to synchronize pre-motion, the type of interaction, and an avatar selection condition.
[0126] For example, when a setting for synchronizing pre-motions is made, the "Enable Interaction Sync" API may be used. In this case, the control unit 330 outputs input information to the development application so that the pre-motions of the target player avatar are synchronized between the leader avatar and the follower avatar for the interaction type included in the input information input using the API. Then, the control unit 330 uses the development application to generate an executable file for the virtual space application including settings based on the input information. Note that in such a case, the avatar selection unit 255 of the user terminal 20 may select avatars that match the avatar selection conditions included in the input information as candidates for follower avatars.
[0127] Furthermore, when setting whether to synchronize pre-motions included in the input information, the "Disable Interaction Sync" API may be used. In this case, the control unit 330 outputs input information to the developing application so that the frame rates of the pre-motions of the leader avatar and follower avatar are not calculated for the target player avatar input using the API for the interaction type included in the input information. Then, the control unit 330 uses the developing application to generate an executable file for the virtual space application that includes settings based on the input information.
[0128] When the input information is transmitted as an API parameter, the developer may input the input information while checking a simulation screen of the virtual space including the player avatar of each user terminal 20. Fig. 9 is a diagram illustrating an example of a display screen D2 displayed on the operation display unit 320 for receiving input information that is information regarding settings related to synchronization of pre-motions.
[0129] The display screen D2 includes a virtual space V2, an avatar selection frame C, and an input information selection field IO. The player avatars 223 (e.g., player avatars 223A and 223B) of each user terminal 20 are arranged in the virtual space V2. The developer operates the avatar selection frame C while checking the virtual space V1 to select a target player avatar. The developer then selects each item in the input information selection field IO to set whether to synchronize pre-motions, the type of interaction, and the avatar selection conditions. The developer may also select an expected response time. The expected response time is the expected value of the time from when the user terminal 20 corresponding to the player avatar 223 receives a request notification to when it transmits a request response. The expected response time will be described in detail later.
[0130] In this way, by developing a virtual space application based on input information, it becomes easy to set whether or not the interaction of each avatar is synchronized with other avatars.
[0131] The input information may be output from the developer terminal 30 to an external terminal as parameters for the virtual space application. In this case, a program for the virtual space application including the parameters output from the developer terminal 30 may be created by the output destination terminal or the like. The input information may also be controlled so that it is input and reflected in real time by a management terminal (not shown) or the like used by an administrator who manages the virtual space. This allows for pre-motion synchronization settings to be made even while the virtual space application is running, thereby enabling more flexible settings.
[0132] <<3. Detailed Functions>> Next, the functions of the information processing system 1 will be described in detail.
[0133] <3-1. User Interaction Information and Group Interaction Information> First, the user interaction information and group interaction information managed by the interaction management information DB 131 of the server 10 will be described.
[0134] The interaction management information DB 131 updates the user interaction information and group interaction information in accordance with the information received by the communication unit 110 .
[0135] 10 is an example of user interaction information managed by the interaction management information DB 131. The user interaction information includes the communication delay time, the no-operation time, the interaction state which is the interaction status of the player avatar, and the group ID related to the interaction, all of which are associated with an avatar ID that uniquely identifies each avatar.
[0136] The communication delay time, no-operation time, interaction state of the player avatar, and group ID of each user terminal 20 are received by the communication unit 110 from the user terminal 20 .
[0137] Here, details of the interaction state will be explained using Fig. 11. Fig. 11 is a diagram for explaining the interaction state. As shown in Fig. 11, there are five interaction states: IDLE, waiting for interaction response, interaction in progress (leader side), waiting for user response, and interaction in progress (follower side).
[0138] IDLE is a state in which an instruction to start an interaction for the player avatar has not been input to the user terminal 20, and the user terminal 20 has not received a request notification requesting a response.
[0139] When an instruction to start an interaction for the player avatar (an instruction to start a pre-motion) is input to the user terminal 20, the interaction state transitions from IDLE to waiting for an interaction response. At this point, a request notification is sent from the user terminal 20 to the candidate user terminals 20 via the server 10. Also, at this point, in the virtual space rendered on the user terminal 20, the player avatar of the user terminal 20 starts executing the leader's pre-motion at an initial frame rate as the leader avatar.
[0140] Then, when the leader user terminal 20 receives an interaction response from a candidate user terminal 20 that will become a follower user terminal 20 via the server 10, the interaction state transitions from waiting for an interaction response to interacting (leader side). Here, in the virtual space rendered on the user terminal 20, the player avatar of the user terminal 20 performs the leader side pre-motion at a new frame rate as a leader avatar. Also, the opponent player avatar corresponding to the user terminal 20 that sent the interaction response starts performing the follower side pre-motion as a follower avatar.
[0141] In addition, if a request notification is sent to multiple candidate user terminals 20 and request responses are received from multiple candidate user terminals 20, and the interaction state is already in progress (leader side), the interaction state will not be updated and the interaction will continue to be in progress (leader side).
[0142] When the interaction is completed, i.e., when the player avatar performs the final motion, the interaction state returns from Interacting (leader side) to IDLE.
[0143] On the other hand, when the user terminal 20 receives a request notification from another user terminal 20 that will become the leader user terminal 20 via the server 10, the interaction state of the follower user terminal 20 transitions from IDLE to waiting for a user response. Here, in the virtual space rendered by the user terminal 20, the opponent player avatar corresponding to the leader user terminal 20 performs the leader's pre-motion at the initial frame rate as the leader avatar.
[0144] Then, when the user U inputs an interaction response to the user terminal 20, the interaction state transitions from "waiting for user response" to "interaction in progress (follower side)." Here, in the virtual space rendered on the user terminal 20, the player avatar of the user terminal 20 starts executing the pre-motion of the follower side as a follower avatar. Also, the opponent player avatar corresponding to the leader user terminal 20 starts executing the pre-motion of the leader side as a leader avatar at a new frame rate.
[0145] When the interaction is completed, i.e., when the player avatar performs the final motion, the interaction state returns from Interacting (follower side) to IDLE.
[0146] The above describes the interaction states of the player avatars in each user terminal 20. Note that, although the above describes an example in which each user terminal 20 updates its own interaction state, the server 10 may determine whether to update the interaction state of each user terminal 20 in response to receiving an interaction start notification, a request notification, and a request response sent by each user terminal 20.
[0147] Returning to FIG. 10 , the description of the user interaction information will be continued. The group ID is an ID that uniquely identifies the group to which the user terminals 20 involved in the interaction belong. For example, the leader user terminal 20 that sent the interaction start notification and the candidate user terminals 20 that received the request notification corresponding to the interaction start notification belong to the same group. The leader user terminal 20 may generate a group ID that does not overlap with existing group IDs, include the group ID in the interaction start notification, and transmit the group ID to the server 10. The group ID may also be assigned by the server 10.
[0148] Next, the group interaction information will be described. Fig. 12 shows an example of group interaction information managed by the interaction management information DB 131. The group interaction information indicates information about a group identified by each group ID. More specifically, the group interaction information includes identification information of an avatar belonging as a leader avatar, identification information of avatars belonging as follower avatars (or candidate follower avatars), and the types of interactions performed in the group.
[0149] 13, a flow of updating the group interaction information managed in the interaction management information DB 131 by the interaction control unit 121 will be described. Fig. 13 is a flowchart showing an example of a flow of updating the group interaction information managed in the interaction management information DB 131 by the interaction control unit 121.
[0150] First, the communication unit 110 receives an interaction state from the user terminal 20. Here, it is assumed that the interaction state of "Avatar X," which is the player avatar corresponding to the user terminal 20, in "Group Y" has been updated (S101).
[0151] The interaction control unit 121 determines the current interaction state of avatar X and the updated interaction state (S102).
[0152] When the interaction state of group Y is updated from "waiting for interaction response" to "interaction in progress (leader side)" (S102 / from "waiting for interaction response" to "interaction in progress (leader side)"), the process proceeds to S103. The interaction control unit 121 determines whether or not an entry with group ID Y exists in the group interaction information (S103).
[0153] If there is no entry with group ID Y (S103 / NO), the interaction control unit 121 registers an entry with group ID Y in the group interaction information (S104), and the process proceeds to S105.
[0154] If an entry with group ID Y exists (S103 / YES), the interaction control unit 121 registers avatar X as the leader avatar of the group with group ID Y in the group interaction information (S105), and the process ends.
[0155] When the interaction state in group Y is updated from "Interaction in progress (leader side)" to "IDLE" (S102 / From "Interaction in progress (leader side)" to "IDLE"), the process proceeds to S106.
[0156] The interaction control unit 121 deletes avatar X, which is registered as the leader avatar, from the entry with group ID Y in the group interaction information (S106). Next, the interaction control unit 121 determines whether or not an entry with group ID Y exists in the group interaction information (S107).
[0157] If there is no entry with group ID Y (S107 / NO), the interaction control unit 121 deletes the entry with group ID Y from the group interaction information (S108), and the process ends. Even if there is an entry with group ID Y (S107 / YES), the process ends.
[0158] When the interaction state of group Y is updated from "Waiting for user response" to "Interaction in progress (follower side)" (S102 / From "Waiting for user response" to "Interaction in progress (follower side)"), the process proceeds to S109. The interaction control unit 121 registers avatar X as a follower avatar of the group with group ID Y in the group interaction information (S109), and the process ends.
[0159] When the interaction state in group Y is updated from "Interacting (follower side)" to "IDLE" (S102 / From "Interacting (follower side)" to "IDLE"), the process proceeds to S110. The interaction control unit 121 deletes avatar X, which was registered as a follower avatar, from the entry with group ID Y (S110).
[0160] Next, the interaction control unit 121 determines whether or not an entry with group ID Y exists in the group interaction information (S111).
[0161] If there is no entry with group ID Y (S111 / NO), the interaction control unit 121 deletes the entry with group ID Y from the group interaction information (S112), and the process ends. Even if there is an entry with group ID Y (S111 / YES), the process ends.
[0162] <3-2. Calculation of Frame Rate> Next, calculation of the frame rate of the pre-motion of the leader avatar and the follower avatar by the motion synchronization unit 256 will be described.
[0163] (Calculation of Frame Rate in Leader-Side User Terminal 20) First, we will explain the frame rate of the leader avatar A and the frame rates of each follower avatar in the leader-side user terminal 20. Here, we will mainly explain an example in which the frame rates of the pre-motions of the leader avatar and follower avatars are calculated to be as fast as possible without causing discomfort to the user U.
[0164] First, the motion synchronization unit 256 calculates the initial frame rate of the pre-motion of the leader avatar based on a response time prediction value, which is a predicted value of the response time, which is the time required for the candidate user terminal 20 to respond to the request after a request notification is sent from the communication unit 210 to the candidate user terminal 20.
[0165] 14 is a sequence diagram illustrating an example of the flow of operations performed by the information processing system 1 to explain the response time prediction value. First, the user terminal 20B acquires the operation details of the user U-B regarding the virtual space via the operation input unit 230 (S201). The user terminal 20B acquires, via the operation status monitoring unit 252, the time t0, which is the elapsed time from the time when the user U-B most recently input an operation regarding the virtual space to the user terminal 20B until the present, as the no-operation time.
[0166] The user terminal 20B periodically transmits the state of the user terminal 20B, including the communication delay time acquired by the communication delay measurement unit 251, the no-operation time acquired by the operation status monitoring unit 252, and the interaction state of the player avatar managed by the motion synchronization unit 256, to the server 10 via the communication unit 210 (S202). Similarly, the user terminal 20A periodically transmits the state of the user terminal 20A to the server 10 (S203).
[0167] The server 10 transmits the user interaction information including the states collected from each user terminal 20 to the user terminal 20A and the user terminal 20B via the communication unit 110 (S204, S205).
[0168] Next, the user terminal 20A acquires an instruction to start an interaction from the user UA via the operation input unit 230 (S206). The user terminal 20A transmits an interaction start notification to the server 10 via the communication unit 210 (S207). The server 10 receives the interaction start notification transmitted by the user terminal 20A via the communication unit 110 (S208). Here, a time t1 is required between S206 and S208 due to a communication delay.
[0169] When the server 10 receives an interaction start notification from the user terminal 20A via the communication unit 110, it transmits a request notification to the candidate user terminal 20 (S209). Here, it is assumed that the candidate user terminal 20 is the user terminal 20B. The user terminal 20B receives the request notification via the communication unit 210 (S210). Here, a time t2 is required between S208 and S210 due to a communication delay.
[0170] Next, the user terminal 20B outputs a display screen including the request notification from the display output unit 220 to the display 21. The user terminal 20B acquires, via the operation input unit 230, a request response that is a response to the request notification by a response operation by user UB (S211).
[0171] Here, between S210 and S211, the user UB checks the request notification and operates the controller 22, which takes time t3.
[0172] The user terminal 20B transmits a request response to the server 10 via the communication unit 210 (S212). The server 10 then receives the request response via the communication unit 110 (S213). Here, a time t4 is required between S211 and S213 due to a communication delay.
[0173] Next, the server 10 transmits the request response received from the user terminal 20B to the user terminal 20A via the communication unit 110 (S214). The user terminal 20A receives the request response via the communication unit 210 (S215). Here, a time t5 is required between S213 and S215 due to a communication delay.
[0174] The total time of the times t1 to t5 explained up to this point is response time t6, which is the time required from when the request notification is transmitted from the communication unit 210 to the candidate user terminal 20 until the candidate user terminal 20 responds to the request.
[0175] The motion synchronization unit 256 predicts the response time t6 as the predicted response time. The motion synchronization unit 256 predicts the predicted response time based on the state of each user terminal 20 received from the server 10 by the communication unit 210 and the communication delay time measured by the communication delay measurement unit 251.
[0176] More specifically, the motion synchronization unit 256 may calculate a predicted response time, which is a predicted value of the response time t6, by adding together, for example, the communication delay time measured by the communication delay measurement unit 251, the communication delay time between the candidate user terminal 20 and the server 10 included in the state of the candidate user terminal 20, and the expected response time by user U of the candidate user terminal 20.
[0177] The communication delay time measured by the communication delay measurement unit 251 is a predicted value obtained by adding together time t1 and time t5. The communication delay time between the candidate user terminal 20 and the server 10, which is included in the state of the candidate user terminal 20, is a predicted value obtained by adding together time t2 and time t4.
[0178] The expected response time by user U is an expected time that is an expected value of the time from when the candidate user terminal 20 receives the request notification until a response operation is performed on the candidate user terminal 20, and is a predicted value of time t3. FIG. 15 is a diagram showing an example of the expected response time. As shown in FIG. 15, the expected response time may be set for each type of interaction. For example, as shown in FIG. 15, if the type of interaction is a high-five, the expected response time may be set to one second. This allows user U to set the expected response time according to the request type, for example, when the format of the request notification or the input method of the request response differs depending on the type of interaction.
[0179] The method for determining the expected response time is not limited to the above. For example, statistical data on response times may be collected for each user terminal 20, and the average value may be determined as the expected response time for each user terminal 20.
[0180] Although the calculation method for the predicted response time when there is one candidate user terminal 20 has been described above, when there are multiple candidate user terminals 20, the longest communication delay time among the communication delay times between each of the multiple candidate user terminals 20 and the server 10 may be used as the communication delay time between the candidate user terminal 20 and the server 10. However, the communication delay time between the candidate user terminal 20 and the server 10 and the server 10 of a candidate user terminal 20 that has had no operations for a predetermined period of time or more may be excluded. This is because there is a high possibility that a request response will not be transmitted from such a candidate user terminal 20.
[0181] The method for calculating the predicted response time value has been described above. The motion synchronization unit 256 calculates the initial frame rate of the pre-motion of the leader avatar using the calculated predicted response time value. The method for calculating the initial frame rate will be described with reference to FIG. 16. FIG. 16 is a diagram for explaining the method for calculating the initial frame rate. Note that the unit of frame rate described below is fps.
[0182] 16, the motion synchronization unit 256 calculates an initial frame rate fa1 for the time ta1 from when the leader avatar A starts its pre-motion until when the follower avatar B starts its pre-motion. The predicted response time value described above is a predicted value for the time ta1 from when the leader avatar A starts its pre-motion until when the follower avatar B starts its pre-motion.
[0183] In calculating the frame rate, a standard frame rate f may be determined in advance for the pre-motion of the leader avatar A and the pre-motion of the follower avatar B. The standard frame rate f may be, for example, 60 [fps].
[0184] In addition, in calculating the frame rate, the frame rate adjustment coefficient k max The adjustment factor k can be predetermined. max is a coefficient for adjusting the standard frame rate f to a range that does not cause discomfort to the user U in the pre-motion of the follower avatar B. More specifically, as shown in the following formula (1), the standard frame rate f is multiplied by the adjustment coefficient k max When the standard frame rate f is multiplied by the adjustment coefficient k, the fastest frame rate that does not cause discomfort to the user U is calculated. max The frame rate multiplied by the adjustment coefficient k is an example of a predetermined motion speed. max may be, for example, 2. This allows the pre-motion frame rate to be adjusted at twice the normal frame rate f. max The value of can be set depending on the type of motion.
[0185] f max = k max × f ... (1)
[0186] f in the above formula (1) max is the maximum frame rate of the pre-motion of the follower avatar B that is the fastest within the range that does not cause discomfort to the user U.
[0187] Then, the motion synchronization unit 256 calculates the response time predicted value ta1 by, for example, the following equation (2): exp The initial frame rate fa1 may be calculated using the following formula:
[0188] f a1 =F ta / (ta1 exp +tb min ) ... (2)
[0189] F ta is the number of frames of the pre-motion of the leader avatar A. Also, as shown in FIG. min is the maximum frame rate f max This is the minimum movement time required for follower avatar B to perform a pre-motion.
[0190] Here, the minimum operation time tb min is calculated by the following formula (3).
[0191] tb min =F tb / f max ...(3)
[0192] F tb is the number of frames of pre-motion of follower avatar B.
[0193] According to the above formulas (1) to (3), the response time predicted value ta1 exp and a minimum motion time tb, which is the time for the follower avatar B to perform a pre-motion at the fastest frame rate within a range that does not cause discomfort to the user U. minThe sum of the above is assumed to be the time it takes for leader avatar A to perform the pre-motion, and the initial frame rate fa1 of the pre-motion of leader avatar A can be determined. This reduces the difference between the new frame rate calculated later and the initial frame rate fa1, allowing the pre-motion to move at a natural movement speed.
[0194] Next, a method for calculating a new frame rate fa2 of the pre-motion of the leader avatar A and a frame rate fb2 of the pre-motion of the follower avatar B will be described with reference to Figures 16 and 17. The motion synchronization unit 256 calculates the new frame rate fa2 and the frame rate fb2 based on the request response from the user terminal 20. Figure 17 is a diagram for explaining a method for calculating the new frame rate fa2 and the frame rate fb2.
[0195] The number of remaining frames F of the pre-motion of the leader avatar A at the start of the pre-motion of the follower avatar B, i.e., at the time when the user terminal 20 receives the request response. Ra is calculated by the following formula (4).
[0196] F Ra =F ta −fa1×ta1 (4)
[0197] ta1 is the actual time taken from when leader avatar A starts the pre-motion until when follower avatar B starts the pre-motion.
[0198] The motion synchronization unit 256 calculates the minimum motion time ta, which is the time for the leader avatar A to perform a pre-motion at the fastest frame rate within a range that does not cause discomfort to the user U. min and the minimum operating time tb min Then, the motion synchronization unit 256 determines the maximum frame rate f as the frame rate of the pre-motion of the leader avatar A or the frame rate of the pre-motion of the follower avatar B, whichever has the longer corresponding minimum motion time. max Here, the minimum operation time tamin is calculated by the following formula (5).
[0199] ta min =F Ra / f max ...(5)
[0200] For example, in FIG. 16, the minimum operation time ta min is the minimum operating time tb min Therefore, the motion synchronization unit 256 sets the maximum frame rate f as the new frame rate fa2, as shown in FIG. max That is, tb min <ta min In this case, the new frame rate fa2 is calculated by the following equation (6).
[0201] fa2 = F Ra / ta min (=f max ) ... (6)
[0202] 17, the motion synchronization unit 256 calculates a frame rate fb2 so as to synchronize the completion timing of the pre-motion of the leader avatar A and the pre-motion of the follower avatar B. That is, the motion synchronization unit 256 calculates a frame rate fb2 so as to synchronize the completion timing of the pre-motion of the leader avatar A and the pre-motion of the follower avatar B. min The frame rate fb2 is calculated using the following formula (7) so that the pre-motion of follower avatar B is completed.
[0203] fb2 = F Tb / ta min ... (7)
[0204] On the other hand, ta min ≦tb min In this case, the frame rate fb2 is calculated by the following formula (8).
[0205] fb2 = F Tb / tb min (=f max ) ... (8)
[0206] Furthermore, the motion synchronization unit 256 calculates the frame rate fa2 so as to synchronize the completion timing of the pre-motion of the leader avatar A and the pre-motion of the follower avatar B. That is, the motion synchronization unit 256 calculates the frame rate fa2 so as to synchronize the completion timing of the pre-motion of the leader avatar A and the pre-motion of the follower avatar B. min The frame rate fa2 is calculated using the following equation (9) so that the pre-motion of the leader avatar A is completed by .
[0207] fa2 = F Ra / tb min ...(9)
[0208] The initial frame rate fa1 of the pre-motion of leader avatar A is updated to the new frame rate fa2 as described above, and the pre-motion of follower avatar B is executed at the frame rate fb2. This makes it possible to synchronize the completion timing of the pre-motion of leader avatar A and the pre-motion of follower avatar B. Furthermore, the new frame rates fa2 and fb2 are within a range that does not cause discomfort to user U, so user U can enjoy watching the pre-motion being executed without any discomfort.
[0209] Note that the method for calculating the frame rate of the pre-motion described above is merely an example, and may be designed as desired depending on the type of motion, etc. For example, the above describes an example in which the frame rate of the pre-motion of the leader avatar and the follower avatar is calculated to be as fast as possible without causing discomfort to the user U, but the frame rate of the pre-motion of the leader avatar and the follower avatar may also be calculated to be as slow as possible without causing discomfort to the user U.
[0210] Furthermore, the initial frame rate fa1 of the leader avatar, the new frame rate fa2, and the frame rate fb1 of the follower avatar do not have to be constant. For example, to make the operation of updating the frame rate of the leader avatar from the initial frame rate fa1 to the new frame rate fa2 more natural, the value of the new frame rate fa2 may be changed so that it gradually changes from the initial frame rate fa1.
[0211] Also, although the above describes the case where the only follower avatar is follower avatar B, if there are multiple follower avatars, a new frame rate for leader avatar A and the frame rate for each follower avatar may be calculated each time the user terminal 20 receives a request response corresponding to each follower avatar.
[0212] Furthermore, if there are multiple follower avatars, the new frame rate of leader avatar A and the frame rate of each follower avatar may be calculated only when the user terminal 20 receives request responses or request rejections corresponding to all follower avatars, or when a predetermined time has elapsed. Note that if no request responses are sent from the user terminal 20 corresponding to any follower avatar, the calculation process may not be executed. In this case, the pre-motion of the leader avatar may be terminated midway. Furthermore, in this case, the leader avatar may perform a predetermined motion (for example, a hand-lowering motion if the interaction is a high-five).
[0213] (Calculation of frame rate in follower user terminal 20) Next, a description will be given of calculation of the frame rate in the follower user terminal 20. The method of calculating the frame rate by the motion synchronization unit 256 of the follower user terminal 20 is basically the same as the method of calculating the frame rate in the leader user terminal 20 described above.
[0214] However, the motion synchronization unit 256 may calculate the initial frame rate of the leader avatar using the expected response time of the user U of the follower user terminal 20 instead of the above-mentioned response time predicted value. When a request notification is sent to only one candidate user terminal 20, no communication regarding the interaction occurs between the leader user terminal 20 and the follower user terminal 20 from the time the follower user terminal 20 receives the request notification until the interaction controlled by that user terminal 20 is completed. Therefore, the communication delay time does not need to be taken into consideration when calculating the frame rate.
[0215] On the other hand, if there are multiple candidate user terminals 20, the frame rate may be calculated using the above-described predicted response time value, as with the leader user terminal 20. In this case, when transmitting a request notification to multiple candidate user terminals 20, the server 10 further transmits information for identifying candidate user terminals 20 other than the destination candidate user terminal 20. This enables the follower user terminal 20 to calculate the predicted response time value by referring to the states of the other candidate user terminals 20 received from the server 10. When a request response is received from a candidate user terminal 20, the server 10 transmits the request response to the other candidate user terminals 20 in addition to the leader user terminal 20.
[0216] <<4. Operational Processing Example>> Next, an operational processing example of the information processing system 1 will be described.
[0217] 18 and 19 are sequence diagrams showing an example of the operation process of the information processing system 1 according to this embodiment.
[0218] 18, an example of operation processing will be described in which the user terminal 20A is the leader user terminal 20 and the user terminal 20B is the follower user terminal 20. Note that, in this example, avatar A corresponding to the user terminal 20A is the player avatar that performs a motion as the leader avatar, and avatar B corresponding to the user terminal 20B is the other player avatar that performs a motion as the follower avatar.
[0219] First, the operation input unit 230 of the user terminal 20A acquires an instruction to start an interaction (S301). The operation input unit 230 outputs the instruction to start an interaction to the motion synchronization unit 256 (S302). The motion synchronization unit 256 executes notification control by the communication unit 210 based on the instruction to start an interaction (S303). The communication unit 210 transmits an interaction start notification to the server 10 in accordance with the control of the motion synchronization unit 256 (S304). The interaction start notification includes information designating the user terminal 20B as a candidate user terminal 20.
[0220] The server 10 transmits the request notification to the user terminal 20B, which is a candidate user terminal 20 (S305). The user terminal 20B transmits a request response to the request notification to the server 10 based on an input operation by the user UB (S306). The server 10 transfers the request response to the user terminal 20A (S307). The communication unit 210 of the user terminal 20A outputs the received request response to the motion synchronization unit 256 (S308).
[0221] Meanwhile, following the processing of S303 or in parallel with the processing of S303, the motion synchronization unit 256 calculates an initial frame rate for the pre-motion of avatar A (S309). The motion synchronization unit 256 outputs a pre-motion start instruction to the player control unit 253 to cause avatar A to perform the pre-motion at the calculated initial frame rate (S310).
[0222] The player control unit 253 starts the pre-motion of avatar A at the initial frame rate (S311). Then, upon receiving the request response, the motion synchronization unit 256 calculates a new frame rate for avatar A and a new frame rate for avatar B (S312).
[0223] The motion synchronization unit 256 outputs the calculated new frame rate of avatar A to the player control unit 253 (S313). The motion synchronization unit 256 also outputs the calculated frame rate of avatar B to the other player control unit 254 (S314).
[0224] The player control unit 253 updates the frame rate of the pre-motion of avatar A from the initial frame rate to the new frame rate (S315). The other player control unit 254 starts the pre-motion of avatar B at the acquired frame rate (S316). The pre-motions of avatar A and avatar B are completed simultaneously.
[0225] When the pre-motion is completed, the player control unit 253 causes avatar A to perform the final motion (S317). Also, when the pre-motion is completed, the other player control unit 254 causes avatar B to perform the final motion (S318). This completes the interaction.
[0226] 19, an example of operation processing will be described in which the user terminal 20A is the follower user terminal 20 and the user terminal 20B is the leader user terminal 20. Note that, here, avatar A corresponding to the user terminal 20A is the opponent player avatar that performs a motion as a follower avatar, and avatar B corresponding to the user terminal 20B is the player avatar that performs a motion as a leader avatar.
[0227] First, the user terminal 20B acquires an instruction to start an interaction (S401). Then, the user terminal 20B transmits an interaction start notification to the server 10 (S402). The interaction start notification includes information designating the user terminal 20A as a candidate user terminal 20.
[0228] The server 10 transmits a request notification to the user terminal 20A (S403). The communication unit 210 outputs the received request notification to the motion synchronization unit 256 (S404). The motion synchronization unit 256 calculates an initial frame rate for avatar B (S405). The motion synchronization unit 256 outputs a pre-motion start instruction to the other player control unit 254 to cause avatar B to perform a pre-motion at the calculated initial frame rate (S406). The other player control unit 254 starts the pre-motion for avatar B at the initial frame rate (S407).
[0229] Meanwhile, the operation input unit 230 acquires a request response in response to the request notification received by the communication unit 210 based on an operation by the user UA (S408). The operation input unit 230 outputs the acquired request response to the motion synchronization unit 256 (S409). The operation input unit 230 also outputs the acquired request response to the communication unit 210 (S410). The communication unit 210 transmits the acquired request response to the server 10 (S411). The server 10 transfers the acquired request response to the user terminal 20B (S412).
[0230] Upon receiving the request response, the motion synchronization unit 256 calculates a new frame rate for avatar B and a new frame rate for avatar A (S413).
[0231] The motion synchronization unit 256 outputs the calculated new frame rate of avatar B to the other player control unit 254 (S414). The motion synchronization unit 256 also outputs the calculated frame rate of avatar A to the player control unit 253 (S415).
[0232] The other player control unit 254 updates the frame rate of the pre-motion of avatar B from the initial frame rate to the new frame rate (S416). The player control unit 253 starts the pre-motion of avatar A at the acquired frame rate (S417). The pre-motions of avatar A and avatar B are completed simultaneously.
[0233] When the pre-motion is completed, the other player control unit 254 causes avatar B to perform the final motion (S418). Also, when the pre-motion is completed, the player control unit 253 causes avatar A to perform the final motion (S419). This completes the interaction.
[0234] 5. Hardware Configurations>> The above describes the embodiments and modifications according to the present disclosure. Next, with reference to FIG. 20 , an example of the hardware configuration of the server 10, the user terminal 20, and the developer terminal 30 according to the embodiments of the present disclosure will be described.
[0235] The processing by the server 10, user terminal 20, and developer terminal 30 described above can be realized by one or more information processing devices. Fig. 20 is a block diagram showing an example hardware configuration of an information processing device 900 that realizes the server 10, user terminal 20, and developer terminal 30 according to an embodiment of the present disclosure. Note that the information processing device 900 does not necessarily have to have all of the hardware configuration shown in Fig. 20. Furthermore, some of the hardware configuration shown in Fig. 20 may not be present in the server 10, user terminal 20, and developer terminal 30.
[0236] 20 , the information processing device 900 includes a CPU 901, a ROM (Read Only Memory) 903, and a RAM 905. The information processing device 900 may also include a host bus 907, a bridge 909, an external bus 911, an interface 913, an input device 915, an output device 917, a storage device 919, a drive 921, a connection port 923, and a communication device 925. Instead of or in addition to the CPU 901, the information processing device 900 may include a processing circuit such as a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), or an ASIC (Application Specific Integrated Circuit).
[0237] The CPU 901 functions as an arithmetic processing device and control device, and controls all or part of the operations within the information processing device 900 in accordance with various programs recorded in the ROM 903, RAM 905, storage device 919, or removable recording medium 927. The ROM 903 stores programs and calculation parameters used by the CPU 901. The RAM 905 temporarily stores programs used in the execution of the CPU 901 and parameters that change as appropriate during the execution. The CPU 901, ROM 903, and RAM 905 are interconnected by a host bus 907, which is composed of an internal bus such as a CPU bus. Furthermore, the host bus 907 is connected to an external bus 911, such as a PCI (Peripheral Component Interconnect / Interface) bus, via a bridge 909.
[0238] The input device 915 is a device operated by a user, such as a button. The input device 915 may include a mouse, a keyboard, a touch panel, a switch, a lever, or the like. The input device 915 may also include a microphone that detects the user's voice. The input device 915 may be, for example, a remote control device that uses infrared or other radio waves, or an externally connected device 929 such as a mobile phone that supports operation of the information processing device 900. The input device 915 includes an input control circuit that generates an input signal based on information input by the user and outputs the signal to the CPU 901. The user operates the input device 915 to input various data and instruct processing operations to the information processing device 900.
[0239] The input device 915 may also include an imaging device and a sensor. The imaging device is a device that captures real space and generates a captured image using an imaging element such as a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS), and various components such as a lens for controlling the formation of a subject image on the imaging element. The imaging device may capture still images or moving images.
[0240] The sensors include various types of sensors such as a distance measurement sensor, an acceleration sensor, a gyro sensor, a geomagnetic sensor, a vibration sensor, an optical sensor, and a sound sensor. The sensors acquire information about the state of the information processing device 900 itself, such as the attitude of the housing of the information processing device 900, and information about the surrounding environment of the information processing device 900, such as the brightness and noise around the information processing device 900. The sensors may also include a Global Positioning System (GPS) sensor that receives GPS signals and measures the latitude, longitude, and altitude of the device.
[0241] The output device 917 is configured with a device capable of visually or audibly notifying the user of acquired information. The output device 917 may be, for example, a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence) display, or an audio output device such as a speaker or headphones. The output device 917 may also include a PDP (Plasma Display Panel), a projector, a hologram, a printer, or the like. The output device 917 outputs the results obtained by the processing of the information processing device 900 as video such as text or images, or as sound such as voice or audio. The output device 917 may also include a lighting device that brightens the surrounding area.
[0242] The storage device 919 is a data storage device configured as an example of a storage unit of the information processing device 900. The storage device 919 is configured, for example, by a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, or a magneto-optical storage device. This storage device 919 stores programs and various data executed by the CPU 901, as well as various data acquired from the outside.
[0243] The drive 921 is a reader / writer for a removable recording medium 927 such as a magnetic disk, optical disk, magneto-optical disk, or semiconductor memory, and is built into or externally attached to the information processing device 900. The drive 921 reads information recorded on the attached removable recording medium 927 and outputs the information to the RAM 905. The drive 921 also writes information to the attached removable recording medium 927.
[0244] The connection port 923 is a port for directly connecting a device to the information processing device 900. The connection port 923 may be, for example, a Universal Serial Bus (USB) port, an IEEE 1394 port, or a Small Computer System Interface (SCSI) port. The connection port 923 may also be an RS-232C port, an optical audio terminal, or a High-Definition Multimedia Interface (HDMI) (registered trademark) port. By connecting an external device 929 to the connection port 923, various types of data may be exchanged between the information processing device 900 and the external device 929.
[0245] The communication device 925 is, for example, a communication interface configured with a communication device for connecting to the network 40. The communication device 925 may be, for example, a communication card for a wired or wireless local area network (LAN), Bluetooth (registered trademark), Wi-Fi (registered trademark), or wireless USB (WUSB). The communication device 925 may also be a router for optical communications, a router for an asymmetric digital subscriber line (ADSL), or a modem for various communications. The communication device 925 transmits and receives signals, for example, between the Internet and other communication devices using a predetermined protocol such as TCP / IP. The network 40 connected to the communication device 925 is a wired or wireless network, for example, the Internet, a home LAN, infrared communications, radio wave communications, or satellite communications.
[0246] <<6. Supplementary Information>> Although preferred embodiments of the present disclosure have been described in detail above with reference to the accompanying drawings, the technical scope of the present disclosure is not limited to such examples. It is clear that a person skilled in the art of the present disclosure can conceive of various modified or altered examples within the scope of the technical idea described in the claims, and it is understood that these also naturally fall within the technical scope of the present disclosure.
[0247] For example, each function of the control unit 250 of the user terminal 20 may be provided in the control unit 120 of the server 10. More specifically, in the above embodiment, the frame rate calculation process is performed by each user terminal 20, but the frame rate may be calculated by the server 10. In this case, the image of the virtual space may be generated by the server 10 and transmitted to the user terminal 20.
[0248] It is also possible to create a computer program for causing hardware such as a CPU, ROM, and RAM built into the server 10 or the user terminal 20 to perform the functions of the server 10 or the user terminal 20. A computer-readable storage medium storing the computer program is also provided.
[0249] Furthermore, the effects described herein are merely descriptive or exemplary and are not limiting. In other words, the technology according to the present disclosure may achieve other effects that will be apparent to those skilled in the art from the description of this specification, in addition to or in place of the above-described effects.
[0250] The following configurations also fall within the technical scope of the present disclosure: (1) An information processing system including a control unit that performs the following: control to calculate a first movement speed that is the movement speed of a first motion performed by a first avatar and a second movement speed that is the movement speed of a second motion performed by a second avatar corresponding to the first motion in a virtual space so as to synchronize the completion timing of the first motion and the second motion that is the movement speed of the second motion; and control to make the first avatar perform the first motion at the first movement speed and make the second avatar perform the second motion at the second movement speed. (2) The information processing system described in (1), wherein the first motion and the second motion are pre-motions performed before a final motion, and the control unit controls the first avatar and the second avatar to perform the pre-motions and, after the pre-motions are completed, to make the first avatar and the second avatar perform the final motion. (3) The information processing system according to (1) or (2), further comprising a plurality of user terminals including a first user terminal to which an operation for the first avatar is input and a second user terminal to which an operation for the second avatar is input, wherein the control unit controls, in response to an operation input by a first user on the first user terminal to cause the first avatar to perform the first motion, transmission of a request notification requesting the second motion to each of one or more candidate user terminals corresponding to candidates for the second avatar. (4) The second user terminal controls transmission of a request response that is a response to the request notification in response to an operation by a second user using the second user terminal, wherein the control unit executes control to cause the second avatar to perform the second motion at the second movement speed based on the request response. (5) The information processing system according to (4), wherein the control unit calculates the second movement speed based on the request response from the second user terminal.(6) The information processing system according to (5), wherein the control unit causes the first avatar to start the first motion at the calculated initial first motion speed in response to an operation input by the first user to the first avatar, calculates new first motion speeds and second motion speeds based on the request response from the second user terminal, causes the second avatar to start the second motion at the calculated second motion speed, and updates the motion speed of the first motion of the first avatar to the new first motion speed calculated from the initial first motion speed. (7) The information processing system according to (6), wherein the control unit updates the first motion speed each time a request response is received from each user terminal when the request notification is transmitted to a plurality of the candidate user terminals. (8) The information processing system according to (6) or (7), wherein the control unit calculates the new first movement speed and the second movement speed based on the number of remaining frames constituting the first motion and the number of frames constituting the second motion at the time of receiving the request response. (9) The information processing system according to any of (6) to (8), wherein the control unit calculates the new first movement speed and the second movement speed so that each of the first movement speed and the second movement speed does not exceed a predetermined movement speed. (10) The information processing system according to any of (6) to (9), wherein the control unit calculates the initial first movement speed based on a predicted value that predicts the time required for the candidate user terminal to respond to the request after the request notification is transmitted. (11) The information processing system according to (10), wherein the time required for the request response is calculated based on a communication delay time of the candidate user terminal. (12) The information processing system according to (10) or (11), wherein the time required for the request response is calculated based on an expected time, which is an expected value of the time from when the candidate user terminal receives the request notification until a response operation is performed on the candidate user terminal.(13) The information processing system according to any of (10) to (12), wherein the time required for the request response is calculated based on the elapsed time from when an operation related to the virtual space was input to the candidate user terminal until the present. (14) The information processing system according to any of (4) to (13), wherein the control unit selects an avatar that satisfies a predetermined condition, and determines, as the candidate user terminal, a user terminal corresponding to an avatar selected from the selected avatar candidates based on the operation of the first user terminal. (15) The information processing system according to any of (3) to (14), wherein the control unit is provided in each of the plurality of user terminals, and the control unit provided in each user terminal executes control to cause the first avatar to perform the first motion at the first movement speed and cause the second avatar to perform the second motion at the second movement speed in the virtual space displayed on the display screen of each user terminal. (16) The information processing system according to (2), wherein the first motion is a motion of the first avatar raising its hand, the second motion is a motion of the second avatar raising its hand, and in the final motion, the hand of the first avatar and the hand of the second avatar come into contact with each other. (17) A program causing a computer to function as a control unit that executes: control to calculate a first movement speed that is the movement speed of the first motion and a second movement speed that is the movement speed of the second motion so as to synchronize the completion timing of a first motion performed by a first avatar and a second motion performed by a second avatar corresponding to the first motion in a virtual space; and control to make the first avatar perform the first motion at the first movement speed and make the second avatar perform the second motion at the second movement speed.(18) An information processing method executed by a computer, comprising: calculating a first movement speed that is the movement speed of a first motion performed by a first avatar in a virtual space and a second movement speed that is the movement speed of a second motion performed by a second avatar corresponding to the first motion so as to synchronize the completion timing of the first motion and the second motion; causing the first avatar to perform the first motion at the first movement speed, and causing the second avatar to perform the second motion at the second movement speed. (19) An information processing system comprising: a control unit that receives, as input information, information on whether an avatar in a virtual space, each operated by a plurality of user terminals, should perform a second motion at an operation speed that synchronizes the completion timing with a first motion performed by another avatar, which is executed based on an operation on a user terminal operating the other avatar; the types of the first motion and the second motion; and conditions for selecting a candidate avatar that will perform the second motion; and a control unit that outputs the input information as parameters for an application to be distributed to the user terminals.
[0251] REFERENCE SIGNS LIST 1 Information processing system 10 Server 121 Interaction control unit 131 Interaction management unit 20 User terminal 210 Communication unit 220 Display output unit 230 Operation input unit 240 Memory unit 250 Control unit 251 Communication delay measurement unit 252 Operation status monitoring unit 253 Player control unit 254 Other player control unit 255 Avatar selection unit 256 Motion synchronization unit 21 Display 22 Controller 30 Developer terminal 40 Network
Claims
1. An information processing system comprising a control unit that performs the following control: a control unit that calculates a first movement speed, which is the movement speed of a first motion performed by a first avatar in a virtual space, and a second movement speed, which is the movement speed of a second motion performed by a second avatar corresponding to the first motion, so as to synchronize the completion timing of the first motion and the second motion, which is the movement speed of the second motion; and a control unit that causes the first avatar to perform the first motion at the first movement speed, and causes the second avatar to perform the second motion at the second movement speed.
2. The information processing system of claim 1, wherein the first motion and the second motion are pre-motions performed before a final motion, and the control unit executes control to have the first avatar and the second avatar perform the pre-motions, and executes control to have the first avatar and the second avatar perform the final motion after the pre-motions are completed.
3. The information processing system of claim 1, further comprising a plurality of user terminals including a first user terminal to which an operation for the first avatar is input and a second user terminal to which an operation for the second avatar is input, and wherein the control unit controls the transmission of a request notification requesting the second motion to be performed to each of candidate user terminals, which are one or more user terminals corresponding to candidates for the second avatar, in response to an operation input by a first user on the first user terminal to cause the first avatar to perform the first motion.
4. The information processing system described in claim 3, wherein the second user terminal controls the transmission of a request response that is a response to the request notification in accordance with an operation by a second user using the second user terminal, and the control unit executes control to cause the second avatar to perform the second motion at the second movement speed based on the request response.
5. The information processing system according to claim 4, wherein the control unit calculates the second operating speed based on the request response from the second user terminal.
6. The information processing system of claim 5, wherein the control unit: in response to an operation input by the first user to the first avatar, causes the first avatar to start the first motion at the calculated initial first motion speed; calculates new first motion speed and second motion speed based on the request response from the second user terminal; causes the second avatar to start the second motion at the calculated second motion speed, and updates the motion speed of the first motion of the first avatar to the new first motion speed calculated from the initial first motion speed.
7. An information processing system as described in claim 6, wherein the control unit updates the first operating speed each time a request response is received from each user terminal when the request notification is sent to multiple candidate user terminals.
8. The information processing system of claim 6, wherein the control unit calculates the new first movement speed and the second movement speed based on the remaining number of frames constituting the first motion and the number of frames constituting the second motion at the time the request response is received.
9. The information processing system of claim 6, wherein the control unit calculates the new first movement speed and the new second movement speed so that each of the first movement speed and the second movement speed does not exceed a predetermined movement speed.
10. The information processing system of claim 6, wherein the control unit calculates the initial first operating speed based on a predicted value of the time required for the candidate user terminal to respond to the request after the request notification is sent.
11. The information processing system according to claim 10, wherein the time required for the request response is calculated based on a communication delay time of the candidate user terminal.
12. An information processing system as described in claim 10, wherein the time required for the request response is calculated based on an expected time, which is the expected value of the time from when the candidate user terminal receives the request notification until a response operation is performed on the candidate user terminal.
13. An information processing system according to claim 10, wherein the time required for the request response is calculated based on the elapsed time from when an operation related to the virtual space was input to the candidate user terminal until the present time.
14. An information processing system as described in claim 4, wherein the control unit selects an avatar that satisfies predetermined conditions, and determines the user terminal corresponding to the avatar selected from the selected avatar candidates as the candidate user terminal based on the operation of the first user terminal.
15. The information processing system described in claim 3, wherein the control unit is provided in each of the multiple user terminals, and the control unit provided in each user terminal executes control to cause the first avatar to perform the first motion at the first movement speed and the second avatar to perform the second motion at the second movement speed in the virtual space displayed on the display screen of each user terminal.
16. The information processing system of claim 2, wherein the first motion is a motion of the first avatar raising its hand, the second motion is a motion of the second avatar raising its hand, and in the final motion, the hand of the first avatar and the hand of the second avatar come into contact.
17. A program that causes a computer to function as a control unit that performs the following controls: calculates a first movement speed, which is the movement speed of a first motion performed by a first avatar in a virtual space, and a second movement speed, which is the movement speed of a second motion performed by a second avatar corresponding to the first motion, so as to synchronize the completion timing of the first motion and the second motion, which is the movement speed of the second motion; and controls the first avatar to perform the first motion at the first movement speed, and the second avatar to perform the second motion at the second movement speed.
18. An information processing method executed by a computer, comprising: calculating a first movement speed that is the movement speed of a first motion performed by a first avatar in a virtual space and a second movement speed that is the movement speed of a second motion performed by a second avatar corresponding to the first motion, so as to synchronize the completion timing of the first motion and the second motion, and having the first avatar perform the first motion at the first movement speed, and having the second avatar perform the second motion at the second movement speed.
19. An information processing system comprising: a control unit that receives, as input information, whether or not an avatar in a virtual space, each operated by a plurality of user terminals, should perform a second motion at a speed that synchronizes the completion timing with a first motion performed by another avatar, which is executed based on an operation on a user terminal operating the other avatar; the types of the first motion and the second motion; and conditions for selecting a candidate avatar that will perform the second motion; and a control unit that outputs the input information as parameters for an application to be distributed to the user terminals.
Citation Information
Patent Citations
Game system and program
JP2018075259A
Moving image distribution system distributing moving image containing animation of character object, generated on the basis of motion of distribution user in live, moving image distribution method, and moving image distribution program
JP2021035017A
Information processing system, information processing method, and storage medium
JP2024021028A
Method, computer-readable medium, and information processing device
WO2022137375A1
Information processing device, data synchronization program, data synchronization method, data synchronization system and terminal device
WO2022264990A1