Device and method
The cloud rendering system addresses server load issues by dynamically reallocating resources based on user interaction, prioritizing engaged users and using multiple servers to manage load, enhancing system efficiency and user experience.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-10-03
- Publication Date
- 2026-04-09
AI Technical Summary
Existing systems providing virtual spaces to multiple users simultaneously face increased processing loads, leading to inefficiencies and potential overload on servers.
A cloud rendering system that dynamically adjusts resource allocation to user terminals based on their interactions within the virtual space, prioritizing high-resolution rendering for users engaging with advertisements or premium content while reducing resources for others, and leveraging multiple servers to manage load distribution.
This approach effectively reduces processing load on servers by optimizing resource allocation, ensuring high-quality experiences for engaged users while maintaining overall system efficiency and performance.
Smart Images

Figure JP2024035456_09042026_PF_FP_ABST
Abstract
Description
Device and Method
[0001] The present disclosure relates to a device and method for providing a virtual space to a terminal.
[0002] Patent Document 1 describes a control circuit unit for realizing display processing of a virtual space and various menu displays displayed in the virtual space. The first virtual space is, for example, a live stage, and in the first virtual space, a stage, characters providing performances on the stage, and various advertisements are arranged. The advertisement identification unit included in the control circuit unit determines whether or not the line-of-sight direction in the user's virtual space is directed to any of the various advertisements based on information regarding the arrangement positions of the various advertisements. And the fixation time measurement unit included in the control circuit unit measures the fixation time, which is the time of sending the line of sight to the advertisement. Further, the determination unit determines whether or not the adjusted fixation time exceeds a predetermined threshold value. For example, when the adjusted fixation time is 5 seconds or more, it is interpreted that the user has shown interest in the advertisement. Then, the control circuit unit provides the user with extended content (for example, an experience version of a game) related to the advertisement.
[0003] Japanese Unexamined Patent Application Publication No. 2017-40971
[0004] As described in Patent Document 1, generally, it is assumed that a plurality of users access a virtual space simultaneously. In this case, a server, which is a device for providing a virtual space to a terminal, provides images of the same quality to a plurality of users uniformly, and there is a risk that the processing load of the server will increase.
[0005] An object of the present disclosure is to provide a device and a method capable of providing a virtual space to a user while reducing the processing load.
[0006] The device according to the present disclosure includes a providing unit that provides a virtual space to a plurality of user terminals, a resource allocation change unit that changes the resource allocation assigned to each of the plurality of user terminals based on operations by the plurality of user terminals on the virtual space, and a generation unit that generates a virtual space corresponding to each of the plurality of user terminals based on the resource allocation changed by the resource allocation change unit.
[0007] The device described in this disclosure changes the resource allocation assigned to each of the multiple user terminals based on operations performed by those terminals. This makes it easier to suppress increases in the processing load of the device compared to generating a virtual space based on a constant resource allocation. Therefore, the device can perform processing while reducing the processing load.
[0008] According to this disclosure, it is possible to provide users with a virtual space while reducing the processing load.
[0009] This is a schematic diagram showing the configuration of a cloud rendering system including a server according to this embodiment. This is a schematic diagram showing the configuration of a server according to this embodiment. Figure 3(a) is an example of a video to explain that a character is looking at an advertisement in a virtual space. Figure 3(b) is an example of a video to explain that a character is not looking at an advertisement in a virtual space. Figure 4(a) is an example of a video when the resolution is increased. Figure 4(b) is an example of a video when the resolution is decreased. This is a flowchart showing an example of a method for providing a virtual space. This is a flowchart showing an example of a processing procedure based on resource allocation changes. This is a flowchart showing an example of a processing procedure based on resource allocation changes. This is an example of a sequence diagram when the resource allocation change unit requests another server to supplement resource allocation in the processing of Figures 6 and 7. This is an example of a sequence diagram when the resource allocation change unit requests another server to supplement resource allocation in the processing of Figures 6 and 7. This is a flowchart showing an example of a series of processing procedures based on the number of user terminal connections. This is an example of a sequence diagram when the resource allocation change unit requests another server to supplement resource allocation in the processing of Figure 10. This is a diagram showing the hardware configuration of the server according to this embodiment.
[0010] Embodiments of this disclosure will be described in detail below with reference to the drawings. In each drawing, the same or corresponding parts are denoted by the same reference numerals, and redundant descriptions are omitted.
[0011] [Cloud Rendering System Configuration] Figure 1 is a schematic diagram showing the configuration of a cloud rendering system including a server (device) according to this embodiment. The cloud rendering system 100 comprises a plurality of servers 1 and a synchronization server 10. The synchronization server 10 is connected to the plurality of servers 1 so as to be able to send and receive information. The plurality of servers 1 consists of N servers (N is an integer of 2 or more), namely servers 1A to 1N. Each of the plurality of servers 1 is connected to a plurality of user terminals 20 so as to be able to send and receive information. In the cloud rendering system of this embodiment, the plurality of servers 1 may function as a single virtual space providing system. In this case, for example, one virtual space is divided into a plurality of parts, and each of the plurality of servers 1 is associated with one of the plurality of parts of the virtual space (a plurality of virtual spaces). The synchronization server 10 maintains the consistency of processing between different servers 1. As an example, the synchronization server 10 synchronizes a plurality of videos generated by the plurality of servers 1. The plurality of servers 1 may output each of the plurality of videos synchronized by the synchronization server 10 to a plurality of user terminals 20.
[0012] Server 1 functions as a system that provides a virtual space even when used independently. Based on operations performed by multiple user terminals 20, Server 1 changes the resource allocation assigned to each of the multiple user terminals 20. As will be described in detail later, Server 1 increases the resource allocation of user terminals 20 that meet the conditions for changing resource allocation, designating them as priority user terminals 20A, and decreases the resource allocation of user terminals 20 that do not meet the conditions, designating them as general user terminals 20B. Then, based on the changed resource allocation, Server 1 generates images based on the virtual space corresponding to each of the multiple user terminals 20. This generation of images based on the virtual space is called rendering.
[0013] A virtual space, for example, is a virtual three-dimensional space shared among multiple users. A virtual space is, for instance, a space used for cloud gaming or virtual live events. In this embodiment, the virtual space is a three-dimensional virtual space. However, the dimensions of the virtual space do not necessarily have to be three.
[0014] Each user can control a character in the virtual space via their respective user terminal 20, as follows. Specifically, objects are placed in the virtual space. These objects are structures placed in the virtual space, such as human-like characters, buildings, and cars that appear in the 3D games provided by the cloud gaming service mentioned above. User positions are set at predetermined coordinates in the virtual space. User positions are the positions corresponding to each of the multiple user terminals 20 in the virtual space, such as the positions where the user's avatar, the character, is placed. The character placed at the user position can move within the virtual space by being controlled based on operation signals input from each user terminal 20.
[0015] Furthermore, each user can view the virtual space through their respective user terminal 20. Specifically, multiple virtual cameras are placed within the virtual space. The video of the virtual space as seen by the virtual cameras is transmitted to each user terminal 20. Each user views the virtual space by viewing the video of the virtual space as seen by the virtual cameras on their respective user terminal 20.
[0016] In the virtual space, advertisements may be placed as an example of objects. These advertisements may be banner ads placed on the walls of buildings, or they may be 3D objects. If the advertisement is a cube-shaped 3D object, dynamic advertising content will be displayed on each face of the cube. The 3D object is positioned so that it is visible to the character as they move through the virtual space.
[0017] Server 1 is comprised of a computer, such as a server device. Server 1 may be comprised of multiple computers. For example, although Server 1 has multiple functions as described later, it may be comprised of a device for each function. Server 1 and user terminal 20 have communication functions and are connected to each other so that they can send and receive information via a communication network. Server 1 is, for example, a server capable of providing services related to cloud gaming, and one example is a server with a built-in application (game engine) equipped with conventional client gaming functions.
[0018] Server 1 manages the virtual space. This management includes the creation of the virtual space, the storage of data within the virtual space, and the control of characters and objects within the virtual space. Server 1 controls the position of each user within the virtual space. Server 1 places virtual cameras within the virtual space and controls the position and orientation of each virtual camera. Server 1 generates images of the virtual space captured by the virtual cameras as video footage of the virtual space as seen by the virtual cameras. Server 1 controls the display of the video footage of the virtual space as seen by the virtual cameras on the user terminal 20.
[0019] The user terminal 20 includes a display for showing images of the virtual space, a device for inputting audio, and a device for outputting audio (e.g., a microphone and a speaker). The user terminal 20 is, for example, a personal computer (PC), smartphone, tablet, or XR (Cross Reality) terminal such as VR (Virtual Reality) glasses used by the user.
[0020] The user terminal 20 receives user input to control at least one of the user's position in the virtual space and the virtual camera. The user terminal 20 transmits an operation signal indicating the received user input to the server 1 via the communication path. The user terminal 20 receives video of the virtual space viewed from the virtual camera from the server 1 via the communication path and presents the video to the user. The user terminal 20 also receives information indicating sound in the virtual space from the server 10 via the communication path and outputs it to the speaker or other device of the user terminal 20. Furthermore, if sound can be played at the user's position in the virtual space, the user terminal 20 may accept sound input from a microphone or other device and transmit sound data based on the received input to the server 1 via the communication path.
[0021] [Server Configuration and Functions] Next, the functions of Server 1 according to this embodiment will be described, and the information processing in this embodiment will be described in detail.
[0022] As shown in Figure 2, Server 1 comprises a detection unit 4, a resource allocation change unit 5, and an output unit 6. Server 1 also comprises a multiplayer processing unit 2 and a plurality of rendering units 3.
[0023] The multiplayer processing unit 2 (providing unit) provides a virtual space to multiple user terminals 20. The multiplayer processing unit 2 executes processing related to multiplayer in the virtual space. First, the multiplayer processing unit 2 stores data to be used for rendering the virtual space in advance. The multiplayer processing unit 2 generates the virtual space using the stored data. More specifically, if the virtual space is used for a 3D action game, the multiplayer processing unit 2 stores in advance multiple objects including the user's character in the virtual space, and 3D data such as a map representing the virtual space (actual data).
[0024] Furthermore, for example, the multiplayer processing unit 2 pre-stores sound sources (sound resources) for generating sounds to be output in the virtual space. The multiplayer processing unit 2 generates a virtual space using the 3D data described above. This virtual space is, for example, a virtual space (the actual multiplayer environment) to which multiple users can connect.
[0025] The multiplayer processing unit 2 performs physics calculations related to the movement of objects in the virtual space. The multiplayer processing unit 2 may also place virtual speakers and virtual microphones in the virtual space. The multiplayer processing unit 2 may generate sounds from objects in the virtual space and play these sounds using virtual speakers placed in the virtual space.
[0026] The multiplayer processing unit 2 may acquire sound data from the user terminal 20 and play back the sound based on the sound data using virtual speakers placed in the virtual space. Furthermore, the multiplayer processing unit 11 may transmit the sound recorded by the virtual microphone in the virtual space as recording data to the user terminal 20. In this case, the recording data may be played back using the speaker of the user terminal 20. In addition, the above-mentioned physics calculations related to the generation of the virtual space and the movement of objects can be realized using various methods and configurations utilizing publicly known technologies.
[0027] The multiplayer processing unit 2 acquires operation signals from the user terminal 20 to control at least one of the user's position in the virtual space and the virtual camera. The multiplayer processing unit 2 controls the user's position in the virtual space based on the operation signals transmitted from the user terminal 20. For example, based on the acquired operation signals, the multiplayer processing unit 2 changes the user's position so that it responds in real time to the user's operations. Furthermore, the control of the user's position in the virtual space described above can be realized by various methods and configurations using publicly known technologies.
[0028] The image of the virtual space as seen from the virtual camera is the view from a reference position in the virtual space. The reference position corresponding to the virtual camera may be, for example, the position of the user's character's eyes in the virtual space or a position around that character. For example, the reference position may be the position of the eyes of a character modeled after a human (first-person view). For example, the reference position may be a position looking down on a character modeled after a human (third-person view). One virtual camera may be associated with each user terminal 20. In this case, the virtual camera is a free-viewpoint virtual camera that can be operated by the user and is a virtual camera that can be exclusively used by one user.
[0029] The detection unit 4 detects the number of user terminals 20. The number of user terminals 20 detected by the detection unit 4 is the number of user terminals 20 that are currently connected to the server 1 and using the virtual space. For example, the detection unit 4 detects the number of communication paths established between the user terminals 20 and the server 1 at the time of detection as the number of user terminals 20. The detection unit 4 obtains (detects) the user's position in the virtual space corresponding to each user terminal 20 from the multiplayer processing unit 11.
[0030] The detection unit 4 detects that a character is looking at an advertisement in the virtual space. The detection unit 4 may, for example, detect that a character is looking at an advertisement as follows: The detection unit 4 may determine that a character is looking at an advertisement when the advertisement is displayed in a predetermined range (for example, the center of the screen) of the display (screen) that displays the virtual space on each user terminal 20. In this disclosure, the predetermined range means, for example, the center of the screen or its vicinity, and the range that the user is looking at. For example, in the case of a vertically oriented screen, the predetermined range is preferably slightly above the center of the screen.
[0031] Furthermore, the center of the screen may be the point where the diagonals of the screen intersect, or it may be the position of the central pixel among multiple pixels, assuming that multiple pixels are arranged in two dimensions on the screen. For example, the detection unit 4 may calculate the distance from the center of the screen to the advertisement, and if the calculated distance is less than or equal to the threshold distance, it may be considered that the advertisement is in the center of the image. For example, the detection unit 4 calculates the distance between the center of the screen and the advertisement based on the distance in the vertical direction and the distance in the horizontal direction.
[0032] Alternatively, the detection unit 4 may detect that the character is looking at the advertisement if the character's gaze is directed towards it, and detect that the character is not looking at the advertisement if the character's gaze moves away from it. The detection unit 4 may also consider that the character's gaze is directed towards the advertisement if the leading edge of the gaze vector of each of the character's eyes is within the range of the advertisement.
[0033] Alternatively, the detection unit 4 may determine that a character is looking at an advertisement when the character approaches the advertisement. For example, the detection unit 4 may calculate the distance from the character's position (user position) to the advertisement, and if the calculated distance is less than or equal to a threshold distance, it may be considered that the character has approached the advertisement. Figure 3 shows an example in which an advertisement is placed in a virtual space when the advertisement is a cube-shaped 3D object. In the example in Figure 3, the virtual camera captures images of the virtual space with the character C as the reference position. As shown in Figure 3, the detection unit 4 calculates the distance D1 between character C and advertisement AD based on the vertical distance D11 and the horizontal distance D12, respectively. As shown in Figure 3(a), if the distance D1 is less than or equal to the distance threshold, the detection unit 4 detects that character C is looking at the advertisement. Conversely, as shown in Figure 3(b), if the distance D1 exceeds the distance threshold, the detection unit 4 detects that character C is not looking at the advertisement.
[0034] Alternatively, the detection unit 4 may determine that character C is looking at the advertisement AD if the distance D1 between character C and advertisement AD is less than or equal to a first threshold distance, and the distance from the center of the screen to advertisement AD is less than or equal to a second threshold distance. In the above example, the detection unit 4 calculated the distance D1 or the distance from the center of the screen to advertisement AD based on two-dimensional data consisting of a vertical distance D11 and a horizontal distance D12, but it may also calculate it based on three-dimensional data consisting of a depth distance in addition to distances D11 and D12.
[0035] The resource allocation modification unit 5 modifies the resource allocation assigned to each of the user terminals 20 based on operations performed by the user terminals 20 on the virtual space. The resource allocation modification unit 5 increases the resource allocation for user terminals 20 that meet the conditions for resource allocation modification, and decreases the resource allocation for user terminals 20 that do not meet the conditions. The conditions for resource allocation modification are, for example, when at least one of the multiple characters C operated by the user terminals 20 gazes at a gaze target object. The gaze target object includes advertisements (AD). When the detection unit 4 detects that a character C is gazing at an advertisement (AD) in the virtual space as described above, the resource allocation modification unit 5 modifies the resource allocation assigned to each of the user terminals 20.
[0036] The resource allocation modification unit 5 changes the resolution of the virtual space video as a resource allocation, for example. The rendering unit 3 (generation unit), described later, renders and generates the virtual space video according to the changed resource allocation. The output unit 6 then outputs the video to each user terminal 20. Figure 4 is a diagram illustrating an example of resolution change. The resource allocation modification unit 5 assigns an equal resolution to each user terminal 20 until at least one of the multiple characters C is fixated on the object they are looking at. For example, if 10 user terminals 20 are connected to one server 1, the resource allocation modification unit 5 assigns a resolution of "1280 x 720" to each user terminal 20. The resolution here is the product of the number of pixels in the horizontal and vertical directions of the video. A resolution of "1280 x 720" means that the video has 1280 pixels horizontally and 720 pixels vertically.
[0037] The resource allocation modification unit 5 increases the resolution allocated to the user terminal 20 that is operating character C, which is intently watching the advertisement AD (sometimes referred to as the priority user terminal 20A in the following description), and decreases the resolution allocated to user terminals other than the priority user terminal 20A (sometimes referred to as the general user terminal 20B in the following description). The resource allocation modification unit 5 changes the resolution allocated to each of the user terminals 20 within a predetermined total resource range (e.g., CPU usage, memory usage, network bandwidth, etc.). For example, since an increase in resolution can increase CPU usage, the resource allocation modification unit 5 may adjust the resolution allocated to the user terminals 20 so that the CPU usage of server 1 remains within a predetermined range.
[0038] Let's consider a case where there is one priority user terminal 20A and nine general user terminals 20B. In this case, the resource allocation change unit 5 may increase the resolution allocated to the one priority user terminal 20A from "1280 x 720" to "1920 x 1080", as shown in Figure 4(a). On the other hand, the resource allocation change unit 5 may decrease the resolution allocated to the nine general user terminals 20B from "1280 x 720" to "960 x 540", as shown in Figure 4(b). As another example, let's consider a case where there are two priority user terminals 20A and eight general user terminals 20B. In this case, the resource allocation change unit 5 may change the resolution allocated to the two priority user terminals 20A to "1920 x 1080" and change the resolution allocated to the eight general user terminals 20B to "800 x 450". Alternatively, the resource allocation change unit 5 may change the resolution allocated to the two priority user terminals 20A to "1440 x 960" and the resolution allocated to the eight general user terminals 20B to "960 x 540". As described above, the number of priority user terminals 20A and general user terminals 20B may be one or more. In the following description, they may be referred to as one or more priority user terminals 20A and one or more general user terminals 20B.
[0039] The resource allocation modification unit 5 may change the resource allocation of multiple user terminals 20 based on the advertising fee of the ad viewed by character C. For example, the multiplayer processing unit 2 may store a correspondence table between ad and advertising fee, and a calculation formula or function for calculating the amount of resolution change based on the advertising fee. For example, when character C, operated by one or more priority user terminals 20A, views an ad, the resource allocation modification unit 5 calculates the amount of resolution change based on the correspondence table and calculation formula stored in the multiplayer processing unit 2. The resource allocation modification unit 5 may then add the calculated change amount to the resolution allocated to one or more priority user terminals 20A, while subtracting it from the resolution allocated to one or more general user terminals 20B.
[0040] The resource allocation modification unit 5 may change other parameters along with, or instead of, the video resolution. The resource allocation modification unit 5 may change at least one of the virtual space video resolution, bitrate, and frame rate as a resource allocation. Bitrate indicates the amount of data processed per unit time. Bitrate is expressed in units such as bits per second (bps), kilobits per second (kbps), and megabits per second (Mbps). When video is output from the output unit 6 to each user terminal 20, the bitrate affects the quality of the video. Frame rate indicates the number of frames (still images) displayed per second. Frame rate is expressed in units such as frames per second (fps). Frame rate affects the smoothness of the video. The resource allocation modification unit 5 improves the quality and smoothness of the video by increasing the bitrate and frame rate allocated to one or more priority user terminals 20A.
[0041] The resource allocation change unit 5 reverts the changed resolution to its original state when each user terminal 20 satisfies the resolution reset condition. In the examples of Figures 4(a) and 4(b), the resource allocation change unit 5 reverts the resolution allocated to one priority user terminal 20A from "1920 x 1080" to "1280 x 720", and reverts the resolution allocated to nine general user terminals 20B from "960 x 540" to "1280 x 720". The resolution reset condition is, for example, when character C stares at the advertisement AD to the end. In this case, the resource allocation change unit 5 may change the resolution only while character C is staring at the advertisement AD, and revert the resolution to its original state immediately after character C has stared at the advertisement AD to the end. Alternatively, the resource allocation change unit 5 may maintain the changed resolution for a certain period of time after character C has stared at the advertisement AD to the end. Alternatively, the resolution reset condition is, for example, when character C stops staring at the advertisement AD. For example, if the distance D1 between character C and advertisement AD is below a distance threshold and character C is staring at advertisement AD, and character C moves and the distance D1 exceeds the distance threshold, the resource allocation change unit 5 will revert the resolution to its original state. Alternatively, if the priority user terminal 20A displays a menu or enters text on the user interface, the resource allocation change unit 5 may consider that character C has stopped staring at advertisement AD.
[0042] The conditions for changing resource allocation may include whether or not at least one of the multiple characters C, operated by multiple user terminals 20, has purchased a chargeable item. The virtual space includes chargeable items. Chargeable items are, for example, items such as costumes for character C or accessories worn by character C. Users can purchase chargeable items by having character C shop in the virtual space. The resource allocation change unit 5 may change the resource allocation of each user terminal 20 based on the amount of money spent on chargeable items purchased by character C.
[0043] The condition for changing the resource allocation may be other than the character C's viewing of the advertisement AD or the purchase of the charge object. The condition for changing the resource allocation is, for example, the degree of contribution to the service in the virtual space such as the invitation of other users or the promotion on SNS, or whether or not the priority object has been viewed. The priority object here is not limited to the advertisement AD, and may be a character, a building, and an automobile operated by another user terminal 20.
[0044] The resource allocation change unit 5 may change the resource allocation of each user terminal 20 based on the points according to the conditions for changing the resource allocation described above. For example, when the character C views the advertisement AD, a certain amount of points is given to the priority user terminal 20A that operates the character C. The points may be given by the multiplayer processing unit 2. As an example, 10 points are given to the priority user terminal 20A, no points are given to the general user terminal 20B, and when the points of the general user terminal 20B are 0 points, the resource allocation change unit 5 may change the resolution so that the resolution assigned to the priority user terminal 20A is maximized. In this case, the resource allocation change unit 5 may change the resolution assigned to one priority user terminal 20A to "1920×1080" and change the resolution assigned to nine general user terminals 20B to "960×540". As another example, when 100 points are given to the priority user terminal 20A and the general user terminal 20B satisfies the conditions other than viewing the advertisement AD and has 10 points in advance, the resource allocation change unit 5 may change the resolution so that the minimum resolution is assigned to the user terminal having points. In this case, the resource allocation change unit 5 may change the resolution assigned to one priority user terminal 20A to "1440×1080" and change the resolution assigned to nine general user terminals 20B to "1280×960".
[0045] Multiple rendering units (generation units) 3 generate images of the virtual space as seen from a virtual camera. For example, multiple rendering units 3 are provided for each virtual camera. In this case, each rendering unit 3, each virtual camera, and each user terminal 20 may be associated with each other. This association may be managed within the multiplayer processing unit 2. When a new virtual camera is placed, a new rendering unit 3 is provided. Each rendering unit 3 renders and generates images of the virtual space as seen from a virtual camera placed in the virtual space (performs internal rendering processing). Each rendering unit 3 outputs the generated images and information indicating the virtual camera corresponding to itself to the output unit 6. The process of rendering images of the virtual space as seen from a virtual camera as described above can be realized by various methods and configurations using publicly known technologies.
[0046] Each rendering unit 15 generates virtual space images corresponding to each of the multiple user terminals 20 based on the resource allocation changed by the resource allocation change unit 5. For example, each rendering unit 3 generates images with increased resolution for one or more priority user terminals 20A, and generates images with decreased resolution for one or more general user terminals 20B.
[0047] The output unit 6 outputs the video generated by each rendering unit 3 to the user terminal 20. Specifically, the output unit 6 acquires the video generated by the rendering unit 3. The output unit 6 acquires information indicating the virtual camera corresponding to each rendering unit 3 from the multiplay processing unit 2. The output unit 14 transmits the video to the user terminal 20 associated with the virtual camera. The output unit 14 is, for example, a function of WebRTC (Web Real-Time Communication).
[0048] When the total resource allocation exceeds the predetermined total amount of resources, the resource allocation change unit 5 requests another server 1 to complement the resource allocation. This will be described again by referring to FIG. 1. The cloud rendering system 100 includes a server (first server) 1A and a server (second server) 1B as a plurality of servers 1. When the server 1 is started, first, the server 1A functions as a system that provides a virtual space alone. Assume that ten user terminals 20 are connected to the server 1A. Thereafter, for example, when more than half of the ten user terminals 20 become priority user terminals 20A, it may occur that resources cannot be allocated to all the user terminals 20 with only the total amount of resources of the server 1A. In such a case, the resource allocation change unit 5 of the server 1A requests the server 1B to complement the resource allocation. After making a request to complement the resource allocation, the server 1A switches a part of the plurality of user terminals 20 connected to the server 1A to be connected to the server 1B.
[0049] The server 1A may provide a first resource allocation to some of the plurality of user terminals 20, and the server 1B may provide a second resource allocation to the remaining user terminals 20 of the plurality of user terminals 20. The amount of the first resource allocation and the amount of the second resource allocation may be different. For example, assume a case where the server 1B switches one or more priority user terminals 20A among the plurality of user terminals 20 to be connected to the server 1B, and one or more general user terminals 20B among the plurality of user terminals 20 remain connected to the server 1A. In this case, the resolution that the server 1A allocates to one or more general user terminals 20B as the first resource allocation is lower than the resolution that the server 1B allocates to one or more priority user terminals 20A as the second resource allocation.
[0050] When the virtual space providing system is composed of the server 1A and the server 1B, one virtual space is partitioned into two parts, and each of the plurality of servers 1 is associated with one of the two parts of the virtual space. In the servers 1A and 1B, processes for managing the two parts are respectively executed. Further, the synchronization server 10 maintains the consistency of the processes between the server 1A and the server 1B.
[0051] The number of user terminals 20 connected to each server 1 may be set to a number that allows for sufficient resources in the total capacity of server 1. For example, the maximum number of allowed connections, which is the upper limit of user terminals 20 connected to server 1, is smaller than the maximum number of connections that can be connected to server 1. When the cloud rendering system 100 includes server 1A and server 1B, if the number of user terminals 20 connected to server 1A exceeds the number of allowed connections, server 1A requests server 1B to supplement its resource allocation. In this case, for example, server 1A switches one or more of the user terminals 20 to connect to server 1B, while one or more of the remaining user terminals 20 remain connected to server 1A. Server 1A may provide a first resource allocation to one or more of the remaining user terminals 20, and server 1B may provide a second resource allocation to one or more of the remaining user terminals 20.
[0052] [Server-Based Virtual Space Provision Method] Next, the method by which Server 1 provides virtual space will be described. Figure 5 is a flowchart showing an example of the virtual space provision method. This process is executed, for example, when a new user terminal 20 connects to or disconnects from Server 1. This process is also executed periodically on Server 1. First, the multiplayer processing unit 2 provides virtual space to multiple user terminals 20 (step S11). Next, the resource allocation change unit 5 changes the resource allocation to each of the multiple user terminals 20 based on the operations performed on the virtual space by the multiple user terminals 20 (step S12). Specifically, the resource allocation change unit 5 increases the resource allocation to one or more priority user terminals 20A and decreases the resource allocation to one or more general user terminals 20B. Next, the multiple rendering units 3 generate virtual space images corresponding to each of the multiple user terminals 20 based on the changed resource allocation (step S13). The series of processes ends with step S13.
[0053] The steps of changing resource allocation (step S12) and generating virtual space images (step S13) will be explained in more detail. Figures 6 and 7 are flowcharts showing an example of a processing procedure based on resource allocation change with each server 1 as the control unit. First, the detection unit 4 detects whether character C is looking at an advertisement AD in the virtual space (step S21). The detection unit 4 may determine that the character is looking at an advertisement if the advertisement is displayed in the center of the virtual space screen shown on the display of each user terminal 20. If the detection unit 4 detects that character C is looking at an advertisement AD in the virtual space (step S21: YES), the resource allocation change unit 5 determines whether the advertisement AD that character C is looking at is subject to resource allocation change (step S22). The advertisement ADs placed in the virtual space may include both advertisements subject to resource allocation change and advertisements that are not subject to resource allocation change. For example, advertisement ADs with advertising fees above a certain amount become advertisements subject to resource allocation change. The multiplayer processing unit 2 may store whether each advertisement AD is subject to resource allocation change or not. The resource allocation modification unit 5, for example, accesses the multiplayer processing unit 2 to determine whether the advertisement AD that character C is looking at is subject to resource allocation modification.
[0054] If character C does not pay attention to the advertisement (Step S21: NO), or if the advertisement that character C pays attention to is not subject to resource allocation change (Step S22: NO), the resource allocation change unit 5 determines whether character C has purchased a chargeable item (Step S23). If character C has not purchased a chargeable item (Step S23: NO), the resource allocation change unit 5 does not change the resource allocation, and the output unit 7 outputs the video to multiple user terminals 20 without changing the resolution (Step S24).
[0055] If the advertisement AD that character C is watching is subject to resource allocation change (Step S22: YES), the resource allocation change unit 5 changes the resolution settings to increase the resolution for one or more priority user terminals 20A and decrease the resolution for one or more general user terminals 20B based on the advertising fee (Step S25). The resource allocation change unit 5 calculates the amount of resolution change based, for example, on the correspondence table and calculation formula between advertisement AD and advertising fee stored in the multi-play processing unit 2. The resource allocation change unit 5 may then add the calculated change amount to the resolution allocated to one or more priority user terminals 20A, while subtracting it from the resolution allocated to one or more general user terminals 20B. If character C purchases a chargeable item (Step S23: YES), the resource allocation change unit 5 changes the resolution settings to increase the resolution for one or more priority user terminals 20A and decrease the resolution for one or more general user terminals 20B based on the purchase amount (Step S26). The resource allocation modification unit 5 calculates the amount of resolution change based, for example, on a correspondence table and calculation formula between billable items and amounts stored in the multiplayer processing unit 2. The resource allocation modification unit 5 may then add the calculated change amount to the resolution allocated to one or more priority user terminals 20A, while subtracting it from the resolution allocated to one or more general user terminals 20B.
[0056] Next, the resource allocation change unit 5 determines whether the changed resolution is within the total resources of server 1 (e.g., CPU usage, memory usage, network bandwidth, etc.) (step S27). If the resolution is within the total resources of server 1 (step S27: YES), server 1 continues to operate independently, and the multiple rendering units 3 generate virtual space images based on the resolution for each user terminal 20 (step S28). Then, the output unit 7 outputs the images at the resolution for each user terminal 20 to each user terminal 20 (step S29).
[0057] After step S29, the resource allocation change unit 5 determines whether each user terminal 20 has met the resolution reset condition (step S30). The resolution reset condition is, for example, when character C has watched the advertisement to the end. If each user terminal 20 has met the resolution reset condition (step S30: YES), the resource allocation change unit 5 restores the changed resolution, and the output unit 7 outputs the video at the original resolution to the multiple user terminals 20 (step S31). Step S31 marks the end of the series of processes.
[0058] If the resolution is not within the total resource capacity of server 1 (step S27: NO), the resource allocation change unit 5 requests another server 1 to supplement the resource allocation (step S32). The server 1 that was originally running will be referred to as server 1A, and the other server 1 as server 1B. The supplement request includes, for example, the identification numbers and address information of multiple user terminals connected to server 1A. After step S32, server 1A switches one or more of the multiple user terminals 20 to connect to server 1B, while one or more of the multiple user terminals 20 remain connected to server 1A (step S33). Switching here may also mean that server 1A disconnects from one or more of the priority user terminals 20A. Server 1B connects to one or more priority user terminals 20A based on the supplement request received from server 1A.
[0059] The resource allocation change unit 5 of server 1A allocates the first resource allocation to one or more general user terminals 20B, and the resource allocation change unit 5 of server 1B allocates the second resource allocation to one or more priority user terminals 20A. Then, the multiple rendering units 3 of server 1A generate video of the virtual space for one or more general user terminals 20B (step S34). After that, the output unit 7 outputs the video to one or more general user terminals 20B (step S35).
[0060] After step S34, the resource allocation change unit 5 of server 1A determines whether it has received a resolution reset signal from server 1B and whether one or more general user terminals 20B have met the resolution reset conditions (step S36). The resolution reset signal includes, for example, the identification numbers and address information of multiple user terminals connected to server 1A.
[0061] Server 1A receives a resolution reset signal from Server 1B, and if the resolution reset conditions are met (Step S36: YES), it connects to all user terminals 20 (Step S37). Subsequently, the resource allocation change unit 5 restores the changed resolution, and the output unit 7 outputs the video at the original resolution to the multiple user terminals 20 (Step S31). Step S31 marks the end of the series of processes.
[0062] The processing of the other server 1 and the synchronization server 10 when the resource allocation change unit 5 requests another server 1 to supplement its resource allocation will be explained with reference to Figures 8 and 9. Let's continue by referring to the originally running server 1 as server 1A and the other server 1 as server 1B. First, because the changed resolution exceeds the total resource capacity of server 1A (step S41), the resource allocation change unit 5 of server 1A requests server 1B to supplement its resource allocation. Subsequently, server 1A switches one or more of the multiple user terminals 20 to connect to server 1B, while one or more of the multiple user terminals 20 remain connected to server 1A (step S42). For example, server 1A disconnects from one or more of the priority user terminals 20A, and server 1B connects to one or more of the priority user terminals 20A based on the supplementation request received from server 1A. Multiple rendering units 3 of server 1A generate virtual space images for one or more general user terminals 20B in the first resource allocation (step S43), and multiple rendering units 3 of server 1B generate virtual space images for one or more priority user terminals 20A in the second resource allocation (step S44).
[0063] In steps S42 and S43, the synchronization server 10 maintains consistency in processing between server 1A and server 1B. For example, the synchronization server 10 synchronizes the video generated by the multiple rendering units 3 of server 1A with the video generated by the multiple rendering units 3 of server 1B, and transmits the synchronized video to each server at their respective resolutions. The output unit 7 of server 1A outputs the synchronized video received from the synchronization server 10 to one or more general user terminals 20B (step S45), and the output unit 7 of server 1B outputs the synchronized video received from the synchronization server 10 to one or more priority user terminals 20A (step S46).
[0064] After step S46, the resource allocation change unit 5 of server 1B may send a resolution reset signal to server 1A when one or more priority user terminals 20A satisfy the resolution reset condition (step S47). When the resource allocation change unit 5 of server 1A receives the resolution reset signal from server 1B and one or more general user terminals 20B satisfy the resolution reset condition (step S48), server 1A connects to all user terminals 20 (step S49). Subsequently, the resource allocation change unit 5 restores the changed resolution, and the output unit 7 outputs the video at the original resolution to the multiple user terminals 20 (step S50). The series of processes ends with step S50.
[0065] Even if the number of user terminals 20 connected to a single server 1 exceeds the allowable number of connections, server 1 may request other servers 1 to supplement its resource allocation. Figure 10 is a flowchart showing an example of a series of processing steps based on the number of user terminals 20 connections. This process is executed, for example, when a new user terminal 20 connects to or disconnects from server 1. This process is also executed periodically on server 1. First, the detection unit 4 detects the number of connections of multiple user terminals 20 connected to server 1 (step S51). Then, the resource allocation change unit 5 determines whether the number of user terminals 20 connections is within the allowable number of connections (step S52). If the number of user terminals 20 connections is within the allowable number of connections (step S52: YES), server 1 continues to operate independently and outputs virtual space video to all user terminals 20 (step S53). On the other hand, if the number of user terminals 20 connections exceeds the allowable number of connections (step S52: NO), the resource allocation change unit 5 of server 1 requests other servers 1 to supplement its resource allocation (step S54). The server that was originally running will be designated as Server 1A, and another server 1 will be designated as Server 1B. After step S54, for example, Server 1A switches one or more of the user terminals 20 out of the multiple user terminals 20 to connect to Server 1B, while one or more of the remaining user terminals 20 out of the multiple user terminals 20 remain connected to Server 1A (step S55). The resource allocation change unit 5 of Server 1A allocates the first resource allocation to one or more of the remaining user terminals 20, and the resource allocation change unit 5 of Server 1B allocates the second resource allocation to one or more of the remaining user terminals 20. In this case, the first resource allocation and the second resource allocation may be the same or different. Then, Server 1A outputs video to one or more of the remaining user terminals 20 (step S56).
[0066] The processing of the other server 1 and the synchronization server 10 when the resource allocation change unit 5 requests another server 1 to supplement resource allocation will be explained with reference to Figure 11. Let's continue by referring to the originally running server 1 as server 1A and the other server 1 as server 1B. First, because the number of user terminals 20 exceeds the allowable number of connections (step S61), the resource allocation change unit 5 of server 1A requests server 1B to supplement resource allocation. Server 1A switches one or more of the user terminals 20 to connect to server 1B, while one or more of the remaining user terminals 20 remain connected to server 1A (step S62). Subsequently, the multiple rendering units 3 of server 1A generate virtual space images for one or more of the remaining user terminals 20 in the first resource allocation (step S63), and the multiple rendering units 3 of server 1B generate virtual space images for one or more of the user terminals 20 in the second resource allocation (step S64). In steps S63 and S64, the synchronization server 10 maintains consistency in processing between server 1A and server 1B. For example, the synchronization server 10 synchronizes the video generated by the multiple rendering units 3 of server 1A with the video generated by the multiple rendering units 3 of server 1B and transmits the synchronized video to each server. The output unit 7 of server 1A outputs the synchronized video received from the synchronization server 10 to one or more remaining user terminals 20 (step S65), and the output unit 7 of server 1B outputs the synchronized video received from the synchronization server 10 to one or more of the user terminals 20 (step S66).
[0067] In the processing procedure based on the number of connected user terminals 20 shown in Figure 10, server 1A may connect to all user terminals 20 if it receives a reset signal from server 1B or if the resolution reset condition is met. In this case, for example, the number of user terminals connected to each other is periodically transmitted and received between server 1A and server 1B. If the number of one or more user terminals 20 connected to server 1B decreases and the sum of that number and the number of one or more remaining user terminals 20 connected to server 1A becomes less than or equal to the allowable number of connections for server 1A, server 1B may send a reset signal to server 1A. Alternatively, if the number of one or more remaining user terminals 20 connected to server 1A decreases and the sum of that number and the number of one or more user terminals 20 connected to server 1B becomes less than or equal to the allowable number of connections for server 1A, server 1A may determine that the resolution reset condition has been met.
[0068] The processing procedure based on resource allocation changes shown in Figures 6 and 7 and the processing procedure based on the number of connected user terminals 20 shown in Figure 10 may be executed independently or in combination. When executed in combination, for example, after server 1A outputs video to one or more of the remaining user terminals 20 in step S56, the processing procedure based on resource allocation changes may be executed for server 1A from step S21. Alternatively, after server 1B outputs video to one or more of the user terminals 20 in step S56, the processing procedure based on resource allocation changes may be executed for server 1B from step S21.
[0069] In the processing procedure based on resource allocation changes, in step S33, for example, server 1A may switch one or more general user terminals 20B from the multiple user terminals 20 to connect to server 1B, while one or more priority user terminals 20A from the multiple user terminals 20 remain connected to server 1A. In this case, the resource allocation change unit 5 of server 1A allocates the second resource allocation to one or more priority user terminals 20A, and the resource allocation change unit 5 of server 1B allocates the first resource allocation to one or more general user terminals 20B.
[0070] [Operation and Effects] In the server 1 and the virtual space provision method described above, the resource allocation assigned to each of the user terminals 20 is changed based on the operations of the user terminals 20. This makes it easier to suppress the increase in the processing load of the server 1 compared to when the virtual space is always generated based on a constant resource allocation. Therefore, the server 1 can perform processing while reducing the processing load.
[0071] The resource allocation modification unit 5 increases the resource allocation to user terminals 20 that meet the conditions for resource allocation modification (priority user terminals 20A) and decreases the resource allocation to user terminals 20 that do not meet the conditions (general user terminals 20B). By increasing or decreasing resource allocation for each user terminal 20, the increase in the processing load on the server 1 can be further suppressed. In addition, by prioritizing the increase in resource allocation to user terminals 20 that meet the conditions, the satisfaction of high-priority users can be improved.
[0072] Multiple rendering units 3 (generation units) render and generate images of the virtual space according to resource allocation. This allows the user to be notified in an easily understandable way when resource allocation has changed.
[0073] The virtual space includes the object being watched, and the resource allocation change unit 5 changes the resource allocation when at least one of the multiple characters C, operated by multiple user terminals 20, looks at the object being watched. This allows for a decision to change the resource allocation based on a simple judgment, such as whether or not at least one of the multiple characters C has looked at the object being watched, further reducing the processing load on the server 1 and making the conditions for changing the resource allocation easier to understand.
[0074] The objects of attention include advertisements (AD), and the resource allocation change unit 5 changes the resource allocation of the user terminal 20 based on the advertising fee of the advertisement seen by character C. This allows, for example, that high-quality advertisements can be provided to the user by changing the resource allocation according to the advertising fee.
[0075] The virtual space includes items subject to billing, and the resource allocation change unit 5 changes the resource allocation of the user terminals 20 when at least one of the multiple characters C operated by the multiple user terminals 20 purchases an item subject to billing. This allows for a decision to change resource allocation based on a simple judgment, such as whether or not at least one of the multiple characters C has purchased an item subject to billing, further reducing the processing load on the server 1 and making the conditions for changing resource allocation easier to understand.
[0076] The resource allocation modification unit 5 modifies at least one of the resolution, bitrate, and frame rate of the virtual space video as the resource allocation. As a result, for example, a user terminal 20 with increased resource allocation can process data smoothly in the virtual space, thereby improving the satisfaction of high-priority users.
[0077] The resource allocation modification unit 5 requests another server 1 to supplement the resource allocation if the total resource allocation exceeds a predetermined total resource amount. This prevents server 1 from operating beyond its processing load limit, thus further suppressing the increase in server 1's processing load.
[0078] In a system comprising a server 1A that provides a virtual space to multiple user terminals 20 with a predetermined first resource allocation, and a server 1B that provides a virtual space to multiple user terminals 20 with a predetermined second resource allocation, server 1A requests server 1B to provide a virtual space based on operations performed on the virtual space by the multiple user terminals 20, and server 1B provides the virtual space to the user terminals in response to the request. This allows for a margin in the processing load of servers 1A and 1B, and further reduces the processing load on the servers.
[0079] The apparatus and method of the present disclosure have the following configurations: [1] an apparatus comprising: a providing unit that provides a virtual space to a plurality of user terminals; a resource allocation changing unit that changes the resource allocation assigned to each of the plurality of user terminals based on operations performed by the plurality of user terminals on the virtual space; and a generation unit that generates the virtual space corresponding to each of the plurality of user terminals based on the resource allocation changed by the resource allocation changing unit. [2] the apparatus according to [1], wherein the resource allocation changing unit increases the resource allocation to user terminals among the plurality of user terminals that satisfy the conditions for changing the resource allocation, and decreases the resource allocation to user terminals that do not satisfy the conditions. [3] the apparatus according to [1] or [2], wherein the generation unit renders and generates an image of the virtual space according to the resource allocation. [4] the apparatus according to any one of [1] to [3], wherein the virtual space includes a gaze object, and the resource allocation changing unit changes the resource allocation when at least one of a plurality of characters operated by the plurality of user terminals looks at the gaze object. [5] The apparatus according to [4], wherein the object of attention includes an advertisement, and the resource allocation modification unit modifies the resource allocation of the user terminal based on the advertising fee of the advertisement seen by the character. [6] The apparatus according to any one of [1] to [5], wherein the virtual space includes a chargeable item, and the resource allocation modification unit modifies the resource allocation of the user terminal when at least one of the multiple characters operated by the multiple user terminals purchases the chargeable item. [7] The apparatus according to any one of [1] to [6], wherein the resource allocation modification unit modifies at least one of the resolution, bitrate, and frame rate of the video of the virtual space as the resource allocation. [8] The apparatus according to any one of [1] to [7], wherein the resource allocation modification unit requests another server to supplement the resource allocation if the sum of the resource allocations exceeds a predetermined total amount of resources.[9] A system comprising: a first device that provides a virtual space to a plurality of user terminals with a predetermined first resource allocation; and a second device that provides the virtual space to the plurality of user terminals with a predetermined second resource allocation, wherein the first device requests the second device to provide the virtual space based on operations on the virtual space by the plurality of user terminals, and the second device provides the virtual space to the user terminals in response to the request.
[10] A method for a device that provides a virtual space to a plurality of user terminals, comprising: providing a virtual space to a plurality of user terminals; changing the resource allocation assigned to each of the plurality of user terminals based on operations on the virtual space by the plurality of user terminals; and generating the virtual space corresponding to each of the plurality of user terminals based on the changed resource allocation.
[0080] The block diagrams used in the description of the above embodiments show functional units. These functional blocks (components) are realized by any combination of at least one of hardware and software. Furthermore, the method of realizing each functional block is not particularly limited. That is, each functional block may be realized using one device that is physically or logically coupled, or it may be realized using two or more physically or logically separated devices that are directly or indirectly connected (for example, using wired or wireless connections). A functional block may also be realized by combining software with the one or more of the above devices.
[0081] Functions include, but are not limited to, judgment, decision, determination, calculation, calculation, processing, derivation, investigation, exploration, confirmation, reception, transmission, output, access, resolution, selection, selection, establishment, comparison, assumption, expectation, assumption, broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocating (mapping), and assigning. For example, a functional block (configuration part) that enables transmission is called a transmitting unit or transmitter. In all cases, as mentioned above, the method of implementation is not particularly limited.
[0082] For example, the server 1 in one embodiment of the present disclosure may function as a computer that processes the wireless communication method of the present disclosure. Figure 12 is a diagram showing an example of the hardware configuration of the server 1 according to one embodiment of the present disclosure. The server 1 described above may be physically configured as a computer device including a processor 1001, memory 1002, storage 1003, communication device 1004, input device 1005, output device 1006, bus 1007, etc. The user terminal 20 may also have a configuration similar to the hardware described herein.
[0083] In the following explanation, the term "device" can be replaced with "circuit," "device," "unit," etc. The hardware configuration of Server 1 may include one or more of the devices shown in the diagram, or it may be configured to omit some of the devices.
[0084] Each function in server 1 is realized by loading predetermined software (programs) onto hardware such as the processor 1001 and memory 1002, which allows the processor 1001 to perform calculations, control communication by the communication device 1004, and control at least one of data reading and writing in the memory 1002 and storage 1003.
[0085] The processor 1001 controls the entire computer, for example, by running an operating system. The processor 1001 may be composed of a central processing unit (CPU) that includes interfaces with peripheral devices, control devices, arithmetic units, registers, etc. For example, each function in server 1 may be implemented by the processor 1001. The processor 1001 may also be configured to include a GPU (Graphics Processing Unit). For example, the rendering unit 3 shown in Figure 1 may be implemented by the processor 1001.
[0086] Furthermore, the processor 1001 reads programs (program code), software modules, data, etc., from at least one of the storage 1003 and the communication device 1004 into the memory 1002 and executes various processes accordingly. The program used is one that causes the computer to execute at least a part of the operations described in the above embodiment. For example, each function in the server 1 may be implemented by a control program stored in the memory 1002 and running on the processor 1001, and other functional blocks may be implemented similarly. The above-described processes have been explained as being executed by one processor 1001, but they may be executed simultaneously or sequentially by two or more processors 1001. The processor 1001 may be implemented by one or more chips. The program may also be transmitted from the network via a telecommunications line.
[0087] The memory 1002 is a computer-readable recording medium and may consist of at least one of the following: ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), RAM (Random Access Memory), etc. The memory 1002 may also be called a register, cache, main memory, etc. The memory 1002 can store executable programs (program code), software modules, etc., for carrying out a wireless communication method according to one embodiment of the present disclosure.
[0088] The storage 1003 is a computer-readable recording medium and may consist of at least one of the following: an optical disc such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disk, a magneto-optical disk (e.g., a compact disc, a digital multipurpose disc, a Blu-ray® disc), a smart card, flash memory (e.g., a card, a stick, a key drive), a floppy® disk, a magnetic strip, etc. The storage 1003 may also be called an auxiliary storage device. The storage medium provided by the server 1 may be, for example, a database, server, or other suitable medium including at least one of the memory 1002 and the storage 1003.
[0089] The communication device 1004 is hardware (transceiver / receiver device) for communicating between computers via at least one of a wired network and a wireless network, and is also referred to as a network device, network controller, network card, communication module, etc.
[0090] The input device 1005 is an input device that accepts input from an external source (e.g., a keyboard, mouse, microphone, switch, button, sensor, etc.). The output device 1006 is an output device that outputs to an external source (e.g., a display, speaker, LED lamp, etc.). The input device 1005 and the output device 1006 may be configured as an integrated unit (e.g., a touch panel).
[0091] Furthermore, each device, such as the processor 1001 and memory 1002, is connected by a bus 1007 for communicating information. The bus 1007 may be configured using a single bus, or different buses may be configured for each device.
[0092] Furthermore, server 1 may be configured to include hardware such as a microprocessor, a digital signal processor (DSP), an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), and an FPGA (Field Programmable Gate Array), and some or all of each functional block may be realized by such hardware. For example, processor 1001 may be implemented using at least one of these hardware components.
[0093] The processing procedures, sequences, flowcharts, etc., of each aspect / embodiment described in this disclosure may be reordered, provided they do not contradict each other. For example, the methods described in this disclosure present various step elements using exemplary order and are not limited to the specific order presented.
[0094] Input and output information may be stored in a specific location (e.g., memory) or managed using a management table. Input and output information may be overwritten, updated, or appended to. Output information may be deleted. Input information may be transmitted to other devices.
[0095] The determination may be made by a value represented by one bit (0 or 1), by a boolean value (true or false), or by a numerical comparison (for example, a comparison with a predetermined value).
[0096] Each aspect / embodiment described in this disclosure may be used individually, in combination, or switched between as needed during implementation. Furthermore, notification of specific information (e.g., notification that "X is") is not limited to explicit notification, but may also be implicit (e.g., by not providing such notification).
[0097] Although the present disclosure has been described in detail above, it will be clear to those skilled in the art that the present disclosure is not limited to the embodiments described herein. The present disclosure can be implemented in modified and altered forms without departing from the intent and scope of the present disclosure as defined by the claims. Therefore, the descriptions in the present disclosure are illustrative and not intended to be restrictive in any way.
[0098] Software should be broadly interpreted to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, functions, and so on, whether they are called software, firmware, middleware, microcode, hardware description languages, or by any other name.
[0099] Furthermore, software, instructions, information, etc., may be transmitted and received via a transmission medium. For example, if software is transmitted from a website, server, or other remote source using at least one of wired technology (such as coaxial cable, fiber optic cable, twisted pair, or digital subscriber line (DSL)) and wireless technology (such as infrared or microwave), then at least one of these wired and wireless technologies is included in the definition of a transmission medium.
[0100] The terms “system” and “network” as used in this disclosure are interchangeable.
[0101] Furthermore, the information, parameters, etc., described in this disclosure may be expressed using absolute values, relative values from a predetermined value, or corresponding other information.
[0102] As used in this disclosure, the terms “determining” and “determining” may encompass a wide variety of actions. “Determining” may include, for example, judging, calculating, computing, processing, deriving, investigating, looking up, searching, or inquiring (e.g., searching in a table, database, or other data structure), or ascertaining. “Determining” may also include receiving (e.g., receiving information), transmitting (e.g., sending information), inputting, outputting, or accessing (e.g., accessing data in memory). Furthermore, "judgment" and "decision" can include considering something as having been "judged" or "decided" after resolving, selecting, choosing, establishing, comparing, etc. In other words, "judgment" and "decision" can include considering something as having been "judged" or "decided" after some action. Also, "judgment (decision)" can be reinterpreted as "assuming," "expecting," or "considering."
[0103] The terms “connected,” “coupled,” or any variation thereof, mean any direct or indirect connection or coupling between two or more elements, and may include the presence of one or more intermediate elements between two elements that are “connected” or “coupled” with each other. The coupling or connection between elements may be physical, logical, or a combination thereof. For example, “connection” may be reinterpreted as “access.” As used in this disclosure, two elements may be considered to be “connected” or “coupled” with each other using at least one of one or more wires, cables, and printed electrical connections, and, in some non-limiting and non-exclusive examples, electromagnetic energy having wavelengths in the radio frequency domain, microwave domain, and optical (both visible and invisible) domain.
[0104] In this disclosure, the phrase "based on" does not mean "based solely on" unless otherwise specified. In other words, the phrase "based on" means both "based solely on" and "based at least on."
[0105] Any reference to elements using the designations “first,” “second,” etc., as used in this disclosure does not generally limit the quantity or order of those elements. These designations may be used in this disclosure as a convenient way to distinguish between two or more elements. Accordingly, references to the first and second elements do not imply that only two elements may be employed, or that the first element must precede the second element in any way.
[0106] Where the terms “include,” “including,” and variations thereof are used in this disclosure, these terms are intended to be inclusive, as is the term “comprising.” Furthermore, the term “or” as used in this disclosure is not intended to mean exclusive OR.
[0107] In this disclosure, if articles are added through translation, such as a, an, and the in English, this disclosure may include the fact that the noun following these articles is plural.
[0108] 1...Server (device), 1A...Server (first device), 1B...Server (second device), 2...Multiplayer processing unit (providing unit), 3...Rendering unit (generation unit), 5...Resource allocation change unit, 20...User terminal, AD...Advertisement, C...Character.
Claims
1. An apparatus comprising: a provisioning unit that provides a virtual space to multiple user terminals; a resource allocation modification unit that changes the resource allocation assigned to each of the multiple user terminals based on operations performed by the multiple user terminals on the virtual space; and a generation unit that generates the virtual space corresponding to each of the multiple user terminals based on the resource allocation modified by the resource allocation modification unit.
2. The apparatus according to claim 1, wherein the resource allocation modification unit increases the resource allocation to user terminals among the plurality of user terminals that satisfy the conditions for changing the resource allocation, and decreases the resource allocation to user terminals that do not satisfy the conditions.
3. The apparatus according to claim 1, wherein the generation unit renders and generates images of the virtual space according to the resource allocation.
4. The apparatus according to claim 1, wherein the virtual space includes an object to be gazed upon, and the resource allocation modification unit modifies the resource allocation when at least one of the multiple characters operated by the multiple user terminals views the object to be gazed upon.
5. The apparatus according to claim 4, wherein the object of attention includes an advertisement, and the resource allocation change unit changes the resource allocation of the user terminal based on the advertising fee of the advertisement seen by the character.
6. The apparatus according to claim 1, wherein the virtual space includes a chargeable item, and the resource allocation modification unit modifies the resource allocation of the user terminal when at least one of the multiple characters operated by the multiple user terminals purchases the chargeable item.
7. The apparatus according to claim 1, wherein the resource allocation modification unit modifies at least one of the resolution, bitrate, and frame rate of the video in the virtual space as the resource allocation.
8. The apparatus according to claim 1, wherein the resource allocation modification unit makes a request to another server to supplement the resource allocation if the total of the resource allocations exceeds a predetermined total amount of resources.
9. A system comprising: a first device that provides a virtual space to a plurality of user terminals with a predetermined first resource allocation; and a second device that provides the virtual space to the plurality of user terminals with a predetermined second resource allocation, wherein the first device requests the second device to provide the virtual space based on operations performed on the virtual space by the plurality of user terminals, and the second device provides the virtual space to the user terminals in response to the request.
10. A method for a device that provides a virtual space to multiple user terminals, comprising: providing a virtual space to multiple user terminals; changing the resource allocation assigned to each of the multiple user terminals based on operations performed by the multiple user terminals on the virtual space; and generating the virtual space corresponding to each of the multiple user terminals based on the changed resource allocation.