WO2024252695A1 - Program, information processing method, and information processing system - Google Patents
Program, information processing method, and information processing system Download PDFInfo
- Publication number
- WO2024252695A1 WO2024252695A1 PCT/JP2023/045378 JP2023045378W WO2024252695A1 WO 2024252695 A1 WO2024252695 A1 WO 2024252695A1 JP 2023045378 W JP2023045378 W JP 2023045378W WO 2024252695 A1 WO2024252695 A1 WO 2024252695A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- input
- user
- output control
- control unit
- virtual space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Definitions
- This disclosure relates to a program, an information processing method, and an information processing system.
- a service is already being provided that displays a space, such as an event venue, created in a virtual space on a user device. For example, in this virtual space, the user can gather information by viewing exhibits (see, for example, Patent Document 1).
- the user device can accept instructions for exhibits based on user input operations, such as selecting an exhibit or enlarging the display.
- the user device must also accept user instructions for things other than exhibits that are related to the virtual space. The user device must distinguish between these instructions depending on the input operation. Increasing the number of acceptable instructions makes the input operation more complicated. This may impair usability, such as ease of operation. Note that similar issues exist not only in virtual spaces at event venues where exhibits are placed, but also in other virtual spaces where objects are placed that display information for users to view.
- the program for solving the above problem causes one or more computers to function as a first output control unit that outputs a virtual space image of a three-dimensional virtual space seen from a virtual camera to a display viewed by a user, a second output control unit that outputs a projection screen that can be operated by the user within the virtual space image, an input coordinate acquisition unit that acquires input coordinates to an input device of the user, and an operation determination unit that determines whether or not an input operation by the user is an operation on an input area corresponding to the projection screen based on the acquired input coordinates, and when the operation determination unit determines that the input operation is not an operation on the input area, the first output control unit performs a first display control process for the three-dimensional virtual space other than control of the projection screen, and when the operation determination unit determines that the input operation is an operation on the input area, the second output control unit performs a second display control process on the projection screen according to the input coordinates.
- the information processing method for solving the above problem includes a first output control process in which one or more computers output a virtual space image of a three-dimensional virtual space seen from a virtual camera to a display viewed by a user, a second output control process in which a projection screen that can be operated by the user is output within the virtual space image, an input coordinate acquisition process in which input coordinates are acquired for the user's input device, and an operation determination process in which, based on the acquired input coordinates, it is determined whether the user's input operation is an operation on an input area corresponding to the projection screen, and if it is determined in the operation determination process that the input operation is not an operation on the input area, a first display control process is performed for the three-dimensional virtual space other than control over the projection screen, and if it is determined in the operation determination process that the input operation is an operation on the input area, a second display control process is performed on the projection screen according to the input coordinates.
- the information processing system that solves the above problem includes a first output control unit that outputs a virtual space image of a three-dimensional virtual space viewed from a virtual camera to a display viewed by a user, a second output control unit that outputs a projection screen that can be operated by the user within the virtual space image, an input coordinate acquisition unit that acquires input coordinates to an input device of the user, and an operation determination unit that determines whether or not the input operation of the user is an operation on an input area corresponding to the projection screen based on the acquired input coordinates, and when the operation determination unit determines that the input operation is not an operation on the input area, the first output control unit performs a first display control process for the three-dimensional virtual space other than control of the projection screen, and when the operation determination unit determines that the input operation is an operation on the input area, the second output control unit performs a second display control process on the projection screen according to the input coordinates.
- FIG. 1 is a schematic diagram illustrating an example of an information processing system according to a first embodiment.
- FIG. 2 is a diagram illustrating hardware of a device such as a user device in the first embodiment.
- FIG. 2 is a block diagram illustrating functions of a user device according to the first embodiment.
- FIG. 2 is a block diagram illustrating functions of a management server according to the first embodiment.
- FIG. 2 is a diagram illustrating user management information according to the first embodiment.
- FIG. 2 is a diagram illustrating view tally information according to the first embodiment.
- FIG. 4 is a diagram illustrating performance information according to the first embodiment.
- FIG. 2 is a diagram illustrating a virtual space according to the first embodiment.
- 4A to 4E are diagrams illustrating examples of input operations received by the user device of the first embodiment.
- FIG. 5 is a flowchart showing a processing procedure of a user device according to the first embodiment
- 5 is a flowchart showing a processing procedure of a user device according to the first embodiment
- FIG. 2 is a diagram illustrating a virtual space screen displayed on a user device according to the first embodiment.
- FIG. 2 is a diagram illustrating a virtual space screen displayed on a user device according to the first embodiment.
- FIG. 2 is a diagram illustrating a virtual space screen displayed on a user device according to the first embodiment.
- FIG. 2 is a diagram illustrating a virtual space screen displayed on a user device according to the first embodiment.
- 13A to 13C are diagrams illustrating transmission and reception of input operation data in a second embodiment.
- FIG. 11 is a diagram illustrating a virtual space screen displayed on a user device according to a second embodiment.
- the information processing system 11 includes a management server 12 and a user device 20.
- the information processing system 11 provides a service of outputting an image of a three-dimensional virtual space (hereinafter referred to as virtual space) to a user device 20.
- virtual space the virtual position of the user 10 is movable.
- the virtual space is also called a world or a field.
- the information processing system 11 is a system that distributes a video of the virtual space displayed by one user 10 to other users 10, or a system in which the user device 20 outputs an image of the three-dimensional virtual space without distributing such a video.
- the information processing system 11 is described as a system that distributes videos.
- the management server 12 is managed by a PF provider that provides a platform (PF) for distributing and viewing videos in a virtual space.
- the web server 13 is managed by a publisher.
- the publisher uses the platform to provide resources, which are information on products or services, to users 10.
- the resources are associated in advance with the virtual space in which the resources are published.
- the resources published in a specified area of the virtual space are associated with this publisher.
- the resources published in a specified area of the virtual space are associated with the multiple publishers.
- the publisher has the advantage of being able to advertise its own products or services by providing its own information to users 10.
- the PF provider may receive compensation from the publisher for making the platform available to the publisher. Alternatively, the PF provider may be the publisher.
- the management server 12 comprises one or more devices.
- the management server 12 may be a group of servers.
- the management server 12 is connected to user devices 20 via a network such as the Internet.
- the user devices 20 are devices on which a program for distributing and viewing videos is installed (implemented), or devices used by users 10 who have registered with a video providing service for distributing and viewing videos.
- the management server 12 is responsible for relaying data related to video distribution between the user devices 20.
- User 10A is a user who distributes videos using user device 20A, i.e., a distribution user
- user 10B is a user who watches the distributed videos on user device 20B, i.e., a viewing user.
- One user 10 can be a distribution user 10A at one time and a viewing user 10B at another time. That is, when user 10 distributes videos, he is a distribution user 10A, and when he watches videos, he is a viewing user 10B.
- user device 20A that distributes videos is called a distribution user device
- user device 20 that outputs videos for viewing by users is called a viewing user device 20B.
- User device 20 can be switched between a mode for distributing videos, i.e., a distribution mode, and a mode for outputting videos for viewing, i.e., a viewing mode.
- a mode for distributing videos i.e., a distribution mode
- a mode for outputting videos for viewing i.e., a viewing mode.
- user 10A and viewing user 10B a mode for outputting videos for viewing 10.
- user devices 20 when describing without distinguishing between distribution user 10A and viewing user 10B, they will simply be called user 10.
- the broadcasting user device 20A and the viewing user device 20B without distinguishing between them they will simply be referred to as user devices 20.
- the user device 20 is a smartphone (multi-function phone terminal), a tablet terminal, a personal computer, a console game machine, a wearable computer, or any other information processing device capable of playing videos other than these devices.
- the wearable computer may have a screen on which the user can watch videos, and may be, for example, a head-mounted display worn on the user's head, or a glasses-type wearable terminal.
- the user device 20 may be a device that operates independently, or may be a set of multiple devices that are connected so that various data can be transmitted and received between each other.
- An example of the latter user device 20 is, for example, a system that performs tracking using an outside-in method.
- the user device 20 includes a processing circuit 100, a storage 104, a sensor unit 112, a display 109, an input device 110, and peripheral devices 111.
- the user device 20 illustrated in FIG. 2 includes a sensor unit 112 that detects the movement of the broadcast user 10A. Note that the sensor unit 112 may be a separate device from the user device 20 and may be communicably connected to the user device 20.
- the processing circuit 100 includes a CPU 101, which is a processor that executes one or more of the control processes disclosed in this specification, and a memory 102. Processing data and instructions may be stored in the memory 102. In addition, these processing data and instructions may be stored in a storage 104, which is a storage medium disk such as a hard drive (HDD) or a portable storage medium, or may be stored in a storage medium provided separately from the processing circuit 100.
- the storage 104 is connected to the CPU 101 via a storage controller 103 and a bus 108.
- an application is stored in the storage 104.
- the application includes a program for distributing and viewing videos, and various data necessary for executing the program.
- Each function disclosed herein may be implemented using circuitry that may include, but is not limited to, a CPU 101, general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), other conventional circuits, and/or combinations thereof, configured or programmed to perform the disclosed functions.
- a processor is a processing circuit or circuitry because it includes transistors and other circuits therein.
- a processor may be a programmed processor that executes a program stored in a memory.
- a unit such as a processing circuit, or means, is hardware that performs or is programmed to perform the functions mentioned.
- the hardware may be any hardware disclosed herein or otherwise known that is programmed or configured to perform the functions mentioned.
- the processor is not limited by the form of computer-readable medium on which the instructions of the process are stored.
- the instructions may be stored on a CD, DVD, FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or other non-transitory computer-readable medium of an information processing device with which the processing circuit 100 communicates, such as a server or computer.
- the process may also be stored in network-based storage, cloud-based storage, or other mobile-accessible storage and executable by the processing circuit 100.
- the hardware elements for implementing the processing circuit 100 may be implemented by various circuit elements. Furthermore, each function disclosed in this specification may be implemented by a circuit including one or more processing circuits.
- the processing circuit 100 also includes a network controller 106 for connecting to the network NW.
- the network NW may be a public network such as the Internet, or a private network such as a local area network (LAN) or a wide area network (WAN), or any combination thereof, and may also include a public switched telephone network (PSTN) or an integrated services digital network (ISDN, registered trademark) or a sub-network.
- PSTN public switched telephone network
- ISDN integrated services digital network
- the network NW may also be a wired network such as an Ethernet network, a universal serial bus (USB) cable, or a wireless network such as a cellular network including 3G, 4G and 5G wireless cellular systems.
- the wireless network may also be Wi-Fi, a wireless LAN, Bluetooth, or other known forms of wireless communication.
- the network controller 106 may be compliant with other direct communication standards such as Bluetooth, near field communication (NFC), infrared, etc.
- the processing circuit 100 further includes a display controller 105 and an input/output interface 107.
- the display controller 105, the network controller 106, and the input/output interface 107 are connected to a bus 108.
- the display controller 105 is connected to a display 109.
- the input/output interface 107 is connected to an input device 110 and a peripheral device 111.
- the sensor unit 112 is one or more sensors that detect data indicating the movement of the user 10.
- the movement of the user 10 includes face motion indicating a change in the user's facial expression and body motion indicating a change in the relative position of the user's body with respect to the sensor unit 112. Face motion includes movements such as blinking and opening and closing of the mouth.
- a publicly known sensor unit can be used as the sensor unit 112.
- the sensor unit 112 has a sensor that measures the distance to the measurement object by irradiating the measurement object with light.
- a True Depth sensor or a "LIDAR" Light Detection and Ranging, or Laser Imaging Detection and Ranging
- the light-emitting section of the sensor unit 112 projects a dot pattern consisting of tens of thousands of invisible dots (points) onto the user's face, etc., using a dot projector.
- the sensor unit 112 detects and analyzes the reflected light of the dot pattern to form a depth map of the face and capture an infrared image of the face, etc. This allows the sensor unit 112 to capture accurate face data.
- the calculation processing unit of the sensor unit 112 generates various information based on the depth map and the infrared image, and compares the information with registered reference data to calculate the depth of each point on the face (the distance between each point and the near-infrared camera) and positional deviations other than in the depth direction.
- the sensor unit 112 includes a ToF sensor that measures the time of flight (time of flight) from when light is irradiated toward a measurement target such as a user's face until it is reflected back, or the phase difference between the irradiated light and the reflected light, using a distance measurement method other than the above-mentioned method.
- the sensor unit 112 may include a camera that captures the user's face and an image processing unit that performs image processing on the data captured by the camera. The ToF sensor calculates the distance to the measurement target based on the time of flight or phase difference.
- the sensor unit 112 outputs the facial motion and body motion to the processing circuit 100 as tracking data.
- the tracking data is included in the motion data.
- Motion data refers to data in general for moving an avatar object corresponding to the user 10.
- the motion data includes emote data in addition to tracking data.
- Emo data is data for making the avatar object perform a pre-registered specific movement such as "clap”. Below, this pre-registered movement of the avatar object is referred to as an "emote".
- the sensor unit 112 may also have a function of tracking not only the user's face but also their hands (hand tracking).
- the sensor unit 112 may also include a sensor that detects the position or orientation of a human body part other than the hand.
- the sensor unit 112 may further include a sensor that detects speed or acceleration, a sensor that detects direction or orientation (such as a gyro sensor), etc.
- the sensor unit 112 may have a spatial mapping function that recognizes objects in the real space where the user exists based on the detection results of the various sensors described above, and maps the recognized objects onto a spatial map, i.e., creates a map of the positions of the recognized objects in the real space.
- the input device 110 may be a touch panel, a keyboard, a mouse, a controller operated by the user's hands (e.g., a game controller such as a game pad or joystick), or an operation button provided on the housing of the user device 20.
- the controller may have various known sensors built in, such as an acceleration sensor, an inertial measurement sensor (IMU: Inertial Measurement Unit) such as a gyroscope, etc.
- the input device 110 may be a tracking device that identifies the user's hand movements, eye movements, head movements, gaze direction, etc.
- the user's instructions can be determined based on the user's hand movements, and various operations can be performed, such as starting or ending video distribution, rating messages and videos, and displaying specified objects.
- the peripheral device 111 includes a microphone that collects sounds in the real world, such as the voice of the user 10, and a speaker that outputs sound effects and the voices of other users 10, etc.
- a program included in the application stored in the storage 104 will be described.
- the program includes a native part implemented in the user device 20.
- the native part runs on an OS (Operating System) of the user device 20, and can access devices (physical resources) such as the storage 104 and a camera of the user device 20.
- the native part displays a video on the display 109 based on video data received from the management server 12.
- the program includes an in-app browser.
- the in-app browser is a component, such as WebView, that is incorporated into a program to realize a browser function.
- the WebView is, for example, an API (Application Programming Interface) such as SFSafariView or WKWebView.
- the in-app browser includes an analysis unit and an output control unit.
- the in-app browser acquires resources.
- the resources are, for example, web data.
- the web server 13 provides resources associated with the virtual space to the user device 20.
- the in-app browser is capable of acquiring resources from the web server 13 via the network.
- the web data is data necessary for displaying a browser screen on the display 109.
- the web data may include, for example, data written in HTML (Hyper Text Markup Language), data written in JavaScript (registered trademark) or the like, a CSS (Cascading Style Sheets) file, etc.
- HTML Hyper Text Markup Language
- JavaScript registered trademark
- CSS CSS
- the in-app browser's analysis unit interprets HTML, CSS, etc.
- the in-app browser's output control unit executes JavaScript (registered trademark).
- the program may launch an independent web browser (i.e., a web browser installed on the user device 20 separately from the in-app browser of the application) when a predetermined user operation is received.
- an independent web browser i.e., a web browser installed on the user device 20 separately from the in-app browser of the application.
- the program is described as having an in-app browser.
- the management server 12 has a processing circuit 100 and storage 104 similar to those of the user device 20.
- the management server 12 can omit the input device 110, the peripheral device 111, the sensor unit 112, the display 109, etc.
- the functions of the user device 20 will be described with reference to Fig. 3.
- the user device 20 functions as an input coordinate acquisition unit 21, an operation determination unit 22, a first output control unit 23, and a second output control unit 24 by the processing circuit 100 executing a program recorded in the storage 104.
- the first output control unit 23 outputs a virtual space image of the virtual space viewed from the virtual camera to a display 109 which is visually recognized by the user.
- the second output control unit 24 outputs a projection screen that can be operated by the user within the virtual space image.
- the resources obtained from the web server 13 are displayed on the projection screen.
- the input coordinate acquisition unit 21 acquires input coordinates, which are the coordinates of an input made to the input device 110 by a user.
- the input coordinate acquisition unit 21 acquires a series of input coordinates corresponding to the trajectory of a touch operation on the touch panel.
- the input coordinate acquisition unit 21 acquires a series of input coordinates corresponding to the trajectory of a drag of the mouse and input coordinates corresponding to a click.
- the operation determination unit 22 determines whether or not the input operation by the user 10 is an operation on an input area corresponding to the projection screen, based on the acquired input coordinates.
- the input area is a predetermined area within the virtual space screen displayed on the display 109.
- the first output control unit 23 performs a first display control process regarding the virtual space.
- the second output control unit 24 When the operation determination unit 22 determines that the input operation is an operation on the input area, the second output control unit 24 performs a second display control process on the projection screen according to the acquired coordinates. Furthermore, when the operation determination unit 22 determines that the acquired series of coordinates changes continuously along the first axis, i.e., that the input operation corresponds to a first scroll operation, the second output control unit 24 scrolls the projection screen in the direction of the first scroll operation.
- the second output control unit 24 scrolls the projection screen in the direction of the second scroll operation.
- the second scroll operation is an input operation in which the acquired series of coordinates changes continuously along the second axis.
- the second output control unit 24 When the operation determination unit 22 determines that the input operation includes only the second scroll operation, the second output control unit 24 performs a first display control process. When the operation determination unit 22 determines that the input operation is a selection operation for selecting an arbitrary position on the projection screen, the second output control unit 24 executes a process according to the position of the selection operation.
- the management server 12 will be described with reference to Fig. 4.
- the management server 12 functions as a distribution management unit 30, a browsing history information receiving unit 32, and a performance recording unit 33 by the processing circuit 100 executing a program recorded in the storage 104.
- the management server 12 also includes a user management information storage unit 34, a browsing tally information storage unit 36, and a performance information storage unit 37.
- the distribution management unit 30 transmits video data to the user device 20 for outputting a virtual space screen including a virtual space image to the display 109.
- the distribution management unit 30 transmits asset data to the user device 20 for drawing objects in the virtual space.
- the distribution management unit 30 receives data for drawing avatar objects, including motion data, from the distribution user device 20A, and transmits the received data to other user devices 20.
- the result recording unit 33 calculates the number of times each resource has been viewed based on the viewing history information, and records the number of times each resource has been viewed in the result information storage unit 37 as the result information of the resource.
- ⁇ Data structure> Each piece of information recorded in the management server 12 will be described with reference to FIGS.
- the user management information 40 is recorded for each user.
- the user management information 40 includes a user ID (identifier), which is user identification information, accumulated points, and coins.
- the accumulated points are points that are awarded for activities on an application or a platform that provides the application, such as distribution and viewing of videos, and are accumulated for each user 10.
- the accumulated points can be used as a consideration for a lottery (gacha) that can be executed on the platform, a consideration for a gift object, or a consideration for an item.
- a gift object is an object that a viewing user 10B provides to a distribution user 10A, etc. Items include items that are worn by an avatar object and items used in a game provided by the platform.
- the accumulated points may also be exchangeable for currency used in the real world. Coins differ from the accumulated points in that the user 10 can purchase them. Coins may be awarded according to the activity (distribution status or viewing status) of the user 10. The coins may also be used as a consideration for a lottery, a consideration for a gift object, etc., like the accumulated points.
- FIG. 6 shows an example of the viewing summary information 42 recorded in the viewing summary information storage unit 36.
- the viewing summary information 42 is updated based on the viewing history information transmitted from the user device 20.
- the viewing summary information 42 includes a user ID, a URL (Uniform Resource Locator), a room ID, a viewing start time, a viewing end time, and a behavior history.
- the viewing start time is the time when the user device 20 connects to the web server 13 or the time when the user device 20 displays a resource associated with the virtual space.
- the viewing end time is the time when the user device 20 disconnects from the web server 13 or the time when the user device 20 ends displaying the resource.
- the behavior history indicates the behavior performed by the user 10 on the displayed resource. Examples of the behavior history include requesting materials on a resource, purchasing a product or the like on a resource, etc.
- FIG. 7 shows an example of performance information 43 recorded in performance information storage unit 37.
- Performance information 43 is recorded for each publisher.
- Publishers publish resources. Multiple resources may be associated with one publisher. Publishers can advertise products and services to users through resources displayed in the virtual space.
- the performance information 43 includes the publisher identifier, URL, user stay time, questionnaire response information, and number of views.
- the publisher identifier is an identifier assigned to the publisher.
- the user stay (view) time indicates the time each user 10 viewed the resource, or statistical information on those viewing times. This time can be calculated from the viewing start time and viewing end time in the viewing summary information 42.
- the user stay time may be recorded as the time that the user viewed the resource individually. Alternatively, the user stay time may be the average stay time of the user, that is, the average value of those individually recorded times.
- the questionnaire response information indicates the content of the questionnaire that the user 10 answered in the virtual space, that is, the user 10's response to the questionnaire in the virtual space.
- the number of views is the number obtained by aggregating the viewing history information and is the total number of times the resource was displayed.
- the management server 12 receives a video distribution request from the user device 20 of the user 10. At this time, the user 10 can specify a virtual space. When the management server 12 receives the distribution request and identification information of the specified virtual space, it generates a room (distribution slot) for the virtual space specified by the user 10. In addition, the management server 12 transmits data (asset data) for displaying the virtual space to the user device 20.
- the video can be delivered and viewed using one of the following methods: client rendering, browser rendering, video delivery, and server delivery.
- client rendering method is used.
- each user device 20 renders objects by executing a program.
- the user device 20 stores three-dimensional model data of avatar objects and objects other than avatar objects (hereinafter referred to as physical objects).
- the three-dimensional model data of avatar objects includes video data of the main body parts that make up the avatar object itself and the attachable parts that can be attached to the avatar object.
- the data of the main body parts includes polygon data, skeletal data (bones) for expressing the movement of the avatar object, texture data, etc.
- the attached parts include texture data, etc.
- the broadcasting user 10A can set the attached parts of the avatar object corresponding to him/her according to his/her preferences.
- the model data of physical objects other than avatar objects includes polygon data, texture data, etc.
- the first output control unit 23 performs drawing using video data including motion data and identification information (parts IDs) indicating parts of each object.
- the first output control unit 23 also transmits video data including motion data and coordinates of the avatar object to the management server 12.
- the first output control unit 23 also transmits part IDs indicating each part of the avatar object to the management server 12 at a predetermined timing (e.g., when distribution starts).
- the management server 12 transmits the video data to the viewing user device 20B, etc.
- the viewing user device 20B receives the data from the management server 12.
- the viewing user device 20B uses the received data to draw images of the avatar object and physical object of the broadcasting user 10A.
- the first output control unit 23 also transmits audio data based on the sound picked up by the microphone to the management server 12.
- the management server 12 transmits the audio data to the viewing user device 20B.
- a timestamp is attached to the motion data, audio data, etc.
- the first output control unit 23 of the viewing user device 20B receives video data and audio data for displaying the video from the management server 12. The first output control unit 23 then uses the video data to draw an image including an avatar object corresponding to the broadcast user 10A.
- the first output control unit 23 of the broadcasting user device 20A and the viewing user device 20B also receives data such as messages posted by other users from the management server 12.
- the first output control unit 23 generates video data by combining rendered images of avatar objects and other objects with posted messages, notifications, etc., and outputs the generated video data to the display 109.
- the first output control unit 23 also synchronizes audio data with the video data based on a timestamp and outputs it from the speaker.
- each user device 20 generates video using a client rendering method.
- the broadcasting user device 20A and the viewing user device 20B may display video using different methods.
- the broadcasting user device 20A may display video using a client rendering method
- the viewing user device 20B may display video using a browser rendering method.
- the user may be able to select the method for displaying video.
- some of the viewing user devices 20B may display video using a client rendering method, while other devices may display video using a browser rendering method.
- a virtual space 50 in this embodiment will be described with reference to Fig. 8.
- the virtual space 50 includes a plurality of objects 51.
- the objects 51 located in the virtual space 50 include an avatar object 52 and other physical objects 53.
- a world coordinate system 90 is set, which indicates a position in the virtual space.
- the world coordinate system is a coordinate system having an X-axis, a Y-axis, and a Z-axis.
- the world coordinate system 90 is also called a global coordinate system.
- the position of the object 51 can be specified by the coordinates of the world coordinate system 90.
- the coordinates specified in the world coordinate system 90 include coordinates (X, Y, Z) expressed in a Cartesian coordinate system. These coordinates may also include rotation coordinates (roll, pitch, yaw) for each coordinate axis.
- Each object 51 has its own object coordinate system 91 set.
- the object coordinate system 91 is a coordinate system having an X-axis, a Y-axis, and a Z-axis.
- the orientation, movement, etc. of the avatar object 52 can be specified by the coordinates of the Cartesian coordinate system or the rotation coordinates.
- a virtual camera 54 associated with each broadcast user 10A is positioned.
- a camera coordinate system 92 is set for the virtual camera 54.
- the camera coordinate system 92 includes coordinates (X, Y, Z) specified in a three-dimensional Cartesian coordinate system, as well as rotational coordinates (X ⁇ , Y ⁇ , Z ⁇ ) centered on each coordinate axis.
- the first output control unit 23 performs rendering based on the coordinates of objects included in a predetermined field of view (for example, a field of view cone having an approximately pyramidal shape) centered on the virtual optical axis of the virtual camera 54.
- the first output control unit 23 then outputs a two-dimensional image generated by rendering to the display 109.
- the rendering here refers to a drawing process that includes obtaining the position of the virtual camera 54, perspective projection, and hidden surface removal based on depth information associated with each object.
- the rendering may be at least one of these processes, or may further include processes such as shading and texture mapping.
- the position of the virtual camera 54 can be changed by at least one of the broadcasting user 10A and the viewing user 10B.
- the broadcasting user 10A can select a first-person perspective (avatar position) or a third-person perspective as a setting for the position of the virtual camera 54.
- the first output control unit 23 performs rendering with the position of the avatar's eyes coinciding or nearly coinciding with the position of the virtual camera 54.
- the line of sight extending from the front of the avatar object 52 nearly coincides with the optical axis of the virtual camera 54.
- an image is displayed on the display 109 as if the virtual space 50 is being viewed from the avatar object 52, i.e., through the eyes of the avatar.
- the first output control unit 23 sets the virtual camera 54 at a position around the avatar object 52.
- an image of the avatar object 52 can be displayed on the screen.
- the first output control unit 23 can change the position of the virtual camera 54 in the third-person perspective.
- an image may be generated using a multi-view camera in which one (or more) of virtual cameras 54 positioned at three or more positions, including a first-person viewpoint position, a third-person viewpoint position, and one or more other positions, is selected.
- the camera coordinate system 92 determines the camera orientation and operations such as panning and tilting.
- the first output control unit 23 changes at least one of the position and direction of the virtual camera 54 based on the operation of the user 10.
- the first output control unit 23 changes at least one of the position and direction of the virtual camera 54 based on the operation of the user 10 to move the avatar object 52.
- the virtual camera 54 may be associated with the avatar object 52 so as to maintain a positional relationship with respect to the avatar object 52.
- the first output control unit 23 causes the virtual camera 54 to follow the movement of the avatar object 52 during a period in which no camera operation is being performed.
- the first output control unit 23 acquires the movement direction indicated by the distribution user 10A as a first direction, converts the first direction into a second direction as a movement direction in the world coordinate system 90, and moves the avatar object 52 in the second direction.
- the first output control unit 23 moves the virtual camera 54 in the second direction while keeping the relative distance between the avatar object 52 and the virtual camera 54 constant.
- the user 10 can change at least one of the position and direction of the virtual camera 54 by an input operation.
- the first output control unit 23 changes the position of the virtual camera 54 based on a slide operation by the user 10.
- a browser screen 57 is output as a projection screen in the virtual space 50.
- the browser screen 57 is a screen projected onto a display object 58.
- the display object 58 is an object that has coordinates in the world coordinate system in the virtual space 50. Only one display object 58 may be provided in the virtual space 50, or multiple display objects 58 may be provided.
- a display object 58 may be provided for each of a number of exhibition booths.
- the display object 58 is an object for displaying resources made public by the exhibition booth owner.
- the display object 58 is, for example, a two-dimensional object with no thickness, or a three-dimensional object with a display surface. Note that an exhibition object 51 other than the display object 58 may be set as an exhibit in the exhibition booth.
- the second output control unit 24 reads web data identified by a specific URL using an in-app browser, and outputs a browser screen 57 based on the web data to a display object 58 using a technique such as texture mapping.
- the browser screen 57 may include images such as still images in JPEG, GIF, PNG, etc., and videos based on video data such as MPEG4.
- the browser screen 57 is displayed in the same manner as if it were displayed by a web browser separate from the in-app browser of the application. Note that details of the browser screen 57 are omitted in Figure 8.
- the first output control unit 23 converts coordinates P1 in the display area 97 displayed on the screen output to the display 109 into coordinates P2 on the browser screen 57 (see arrow 95 in Figure 8). An example of this coordinate conversion process will be described.
- An input coordinate system 93 is set in the virtual space 50.
- the input coordinate system 93 is a two-dimensional Cartesian coordinate system that specifies coordinates on the screen of the display 109.
- the Y axis of the input coordinate system 93 corresponds to the first axis.
- the X axis corresponds to the second axis.
- a UI area 55 and a browser area 56 are set.
- the browser area 56 corresponds to the input area.
- the coordinates on these areas are specified by the input coordinate system 93.
- the first output control unit 23 or the second output control unit 24 detects the position and direction of the input operation by acquiring the coordinates of the input operation by the user 10 for these areas.
- the first output control unit 23 or the second output control unit 24 determines the content of the user instruction corresponding to the input operation according to at least one of the position and direction of the input operation, and performs control according to the user instruction.
- the UI area 55 is an area (layer) that accepts operations on GUI (Graphical User Interface) elements such as buttons, text boxes, and icons.
- FIG. 8 shows UI areas 55A to 55D as the UI area 55. Although the UI area 55 itself is hidden, GUI elements (not shown in FIG. 8) are displayed within the UI area 55. That is, while the GUI elements within the UI area 55 are displayed on the virtual space screen, the UI area 55 itself is not displayed. In the example of FIG. 8, a GUI element such as a setting button is displayed within the UI area 55A. In the UI areas 55B and 55C, GUI elements such as a button for moving the avatar object 52 and a button for jumping are displayed, respectively. In the UI area 55D, a GUI element such as a text box in which a message can be input is displayed. Note that the UI areas 55A to 55D in FIG. 8 are simplified views of the actual screens.
- the browser area 56 is an area (layer) that accepts input operations for the browser screen 57.
- the coordinates of the browser area 56 can be specified by the input coordinate system 93.
- the first output control unit 23 sets the browser area 56 when the display conditions for the browser screen 57 are satisfied. At this time, the first output control unit 23 sets the browser area 56 so that the browser area 56 overlaps with the browser screen 57 when viewed from the virtual camera 54.
- the first output control unit 23 sets the browser area 56 to match the shape and size of the browser screen 57 as seen by the virtual camera 54. For example, when the browser screen 57 becomes larger on the screen as a result of the virtual camera 54 approaching the display object 58 in response to the operation of the user 10, the first output control unit 23 enlarges the browser area 56 to match the size of the browser screen 57. Similarly, when the browser screen 57 becomes smaller on the screen, the first output control unit 23 reduces the browser area 56 to match the size of the browser screen 57. Furthermore, when the relative angle between the virtual camera 54 and the browser screen 57 changes in response to the operation of the user 10, the first output control unit 23 deforms the browser area 56 to match the shape of the browser screen 57 on the screen.
- the operation determination unit 22 identifies the coordinates of the input to the browser area 56. In other words, the operation determination unit 22 identifies an input trajectory that corresponds to the trajectory of continuous input in the browser area 56. The operation determination unit 22 also converts the identified coordinates into coordinates on the browser screen 57. The coordinates on the browser screen 57 are identified in the browser screen coordinate system 94.
- the second output control unit 24 receives a request for display control based on input coordinates, which are coordinates in the browser screen coordinate system 94, from the operation determination unit 22.
- the second output control unit 24 performs second output control processing based on user instructions for controlling the browser screen 57. For example, when a series of input coordinates on the browser screen 57 are consecutive coordinates along the Y axis (positive Y direction and negative Y direction) of the browser screen coordinate system 94, the second output control unit 24 determines that an input operation for scrolling the browser screen 57 has been performed. Then, the second output control unit 24 scrolls the browser screen 57 in the same direction as the direction of the input operation.
- the operation determination unit 22 When the operation determination unit 22 acquires coordinates in the input coordinate system 93 other than the UI area 55 and the browser area 56 as input coordinates, it requests the first output control unit 23 to perform display control based on the acquired coordinates.
- the first output control unit 23 performs display control processing related to the virtual space 50.
- the input device 110 is a touch panel.
- An input operation on the touch panel is performed by contact with a finger or a stylus or the like.
- An input operation on the browser area 56 only needs to be executable by at least one of the broadcasting user 10A and the viewing user 10B.
- the operation determination unit 22 of that user device 20 accepts an input operation into the browser area 56.
- the operation determination unit 22 of that user device 20 does not accept an input operation into the browser area 56. In other words, only the broadcast user 10A can perform an input operation into the browser area 56.
- the virtual space screen 60 includes a virtual space image 62 including other objects 51 (not shown in FIG. 9), and GUI elements (not shown in FIG. 9).
- the direction parallel to the X axis of the input coordinate system 93 (positive X direction and negative X direction) is referred to as the horizontal direction.
- the positive X direction is the direction in which the X coordinate increases
- the negative X direction is the direction in which the X coordinate decreases.
- the direction parallel to the Y axis of the input coordinate system 93 (positive Y direction and negative Y direction) and perpendicular to the X axis is referred to as the vertical direction.
- the positive Y direction is the direction in which the Y coordinate increases
- the negative Y direction is the direction in which the Y coordinate decreases.
- the first output control unit 23 determines the moving direction of the position of the virtual camera 54 based on a predetermined condition.
- the determination of the direction indicated by the user 10 may be performed using a known method, and is not particularly limited. For example, when the user 10 performs an input operation that is diagonal to the X-axis and Y-axis, the first output control unit 23 compares the amount of change in the X-coordinate and the amount of change in the Y-coordinate of the input trajectory (vector). The first output control unit 23 then determines that the input operation is an input operation along the one of the two coordinate axes with the greater amount of change.
- the first output control unit 23 determines that the input operation is an input operation along the X-axis.
- the first output control unit 23 may determine the direction of the input operation based on the angle of the vector of the input trajectory.
- the user 10 can specify an input start position PA outside the UI area (not shown in FIG. 9) and outside the browser area 56 by a touch operation.
- the operation determination unit 22 acquires the input coordinates of the input start position PA.
- the user 10 may slide the touch position in the X-positive direction from the input start position PA to the input end position PB.
- the operation determination unit 22 acquires a series of input coordinates that change continuously from the input start position PA to the input end position PB in response to this sliding operation.
- the operation determination unit 22 requests the first output control unit 23 to perform display control based on the acquired input coordinates.
- the first output control unit 23 performs a first display control process.
- the position of the virtual camera 54 is changed. More specifically, the first output control unit 23 moves the position of the virtual camera 54 in a direction from the input start position PA toward the input end position PB (the X-positive direction in FIG. 9).
- the position of the virtual camera 54 may be moved parallel to the X-axis of the camera coordinate system 92, or may be moved in an arc so as to maintain a constant relative distance to a predetermined object 51 (e.g., an avatar object 52).
- the position of the virtual camera 54 may be moved in the positive Y direction (or negative Y direction).
- the user 10 can specify an input start position PC in the browser area 56.
- the operation determination unit 22 acquires the input coordinates of the input start position PC.
- the user 10 may slide the touch position in the negative Y direction from the input start position PC to the input end position PD.
- the operation determination unit 22 acquires a series of input coordinates that change continuously from the input start position PC to the input end position PD in response to this slide operation.
- the operation determination unit 22 requests the second output control unit 24 to perform display control based on the acquired input coordinates.
- the second output control unit 24 scrolls the browser screen 57 in the negative Y direction of the browser screen coordinate system 94 (the same direction as the negative Y direction of the input coordinate system 93). In other words, the second output control unit 24 displays a range that is not displayed on the browser screen 57 shown in FIG.
- the first output control unit 23 may determine that the operation is a vertical scroll operation on the browser screen 57 even if the input end position PD is outside the browser area 56, as long as part of the input trajectory of the vertical slide operation is included in the browser area 56.
- the operation determination unit 22 may determine that the input operation is a combination of a designation operation, which is a long press operation, and a horizontal slide operation. At this time, the operation determination unit 22 requests the second output control unit 24 to perform display control based on the acquired input coordinates.
- the second output control unit 24 determines whether the input start position PC is included in the horizontally scrollable display range 61.
- the horizontally scrollable display range is the range of the screen in which the display content can be switched by moving it left and right, and is also called a carousel.
- the second output control unit 24 determines that the input start position PC is included in the horizontally scrollable display range 61, it scrolls that range of the browser screen 57 in the direction from the input start position PC toward the input end position PE.
- the user 10 may perform a slide operation in the positive X direction from the input start position PC to the input end position PF without performing a long press operation.
- the operation determination unit 22 acquires a series of input coordinates that change continuously from the input start position PC to the input end position PF in response to this slide operation.
- the operation determination unit 22 requests the first output control unit 23 to perform display control based on the acquired input coordinates.
- the first output control unit 23 moves the position of the virtual camera 54 in the positive X direction.
- the user 10 can move the position of the virtual camera 54 by performing a horizontal sliding operation outside the UI area 55 and outside the browser area 56, or a sliding operation that does not include a long press operation within the browser area 56.
- the operation determination unit 22 outputs a determination result including the input coordinates to the second output control unit 24.
- the second output control unit 24 performs display control according to the input coordinates acquired from the operation determination unit 22. For example, when the input coordinates are included in a video display area, the second output control unit 24 plays a stopped video or stops a video being played.
- the video display area is an area where thumbnails (small-sized images) of videos are displayed.
- the second output control unit 24 acquires a resource specified by the link from the web server 13. The second output control unit 24 then displays the acquired link on the browser screen 57.
- the operation determination unit 22 determines that it is a pinch operation, and outputs the determination result including the input coordinates to the first output control unit 23.
- the first output control unit 23 reduces or enlarges the entire virtual space image 62, regardless of whether the acquired input coordinates are included in the browser area 56. In other words, even if the user 10 performs a pinch out operation within the browser area 56, the virtual space image 62 is enlarged. As a result, the browser screen 57 included in the virtual space 50 is also enlarged.
- the broadcast user device 20A When the broadcast user device 20A performs display control in response to the input operation of the broadcast user 10A in this way, the broadcast user device 20A transmits input operation data indicating the content of the input operation to the viewing user device 20B via the management server 12.
- the input operation data includes an operation instruction for the browser screen 57, identification information of the display object 58 to be operated, the operation amount, the position of the virtual camera 54, etc.
- the operation instruction is vertical scrolling, horizontal scrolling, link selection, stopping or playing a video, etc.
- the operation amount is the operation amount of scrolling, etc.
- the viewing user device 20B performs display control of the browser screen 57 and controls the virtual camera 54 based on the input operation data.
- the screen output to the broadcast user device 20A and the screen output to the viewing user device 20B are synchronized.
- the broadcast user device 20A may transmit data indicating the display position of the browser screen 57 to the viewing user device 20B in order to synchronize the browser screens 57 between the broadcast user device 20A and the viewing user device 20B.
- the broadcast user device 20A displays a virtual space screen 60 including a browser screen 57 on the display 109.
- the display condition of the browser screen 57 is that the position of the avatar object 52 is within a predetermined area set for the display object 58, or that the broadcast user 10A has performed an operation to display the browser screen 57.
- the second output control unit 24 determines that the display condition is satisfied, it requests a resource specified by the URL from the web server 13 based on the URL associated with the display object 58.
- the second output control unit 24 receives the resource from the web server 13, it launches an in-app browser and outputs the browser screen 57 based on the resource to the display surface of the display object 58 in the virtual space 50.
- the input coordinate acquisition unit 21 acquires input coordinates, which are the coordinates of an input made by the broadcast user 10A to the input device 110 (step S10).
- the operation determination unit 22 determines which area of the input coordinate system 93 the input coordinates are an operation for. For example, the operation determination unit 22 determines whether the acquired input coordinates are included in the UI area 55 (step S11). If the operation determination unit 22 determines that the input coordinates are included in the UI area 55 (step S11: YES), it requests the first output control unit 23 to perform display control processing corresponding to that UI area 55. The first output control unit 23 performs display control processing corresponding to that UI area 55 (step S12). For example, if the first output control unit 23 determines that a GUI element for moving the avatar object 52 has been operated, it moves the avatar object 52 in the direction indicated by the broadcast user 10A.
- step S11 determines whether or not the input coordinates are included within the browser area 56 (step S13).
- step S13 determines that the input coordinates are included within the browser area 56 (step S13: YES)
- it requests the second output control unit 24 to perform display control based on the input coordinates.
- the second output control unit 24 performs operation determination processing based on the input coordinates (step S14).
- the second output control unit 24 converts the input coordinates into coordinates on the browser screen 57.
- the second output control unit 24 determines the input operation that corresponds to the converted coordinates.
- the second output control unit 24 determines that the input operation is a pinch-in operation, it reduces the virtual space image 62. If the second output control unit 24 determines that the input operation is a pinch-out operation, it enlarges the virtual space image 62. If the second output control unit 24 determines that the input operation is a selection operation, it transitions the screen, or stops or plays the video, depending on the input coordinates.
- the second output control unit 24 determines whether the user instruction is for vertical scrolling, horizontal scrolling, or control of the virtual camera 54.
- the second output control unit 24 determines whether the slide operation is a vertical operation (step S20). If the second output control unit 24 determines that the slide operation is a vertical operation (step S20: YES), it scrolls the browser screen 57 vertically (step S21). If the second output control unit 24 determines that the slide operation is a horizontal operation rather than a vertical operation (step S20: YES), it determines whether the input operation includes a designation operation (step S22).
- step S22 determines that the input operation includes a designation operation (step S22: YES)
- the broadcast user device 20A When the broadcast user device 20A outputs the browser screen 57, it transmits browsing history information to the management server 12.
- the browsing history information includes the broadcast user's 10A user ID, URL, room ID, and browsing start time. Furthermore, the broadcast user 10A may transmit browsing information including the input operation as a behavior history to the management server 12 each time an input operation is performed. Furthermore, when the broadcast user device 20A no longer outputs the browser screen 57, it transmits browsing history information including the viewing end time to the management server 12.
- the browsing history information receiving unit 32 uses the browsing history information to record the viewing tally information 42 in the viewing tally information storage unit 36.
- the performance recording unit 33 generates performance information 43 using the viewing count information 42. At this time, the number of views may be calculated based on the number of viewing users 10B. After generating the performance information 43, the performance recording unit 33 records it in the performance information storage unit 37.
- the administrator of the management server 12 e.g., the PF provider
- the publisher can check the user response by checking the frequency with which the information they published was viewed and the responses to questionnaires, etc. For example, the administrator can receive compensation from the publisher according to the performance information.
- FIG. 12 The virtual space screen 60 (distribution screen) displayed by the broadcasting user device 20A will be described with reference to Figures 12 to 15. Note that Figures 12 to 15 show a screen when the position of the virtual camera 54 is a third-person perspective. Also, the virtual space screen (viewing screen) displayed by the viewing user device 20B is almost the same as the virtual space screen 60 displayed by the broadcasting user device 20A, except for the difference in GUI elements. However, in this embodiment, the viewing user 10B cannot operate the browser screen 57 as described above.
- an avatar object 52 is displayed on the virtual space screen 60.
- the first output control unit 23 includes the display object 58 in the virtual space screen 60.
- the first output control unit 23 determines that the display conditions are met, it outputs a browser screen 57.
- the browser screen 57 displays a screen of a website identified by a URL associated with the display object 58. For example, if an exhibition is being held in the virtual space 50, a screen of a website related to the contents of the exhibition is displayed.
- the website is a site that displays information about the exhibitor, details of a product or service, etc.
- the virtual space screen 60 also displays a plurality of GUI elements 65 and icons.
- the virtual space screen 60 also displays a movement button 66 and a jump button 67, which are GUI elements.
- the first output control unit 23 moves the avatar object 52.
- the jump button 67 the first output control unit 23 makes the avatar object 52 jump. This makes it possible to move the avatar object 52 to any exhibition booth, for example.
- the broadcast user 10A When the broadcast user 10A performs a vertical slide operation on the browser screen 57 (see arrow 96 in FIG. 12), the second output control unit 24 scrolls the browser screen 57 in the direction of the operation.
- the broadcast user 10A can perform actions similar to those performed on an independent browser. For example, the broadcast user 10A can view information about products, purchase products, request documents, etc.
- the broadcasting user 10A when the broadcasting user 10A views information about a product or the like on the browser screen 57, the viewing user 10B who watches the broadcasted video will also see that information. For this reason, the publisher can advertise the product or the like by exhibiting in the virtual space 50 and having the broadcasting user 10A broadcast a video. Furthermore, if the broadcasting user 10A is able to operate the browser screen 57 within the virtual space 50, more information can be provided to the broadcasting user 10A and the viewing user 10B compared to when a non-operable image is displayed in the display object 58. For this reason, the publisher can further increase the advertising effect of the information they publish.
- FIG. 13 shows a virtual space screen 60 in which the position of the virtual camera 54 has been moved.
- the first output control unit 23 changes the position 54A of the virtual camera 54 to position 54B based on the direction of the input operation.
- the first output control unit 23 may move the virtual camera 54 a distance according to the amount of the input operation while keeping the virtual optical axis of the virtual camera 54 facing the avatar object 52.
- the first output control unit 23 outputs to the display 109 a virtual space image 62 included in the field of view Z1 of the virtual camera 54 at position 54B.
- the second output control unit 24 scrolls the display range 99 horizontally (see arrow 98 in FIG. 14).
- FIG. 15 shows the virtual space screen 60 when the broadcast user 10A pinches out in the browser area 56.
- the second output control unit 24 enlarges only the virtual space image 62 on the virtual space screen 60.
- the browser screen 57 is also enlarged and displayed.
- a browser screen 57 that allows input operations by the user 10 is displayed on the virtual space screen 60.
- the user 10 can efficiently collect information that interests him or her while exploring the virtual space 50.
- the publisher can provide information to users 10 who tend to behave differently from customers in the real world as potential customers through the browser screen 57.
- the operation determination unit 22 distinguishes between operations for controlling the display of the browser screen 57 and operations for controlling the virtual camera 54 according to the input coordinates. Therefore, the user 10 can intuitively operate the browser screen 57 without performing complicated operations.
- the operation determination unit 22 determines that the input coordinates are a scroll operation that changes continuously along the first axis (vertical direction)
- the second output control unit 24 scrolls the browser screen 57 in the direction of the operation. This allows the user 10 to scroll the browser screen 57 along the first axis with an intuitive operation.
- the operation determination unit 22 determines that the input operation is a combination of a predetermined designation operation and a scroll operation in which the input coordinates change continuously along the second axis (horizontal direction)
- the second output control unit 24 scrolls the horizontally scrollable display area 97 of the browser screen 57 in the direction of the operation.
- the operation determination unit 22 determines that the input operation includes only a scroll operation in which the input coordinates change continuously along the second axis
- the first output control unit 23 changes the position of the virtual camera 54 in the direction of the operation. This allows the user device 20 to distinguish between a slide operation that changes the position of the virtual camera 54 and an operation for scrolling along the second axis.
- the operation determination unit 22 determines that the input operation is not an input operation within the UI area 55 or the browser area 56, the first output control unit 23 changes the position of the virtual camera 54 in the direction of the operation. This allows the user 10 to control the virtual camera 54 by intuitive operations.
- the operation determination unit 22 determines that the input operation is a selection operation in the browser area 56, the second output control unit 24 executes processing according to the position of the selection operation. This allows the user 10 to control the virtual camera 54 with an intuitive operation.
- the first output control unit 23 outputs an avatar object 52 corresponding to the user 10 into the virtual space. As a result, through the avatar object 52, it is possible to stimulate at least one of the interactions between the broadcast user 10A and the viewing users 10B, and interactions between the broadcast users 10A.
- the second output control unit 24 accepts input operations into the browser area 56 in the distribution mode, but does not accept input operations into the browser area 56 in the viewing mode. This allows the viewing user 10B to view the browser screen 57 being viewed by the distribution user 10A on the viewing user device 20B, making it easier for them to interact with the distribution user 10A.
- the broadcast user 10A performs input operations in the browser area 56.
- a viewing user 10B who has authority can operate the browser screen 57.
- multiple broadcast users 10A perform collaborative broadcasting in which multiple broadcast user devices 20 broadcast together. Even in collaborative broadcasting, each broadcast user 10A can independently perform input operations in the browser area 56.
- Collaboration distribution refers to multiple users distributing videos in the same virtual space 50.
- the distribution user 10A who requests the creation of a room will be referred to as the host user
- the distribution user 10A who participates in the room created by the host user will be referred to as the guest user.
- User 10 can participate in the collaboration distribution as a guest user by accepting the participation request from the host user, or by having the participation request sent by user 10 approved by the host user.
- the broadcasting user device 20A used by the host user is referred to as the host user device 20H
- the broadcasting user device 20A used by the guest user is referred to as the guest user device 20G.
- the host user device 20H outputs a virtual space screen 60 seen from a virtual camera 54 set by the host user.
- the guest user device 20G outputs a virtual space screen 60 seen from a virtual camera 54 set by the guest user.
- the host user device 20H and the guest user device 20G broadcast within the same virtual space 50, but the display range of each virtual space screen 60 may differ.
- each broadcasting user 10A may output a virtual image of the same display range.
- the second output control units 24 of the host user device 20H and the guest user device 20G each control the display of the browser screen 57 based on the input operation of the broadcast user 10A.
- the input operation of the browser screen 57 here includes operations that control the display state of the browser screen 57, such as operations for scrolling vertically, scrolling horizontally, and selection operations, as in the first embodiment. Note that when multiple display objects 58 are located within the virtual space 50, the host user and the guest user may each operate the browser screen 57 displayed on a different display object 58.
- FIG. 16 shows the state in which data is transmitted and received between a broadcasting user device 20A and a viewing user 20B. Note that the management server 12 that relays the transmission and reception of data between the user devices 20 is not shown. Also, video data, gift display requests, message data, position information of the virtual camera 54, etc. transmitted between the user devices 20 are not shown.
- One or more of the viewing users 10B have the authority to perform input operations on the browser screen 57, while the remaining viewing users 10B do not have the authority to perform input operations.
- Viewing users 10B who meet a certain condition have the authority to perform input operations.
- the certain condition may be, for example, that the viewing user 10B is associated with the broadcasting user 10A in advance (following or being a friend) before watching the video, that the viewing user 10B has made a request to the broadcasting user 10A to display a gift object (tipping), or that the viewing user device 20B of the viewing user 10B who meets the certain condition accepts input operations on the browser screen 57.
- the authority of distributor user 10A and viewing user 10B to operate browser screen 57, and reflection of the operated browser screen 57 on other devices are as follows.
- the host user device 20H accepts input operations on the browser screen 57, and transmits data for reflecting the display state of the operated browser screen 57 on other devices.
- the guest user device 20G accepts input operations on the browser screen 57, and transmits data for reflecting the display state of the operated browser screen 57 on other devices.
- the viewing user device 20B of the authorized viewing user 10B accepts input operations on the browser screen 57, but does not transmit data for reflecting the display state of the operated browser screen 57 on another device.
- the host user device 20H When the host user device 20H receives an input operation on the browser screen 57 of the host user, it transmits input operation data D1 including an input operation instruction, identification information of the display object 58 to be operated, and a URL to the guest user device 20G and the viewing user device 20B.
- the input operation instruction includes a scroll direction and scroll amount.
- the guest user device 20G and the viewing user device 20B Based on the input operation data D1, the guest user device 20G and the viewing user device 20B output the browser screen 57 to the display object 58 to be operated by the host user. If the input operation data D1 does not include a URL, the guest user device 20G and the viewing user device 20B obtain a URL associated with the display object 58 to be displayed from the storage 104 or the management server 12 of their own device.
- the guest user device 20G and the viewing user device 20B scroll the browser screen 57.
- the guest user device 20G and the viewing user device 20B control the display of the browser screen 57 in response to the input operation of the host user. This causes the browser screens 57 to be synchronized between the users 10.
- the guest user device 20G accepts an input operation on the guest user's browser screen 57, it transmits input operation data D1 to the host user device 20H and the viewing user device 20B. Based on the input operation data D1, the host user device 20H and the viewing user device 20B output the browser screen 57 to the display object 58 that is the target of the guest user's operation.
- the viewing user device 20B of the authorized viewing user 10B when the viewing user device 20B of the authorized viewing user 10B accepts an input operation on the viewing user's browser screen 57, it controls the display of the browser screen 57 based on the input operation. However, this viewing user device 20B does not transmit the input operation data D1 to the broadcasting user device 20A and other viewing user devices 20B. Furthermore, the viewing user device 20B of the authorized viewing user 10B accepts the input operation when it has not received the input operation data D1 from the broadcasting user device 20A. In other words, when this viewing user device 20B receives the input operation data D1 from the broadcasting user device 20A, it controls the browser screen 57 by prioritizing the received input operation data D1. When the viewing user 10B and the broadcasting user 10A operate the browser screens 57 output to different display objects 58, the display of each browser screen 57 is controlled by the input operation of the viewing user 10B and the input operation of the broadcasting user 10A, respectively.
- the viewing user device 20B of the unauthorized viewing user 10B does not accept input operations on the viewing user's browser screen 57.
- This viewing user device 20B makes a resource transmission request D2 to the web server 13 based on the input operation data of each distribution user device 20A, and receives D3 the resources in response to the transmission request.
- the input operation that is received first may be given priority. That is, for example, if the host user device 20H receives an input operation by the host user immediately after receiving input operation data D1 transmitted from the guest user device 20G, the input operation by the guest user is given priority. If the host user device 20H receives input operation data transmitted from the guest user device 20G immediately after receiving an input operation by the host user, the input operation by the host user is given priority. The same applies to the guest user device 20G.
- the other distribution user 10A and viewing user 10B can also perform input operations.
- a browser screen 57 corresponding to each input operation is output to each display object 58.
- FIG. 17 is an example of a virtual space screen 60 output to the display 109 of the host user device 20H in collaboration distribution.
- the virtual space screen 60 includes an avatar object 52A corresponding to the host user. If an avatar object 52B of a guest user is included in the field of view of the virtual camera 54, the avatar object 52B is drawn.
- the virtual space screen 60 also includes a mini-avatar 52C, which is a simplified avatar object 52 corresponding to an authorized viewing user 10B.
- the mini-avatar 52C has a smaller processing load for drawing than the avatar object 52 of the distribution user 10A.
- the mini-avatar 52C is a two-dimensional image.
- the authorized viewing user 10B can also perform input operations to control the browser screen 57. This makes it possible to provide the display contents of the browser screen 57 to a larger number of users, thereby improving the advertising effect.
- the first output control unit 23 of the user device 20 distributes and views the video using the client rendering method.
- the video may be distributed and viewed using any of the above methods other than the client rendering method.
- the browser rendering method is a method in which the broadcasting user device 20A and the viewing user device 20B display the video using independent web browsers stored in the storage 104. At this time, the broadcasting user device 20A transmits video data, etc. to the management server 12.
- the user device 20 that displays the video receives web data from the management server 12 that is written in a markup language such as HTML (Hyper Text Markup Language) and uses CSS (Cascading Style Sheets), JavaScript (registered trademark), etc.
- the web browser program started on the user device 20 draws avatar objects and other objects using JavaScript running on the browser. In this method, model data of the avatar object, etc. is not stored in the user device 20.
- an application does not need to be installed on the user device 20.
- an application including an in-app browser may be installed on the user device 20 .
- At least one of the well-known methods such as static rendering (Static Server-Side Rendering), server-side rendering (Server-Side Rendering), client-side rendering (Client-Side Rendering), pre-rendering (CSR with Prerendering), and hydration rendering (SSR with (Re)Hydration) can be used as a method for generating a file to display the virtual space screen 60 by rendering.
- Rendering here refers to interpreting data written in a markup language or the like and calculating the arrangement of image elements and characters to be displayed on the virtual space screen 60.
- the web server 13 stores a static HTML file in advance.
- the user device 20 downloads the static HTML file from the web server 13.
- the user device 20 outputs the rendered HTML file to the display 109 to display the virtual space screen 60.
- server-side rendering SSR
- the web server 13 performs rendering etc. in response to a request from the user device 20, and transmits the rendered HTML file to the user device 20.
- the user device 20 outputs the downloaded HTML file to the display 109 to display the virtual space screen 60.
- the web server 13 includes an application server.
- client-side rendering CSR
- the user device 20 performs rendering by executing JavaScript (registered trademark).
- the user device 20 downloads a simple HTML file from the web server 13, and also downloads the necessary JavaScript (registered trademark) and CSS files, etc.
- pre-rendering a type of CSR
- the user device 20 generates and records some HTML files in advance, and downloads and renders the necessary content from the web server 13 in response to a request.
- hydration rendering the web server 13 generates and records HTML files that have not been rendered.
- the user device 20 downloads HTML files from the web server 13, and also downloads and renders the necessary data based on the HTML files.
- the user device 20 may obtain the necessary data from the management server 12, rather than from the web server 13.
- the video distribution method is a method in which the broadcasting user device 20A generates video data. Specifically, the broadcasting user device 20A uses motion data and the like to draw objects and generate video data. The broadcasting user device 20A also transmits the encoded video data and audio data to the management server 12. The management server 12 transmits the video data and audio data to the viewing user device 20B. The viewing user device 20B displays video on the display 109 based on the video data received from the broadcasting user device 20A.
- the server distribution method is a method in which the management server 12 generates video data.
- the management server 12 receives motion data and audio data from the broadcasting user device 20A.
- the management server 12 then generates output data for outputting the video based on that data.
- the management server 12 transmits the generated output data to the broadcasting user device 20A and the viewing user device 20B.
- the broadcasting user device 20A and the viewing user device 20B output the video to the display 109 based on the received output data.
- the user device 20 or the management server 12 is responsible for generating data for outputting a video.
- the data to be generated differs depending on the distribution method.
- the device responsible for generating the data can be changed depending on the distribution method.
- the virtual space 50 in which an exhibition is held is exemplified, but the present invention is not limited to this virtual space 50.
- the virtual space 50 may be one in which a projection screen is displayed, and may be one in which events such as live performances and matches are held.
- the virtual space 50 may be a virtual store or an entertainment facility such as an amusement park.
- the virtual space 50 may not hold any events, and may simply allow users 10 to explore or communicate with each other. There may not be any objects corresponding to exhibits in the virtual space 50.
- the first display control process is a process of controlling the position of the virtual camera 54.
- the first display control process may be a process of controlling the direction of the virtual camera 54 without changing its position. For example, when the operation direction is the X-positive direction, the orientation of the virtual camera 54 is moved in the X-positive direction while maintaining the position of the virtual camera 54.
- the first display control process may also be a process of moving an object 51, such as the avatar object 52, in a direction indicated by the user 10.
- the first output control unit 23 outputs the browser screen 57 as the projection screen.
- the projection screen may be a screen on which information recorded in the storage 104 of the user device 20 or information acquired from an external server is output. This information is, for example, image data including still images and videos, an image list, a document file, etc. Or, this information is video data acquired from an external server and playable on the user device 20, call data for conversation through a video of another user, etc. Or, it may be the top page of an application that plays videos.
- image data such as photos or videos recorded by the album function of the storage 104, books such as comics, data created by presentation software such as "Microsoft PowerPoint (registered trademark)", etc.
- the user 10 can vertically scroll, horizontally scroll, transition between screens, and play or stop videos on this projection screen as well, in the same way as the browser screen 57.
- the second output control unit 24 scrolls the display area 97 of the browser screen 57 horizontally. Furthermore, when the operation determination unit 22 determines that the input operation does not include a designation operation and includes only a horizontal sliding operation, the second output control unit 24 controls the virtual camera 54. The second output control unit 24 may perform the opposite process depending on these input operations. In other words, when the input operation includes a designation operation and a horizontal sliding operation, the second output control unit 24 may control the virtual camera 54, and when the input operation does not include a designation operation and includes only a horizontal sliding operation, the second output control unit 24 may perform display control of the browser screen 57.
- the second output control unit 24 may determine that the input operation during the period between the input of the lock operation and the input of the unlock operation is an operation on the browser screen 57. For example, the second output control unit 24 determines that all coordinates input between a long press operation on the input device 110 and a long press operation for unlocking are operations on the browser screen 57. The second output control unit 24 performs processing on the browser screen 57 based on the input operation during the period from the lock operation to the input of the unlock operation for unlocking the lock operation. Therefore, the user 10 can scroll the display area 97 of the browser screen 57 horizontally by simply performing a horizontal slide operation in the browser area 56, without performing a designation operation for designating horizontal scrolling of the browser screen 57.
- the second output control unit 24 synchronizes the projection screens such as the browser screen 57 by transmitting input operation data to the other user device 20.
- the second output control unit 24 may transmit data (image data) capturing the browser screen 57 to the other user device 20.
- the user device 20 that receives this data projects the received data onto the display object 58.
- the second output control unit 24 performs, as the second display process, vertical scrolling, horizontal scrolling, link selection, and video playback or stopping of the browser screen 57 in response to an input operation of the user 10.
- the second output control unit 24 may perform at least one of these processes.
- the second output control unit 24 may perform a process other than the above-mentioned processes as long as the process is a process for a projection screen including the browser screen 57.
- the second output control unit 24 may close or open the browser screen 57 in response to an input operation of the user 10.
- the second output control unit 24 may also operate a GUI element, such as selecting one of the items displayed in a pull-down menu, in response to an input operation of the user 10.
- the input coordinate acquisition unit 21 acquires coordinates where a touch of a finger or a stylus is detected on a touch panel that is the input device 110.
- the input coordinate acquisition unit 21 acquires input coordinates according to the input device 110.
- the input coordinate acquisition unit 21 acquires coordinates on the screen that the user 10 specifies using the mouse or controller.
- the input coordinate acquisition unit 21 detects the direction of the user 10's gaze and detects the position on the screen that the user 10 specifies.
- the input coordinate acquisition unit 21 detects the direction in which the user 10 points the finger and detects the position on the screen that the user 10 specifies.
- the operation determination unit 22 determines whether or not the input operation is an operation on the browser screen 57.
- the second output control unit 24 may determine whether or not the input operation is an operation on the browser screen 57 based on the input coordinates acquired from the operation determination unit 22.
- the management server 12 may be a single server device equipped with multiple virtual servers, or may be a set of multiple physical servers.
- the management server 12 may be a set of a combination of a server having a distribution management unit 30, a server having a browsing history information receiving unit 32, and a server having a performance recording unit 33.
- the browsing history information receiving unit 32 may receive browsing information from the web server 13.
- the web server 13 records an access log of a resource specified by a URL that the user 10 can register.
- the access log includes the connection date and time (browsing start time), the disconnection date and time (browsing end time), the identification information of the connected user device 20, the operation content, etc.
- the web server 13 transmits the access log to the management server 12.
- the browsing history information receiving unit 32 of the management server 12 records the received access log in the browsing tally information storage unit 36 as browsing tally information 42.
- the performance recording unit 33 records performance information 43 based on the access log in the performance information storage unit 37.
- the distribution user 10A can operate the projection screen.
- the distribution user 10A including the host user and the guest user and the viewing user 10B having authority can operate the projection screen, and only the operation of the distribution user 10A is reflected (synchronized) in the video of the other users 10.
- the attributes of the user 10 who can operate the projection screen and the attributes of the user whose input operation is synchronized with the other user devices 20 can be changed as appropriate. In other words, for each attribute of each user 10, whether or not the browser screen 57 can be operated is set, and if the browser screen 57 can be operated, whether or not the browser screen 57 can be synchronized with the other devices is set. Note that the browser screen 57 may be synchronized with all other user devices 20 other than the own device, or the browser screen 57 may be synchronized with only some of the other user devices 20.
- the attributes of these users 10 may be in the following forms: [First aspect] (A) The host user device 20H accepts an input operation on the browser screen 57, and transmits data for reflecting the operated browser screen 57 on another device. (B) The guest user device 20G and the viewing user device 20B of the authorized viewing user 10B accept input operations on the browser screen 57, but do not transmit data for reflecting the operated browser screen 57 on another device. [Second aspect] (C) The host user device 20H accepts an input operation on the browser screen 57 and transmits data for reflecting the operated browser screen 57 on another device. (D) The guest user device 20G and the viewing user device 20B of an authorized viewing user 10B accept input operations on the browser screen 57.
- a synchronization instruction which is an operation different from the input operation on the browser screen 57
- the user device 20 transmits data for reflecting the browser screen 57 on another device.
- the user device 20 does not transmit data for reflecting the browser screen 57 on another device unless a synchronization instruction is input.
- the synchronization instruction is input by operating a synchronization button or the like displayed on the virtual space screen 60.
- the data to be reflected in the other device is data generated by the user device 20 or the management server 12, and it is sufficient that the user device 20 receiving this data can determine the operation contents of the user 10, who is the operator of the resource and the browser screen 57.
- the data to be reflected in the other device may include a URL that identifies the resource.
- the data to be reflected in the other device may include data indicating the operation contents of the user 10, which is the first user device 20 used by the user 10, who is the operator.
- the first user device 20 Upon detecting the operation of the user 10, transmits data indicating the operation contents to the management server 12.
- the management server 12 generates an identifier as needed based on the data indicating the operation contents.
- the management server 12 transmits the identifier to the other device.
- the second user device 20, which is the other device that receives the identifier determines the operation contents based on the identifier and displays the browser screen 57 according to the operation contents.
- the input operation of the host user takes priority.
- the user device 20 may take priority over the input operation of the browser screen 57 of the user 10 of the own device.
- all users 10 may operate the projected screens, and synchronization of the projected screens may not be performed.
- the browser screen 57 that the user 10 has started (displayed) or the browser screen 57 that the user 10 has operated once may be operated by another user 10. That is, in one aspect, only the host user may be able to both operate the projected screen and synchronize the operation, and the user 10 other than the host user may be able to operate the projected screen. For example, after the first user 10 starts the browser screen 57, if a predetermined condition is satisfied, the second user 10 may be able to operate the browser screen 57.
- the user device 20 of the second user 10 who has performed the operation halfway through transmits data for synchronizing the browser screen 57 to the other device if the second user 10 has the authority to synchronize the browser screen 57. If the second user 10 does not have the authority to synchronize the browser screen 57, the user device 20 of the second user 10 does not transmit data for synchronizing the browser screen 57 to the other device.
- the predetermined condition is that the host user is not performing the operation. Or, the predetermined condition is that the user device 20 has accepted the operation of the user 10.
- the user device 20 draws the avatar object 52 corresponding to the broadcast user 10A using tracking data or emote data that detects the movement of the broadcast user 10A. This allows the movement of the broadcast user 10A or the movement selected by the broadcast user 10A to be reflected in the avatar object 52. Alternatively or in addition to this, the user device 20 may draw the avatar object 52 temporarily or continuously without using tracking data and emote data.
- the first output control unit 23 controls the avatar object 52 based on the input operation of the user 10.
- the avatar object 52 performs an action in response to the input operation of the user 10. In this aspect, the load of the drawing process on the user device 20 can be reduced when drawing a large number of avatar objects 52 in the virtual space 50.
- the user device 20 renders an avatar object 52 corresponding to the broadcast user 10A.
- the user device 20 may render an image of the virtual space 50 from a first-person perspective, and may not need to render the avatar object 52.
- the broadcast user device 20A broadcasts videos.
- the application implemented by the user device 20 may be an application that allows the user 10 to move around the virtual space 50 without broadcasting videos.
- the management server 12 does not perform processing for broadcasting videos, but provides asset data of the virtual space 50, etc., in response to a request from the user device 20.
- the user device 20 outputs a virtual space screen 60.
- an avatar object 52 corresponding to another user 10 is located in the same virtual space 50, the avatar object 52 may be displayed on the virtual space screen 60.
- the user 10 launches an application and selects a desired virtual space 50.
- the user device 20 displays a virtual space screen of the virtual space 50 as seen from each virtual camera 54.
- the user 10 can operate the projection screen in the same manner as the broadcast user 10A in the first embodiment.
- the broadcasting user 10A refers to a user who transmits at least one of information related to images (video) and information related to audio.
- the broadcasting user 10A is a user who broadcasts videos alone (first embodiment), or a user who performs collaboration broadcasting in which multiple people can participate (second embodiment).
- the broadcasting user 10A may be a user who hosts or organizes a video chat or voice chat in which multiple people can participate and/or watch, or an event (party, etc.) in a virtual space in which multiple people can participate and/or watch.
- the broadcasting user 10A can also be called a host user, organizer user, or organizer user.
- viewing user 10B refers to a user who receives at least one of video-related information and audio-related information.
- viewing user 10B not only receives the above information, but can also react to the information.
- viewing user 10B is a user who watches a video broadcast or collaboration broadcast.
- viewing user 10B may be a user who participates in and/or watches video chat, voice chat, or an event. Therefore, viewing user 10B can also be referred to as a guest user, participating user, listener, viewing user, supporting user, etc.
- the management server 12 is managed by the PF provider, and the web server 13 is managed by the publisher.
- the user 10 may display an arbitrary web page on the browser screen 57, instead of a resource previously associated with the virtual space 50 as in each of the above embodiments.
- the user 10 may input a search word or the like in a predetermined area and execute a search, thereby outputting an arbitrary browser screen 57.
- the predetermined area is, for example, a text box displayed in the UI area 55.
- the user device 20 is an information processing device such as a smartphone, a mobile phone, a tablet terminal, a personal computer, a console game machine, or a wearable computer such as a head-mounted display.
- the information processing system may be a system provided in a studio for video distribution.
- the information processing system has an information processing device, a server, a sensor unit worn on the body of the distribution user 10A, a tracking system that detects the position of the sensor unit, an operation unit, a speaker, a display, etc.
- the tracking system may be equipped with a multi-axis laser emitter that emits pulsed laser light for synchronization.
- the sensor unit has a sensor that detects laser light, and detects its own position and orientation while synchronizing with a synchronization pulse.
- the user device 20 functions as an input coordinate acquisition unit 21, an operation determination unit 22, a first output control unit 23, and a second output control unit 24. At least one of these functions may be executed by the management server 12 or another device in the information processing system 11. Furthermore, the management server 12 functions as a distribution management unit 30, a browsing history information receiving unit 32, and a performance recording unit 33 by executing a program. At least one of these functions may be executed by the user device 20 or another device in the information processing system 11. Furthermore, the management server 12 includes a user management information storage unit 34, a browsing aggregation information storage unit 36, and a performance information storage unit 37. At least one of these functions may be included in the user device 20 or another device in the information processing system 11.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
本開示は、プログラム、情報処理方法及び情報処理システムに関する。 This disclosure relates to a program, an information processing method, and an information processing system.
仮想空間上に作成されたイベント会場等の空間を、ユーザが用いるユーザ装置に表示するサービスが既に提供されている。例えば、この仮想空間では、ユーザは、展示物を閲覧することによって、情報を収集することが可能である(例えば、特許文献1参照)。 A service is already being provided that displays a space, such as an event venue, created in a virtual space on a user device. For example, in this virtual space, the user can gather information by viewing exhibits (see, for example, Patent Document 1).
仮想空間によっては、ユーザ装置は、展示物を選択する又は拡大表示する等、ユーザの入力操作に基づく展示物に対する指示を受け付けることが可能である。一方で、ユーザ装置は、展示物以外に対する指示であって仮想空間に関するユーザの指示も受け付ける必要がある。ユーザ装置は入力操作に応じてこれらの指示を区別する必要がある。受け付け可能な指示を多くすると、入力操作が複雑化する。これによって、操作のしやすさ等のユーザビリティが損なわれるおそれがある。なお、展示物が配置されるイベント会場の仮想空間に限らず、ユーザによる閲覧用に情報が表示されるオブジェクトが配置される他の仮想空間においても、同様の課題がある。 Depending on the virtual space, the user device can accept instructions for exhibits based on user input operations, such as selecting an exhibit or enlarging the display. On the other hand, the user device must also accept user instructions for things other than exhibits that are related to the virtual space. The user device must distinguish between these instructions depending on the input operation. Increasing the number of acceptable instructions makes the input operation more complicated. This may impair usability, such as ease of operation. Note that similar issues exist not only in virtual spaces at event venues where exhibits are placed, but also in other virtual spaces where objects are placed that display information for users to view.
上記課題を解決するプログラムは、1又は複数のコンピュータを、三次元仮想空間を仮想カメラから見た仮想空間画像を、ユーザが視認するディスプレイに出力する第1出力制御部と、前記ユーザによる操作が可能な投影画面を、前記仮想空間画像内に出力する第2出力制御部と、前記ユーザの入力装置への入力座標を取得する入力座標取得部と、取得した前記入力座標に基づき、前記ユーザの入力操作が、前記投影画面に対応する入力領域への操作であるか否かを判定する操作判定部として機能させ、前記操作判定部が、前記入力操作が前記入力領域への操作ではないと判定した場合に、前記第1出力制御部は、前記投影画面に対する制御以外の前記三次元仮想空間に関する第1表示制御処理を行い、前記操作判定部が、前記入力操作が前記入力領域への操作であると判定した場合に、前記第2出力制御部は、前記入力座標に応じて、前記投影画面に対する第2表示制御処理を行う。 The program for solving the above problem causes one or more computers to function as a first output control unit that outputs a virtual space image of a three-dimensional virtual space seen from a virtual camera to a display viewed by a user, a second output control unit that outputs a projection screen that can be operated by the user within the virtual space image, an input coordinate acquisition unit that acquires input coordinates to an input device of the user, and an operation determination unit that determines whether or not an input operation by the user is an operation on an input area corresponding to the projection screen based on the acquired input coordinates, and when the operation determination unit determines that the input operation is not an operation on the input area, the first output control unit performs a first display control process for the three-dimensional virtual space other than control of the projection screen, and when the operation determination unit determines that the input operation is an operation on the input area, the second output control unit performs a second display control process on the projection screen according to the input coordinates.
上記課題を解決する情報処理方法は、1又は複数のコンピュータが、三次元仮想空間を仮想カメラから見た仮想空間画像を、ユーザが視認するディスプレイに出力する第1出力制御処理と、前記ユーザによる操作が可能な投影画面を、前記仮想空間画像内に出力する第2出力制御処理と、前記ユーザの入力装置への入力座標を取得する入力座標取得処理と、取得した前記入力座標に基づき、前記ユーザの入力操作が、前記投影画面に対応する入力領域への操作であるか否かを判定する操作判定処理とを実行し、前記操作判定処理において前記入力操作が前記入力領域への操作ではないと判定した場合に、前記投影画面に対する制御以外の前記三次元仮想空間に関する第1表示制御処理を行い、前記操作判定処理において前記入力操作は前記入力領域への操作であると判定した場合に、前記入力座標に応じて、前記投影画面に対する第2表示制御処理を行う。 The information processing method for solving the above problem includes a first output control process in which one or more computers output a virtual space image of a three-dimensional virtual space seen from a virtual camera to a display viewed by a user, a second output control process in which a projection screen that can be operated by the user is output within the virtual space image, an input coordinate acquisition process in which input coordinates are acquired for the user's input device, and an operation determination process in which, based on the acquired input coordinates, it is determined whether the user's input operation is an operation on an input area corresponding to the projection screen, and if it is determined in the operation determination process that the input operation is not an operation on the input area, a first display control process is performed for the three-dimensional virtual space other than control over the projection screen, and if it is determined in the operation determination process that the input operation is an operation on the input area, a second display control process is performed on the projection screen according to the input coordinates.
上記課題を解決する情報処理システムは、三次元仮想空間を仮想カメラから見た仮想空間画像を、ユーザが視認するディスプレイに出力する第1出力制御部と、前記ユーザによる操作が可能な投影画面を、前記仮想空間画像内に出力する第2出力制御部と、前記ユーザの入力装置への入力座標を取得する入力座標取得部と、取得した前記入力座標に基づき、前記ユーザの入力操作が、前記投影画面に対応する入力領域への操作であるか否かを判定する操作判定部とを備え、前記操作判定部が、前記入力操作が前記入力領域への操作ではないと判定した場合に、前記第1出力制御部は、前記投影画面に対する制御以外の前記三次元仮想空間に関する第1表示制御処理を行い、前記操作判定部が、前記入力操作が前記入力領域への操作であると判定した場合に、前記第2出力制御部は、前記入力座標に応じて、前記投影画面に対する第2表示制御処理を行う。 The information processing system that solves the above problem includes a first output control unit that outputs a virtual space image of a three-dimensional virtual space viewed from a virtual camera to a display viewed by a user, a second output control unit that outputs a projection screen that can be operated by the user within the virtual space image, an input coordinate acquisition unit that acquires input coordinates to an input device of the user, and an operation determination unit that determines whether or not the input operation of the user is an operation on an input area corresponding to the projection screen based on the acquired input coordinates, and when the operation determination unit determines that the input operation is not an operation on the input area, the first output control unit performs a first display control process for the three-dimensional virtual space other than control of the projection screen, and when the operation determination unit determines that the input operation is an operation on the input area, the second output control unit performs a second display control process on the projection screen according to the input coordinates.
本開示によれば、ユーザビリティを低下させることなく、仮想空間においてユーザに多様な情報を提供することができる。 According to this disclosure, it is possible to provide users with a wide variety of information in a virtual space without compromising usability.
[第1実施形態]
以下、プログラム、情報処理方法、及び情報処理システムの第1実施形態について説明する。
[First embodiment]
Hereinafter, a first embodiment of a program, an information processing method, and an information processing system will be described.
<情報処理システム>
図1を参照して、情報処理システム11について説明する。情報処理システム11は、管理サーバ12及びユーザ装置20を備える。
<Information Processing System>
An
情報処理システム11は、三次元仮想空間(以下、仮想空間という)の画像をユーザ装置20に出力するサービスを提供する。仮想空間では、ユーザ10の仮想的な位置が移動可能である。仮想空間は、ワールド又はフィールドともいう。情報処理システム11は、一のユーザ10によって表示される仮想空間の動画を他のユーザ10に配信するシステム、又は、そうした動画の配信を行わずに、ユーザ装置20が三次元仮想空間の画像を出力するシステムである。本実施形態では、情報処理システム11を、動画を配信するシステムとして説明する。
The
一態様では、管理サーバ12は、仮想空間の動画を配信及び視聴するためのプラットフォーム(PF)を提供するPF提供者によって管理される。ウェブサーバ13は、公開者によって管理される。公開者は、プラットフォームを利用して、商品又はサービス等の情報であるリソースをユーザ10に提供する。リソースは、公開者がプラットフォームを利用する際に、そのリソースが公開される仮想空間に予め関連付けられる。一の仮想空間(ワールド)に対して一の公開者が関連付けられている場合、当該仮想空間の所定領域で公開されるリソースは、この公開者に関連付けられている。一の仮想空間(ワールド)に対して複数の公開者が関連付けられている場合、当該仮想空間の所定領域で公開されるリソースは、それら複数の公開者に関連付けられる。公開者は、ユーザ10に自身の情報を提供することによって、自身の商品又はサービス等を宣伝できるといったメリットを有する。PF提供者は、プラットフォームを公開者に利用可能とすることについて、公開者から対価を得てもよい。又は、PF提供者が公開者であってもよい。
In one embodiment, the
管理サーバ12は、1又は複数の装置を備える。つまり、管理サーバ12は一群のサーバであってもよい。管理サーバ12は、インターネット等のネットワークを介してユーザ装置20に対し接続されている。ユーザ装置20は、動画を配信及び視聴するためのプログラムがインストール(実装)された装置、又は、動画を配信及び視聴するための動画提供サービスに登録したユーザ10が用いる装置である。管理サーバ12は、動画の配信に関するデータのユーザ装置20間における中継を担う。
The
図1には、2人のユーザ10、すなわち、ユーザ10A,10Bを示す。ユーザ10Aは、ユーザ装置20Aを用いて動画を配信するユーザ、すなわち、配信ユーザであり、ユーザ10Bは、配信された動画をユーザ装置20B上で視聴するユーザ、すなわち、視聴ユーザである。1人のユーザ10が、ある時には配信ユーザ10Aであり、別の時には視聴ユーザ10Bであることが可能である。つまり、ユーザ10は、動画を配信する場合は配信ユーザ10Aであり、動画を視聴する場合は視聴ユーザ10Bである。また、動画を配信するユーザ装置20Aを配信ユーザ装置といい、ユーザによる視聴用に動画を出力するユーザ装置20を視聴ユーザ装置20Bという。ユーザ装置20は、動画を配信するモード、すなわち、配信モードと、視聴用の動画を出力するモード、すなわち、視聴モードとの間で切り替え可能である。本実施形態において配信ユーザ10A及び視聴ユーザ10Bを区別しないで説明する場合には、単にユーザ10という。また、配信ユーザ装置20A及び視聴ユーザ装置20Bを区別しないで説明する場合には、単にユーザ装置20という。
1 shows two
<ハードウェア>
図2を参照して、ユーザ装置20のハードウェアを説明する。ユーザ装置20は、スマートフォン(多機能電話端末)、タブレット端末、パーソナルコンピュータ、コンソールゲーム機、ウェアラブルコンピュータ、又はこれらの装置以外の動画を再生可能な任意の情報処理装置である。ウェアラブルコンピュータは、ユーザが動画を視聴可能な画面を備えていればよく、例えば、ユーザの頭部に装着されるヘッドマウントディスプレイ、又は眼鏡型のウェアラブル端末等である。ユーザ装置20は、単独で動作する装置であってもよく、互いに各種のデータを送受信可能に接続された一組の複数の装置であってもよい。後者のユーザ装置20の一例として、例えばアウトサイドイン方式のトラッキングを行うシステムがある。
<Hardware>
The hardware of the
ユーザ装置20は、処理回路100、ストレージ104、センサユニット112、ディスプレイ109、入力装置110及び周辺機器111を備える。図2に例示するユーザ装置20は、配信ユーザ10Aの動きを検出するセンサユニット112を備える。なお、センサユニット112は、ユーザ装置20と別の装置であってユーザ装置20に対して通信可能に接続されるものであってもよい。
The
処理回路100は、本明細書に開示された制御プロセスのうちの1つ以上を実行するプロセッサであるCPU101及びメモリ102を含む。処理データ及び命令は、メモリ102に格納されてもよい。また、これらの処理データ及び命令は、ハードドライブ(HDD)又は可搬型記憶媒体等の記憶媒体ディスクであるストレージ104に格納されてもよく、処理回路100とは別に設けられた記憶媒体に格納されてもよい。ストレージ104は、ストレージコントローラ103及びバス108を介してCPU101に接続される。本実施形態においては、ストレージ104にアプリケーションが記憶されている。アプリケーションは、動画を配信及び視聴するためのプログラムと、プログラムの実行に必要な各種のデータとを含む。
The
本明細書に開示された各機能は、CPU101に限らず、開示された機能を実行するように構成又はプログラムされた汎用プロセッサ、特殊目的プロセッサ、集積回路、ASIC(Application Specific Integrated Circuits)、その他の従来の回路及び/又はそれらの組み合わせを含み得る回路(circuitry)を使用して実装され得る。プロセッサは、その中にトランジスタ及び他の回路を含むので、処理回路又は回路である。プロセッサは、メモリに格納されたプログラムを実行するプログラムされたプロセッサであってよい。本開示において、処理回路等のユニット、又は手段は、言及された機能を実行する、又は実行するようにプログラムされたハードウェアである。ハードウェアは、本明細書に開示された、又はそうでなければ公知の、言及された機能を実行するようにプログラムされるか構成される任意のハードウェアであってよい。
Each function disclosed herein may be implemented using circuitry that may include, but is not limited to, a
さらに、プロセッサは、プロセスの命令が格納されるコンピュータ可読媒体の形態によって制限されない。例えば、命令は、CD、DVD、処理回路100が通信する情報処理装置のFLASHメモリ、RAM、ROM、PROM、EPROM、EEPROM、ハードディスク又は他の非一時的コンピュータ可読媒体、例えばサーバ又はコンピュータに格納されてもよい。また、プロセスは、ネットワークベースのストレージ、クラウドベースのストレージ、又は他のモバイルアクセス可能なストレージに格納され、処理回路100によって実行可能であってもよい。
Furthermore, the processor is not limited by the form of computer-readable medium on which the instructions of the process are stored. For example, the instructions may be stored on a CD, DVD, FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or other non-transitory computer-readable medium of an information processing device with which the
本明細書に開示されたフローチャートにおける記述又はブロックは、プロセスにおける特定の論理機能又はステップを実装するための1つ又は複数の実行可能命令を含むコードのモジュール、セグメント又は部分を表すものとして理解することができる。また、本明細書に開示されたフローチャートの記述又はブロックは、2つ以上の機能又はステップを、実質的に同時又は逆順等、図示又は明細書に記載した順序とは異なる順序で実行することができる。 The descriptions or blocks in the flowcharts disclosed herein may be understood to represent modules, segments, or portions of code that include one or more executable instructions for implementing a particular logical function or step in a process. In addition, the descriptions or blocks in the flowcharts disclosed herein may represent two or more functions or steps that may be performed in a different order than that shown or described in the specification, such as substantially simultaneously or in reverse order.
処理回路100を実現するためのハードウェア要素は、様々な回路要素によって実現され得る。さらに、本明細書に開示された各機能は、1つ又は複数の処理回路を含む回路によって実現されてもよい。
The hardware elements for implementing the
処理回路100はまた、ネットワークNWに接続するための、ネットワークコントローラ106を含む。ネットワークNWは、インターネット等の公衆ネットワーク、又はローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)等のプライベートネットワーク、又はそれらの任意の組み合わせであってよく、公衆交換電話網(PSTN)又は統合サービスデジタルネットワーク(ISDN、登録商標)又はサブネットワークも含むことができる。ネットワークNWはまた、イーサネット(登録商標)ネットワーク、ユニバーサルシリアルバス(USB)ケーブル等の有線ネットワークであってもよく、3G、4G及び5G無線セルラーシステムを含むセルラーネットワーク等の無線ネットワークであってもよい。また、無線ネットワークは、Wi-Fi(登録商標)、無線LAN、Bluetooth(登録商標)、又は公知の他の無線通信形態であってよい。さらに、ネットワークコントローラ106は、Bluetooth(登録商標)、近距離無線通信(NFC)、赤外線等の他の直接通信規格に準拠することができる。
The
処理回路100は、さらに、ディスプレイコントローラ105、入出力インターフェース107を備える。ディスプレイコントローラ105、ネットワークコントローラ106、入出力インターフェース107は、バス108に接続されている。ディスプレイコントローラ105は、ディスプレイ109に対し接続されている。入出力インターフェース107は、入力装置110及び周辺機器111に対し接続されている。
The
センサユニット112について説明する。センサユニット112は、ユーザ10の動きを示すデータを検出する1又は複数のセンサである。ユーザ10の動きは、ユーザの表情の変化を示すフェイスモーション、及びセンサユニット112に対するユーザの身体の相対位置の変化を示すボディモーションを含む。フェイスモーションは、瞬きや口の開閉等の動きを含む。センサユニット112としては、公知の物を使用することができる。センサユニット112は、光を測定対象物に照射することによって測定対象物までの距離を測定するセンサを有する。係るセンサとして、例えば、トゥルーデプス(True Depth)、又は「LIDAR」(Light Detection and Ranging、又はLaser Imaging Detection and Ranging)等のセンサを用いることが可能である。例えば、センサユニット112の発光部は、ドットプロジェクタによってユーザの顔等に数万の不可視のドット(点)からなるドットパターンを投影する。センサユニット112は、ドットパターンの反射光を検出し、分析することによって顔の深度マップを形成するとともに、顔等の赤外線画像をキャプチャする。これによって、センサユニット112は正確な顔データをキャプチャする。センサユニット112の演算処理部は、深度マップと赤外線画像とに基づいて各種の情報を生成し、その情報を登録済みの参照データと比較して、顔の各ポイントの深度(各ポイントと近赤外線カメラとの間の距離)や深度方向以外の位置のずれを算出する。別の例では、センサユニット112は、上記した方法以外の測距方法で、光がユーザの顔等の測定対象物に向かって照射されてから反射して返ってくるまでの飛行時間(Time of Flight)又は照射光と反射光との間の位相差を測定するToFセンサを含む。これに代えて、又はこれに加えて、センサユニット112は、ユーザの顔を撮影するカメラ及びカメラが撮影したデータを画像処理する画像処理部を含んでもよい。ToFセンサは、飛行時間又は位相差に基づいて、測定対象物までの距離を算出する。
The
センサユニット112は、フェイスモーション及びボディモーションをトラッキングデータとして処理回路100に出力する。なお、トラッキングデータは、モーションデータに含まれる。モーションデータは、ユーザ10に対応するアバターオブジェクトを動かすためのデータ全般をいう。例えばモーションデータは、トラッキングデータのほかに、エモートデータを含む。エモートデータは、アバターオブジェクトに「拍手」等の予め登録された所定の動きをさせるためのデータである。この予め登録されたアバターオブジェクトの動きを、以下において「エモート」という。
The
また、センサユニット112は、ユーザの顔だけでなく、手をトラッキングする(ハンドトラッキング)機能を有していてもよい。また、センサユニット112は、手以外の人間の部位の位置又は向きを検出するセンサを含んでいてもよい。センサユニット112は、速度や加速度を検出するセンサ、方向や方位を検出するセンサ(ジャイロセンサ等)等をさらに含んでもよい。センサユニット112は、上記の各種センサの検出結果に基づき、ユーザが存在する現実空間の物体を認識し、認識した物体を空間地図にマッピングする、すなわち、現実空間における認識した物体の位置の地図を作成する空間マッピング機能を有していてもよい。
The
入力装置110は、タッチパネル、キーボード、マウス、ユーザが手で操作するコントローラ(例えば、ゲームパッド、ジョイスティック等のゲームコントローラ)、ユーザ装置20の筐体等に設けられた操作ボタン等である。コントローラは、加速度センサ、ジャイロ等の慣性計測センサ(IMU:Inertial Measurement Unit)等の公知の各種のセンサを内蔵していてもよい。別の例では、入力装置110は、ユーザの手の動き、目の動き、頭部の動き、視線の方向等を特定するトラッキング装置であってもよい。この態様では、例えば、ユーザの手の動きに基づいて、ユーザの指示を判定し、動画の配信を開始又は終了したり、メッセージや動画への評価、所定のオブジェクトの表示等の各種操作を実行したりすることができる。
The
周辺機器111は、ユーザ10の声等、現実世界における音を集音するマイクロフォンと、効果音及び他のユーザ10の声等を出力するスピーカとを含む。
ストレージ104に記憶されているアプリケーションに含まれるプログラムについて説明する。プログラムは、ユーザ装置20に実装されたネイティブ部を含む。ネイティブ部は、ユーザ装置20のOS(Operating System)上で動作し、ユーザ装置20のストレージ104やカメラ等の装置(物理的資源)にアクセスすることが可能である。ネイティブ部は、管理サーバ12から受信した動画データに基づいて動画をディスプレイ109に表示する。
The
A program included in the application stored in the
本実施形態では、プログラムは、アプリ内ブラウザを含む。アプリ内ブラウザは、WebView等、プログラムに組み入れられてブラウザ機能を実現するコンポーネントである。WebViewは、例えば、SFSafariView,WKWebView等のAPI(Application Programming Interface)である。アプリ内ブラウザは、解析部及び出力制御部を含む。アプリ内ブラウザは、リソースを取得する。リソースは、例えば、ウェブデータである。ウェブサーバ13は、仮想空間に関連付けられたリソースをユーザ装置20に提供する。アプリ内ブラウザは、ネットワークを介してウェブサーバ13からリソースを取得することが可能である。ウェブデータは、ブラウザ画面をディスプレイ109に表示するために必要なデータである。ウェブデータは、例えば、HTML(Hyper Text Markup Language)で記述されたデータ、JavaScript(登録商標)等で記述されたデータ、CSS(Cascading Style Sheets)ファイル等を含みうる。独立したウェブブラウザと同様に、アプリ内ブラウザの解析部は、HTMLやCSS等を解釈する。また、アプリ内ブラウザの出力制御部は、JavaScript(登録商標)を実行する。
In this embodiment, the program includes an in-app browser. The in-app browser is a component, such as WebView, that is incorporated into a program to realize a browser function. The WebView is, for example, an API (Application Programming Interface) such as SFSafariView or WKWebView. The in-app browser includes an analysis unit and an output control unit. The in-app browser acquires resources. The resources are, for example, web data. The
別の態様では、プログラムは、ユーザの所定の操作を受け付けた場合に、独立したウェブブラウザ(すなわち、アプリケーションのアプリ内ブラウザとは別にユーザ装置20にインストールされたウェブブラウザ)を起動してもよい。本実施形態では、プログラムはアプリ内ブラウザを有するものとして説明する。
In another aspect, the program may launch an independent web browser (i.e., a web browser installed on the
管理サーバ12は、ユーザ装置20と同様の処理回路100及びストレージ104を有する。管理サーバ12では、入力装置110、周辺機器111、センサユニット112及びディスプレイ109等を省略することができる。
The
<ユーザ装置>
図3を参照して、ユーザ装置20の機能について説明する。ユーザ装置20は、処理回路100がストレージ104に記録されたプログラムを実行することにより、入力座標取得部21、操作判定部22、第1出力制御部23、及び第2出力制御部24として機能する。
<User Device>
The functions of the
第1出力制御部23は、仮想空間を仮想カメラから見た仮想空間画像を、ユーザが視認するディスプレイ109に出力する。
第2出力制御部24は、ユーザによる操作が可能な投影画面を仮想空間画像内に出力する。投影画面には、ウェブサーバ13から取得したリソースが表示される。
The first
The second
入力座標取得部21は、ユーザによる入力装置110に対する入力の座標である入力座標を取得する。入力座標取得部21は、入力装置110がタッチパネルである場合、タッチパネルに対するタッチ操作の軌跡に対応する一連の入力座標を取得する。入力座標取得部21は、入力装置110がマウスである場合、マウスのドラッグの軌跡に対応する一連の入力座標及びクリックに対応する入力座標を取得する。
The input coordinate
操作判定部22は、取得した入力座標に基づき、ユーザ10の入力操作が、投影画面に対応する入力領域への操作であるか否かを判定する。入力領域は、ディスプレイ109に表示される仮想空間画面内の所定の領域である。
操作判定部22が、入力操作が入力領域への操作ではないと判定した場合に、第1出力制御部23は、仮想空間に関する第1表示制御処理を行う。
The
When the
操作判定部22が、入力操作が入力領域への操作であると判定した場合に、第2出力制御部24は、取得した座標に応じて、投影画面に対する第2表示制御処理を行う。
また、操作判定部22が、取得した一連の座標が第1軸に沿って連続的に変化する、すなわち、入力操作が第1スクロール操作に相当すると判定した場合に、第2出力制御部24は、投影画面を、第1スクロール操作の方向にスクロールする。
When the
Furthermore, when the
操作判定部22が、入力操作が所定の指定操作と第2スクロール操作との組み合わせであると判定した場合に、第2出力制御部24は、投影画面を、第2スクロール操作の方向にスクロールする。第2スクロール操作は、取得した一連の座標が第2軸に沿って連続的に変化する入力操作である。
If the
操作判定部22が、入力操作が第2スクロール操作のみを含むと判定した場合に、第2出力制御部24は、第1表示制御処理を行う。
操作判定部22が、入力操作が投影画面の任意の位置を選択する選択操作であると判定した場合、第2出力制御部24は、選択操作の位置に応じた処理を実行する。
When the
When the
<管理サーバ>
図4を参照して、管理サーバ12について説明する。管理サーバ12は、その処理回路100がストレージ104に記録されたプログラムを実行することにより、配信管理部30、閲覧履歴情報受信部32、及び実績記録部33として機能する。また、管理サーバ12は、ユーザ管理情報記憶部34、閲覧集計情報記憶部36及び実績情報記憶部37を備える。
<Management Server>
The
配信管理部30は、仮想空間画像を含む仮想空間画面をディスプレイ109に出力するための動画データをユーザ装置20に送信する。配信管理部30は、仮想空間内のオブジェクトを描画するためのアセットデータをユーザ装置20に送信する。配信管理部30は、モーションデータを含む、アバターオブジェクトを描画するためのデータを配信ユーザ装置20Aから受信するとともに、受信したデータを他のユーザ装置20に送信する。
The
閲覧履歴情報受信部32は、ユーザ10が仮想空間に関連付けられたリソースを閲覧したことを示す閲覧履歴情報を、ユーザ装置20から受信する。閲覧履歴情報受信部32は、閲覧履歴情報をユーザ10と関連付けて、閲覧集計情報記憶部36に記録する。
The browsing history
実績記録部33は、閲覧履歴情報に基づいて各リソースの閲覧回数を算出し、そのリソースの実績情報として実績情報記憶部37に記録する。
<データ構造>
図5~図7を参照して、管理サーバ12に記録された各情報について説明する。
The result recording unit 33 calculates the number of times each resource has been viewed based on the viewing history information, and records the number of times each resource has been viewed in the result
<Data structure>
Each piece of information recorded in the
図5は、ユーザ管理情報記憶部34に記録されたユーザ管理情報40の一例を示す。ユーザ管理情報40は、ユーザ毎に記録されている。ユーザ管理情報40は、ユーザの識別情報であるユーザID(識別子)、累積ポイント及びコインを含む。累積ポイントは、動画の配信及び視聴等、アプリケーション又はアプリケーションを提供するプラットフォームでのアクティビティによって付与されるポイントを、ユーザ10毎に累積したものである。累積ポイントは、プラットフォームで実行できる抽選(ガチャ)の対価、ギフトオブジェクトの対価、アイテムの対価として用いることができる。ギフトオブジェクトは、視聴ユーザ10Bが、配信ユーザ10A等に提供するオブジェクトである。アイテムは、アバターオブジェクトが装着するもの、プラットフォームから提供されるゲームにおいて用いるものを含む。また、累積ポイントは、現実世界で用いられる通貨と交換可能であってもよい。コインは、ユーザ10が購入可能である点で累積ポイントと異なる。コインは、ユーザ10のアクティビティ(配信状況又は視聴状況)に応じて付与されてもよい。またコインは、累積ポイントと同様に、抽選の対価、ギフトオブジェクトの対価等として用いられてもよい。
5 shows an example of
図6は、閲覧集計情報記憶部36に記録された閲覧集計情報42の一例を示す。本実施形態では、閲覧集計情報42は、ユーザ装置20から送信された閲覧履歴情報に基づき更新される。閲覧集計情報42は、ユーザID、URL(Uniform Resource Locator)、ルームID、閲覧開始時刻、閲覧終了時刻、及び行動履歴を含む。閲覧開始時刻は、ユーザ装置20がウェブサーバ13に接続した時刻又はユーザ装置20が仮想空間に関連付けられたリソースを表示した時刻である。閲覧終了時刻は、ユーザ装置20がウェブサーバ13との接続を切断した時刻又はユーザ装置20がリソースの表示を終了した時刻である。行動履歴は、ユーザ10が表示されたリソースにおいて実行した行動を示す。行動履歴の例は、リソースにおいて資料の請求を行ったこと、リソースにおいて商品などを購入したこと、等である。
FIG. 6 shows an example of the
図7は、実績情報記憶部37に記録された実績情報43の一例を示す。実績情報43は、公開者毎に記録される。公開者は、リソースを公開する。一の公開者に複数のリソースが関連付けられていてもよい。公開者は、仮想空間内で表示されるリソースを通じて、商品やサービスをユーザに宣伝することができる。
FIG. 7 shows an example of
実績情報43は、公開者識別子、URL、ユーザ滞在時間、アンケート回答情報、閲覧回数を含む。公開者識別子は、公開者に割り振られた識別子である。ユーザ滞在(閲覧)時間は、各ユーザ10がリソースを閲覧した時間、又はそれらの閲覧時間の統計情報を示す。この時間は、閲覧集計情報42の閲覧開始時刻及び閲覧終了時刻から算出することができる。ユーザ滞在時間として、ユーザがリソースを閲覧した時間を個々に記録してもよい。又はユーザ滞在時間は、ユーザの平均滞在時間、すなわち、それれら個々に記録した時間の平均値であってもよい。アンケート回答情報は、仮想空間でユーザ10が回答したアンケートの内容、すなわち、仮想空間におけるアンケートに対するユーザ10の回答を示す。閲覧回数は、閲覧履歴情報を集計して得られる回数であってリソースが表示された回数の合計である。
The
<動画の配信及び視聴方式>
管理サーバ12は、ユーザ10のユーザ装置20から、動画の配信要求を受信する。このとき、ユーザ10は、仮想空間を指定できる。管理サーバ12は、配信要求及び指定された仮想空間の識別情報を受信すると、ユーザ10に指定された仮想空間のルーム(配信枠)を生成する。また、管理サーバ12は、仮想空間を表示するためのデータ(アセットデータ)をユーザ装置20に送信する。
<Video distribution and viewing method>
The
動画を配信中の配信枠は、各ユーザ装置20に表示される一覧画面に表示される。視聴ユーザ10Bは、一覧画面から、閲覧したい配信枠を選択することにより、動画の視聴を開始することができる。
The distribution slots in which videos are being distributed are displayed on a list screen displayed on each
動画の配信及び視聴方式としては、クライアントレンダリング方式、ブラウザレンダリング方式、映像配信方式及びサーバ配信方式のうち一つを用いることができる。本実施形態では、クライアントレンダリング方式を用いる。 The video can be delivered and viewed using one of the following methods: client rendering, browser rendering, video delivery, and server delivery. In this embodiment, the client rendering method is used.
クライアントレンダリング方式では、各ユーザ装置20は、プログラムを実行することによって、オブジェクトのレンダリングを行う。ユーザ装置20は、アバターオブジェクト及びアバターオブジェクト以外のオブジェクト(以下、物体オブジェクトという)の3次元モデルデータ等を記憶する。アバターオブジェクトの3次元モデルデータは、アバターオブジェクト本体を構成する本体パーツ、アバターオブジェクトに装着可能な装着パーツの動画データを含む。本体パーツのデータは、ポリゴンデータ、及びアバターオブジェクトの動きを表現するための骨格データ(ボーン)、テクスチャデータ等を含む。装着パーツは、テクスチャデータ等を含む。配信ユーザ10Aは、その好みに応じて、自身に対応するアバターオブジェクトの装着パーツを設定することができる。アバターオブジェクト以外の物体オブジェクトのモデルデータは、ポリゴンデータ、テクスチャデータ等を含む。
In the client rendering method, each
第1出力制御部23は、モーションデータ、及び各オブジェクトのパーツを示す識別情報(パーツID)を含む動画データを用いて描画を行う。また、第1出力制御部23は、モーションデータ、アバターオブジェクトの座標等を含む動画データを管理サーバ12に送信する。また、第1出力制御部23は、アバターオブジェクトの各パーツを示すパーツIDを所定のタイミング(例えば配信開始時)で管理サーバ12に送信する。管理サーバ12は、動画データを視聴ユーザ装置20B等に送信する。視聴ユーザ装置20Bは、管理サーバ12からそれらのデータを受信する。そして、視聴ユーザ装置20Bは、受信したデータを用いて、配信ユーザ10Aのアバターオブジェクト及び物体オブジェクトの画像を描画する。
The first
また、第1出力制御部23は、マイクロフォンが集音した音声に基づく音声データを管理サーバ12に送信する。管理サーバ12は、音声データを視聴ユーザ装置20Bに送信する。モーションデータ及び音声データ等には、タイムスタンプが付与されている。
The first
視聴ユーザ装置20Bの第1出力制御部23は、動画を表示するための動画データ及び音声データを管理サーバ12から受信する。そして、第1出力制御部23は、動画データを用いて、配信ユーザ10Aに対応するアバターオブジェクトを含めた画像を描画する。
The first
また、配信ユーザ装置20A及び視聴ユーザ装置20Bの第1出力制御部23は、他のユーザが投稿したメッセージ等のデータを管理サーバ12から受信する。第1出力制御部23は、アバターオブジェクトや他のオブジェクトをレンダリングした画像を、投稿メッセージや通知等と合成して動画データを生成し、生成した動画データをディスプレイ109に出力する。また、第1出力制御部23は、タイムスタンプに基づいて音声データを動画データと同期させてスピーカから出力する。
The first
本実施形態では、各ユーザ装置20がクライアントレンダリング方式で動画を生成する。これに代えて、配信ユーザ装置20A及び視聴ユーザ装置20Bは互いに異なる方式で動画を表示してもよい。例えば配信ユーザ装置20Aがクライアントレンダリング方式で動画を表示する一方で視聴ユーザ装置20Bがブラウザレンダリング方式で動画を表示してもよい。また、動画を表示する方式をユーザが選択できてもよい。例えば、視聴ユーザ装置20Bのうち一部の装置はクライアントレンダリング方式で動画を表示し、他の装置はブラウザレンダリング方式で動画を表示してもよい。
In this embodiment, each
<仮想空間>
図8を参照して、本実施形態における仮想空間50について説明する。仮想空間50は、複数のオブジェクト51を含む。仮想空間50に位置するオブジェクト51は、アバターオブジェクト52、それ以外の物体オブジェクト53を含む。
<Virtual space>
A
仮想空間50には、仮想空間における位置を示すワールド座標系90が設定されている。ワールド座標系は、X軸、Y軸及びZ軸を有する座標系である。ワールド座標系90は、グローバル座標系ともいう。オブジェクト51の位置はワールド座標系90の座標で特定できる。ワールド座標系90で特定される座標は、直交座標系で表される座標(X,Y,Z)を含んでいる。また、この座標は、各座標軸に対する回転座標(ロール、ピッチ、ヨー)を含んでいてもよい。各オブジェクト51には、それ自身のオブジェクト座標系91が設定されている。オブジェクト座標系91はX軸、Y軸及びZ軸を有する座標系である。アバターオブジェクト52の向き及び動き等は、直交座標系の座標又は回転座標で特定することができる。
In the
仮想空間50には、各配信ユーザ10Aに関連付けられた仮想カメラ54が位置する。仮想カメラ54にはカメラ座標系92が設定されている。例えば、カメラ座標系92は、3次元の直交座標系で特定される座標(X,Y,Z)に加え、各座標軸を中心とする回転座標(Xθ、Yθ、Zθ)を含む。
In the
第1出力制御部23は、仮想カメラ54の仮想的な光軸を中心とした所定の視野範囲(例えば略錐体の形状を有する視野錐)に含まれるオブジェクトの座標に基づいて、レンダリングを行う。そして、第1出力制御部23は、レンダリングにより生成した2次元の画像をディスプレイ109に出力する。ここでいうレンダリングは、仮想カメラ54の位置の取得、透視投影、オブジェクトの各々に関連付けられた深度情報に基づく隠面消去等が含まれる描画処理をいう。レンダリングは、これらのうち少なくとも一つの処理であってもよいし、シェーディング、テクスチャマッピング等の処理をさらに含んでいてもよい。
The first
仮想カメラ54の位置は、配信ユーザ10A及び視聴ユーザ10Bの少なくとも一方によって変更可能である。配信ユーザ10Aは、仮想カメラ54の位置に関する設定として、一人称視点(アバター位置)と三人称視点とを選択できる。第1出力制御部23は、一人称視点では、アバターの目の位置を仮想カメラ54の位置と一致又はほぼ一致させた状態でレンダリングを行う。この場合、アバターオブジェクト52の正面から延びる視線が仮想カメラ54の光軸とほぼ一致する。これにより、アバターオブジェクト52から、すなわち、アバターの目を通して仮想空間50を見ているような画像がディスプレイ109に表示される。第1出力制御部23は、三人称視点では、アバターオブジェクト52の周りの位置に仮想カメラ54を設定する。三人称視点に仮想カメラ54を設定すると、アバターオブジェクト52の画像を画面に表示することができる。第1出力制御部23は、三人称視点における仮想カメラ54の位置を変更可能である。又は、一人称視点の位置と三人称視点の位置と他の1つ以上の位置とを含む、3つ以上の位置に配置された仮想カメラ54からいずれか一つ(又は複数)を選択する多視点カメラを用いて画像を生成してもよい。
The position of the
カメラ座標系92によって、カメラの向き、パン及びチルト等の動作が特定される。三人称視点の場合、第1出力制御部23は、ユーザ10の操作に基づいて、仮想カメラ54の位置及び方向の少なくとも一方を変更する。一人称視点の場合、第1出力制御部23は、ユーザ10がアバターオブジェクト52を移動させる操作に基づいて、仮想カメラ54の位置及び方向の少なくとも一方を変更する。
The camera coordinate
本実施形態では、三人称視点の場合、仮想カメラ54は、アバターオブジェクト52に対する位置関係を保つように、アバターオブジェクト52に関連付けられていてもよい。例えば、第1出力制御部23は、カメラ操作が行われていない期間において、アバターオブジェクト52の移動に仮想カメラ54を追従させる。例えば第1出力制御部23は、配信ユーザ10Aが指示する移動方向を第1の方向として取得し、第1の方向をワールド座標系90における移動方向としての第2の方向に変換して、アバターオブジェクト52を第2の方向に移動させる。また、第1出力制御部23は、アバターオブジェクト52と仮想カメラ54との間の相対距離を一定に保ちながら、第2の方向に仮想カメラ54を移動させる。これにより、アバターオブジェクト52が仮想カメラ54から遠ざかることが抑制されるので、それによって、アバターオブジェクト52が画面から退出したり、視認が難しい程度に小さく表示されたりすることが抑制される。仮想カメラ54をアバターオブジェクト52に追従させる場合においても、ユーザ10は、入力操作により仮想カメラ54の位置及び方向の少なくとも一方を変更できる。本実施形態では、第1出力制御部23は、ユーザ10のスライド操作に基づいて、仮想カメラ54の位置を変更する。
In this embodiment, in the case of a third-person perspective, the
仮想空間50には、投影画面としてのブラウザ画面57が出力されている。ブラウザ画面57は、表示オブジェクト58に投影された画面である。表示オブジェクト58は、仮想空間50内でワールド座標系の座標を有するオブジェクトである。表示オブジェクト58は、仮想空間50に1つだけ設けられていてもよく、複数設けられていてもよい。
A
例えば、仮想空間50内で展示会が開催される場合、複数の展示ブースの各々に対して、表示オブジェクト58が設けられていてもよい。表示オブジェクト58は、展示ブースの公開者が公開するリソースを表示するためのオブジェクトである。表示オブジェクト58は、例えば厚みの無い2次元のオブジェクト、或いは表示面を有する3次元オブジェクトである。なお、展示ブースには、展示物として、表示オブジェクト58以外の展示用のオブジェクト51を設定してもよい。
For example, when an exhibition is held in the
第2出力制御部24は、所定のURLによって特定されるウェブデータを、アプリ内ブラウザを用いて読み込むとともに、ウェブデータに基づくブラウザ画面57をテクスチャマッピング等の手法により表示オブジェクト58に出力する。ブラウザ画面57は、JPEG形式、GIF形式、PNG形式等の静止画像、MPEG4等の動画データに基づく動画等の画像を含んでいてもよい。ブラウザ画面57は、アプリケーションのアプリ内ブラウザとは別のウェブブラウザによって表示されるのと同様に表示される。なお、図8では、ブラウザ画面57の詳細を省略している。
The second
第1出力制御部23は、ディスプレイ109に対し出力された画面に表示されている表示領域97における座標P1を、ブラウザ画面57における座標P2に変換する(図8の矢印95参照)。この座標変換処理の一例について説明する。仮想空間50には入力座標系93が設定されている。入力座標系93は、ディスプレイ109の画面での座標を特定する2次元の直交座標系である。入力座標系93のY軸は第1軸に対応する。X軸は第2軸に対応する。
The first
仮想空間50には、UI領域55、ブラウザ領域56が設定されている。ブラウザ領域56は入力領域に対応する。これらの領域上の座標は入力座標系93で特定される。第1出力制御部23又は第2出力制御部24は、これらの領域に対するユーザ10の入力操作の座標を取得することによって、入力操作の位置及び方向を検出する。また、第1出力制御部23又は第2出力制御部24は、入力操作の位置及び方向の少なくとも一方に応じて、入力操作に対応するユーザ指示の内容を判定するとともに、ユーザ指示に応じた制御を行う。
In the
UI領域55は、ボタン、テキストボックス、アイコン等のGUI(Graphical User Interface)要素に対する操作を受け付ける領域(レイヤー)である。図8には、UI領域55として、UI領域55A~55Dを示す。UI領域55自体は非表示の状態であるが、UI領域55内には、GUI要素(図8では図示略)が表示されている。すなわち、仮想空間画面には、UI領域55内のGUI要素が表示される一方、UI領域55自体は表示されない。図8の例では、UI領域55A内には、例えば設定ボタン等のGUI要素が表示される。UI領域55B,55C内には、例えばアバターオブジェクト52を移動させるボタン及びジャンプさせるボタン等のGUI要素がそれぞれ表示される。UI領域55D内には、メッセージを入力することが可能なテキストボックスのGUI要素が表示される。なお、図8のUI領域55A~55Dは、実際の画面を簡略化して示したものである。
The
ブラウザ領域56は、ブラウザ画面57に対する入力操作を受け付ける領域(レイヤー)である。ブラウザ領域56の座標は、入力座標系93で特定できる。第1出力制御部23は、ブラウザ画面57の表示条件が満たされたときブラウザ領域56を設定する。このとき、第1出力制御部23は、仮想カメラ54から見たときにブラウザ領域56がブラウザ画面57と重なるように、ブラウザ領域56を設定する。
The
また、第1出力制御部23は、仮想カメラ54の位置及び向きの少なくとも一方が変更されたとき、仮想カメラ54から見たブラウザ画面57の形状及び大きさに合わせてブラウザ領域56を設定する。例えば、ユーザ10の操作に応じて仮想カメラ54が表示オブジェクト58に接近することによって画面上でブラウザ画面57が大きくなるとき、第1出力制御部23は、ブラウザ画面57の大きさに合わせてブラウザ領域56を大きくする。同様に、画面上でブラウザ画面57が小さくなるとき、第1出力制御部23は、ブラウザ画面57の大きさに合わせてブラウザ領域56を小さくする。さらに、第1出力制御部23は、ユーザ10の操作に応じて仮想カメラ54とブラウザ画面57との相対角度が変化するとき、画面上のブラウザ画面57の形状に合わせてブラウザ領域56を変形させる。
Furthermore, when at least one of the position and orientation of the
操作判定部22は、ブラウザ領域56に対する入力の座標を特定する。換言すると、操作判定部22は、ブラウザ領域56に連続した入力の軌跡に対応する入力軌跡を特定する。また、操作判定部22は、特定した座標を、ブラウザ画面57における座標に変換する。ブラウザ画面57における座標は、ブラウザ画面座標系94で特定される。
The
第2出力制御部24は、操作判定部22から、ブラウザ画面座標系94の座標である入力座標に基づく表示制御の要求を受ける。第2出力制御部24は、ブラウザ画面57を制御するためのユーザ指示に基づいて、第2出力制御処理を行う。例えば、ブラウザ画面57における一連の入力座標がブラウザ画面座標系94のY軸(Y正方向及びY負方向)に沿って連続する座標であるとき、第2出力制御部24は、ブラウザ画面57をスクロールする入力操作が行われたと判定する。そして、第2出力制御部24は、ブラウザ画面57を入力操作の方向と同じ方向にスクロールする。
The second
また、操作判定部22は、入力の座標として、UI領域55及びブラウザ領域56以外の入力座標系93の座標を取得すると、第1出力制御部23に対して、取得した座標に基づく表示制御を要求する。第1出力制御部23は、仮想空間50に関する表示制御処理を行う。
When the
<入力操作>
次に図9を参照して、ユーザ10の入力操作と、その入力操作に応じた第1出力制御部23又は第2出力制御部24の表示制御について説明する。ここでは、入力装置110がタッチパネルである場合を説明する。タッチパネルへの入力操作は、指又はスタイラス等の接触により行われる。ブラウザ領域56への入力操作は、配信ユーザ10A及び視聴ユーザ10Bの少なくとも一方によって実行可能であればよい。本実施形態では、ユーザ装置20が動画を配信する配信モードにある場合に、
そのユーザ装置20の操作判定部22は、ブラウザ領域56への入力操作を受け付ける。また、ユーザ装置20が動画を視聴する視聴モードにある場合に、そのユーザ装置20の操作判定部22は、ブラウザ領域56への入力操作を受け付けない。つまり、配信ユーザ10Aのみが、ブラウザ領域56への入力操作を行うことができる。
<Input operation>
Next, referring to FIG. 9, an input operation by the
The
図9(a)~(e)は、ブラウザ画面57を含む仮想空間画面60をそれぞれ示す。仮想空間画面60は、他のオブジェクト51(図9では図示略)を含む仮想空間画像62、及びGUI要素(図9では図示略)を含む。以下、仮想空間画面60について、入力座標系93のX軸と平行な方向(X正方向及びX負方向)を横方向という。X正方向は、X座標が大きくなる方向であり、X負方向はX座標が小さくなる方向である。また、入力座標系93のY軸と平行な方向(Y正方向及びY負方向)であって、X軸と直交する方向を縦方向という。Y正方向は、Y座標が大きくなる方向であり、Y負方向はY座標が小さくなる方向である。
9(a) to (e) each show a
第1出力制御部23は、予め決められた条件に基づき、仮想カメラ54の位置の移動方向を判定する。ユーザ10が指示する方向の判定は、公知の方法を用いればよく特に限定されない。例えば、ユーザ10がX軸及びY軸に対して斜めとなる入力操作を行ったとき、第1出力制御部23は、その入力軌跡(ベクトル)のX座標の変化量とY座標の変化量とを比較する。そして、第1出力制御部23は、その入力操作を、2つの座標軸のうち変化量が多い方に沿った入力操作であると判定する。例えばX座標の変化量がY座標の変化量よりも多い場合には、第1出力制御部23は、その入力操作をX軸に沿った入力操作であると判定する。又は、第1出力制御部23は、入力軌跡のベクトルの角度に基づき、入力操作の方向を判定してもよい。
The first
図9(a)に示すように、ユーザ10は、タッチ操作によりUI領域(図9では図示略)外かつブラウザ領域56外の入力開始位置PAを指定し得る。このとき、操作判定部22は、入力開始位置PAの入力座標を取得する。
As shown in FIG. 9(a), the
その後、図9(b)に示すように、ユーザ10は、タッチ位置を、入力開始位置PAから入力終了位置PBまでX正方向にスライドさせ得る。操作判定部22は、このスライド操作に応じて、入力開始位置PAから入力終了位置PBまで連続的に変化する一連の入力座標を取得する。この場合、操作判定部22は、第1出力制御部23に取得した入力座標に基づく表示制御を要求する。第1出力制御部23は、第1表示制御処理を行う。第1表示制御処理では、仮想カメラ54の位置を変える。より詳細には、第1出力制御部23は、仮想カメラ54の位置を入力開始位置PAから入力終了位置PBに向かう方向(図9ではX正方向)に移動させる。仮想カメラ54の位置は、カメラ座標系92のX軸と平行に移動させてもよいし、所定のオブジェクト51(例えばアバターオブジェクト52)に対する相対距離を一定に保つように円弧状に移動させてもよい。
9B, the
また、第1出力制御部23が入力開始位置PAからY正方向(又はY負方向)に連続的に変化する一連の入力座標を取得したとき、仮想カメラ54の位置をY正方向(又はY負方向)に移動させてもよい。
一方、図9(a)に示すように、ユーザ10はブラウザ領域56内の入力開始位置PCを指定し得る。このとき、操作判定部22は、入力開始位置PCの入力座標を取得する。
In addition, when the first
9A, the
図9(c)に示すように、ユーザ10は、タッチ位置を、入力開始位置PCから入力終了位置PDまでY負方向にスライドさせ得る。このとき、操作判定部22は、このスライド操作に応じて、入力開始位置PCから入力終了位置PDまで連続的に変化する一連の入力座標を取得する。この場合、操作判定部22は、第2出力制御部24に取得した入力座標に基づく表示制御を要求する。第2出力制御部24は、ブラウザ画面57を、ブラウザ画面座標系94のY負方向(入力座標系93のY負方向と同じ方向)にスクロールする。つまり、第2出力制御部24は、図9(a)に示すブラウザ画面57に表示されていない範囲あって、スライド操作開始前に表示された範囲よりも上方に位置する範囲を表示する。なお、第1出力制御部23は、入力終了位置PDがブラウザ領域56外であっても縦方向のスライド操作の入力軌跡の一部がブラウザ領域56に含まれていれば、ブラウザ画面57に対する縦方向のスクロール操作であると判定してもよい。
9(c), the
図9(d)に示すように、ユーザ10は、入力開始位置PCを長押し操作した後、すなわち、入力開始位置PCに対するタッチ操作を所定の時間継続した後、タッチ操作を解除せずに、入力終了位置PEまでX正方向にスライド操作を行い得る。つまり、操作判定部22は、入力操作が、長押し操作である指定操作と、横方向のスライド操作との組み合わせであると判定し得る。このとき、操作判定部22は、、取得した入力座標に基づく表示制御を第2出力制御部24に要求する。
As shown in FIG. 9(d), after the
第2出力制御部24は、入力開始位置PCが、横スクロール可能な表示範囲61に含まれるか否かを判断する。横スクロール可能な表示範囲とは、画面のうち、表示内容を左右に動かして切り替えられる範囲であって、カルーセル等とも呼ばれる。第2出力制御部24は、入力開始位置PCが横スクロール可能な表示範囲61に含まれると判断すると、ブラウザ画面57の当該範囲を、入力開始位置PCから入力終了位置PEに向かう方向にスクロールする。
The second
図9(e)に示すように、ユーザ10は、長押し操作を行わずに、入力開始位置PCから入力終了位置PFまでX正方向にスライド操作を行い得る。このとき、操作判定部22は、このスライド操作に応じて、入力開始位置PCから入力終了位置PFまで連続的に変化する一連の入力座標を取得する。この場合、操作判定部22は、取得した入力座標に基づく表示制御を第1出力制御部23に対して要求する。
As shown in FIG. 9(e), the
第1出力制御部23は、仮想カメラ54の位置をX正方向に移動させる。つまり、ユーザ10は、UI領域55外かつブラウザ領域56外での横方向のスライド操作、又はブラウザ領域56内での長押し操作を含まないスライド操作により、仮想カメラ54の位置を移動することができる。
The first
また、ユーザ10が、ブラウザ画面57の所定領域(例えば図9(a)に示す入力開始位置PC)をタップ操作したとする。この場合、操作判定部22は、第2出力制御部24に入力座標を含む判定結果を出力する。第2出力制御部24は、操作判定部22から取得した入力座標に応じた表示制御を行う。例えば、第2出力制御部24は、入力座標が動画表示領域に含まれる場合には、停止中の動画を再生又は再生中の動画を停止する。動画表示領域とは、動画のサムネイル(小さいサイズの画像)等が表示された領域である。又は、第2出力制御部24は、入力座標が、リンクの選択操作を受け付ける領域に含まれる場合には、リンクによって特定されるリソースをウェブサーバ13から取得する。そして、第2出力制御部24は、取得したリンクをブラウザ画面57に表示する。
Furthermore, suppose that the
また、ユーザ10が、仮想空間画面60において、ピンチイン及びピンチアウトのいずれかの操作(以下、ピンチ操作)を行ったとする。この場合、操作判定部22は、ピンチ操作であると判定するとともに、入力座標を含む判定結果を第1出力制御部23に出力する。第1出力制御部23は、取得した入力座標がブラウザ領域56に含まれるかに関わらず、仮想空間画像62の全体を、縮小又は拡大する。つまり、ユーザ10がブラウザ領域56内でピンチアウト操作を行ったとしても、仮想空間画像62が拡大される。その結果、仮想空間50に含まれるブラウザ画面57も拡大される。
Furthermore, suppose that the
このように配信ユーザ装置20Aが配信ユーザ10Aの入力操作に応じた表示制御を行った場合、配信ユーザ装置20Aはその入力操作の内容を示す入力操作データを、管理サーバ12を介して視聴ユーザ装置20Bに送信する。入力操作データは、ブラウザ画面57の操作指示、操作対象の表示オブジェクト58の識別情報、操作量、仮想カメラ54の位置等を含む。操作指示は、縦方向のスクロール、横方向のスクロール、リンクの選択、又は動画の停止若しくは再生等である。操作量はスクロールの操作量等である。視聴ユーザ装置20Bは、入力操作データに基づいて、ブラウザ画面57の表示制御、仮想カメラ54の制御を行う。これにより、配信ユーザ装置20Aに出力される画面と、視聴ユーザ装置20Bに出力される画面とが同期される。又は、配信ユーザ装置20Aは、配信ユーザ装置20A及び視聴ユーザ装置20Bの間でブラウザ画面57を同期させるために、ブラウザ画面57の表示位置を示すデータを視聴ユーザ装置20Bに送信してもよい。
When the
<動作>
図10,11を参照して、ユーザ装置20の処理について説明する。ここでは配信ユーザ装置20Aが、ブラウザ画面57を含む仮想空間画面60をディスプレイ109に表示していることを前提とする。ブラウザ画面57の表示条件は、アバターオブジェクト52の位置が表示オブジェクト58に対して設定された所定領域内であること、又は配信ユーザ10Aがブラウザ画面57を表示させるための操作を行ったことである。第2出力制御部24は、表示条件が満たされたと判定すると、表示オブジェクト58に関連付けられたURLに基づいて、URLによって特定されるリソースをウェブサーバ13に要求する。第2出力制御部24は、リソースをウェブサーバ13から受信すると、アプリ内ブラウザを起動して、リソースに基づくブラウザ画面57を仮想空間50内の表示オブジェクト58の表示面に出力する。
<Operation>
The processing of the
入力座標取得部21は、配信ユーザ10Aによる入力装置110に対する入力の座標である入力座標を取得する(ステップS10)。操作判定部22は入力座標が入力座標系93のいずれの領域への操作であるかについて判定する。例えば、操作判定部22は、取得した入力座標がUI領域55内に含まれるか否かを判定する(ステップS11)。操作判定部22は、入力座標がUI領域55内に含まれると判定すると(ステップS11:YES)、そのUI領域55に対応する表示制御処理を第1出力制御部23に対して要求する。第1出力制御部23は、そのUI領域55に対応する表示制御処理を行う(ステップS12)。例えば、第1出力制御部23は、アバターオブジェクト52を移動させるGUI要素が操作されたと判定すると、配信ユーザ10Aが指示する方向にアバターオブジェクト52を移動させる。
The input coordinate
操作判定部22は、入力座標がUI領域55内に含まれないと判定すると(ステップS11:NO)、入力座標がブラウザ領域56内に含まれるか否かを判定する(ステップS13)。操作判定部22は、入力座標がブラウザ領域56内に含まれると判定すると(ステップS13:YES)、その入力座標に基づく表示制御を第2出力制御部24に対して要求する。第2出力制御部24は、入力座標に基づき操作判定処理を行う(ステップS14)。
When the
操作判定部22は、入力座標がUI領域55内にもブラウザ領域56内にも含まれないと判定すると(ステップS13:NO)、入力座標に基づく表示制御を第1出力制御部23に要求する。第1出力制御部23は、仮想空間50に対する第1表示制御処理を行う(ステップS15)。ここでは第1表示制御処理は、仮想カメラ54の制御である。
When the
次に操作判定処理(ステップS14)について説明する。第2出力制御部24は、入力座標をブラウザ画面57における座標に変換する。そして第2出力制御部24は、変換した座標に対応する入力操作について判定する。
Next, the operation determination process (step S14) will be described. The second
第2出力制御部24は、入力操作がピンチイン操作であると判定した場合には、仮想空間画像62の縮小を行う。また、第2出力制御部24は、入力操作がピンチアウト操作であると判定した場合には、仮想空間画像62の拡大を行う。また、第2出力制御部24は、入力操作が選択操作であると判定した場合には、入力座標に応じて、画面の遷移、又は、動画の停止若しくは再生を行う。
If the second
第2出力制御部24は、変換した座標が連続的に変化する場合には、ユーザ指示が、縦方向のスクロール、横方向のスクロール、及び仮想カメラ54の制御のいずれであるかを判定する。
If the converted coordinates change continuously, the second
図11に示すように、第2出力制御部24は、スライド操作が縦方向への操作であるか否かを判定する(ステップS20)。第2出力制御部24は、スライド操作が縦方向への操作であると判定すると(ステップS20:YES)、ブラウザ画面57を縦方向へスクロールする(ステップS21)。第2出力制御部24は、スライド操作が縦方向への操作ではなく、横方向の操作であると判定すると(ステップS20:YES)、入力操作が指定操作を含むか否かを判定する(ステップS22)。
As shown in FIG. 11, the second
第2出力制御部24は、入力操作が指定操作を含むと判定すると(ステップS22:YES)、ブラウザ画面57の横スクロール可能な範囲を、変換した座標が変化する方向にスクロールする(ステップS23)。第2出力制御部24は、入力操作が指定操作を含まないと判定すると(ステップS22:NO)、仮想カメラ54の制御(カメラ制御)を行う(ステップS24)。
If the second
次に、管理サーバ12による閲覧集計情報の収集処理について説明する。
配信ユーザ装置20Aは、ブラウザ画面57を出力した場合、閲覧履歴情報を管理サーバ12に送信する。閲覧履歴情報は、配信ユーザ10AのユーザID、URL、ルームID、閲覧開始時刻を含む。また、配信ユーザ10Aは、入力操作が行われる度に、入力操作を行動履歴として含む閲覧情報を管理サーバ12に送信してもよい。さらに、配信ユーザ装置20Aは、ブラウザ画面57を出力しなくなった場合には、閲覧終了時刻を含む閲覧履歴情報を管理サーバ12に送信する。閲覧履歴情報受信部32は、閲覧履歴情報を用いて閲覧集計情報42を閲覧集計情報記憶部36に記録する。
Next, the process of collecting view tally information by the
When the
実績記録部33は、閲覧集計情報42を用いて実績情報43を生成する。このとき、視聴ユーザ10Bの数に基づいて閲覧回数を算出してもよい。実績記録部33は、実績情報43を生成すると実績情報記憶部37に記録する。管理サーバ12の管理者(例えばPF提供者)は、実績情報43を公開者に提供することができる。公開者は、自身が公開した情報が閲覧された頻度及びアンケートの回答等を確認することで、ユーザの反響を確認することができる。例えば、管理者は、実績情報に応じた対価を公開者から得ることも可能である。
The performance recording unit 33 generates
<画面の表示>
図12~図15を参照して、配信ユーザ装置20Aが表示する仮想空間画面60(配信画面)について説明する。なお、図12~図15は、仮想カメラ54の位置が三人称視点である場合の画面を示す。また、視聴ユーザ装置20Bが表示する仮想空間画面(視聴画面)は、GUI要素が異なることを除いて、配信ユーザ装置20Aが表示する仮想空間画面60とほぼ同様の画面である。但し、本実施形態においては上述したように視聴ユーザ10Bはブラウザ画面57を操作することができない。
<Screen display>
The virtual space screen 60 (distribution screen) displayed by the
図12に示すように、仮想空間画面60には、アバターオブジェクト52が表示されている。例えばアバターオブジェクト52が、表示オブジェクト58の周辺まで移動することで仮想カメラ54の視野範囲に表示オブジェクト58が含まれる場合、第1出力制御部23は、表示オブジェクト58を仮想空間画面60に含める。第1出力制御部23は表示条件が満たされたと判定するとブラウザ画面57を出力する。ブラウザ画面57には、表示オブジェクト58に関連付けられたURLで特定されるウェブサイトの画面が表示されている。例えば展示会が仮想空間50で開催されている場合、展示内容に関連するウェブサイトの画面が表示される。ウェブサイトは、公開者に関する情報、商品若しくはサービスの詳細を公開するサイト等である。
As shown in FIG. 12, an
また、仮想空間画面60には、複数のGUI要素65及びアイコンが表示されている。また、仮想空間画面60には、GUI要素である移動ボタン66及びジャンプボタン67が表示されている。ユーザ10が移動ボタン66を操作すると、第1出力制御部23は、アバターオブジェクト52を移動させる。ユーザ10がジャンプボタン67を操作すると、第1出力制御部23は、アバターオブジェクト52をジャンプさせる。これにより、例えば、アバターオブジェクト52を、任意の展示ブースに移動させることができる。
The
配信ユーザ10Aが、ブラウザ画面57上で縦方向のスライド操作を行うと(図12中、矢印96を参照)、第2出力制御部24はブラウザ画面57を操作方向にスクロールする。ウェブサイトでは、独立したブラウザでの行動と同様な行動が可能である。例えば、配信ユーザ10Aは、商品等に関する情報の閲覧、商品等の購入、資料の請求等が実行可能である。
When the
このように配信ユーザ10Aがブラウザ画面57で商品等に関する情報の閲覧を行うことにより、配信された動画を視聴する視聴ユーザ10Bもその情報を見ることとなる。このため、公開者は、仮想空間50に出展し、且つ配信ユーザ10Aに動画を配信してもらうことにより商品等の宣伝を行うことができる。さらに、配信ユーザ10Aが仮想空間50内のブラウザ画面57を操作可能とすると、表示オブジェクト58に操作不可能な画像を表示する場合に比べてより多くの情報を配信ユーザ10A及び視聴ユーザ10Bに提供することができる。このため、公開者は、自身が公開する情報の宣伝効果をより高めることができる。
In this way, when the
図13は、仮想カメラ54の位置を移動させた仮想空間画面60を示す。配信ユーザ10Aが仮想カメラ54を移動させるための入力操作を行うと、第1出力制御部23は、入力操作の方向に基づき、仮想カメラ54の位置54Aを位置54Bに変更する。このとき、図13に例示するように、第1出力制御部23は、仮想カメラ54の仮想的な光軸がアバターオブジェクト52を向く状態を保ったまま、入力操作の操作量に応じた距離だけ仮想カメラ54を移動させてもよい。第1出力制御部23は、位置54Bにある仮想カメラ54の視野範囲Z1に含まれる仮想空間画像62をディスプレイ109に出力する。
FIG. 13 shows a
図14に示すように、配信ユーザ10Aが、ブラウザ領域56であって横スクロール可能な表示範囲99で、指定操作及び横方向のスライド操作を連続して行うと、第2出力制御部24は、その表示範囲99を横スクロールする(図14の矢印98を参照)。
As shown in FIG. 14, when the
図15は、配信ユーザ10Aがブラウザ領域56でピンチアウトを行ったときの仮想空間画面60である。第2出力制御部24は、仮想空間画面60のうち仮想空間画像62のみを拡大する。これにより、ブラウザ画面57も拡大されて表示される。
FIG. 15 shows the
第1実施形態の効果について説明する。
(1-1)ユーザ10による入力操作が可能なブラウザ画面57が、仮想空間画面60に表示される。ユーザ10は、仮想空間50を探索しながら、自身が興味のある情報を効率的に収集することができる。また、公開者は、現実世界での顧客等とは異なる行動傾向のあるユーザ10を顧客候補として、ブラウザ画面57を通じて情報を提供することができる。また、操作判定部22は、入力座標に応じて、ブラウザ画面57の表示を制御するための操作と、仮想カメラ54を制御するための操作とを区別する。このため、ユーザ10は複雑な操作をしなくても、ブラウザ画面57を直観的に操作することができる。
The effects of the first embodiment will be described.
(1-1) A
(1-2)操作判定部22により入力座標が第1軸(縦方向)に沿って連続的に変化するスクロール操作であると判定された場合、第2出力制御部24は、ブラウザ画面57を当該操作の方向にスクロールする。このため、ユーザ10は直観的な操作でブラウザ画面57を第1軸に沿ってスクロールすることができる。
(1-2) If the
(1-3)操作判定部22により、入力操作が所定の指定操作と入力座標が第2軸(横方向)に沿って連続的に変化するスクロール操作との組み合わせであると判定された場合、第2出力制御部24は、ブラウザ画面57の横スクロール可能な表示領域97を当該操作の方向にスクロールする。また、操作判定部22が、入力操作が第2軸に沿って連続的に変化するスクロール操作のみを含むと判定した場合に、第1出力制御部23は、仮想カメラ54の位置をその操作方向に変化させる。このため、ユーザ装置20は、仮想カメラ54の位置を変更するスライド操作と、第2軸に沿ってスクロールするための操作とを区別することができる。
(1-3) If the
(1-4)操作判定部22が、入力操作はUI領域55内及びブラウザ領域56内の入力操作ではないと判定した場合に、第1出力制御部23は、仮想カメラ54の位置を操作方向に変化させる。このため、ユーザ10は直観的な操作で仮想カメラ54を制御することができる。
(1-4) If the
(1-5)操作判定部22が、入力操作はブラウザ領域56への選択操作であると判定した場合に、第2出力制御部24は、選択操作の位置に応じた処理を実行する。このため、ユーザ10は直観的な操作で仮想カメラ54を制御することができる。
(1-5) If the
(1-6)第1出力制御部23は、ユーザ10に対応するアバターオブジェクト52を仮想空間に出力する。このため、アバターオブジェクト52を通じて、配信ユーザ10A及び視聴ユーザ10Bの間の交流、及び配信ユーザ10A間の交流の少なくとも一方を活発化することができる。
(1-6) The first
(1-7)第2出力制御部24は、配信モードである場合にブラウザ領域56への入力操作を受け付ける一方で、視聴モードである場合にはブラウザ領域56への入力操作を受け付けない。このため、視聴ユーザ10Bは、配信ユーザ10Aが閲覧するブラウザ画面57を視聴ユーザ装置20Bで視認することが可能となるため、配信ユーザ10Aとの交流を図りやすい。
(1-7) The second
[第2実施形態]
以下、図16に従って、プログラム、情報処理方法、サーバ、サーバの情報処理方法及び情報処理システムの第2実施形態について説明する。
[Second embodiment]
The second embodiment of the program, the information processing method, the server, the information processing method of the server, and the information processing system will be described below with reference to FIG.
第1実施形態では、配信ユーザ10Aのみがブラウザ領域56への入力操作を行う。第2実施形態では、配信ユーザ10Aに加え、権限を有する視聴ユーザ10Bは、ブラウザ画面57の操作を行うことができる。また、第2実施形態では、各配信ユーザ装置20が単独で配信を行うほか、複数の配信ユーザ10Aが共同して複数の配信ユーザ装置20が配信を行うコラボレーション配信を行う。コラボレーション配信においても、各配信ユーザ10Aがブラウザ領域56への入力操作を独自に行うことができる。以下、第1実施形態と同様の部分については同一符号を付してその詳細な説明を省略する。
In the first embodiment, only the
コラボレーション配信について説明する。複数のユーザが同じ仮想空間50で動画を配信することをコラボレーション配信という。以下、ルームの生成要求を行う配信ユーザ10Aをホストユーザ、ホストユーザが生成したルームに参加する配信ユーザ10Aをゲストユーザという。ゲストユーザは複数人であってもよい。
Now, we will explain collaboration distribution. Collaboration distribution refers to multiple users distributing videos in the same
ユーザ10は、ホストユーザの参加要請に対して承諾すること、又はユーザ10が送信した参加要求がホストユーザによって承認されることで、ゲストユーザとしてコラボレーション配信に参加することができる。
ホストユーザが用いる配信ユーザ装置20Aをホストユーザ装置20Hといい、ゲストユーザが用いる配信ユーザ装置20Aをゲストユーザ装置20Gという。ホストユーザ装置20Hは、ホストユーザが設定した仮想カメラ54から見た仮想空間画面60を出力する。ゲストユーザ装置20Gは、ゲストユーザが設定した仮想カメラ54から見た仮想空間画面60を出力する。つまり、ホストユーザ装置20Hと、ゲストユーザ装置20Gとは、同じ仮想空間50内で配信を行うが、それぞれの仮想空間画面60の表示範囲が異なり得る。又は、仮想カメラ54の位置を固定する場合、各配信ユーザ10Aは、同じ表示範囲の仮想画像を出力してもよい。
The
ホストユーザ装置20H及びゲストユーザ装置20Gの第2出力制御部24の各々は、その配信ユーザ10Aの入力操作に基づいて、ブラウザ画面57の表示制御を行う。ここでいうブラウザ画面57の入力操作とは、第1実施形態と同様に縦方向にスクロールを行う操作、横方向にスクロールを行う操作、選択操作等のブラウザ画面57の表示状態を制御する操作を含む。なお、複数の表示オブジェクト58が仮想空間50内に位置する場合には、ホストユーザ及びゲストユーザは、それぞれ異なる表示オブジェクト58に表示されたブラウザ画面57を操作し得る。
The second
図16は、配信ユーザ装置20A及び視聴ユーザ20B間でデータが送受信される状態を示す。なお、ユーザ装置20間のデータの送受信を中継する管理サーバ12は図示を省略している。また、ユーザ装置20間で送信される動画データ、ギフトの表示要求、メッセージのデータ、仮想カメラ54の位置情報等は図示を省略している。
FIG. 16 shows the state in which data is transmitted and received between a
視聴ユーザ10Bのうちの1以上はブラウザ画面57の入力操作の権限をし、残りの視聴ユーザ10Bは入力操作の権限を有しない。所定の条件を満たす視聴ユーザ10Bは、入力操作の権限を有する。所定の条件は、例えば、視聴ユーザ10Bが動画視聴前に配信ユーザ10Aに予め関連付けられている(フォローしている、又はフレンドである)こと、配信ユーザ10Aにギフトオブジェクトの表示要求(投げ銭)を行ったこと、配信ユーザ10A又は動画配信サービスに対価を支払ったことなどである。所定の条件を満たす視聴ユーザ10Bの視聴ユーザ装置20Bは、ブラウザ画面57の入力操作を受け付ける。
One or more of the viewing users 10B have the authority to perform input operations on the
本実施形態において、配信ユーザ10A及び視聴ユーザ10Bのブラウザ画面57を操作する権限、操作したブラウザ画面57の他装置への反映は以下の通りである。
・ホストユーザ装置20Hは、ブラウザ画面57の入力操作を受け付けるとともに、操作されたブラウザ画面57の表示状態を他装置に反映するためのデータを送信する。
・ゲストユーザ装置20Gは、ブラウザ画面57の入力操作を受け付けるとともに、操作されたブラウザ画面57の表示状態を他装置に反映するためのデータを送信する。
・権限を有する視聴ユーザ10Bの視聴ユーザ装置20Bは、ブラウザ画面57の入力操作を受け付ける一方、操作されたブラウザ画面57の表示状態を他装置に反映するためのデータを送信しない。
In this embodiment, the authority of
The
The
The
ホストユーザ装置20Hは、ホストユーザのブラウザ画面57の入力操作を受け付けると、入力操作指示、操作対象の表示オブジェクト58の識別情報及びURLを含む入力操作データD1を、ゲストユーザ装置20G、及び視聴ユーザ装置20Bに送信する。入力操作指示は、スクロールの方向及びスクロール量を含む。ゲストユーザ装置20G及び視聴ユーザ装置20Bは、入力操作データD1に基づいて、ホストユーザの操作対象の表示オブジェクト58にブラウザ画面57を出力する。ゲストユーザ装置20G及び視聴ユーザ装置20Bは、入力操作データD1にURLが含まれていない場合には、表示対象の表示オブジェクト58に関連付けられたURLを、自装置のストレージ104又は管理サーバ12から取得する。そして、URLによって特定されるリソースを、ウェブサーバ13から取得する。また、ゲストユーザ装置20G及び視聴ユーザ装置20Bは、入力操作データD1に基づいて、ブラウザ画面57をスクロールする。つまり、ゲストユーザ装置20G及び視聴ユーザ装置20Bは、ホストユーザの入力操作に応じてブラウザ画面57の表示制御をする。これによりユーザ10間でブラウザ画面57が同期される。
When the
同様に、ゲストユーザ装置20Gは、ゲストユーザのブラウザ画面57の入力操作を受け付けると、入力操作データD1を、ホストユーザ装置20H、及び視聴ユーザ装置20Bに送信する。ホストユーザ装置20H及び視聴ユーザ装置20Bは、入力操作データD1に基づいて、ゲストユーザの操作対象の表示オブジェクト58にブラウザ画面57を出力する。
Similarly, when the
一方、権限を有する視聴ユーザ10Bの視聴ユーザ装置20Bは、視聴ユーザのブラウザ画面57の入力操作を受け付けると、その入力操作に基づいてブラウザ画面57の表示制御を行う。但し、この視聴ユーザ装置20Bは、入力操作データD1を配信ユーザ装置20A及び他の視聴ユーザ装置20Bに送信しない。また、権限を有する視聴ユーザ10Bの視聴ユーザ装置20Bは、配信ユーザ装置20Aから入力操作データD1を受信していない場合に、入力操作を受け付ける。つまり、この視聴ユーザ装置20Bは、配信ユーザ装置20Aから入力操作データD1を受信した場合には、受信した入力操作データD1を優先してブラウザ画面57を制御する。視聴ユーザ10B及び配信ユーザ10Aが異なる表示オブジェクト58にそれぞれ出力されたブラウザ画面57を操作した場合には、それぞれのブラウザ画面57の表示は、それぞれ視聴ユーザ10Bの入力操作及び配信ユーザ10Aの入力操作により制御される。
On the other hand, when the
権限を有さない視聴ユーザ10Bの視聴ユーザ装置20Bは、上述したように、視聴ユーザのブラウザ画面57の入力操作を受け付けない。この視聴ユーザ装置20Bは、各配信ユーザ装置20Aの入力操作データに基づいて、ウェブサーバ13にリソースの送信要求D2を行うとともに、送信要求に応じたリソースの受信D3を行う。
As described above, the
一つの表示オブジェクト58が、ホストユーザ装置20Hのディスプレイ109及びゲストユーザ装置20Gの両方に同時に表示され、ホストユーザ及びゲストユーザの両方が入力操作を行った場合、先に受け付けた入力操作が優先されてもよい。つまり、例えばホストユーザ装置20Hが、ゲストユーザ装置20Gから送信された入力操作データD1を受信した直後に、ホストユーザの入力操作を受け付けた場合、ゲストユーザの入力操作を優先する。ホストユーザ装置20Hが、ホストユーザの入力操作を受け付けた直後に、ゲストユーザ装置20Gから送信された入力操作データを受信した場合、ホストユーザの入力操作を優先する。ゲストユーザ装置20Gも同様である。一つのブラウザ画面57の入力操作が終了すると、他の配信ユーザ10A及び視聴ユーザ10Bも入力操作が可能となる。
When one
また、例えば、異なる表示オブジェクト58が異なる配信ユーザ10Aによって同時に操作される場合には、各表示オブジェクト58には各入力操作に応じたブラウザ画面57が出力される。
Also, for example, when different display objects 58 are operated simultaneously by
図17は、コラボレーション配信においてホストユーザ装置20Hのディスプレイ109に対し出力される仮想空間画面60の一例である。仮想空間画面60は、ホストユーザに対応するアバターオブジェクト52Aを含む。また、仮想カメラ54の視野範囲にゲストユーザのアバターオブジェクト52Bが含まれる場合には、当該アバターオブジェクト52Bを描画する。また、仮想空間画面60は、権限を有する視聴ユーザ10Bに対応する簡易的なアバターオブジェクト52であるミニアバター52Cを含む。ミニアバター52Cは、配信ユーザ10Aのアバターオブジェクト52に比べて、描画処理の処理負荷が小さい。例えば、ミニアバター52Cは2次元画像である。
FIG. 17 is an example of a
第2実施形態によれば、第1実施形態の(1-1)~(1-7)に記載の効果に加え、以下の効果を得ることができる。
(2-1)第2実施形態では、コラボレーション配信を行う配信ユーザ10Aに加え、権限を有する視聴ユーザ10Bもブラウザ画面57を制御する入力操作が可能である。このため、ブラウザ画面57の表示内容を、より多くのユーザに提供することができる。このため、宣伝効果を高めることができる。
According to the second embodiment, in addition to the effects (1-1) to (1-7) of the first embodiment, the following effects can be obtained.
(2-1) In the second embodiment, in addition to the
上記各実施形態は、以下のように変更して実施することができる。上記実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
<第1出力制御部>
・上記各実施形態において、ユーザ装置20の第1出力制御部23は、クライアントレンダリング方式で動画を配信及び視聴する。これに代えて、クライアントレンダリング方式以外の上記した各方式で配信及び視聴してもよい。ブラウザレンダリング方式は、配信ユーザ装置20A及び視聴ユーザ装置20Bが、ストレージ104に格納した独立したウェブブラウザを用いて、動画を表示する方法である。このとき、配信ユーザ装置20Aは、動画データ等を管理サーバ12に送信する。動画を表示するユーザ装置20は、HTML(Hyper Text Markup Language)等のマークアップ言語で記述されるとともに、CSS(Cascading Style Sheets)、JavaScript(登録商標)等が用いられたウェブデータを管理サーバ12から受信する。ユーザ装置20で起動されたウェブブラウザプログラムは、ブラウザ上で動作するJavaScriptによってアバターオブジェクトや他のオブジェクトを描画する。この方式では、アバターオブジェクトのモデルデータ等はユーザ装置20に記憶されない。ブラウザレンダリング方式の場合、ユーザ装置20にアプリケーションがインストールされていなくてもよい。又はユーザ装置20にはアプリ内ブラウザを含むアプリケーションがインストールされていてもよい。
The above-described embodiments may be modified as follows: The above-described embodiments and the following modifications may be combined with each other to the extent that no technical contradiction occurs.
<First output control unit>
In each of the above embodiments, the first
ブラウザレンダリング方式において、仮想空間画面60を表示するファイルをレンダリングにより生成する方式として、静的レンダリング(Static Server-Side Rendering)、サーバーサイドレンダリング(Server-Side Rendering)、クライアントサイドレンダリング(Client-Side Rendering)、プリレンダリング(CSR with Prerendering)、ハイドレーションレンダリング(SSR with (Re)Hydration)等の公知の方法の少なくとも一つを用いることができる。ここでいうレンダリングは、マークアップ言語等で記載されたデータを解釈し、仮想空間画面60に表示する画像要素や文字の配置を計算することをいう。
In the browser rendering method, at least one of the well-known methods such as static rendering (Static Server-Side Rendering), server-side rendering (Server-Side Rendering), client-side rendering (Client-Side Rendering), pre-rendering (CSR with Prerendering), and hydration rendering (SSR with (Re)Hydration) can be used as a method for generating a file to display the
静的レンダリングでは、ウェブサーバ13が予め静的なHTMLファイルを記憶する。ユーザ装置20は、静的なHTMLファイルをウェブサーバ13からダウンロードする。ユーザ装置20はレンダリング済みのHTMLファイルをディスプレイ109に出力して仮想空間画面60を表示する。サーバーサイドレンダリング(SSR)では、ウェブサーバ13が、ユーザ装置20の要求に応じてレンダリング等を行うとともに、レンダリングを行ったHTMLファイルをユーザ装置20に送信する。ユーザ装置20では、ダウンロードしたHTMLファイルをディスプレイ109に出力して仮想空間画面60を表示する。なお、ウェブサーバ13はアプリケーションサーバを含む。クライアントサイドレンダリング(CSR)では、ユーザ装置20がJavaScript(登録商標)を実行することによってレンダリングを行う。このときユーザ装置20は、簡易的なHTMLファイルをウェブサーバ13からダウンロードするとともに、必要なJavaScript(登録商標)及びCSSファイル等をダウンロードする。CSRの一種であるプリレンダリングでは、ユーザ装置20が、予め一部のHTMLファイルを生成及び記録しておき、要求に応じて必要なコンテンツをウェブサーバ13からダウンロードしてレンダリングする。ハイドレーションレンダリングでは、ウェブサーバ13がレンダリングをしていないHTMLファイルを生成及び記録する。ユーザ装置20は、ウェブサーバ13からHTMLファイルをダウンロードするとともに、HTMLファイルに基づいて必要なデータをダウンロードしてレンダリングする。なお、上記の各方式において、ユーザ装置20は、ウェブサーバ13ではなく、管理サーバ12から必要なデータを取得してもよい。
In static rendering, the
映像配信方式は、配信ユーザ装置20Aが動画データを生成する方式である。具体的には、配信ユーザ装置20Aは、モーションデータ等を用いてオブジェクトの描画を行い、動画データを生成する。また、配信ユーザ装置20Aは、エンコードした動画データ及び音声データを管理サーバ12に送信する。管理サーバ12は、動画データ及び音声データを視聴ユーザ装置20Bに送信する。視聴ユーザ装置20Bは、配信ユーザ装置20Aから受信した動画データに基づいて動画をディスプレイ109に表示する。
The video distribution method is a method in which the
サーバ配信方式は、管理サーバ12が動画データを生成する方式である。管理サーバ12は、モーションデータ、音声データを配信ユーザ装置20Aから受信する。そして、管理サーバ12は、それらのデータに基づいて動画を出力するための出力用データを生成する。管理サーバ12は、生成した出力用データを配信ユーザ装置20A及び視聴ユーザ装置20Bに送信する。配信ユーザ装置20A及び視聴ユーザ装置20Bは、受信した出力用データに基づき動画をディスプレイ109に出力する。
The server distribution method is a method in which the
このように、ユーザ装置20及び管理サーバ12のいずれかが動画を出力するためのデータの生成を担う。生成するデータは、配信方式によって異なる。データの生成を担う装置は、配信方式に応じて変更可能である。
・上記各実施形態では、展示会を開催する仮想空間50を例示したが、この仮想空間50に限られない。仮想空間50は、投影画面が表示されるものであればよく、ライブ、試合等のイベントが開催されるものであってもよい。又は、仮想空間50は、仮想的な店舗、又は遊園地等の娯楽施設であってもよい。又は、仮想空間50は、イベントの開催が無く、単にユーザ10の探索又はユーザ10間のコミュニケーションが可能なものであってもよい。展示物に当たるオブジェクトが仮想空間50内に無くてもよい。
In this way, either the
In each of the above embodiments, the
<第1表示制御処理>
・上記実施形態では、第1表示制御処理は、仮想カメラ54の位置を制御する処理である。これに代えて若しくは加えて、第1表示制御処理は、仮想カメラ54の位置を変えずにその方向を制御する処理であってもよい。例えば操作方向がX正方向である場合、仮想カメラ54の位置を維持させたまま、仮想カメラ54の向きをX正方向に動かす。また第1表示制御処理は、ユーザ10が指示する方向に、アバターオブジェクト52等のオブジェクト51を移動させる処理であってもよい。
<First display control process>
In the above embodiment, the first display control process is a process of controlling the position of the
<第2出力制御部>
・上記各実施形態では、第1出力制御部23は、投影画面としてブラウザ画面57を出力した。これに代えて若しくは加えて、投影画面は、ユーザ装置20のストレージ104に記録された情報又は外部サーバから取得した情報が出力された画面であってもよい。この情報は、例えば、静止画及び動画を含む画像データ、画像一覧、文書ファイル等である。又は、この情報は、外部サーバから取得しユーザ装置20で再生可能な動画データ、他のユーザを撮影した動画を通じて会話を行うための通話データ等である。又は、動画を再生するアプリケーションのトップページであってもよい。具体的には、ストレージ104のアルバム機能により記録された写真又は動画等の画像データ、漫画等の書籍、「Microsoft PowerPoint(登録商標)」等のプレゼンテーションソフトウェアによって作成されたデータ等である。ユーザ10は、この投影画面に対しても、ブラウザ画面57と同様に、縦方向のスクロール、横方向のスクロール、画面の遷移、及び動画の再生又は停止を行うことができる。
<Second Output Control Unit>
In each of the above embodiments, the first
・第2出力制御部24は、操作判定部22により、入力操作が指定操作及び横方向のスライド操作の組み合わせを含む場合には、ブラウザ画面57の表示領域97を横方向にスクロールした。また、第2出力制御部24は、操作判定部22により、入力操作が指定操作を含まず横方向のスライド操作のみを含む場合には、仮想カメラ54の制御を行う。第2出力制御部24は、これらの入力操作に応じて逆の処理を行ってもよい。つまり、入力操作が指定操作及び横方向のスライド操作を含む場合には仮想カメラ54の制御を行うとともに、入力操作が指定操作を含まず横方向のスライド操作のみを含む場合にはブラウザ画面57の表示制御を行ってもよい。
- When the
・第2出力制御部24は、操作判定部22により、入力操作がロック操作を含むと判定された場合に、ロック操作の入力と解除操作の入力との間の期間内の入力操作を、ブラウザ画面57に対する操作であると認定してもよい。例えば、第2出力制御部24は、入力装置110に対する長押し操作と、ロックを解除するための長押し操作との間に入力した座標は、全てブラウザ画面57に対する操作であると判定する。第2出力制御部24は、当該ロック操作と当該ロック操作を解除する解除操作を入力するまでの期間内の入力操作とに基づき、ブラウザ画面57に対する処理を行う。このため、ユーザ10は、ブラウザ画面57の横方向のスクロールを指定する指定操作を行わなくても、ブラウザ領域56内で横方向のスライド操作を行うだけで、ブラウザ画面57の表示領域97を横方向にスクロールすることができる。
- When the
・第2出力制御部24は、入力操作データを他のユーザ装置20に送信することにより、ブラウザ画面57等の投影画面の同期を取る。これに代えて、第2出力制御部24は、ブラウザ画面57をキャプチャしたデータ(画像データ)を他のユーザ装置20に送信してもよい。このデータを受信したユーザ装置20は、受信したデータを表示オブジェクト58に投影する。
The second
<第2表示制御処理>
・上記各実施形態では、第2出力制御部24は、第2表示処理として、ユーザ10の入力操作に応じて、ブラウザ画面57の縦方向のスクロール、横方向のスクロール、リンクの選択、及び動画の再生又は停止を行う。第2出力制御部24は、これらの処理の少なくとも一つを実行可能であればよい。又は、第2出力制御部24は、ブラウザ画面57を含む投影画面に対する処理であれば、上記した処理以外の処理を実行してもよい。例えば、第2出力制御部24は、ユーザ10の入力操作に応じて、ブラウザ画面57を閉じたり開いたりしてもよい。また、第2出力制御部24は、ユーザ10の入力操作に応じて、プルダウンメニューに表示される項目の一つを選択する等、GUI要素を操作してもよい。
<Second display control process>
In each of the above embodiments, the second
<入力座標取得部>
・上記各実施形態では、入力座標取得部21は、入力装置110であるタッチパネルにおいて指又はスタイラス等の接触が検出された座標を取得した。入力座標取得部21は、入力装置110に応じた入力座標を取得する。入力装置110が、マウス又はコントローラである場合には、入力座標取得部21は、ユーザ10がこれらを用いて指定した画面上の座標を取得する。入力装置110が、瞳の位置を検出するトラッキングセンサを備える場合には、入力座標取得部21は、ユーザ10の視線の方向を検出し、画面上でユーザ10が指定する位置を検出する。また、入力装置110が、指等のユーザ10の身体の部位の一部の位置を検出するトラッキングセンサを備える場合には、入力座標取得部21は、ユーザ10が指をさす方向を検出し、画面上でユーザ10が指定する位置を検出する。
<Input coordinate acquisition section>
In each of the above embodiments, the input coordinate
<操作判定部>
・上記各実施形態では、操作判定部22が、入力操作がブラウザ画面57に対する操作であるか否かを判定する。これに代えて、第2出力制御部24が、操作判定部22から取得した入力座標に基づいて、入力操作がブラウザ画面57に対する操作であるか否かを判定してもよい。
<Operation determination unit>
In each of the above embodiments, the
<管理サーバ>
・管理サーバ12は、複数の仮想サーバを備えた一台のサーバ装置であってもよく、複数の物理サーバの組であってもよい。例えば、管理サーバ12は、配信管理部30を有するサーバ、閲覧履歴情報受信部32を備えるサーバ、及び実績記録部33を備えるサーバの組み合わせの組であってもよい。
<Management Server>
The
<閲覧履歴情報受信部>
・閲覧履歴情報受信部32は、閲覧情報をウェブサーバ13から受信してもよい。ウェブサーバ13は、ユーザ10が登録可能なURLで特定されるリソースのアクセスログを記録する。アクセスログは、接続日時(閲覧開始時刻)、切断日時(閲覧終了時刻)、接続したユーザ装置20の識別情報、操作内容等を含む。ウェブサーバ13は、アクセスログを管理サーバ12に送信する。管理サーバ12の閲覧履歴情報受信部32は、受信したアクセスログを閲覧集計情報42として閲覧集計情報記憶部36に記録する。実績記録部33は、アクセスログに基づく実績情報43を実績情報記憶部37に記録する。
<Browser History Information Receiving Unit>
The browsing history
<投影画面を操作する権限>
・第1実施形態では、配信ユーザ10Aのみが投影画面を操作できる。第2実施形態では、ホストユーザ及びゲストユーザを含む配信ユーザ10Aと、権限を有する視聴ユーザ10Bとが投影画面を操作可能であるとともに、配信ユーザ10Aの操作のみが他のユーザ10の動画に反映(同期)される。投影画面を操作できるユーザ10の属性、入力操作が他のユーザ装置20に同期されるユーザの属性は、適宜変更可能である。つまり、各ユーザ10の属性毎に、ブラウザ画面57の操作の可否が設定されるとともに、ブラウザ画面57を操作できる場合にはブラウザ画面57の他装置への同期の可否が設定される。なお、自装置以外の全ての他のユーザ装置20にブラウザ画面57を同期してもよく、一部の他のユーザ装置20のみにブラウザ画面57を同期してもよい。
<Permission to operate the projection screen>
In the first embodiment, only the
例えば、これらのユーザ10の属性は例えば以下の態様がある。
[第1の態様]
(A)ホストユーザ装置20Hは、ブラウザ画面57の入力操作を受け付けるとともに、操作されたブラウザ画面57を他装置に反映するためのデータを送信する。
(B)ゲストユーザ装置20G及び権限を有する視聴ユーザ10Bの視聴ユーザ装置20Bは、ブラウザ画面57の入力操作を受け付けるが、操作されたブラウザ画面57を他装置に反映するためのデータを送信しない。
[第2の態様]
(C)ホストユーザ装置20Hは、ブラウザ画面57の入力操作を受け付けるとともに操作されたブラウザ画面57を他装置に反映するためのデータを送信する。
(D)ゲストユーザ装置20G及び権限を有する視聴ユーザ10Bの視聴ユーザ装置20Bは、ブラウザ画面57の入力操作を受け付ける。これらのユーザ10によってブラウザ画面57の入力操作とは異なる操作である同期指示がユーザ装置20に入力された場合、このユーザ装置20は、ブラウザ画面57を他装置に反映するためのデータを送信する。このユーザ装置20は、同期指示が入力されない限り、ブラウザ画面57を他装置に反映するためのデータを送信しない。同期指示は、仮想空間画面60に表示された同期ボタン等が操作されることによって入力される。
For example, the attributes of these
[First aspect]
(A) The
(B) The
[Second aspect]
(C) The
(D) The
他装置に反映するためのデータは、ユーザ装置20又は管理サーバ12によって生成されるデータであって、このデータを受信するユーザ装置20が、リソース及びブラウザ画面57の操作者であるユーザ10の操作内容を判別可能であればよい。例えば、他装置に反映するためのデータは、リソースを特定するURLを含んでいてもよい。また、他装置に反映するためのデータは、操作者であるユーザ10が用いる第1のユーザ装置20が、このユーザ10の操作内容を示すデータを含んでいてもよい。第1のユーザ装置20は、ユーザ10の操作を検知したことを契機に、操作内容を示すデータを管理サーバ12に送信する。管理サーバ12は、操作内容を示すデータに基づき識別子を随時生成する。そして、管理サーバ12は、その識別子を他装置に送信する。識別子を受信した他装置である第2のユーザ装置20は、識別子に基づいて操作内容を判定するとともに、操作内容に応じてブラウザ画面57を表示する。
The data to be reflected in the other device is data generated by the
ホストユーザと自装置のユーザ10の入力操作が重複した場合には、ホストユーザの入力操作が優先される。又は、ユーザ装置20は、自装置のユーザ10のブラウザ画面57の入力操作を優先してもよい。
If the input operations of the host user and the
他の態様では、全てのユーザ10が投影画面の操作が可能であり、投影画面の同期は行われなくてもよい。
また、ユーザ10が起動(表示)したブラウザ画面57又はユーザ10が一度操作したブラウザ画面57を、他のユーザ10が操作できてもよい。つまり、一態様では、ホストユーザのみが投影画面の操作及び操作の同期の両方が可能であり、ホストユーザ以外のユーザ10は投影画面の操作が実行可能であってもよい。例えば、第1のユーザ10がブラウザ画面57を起動した後、所定の条件が満たされた場合、そのブラウザ画面57を、第2のユーザ10が操作できてもよい。この態様において、途中から操作を行った第2のユーザ10のユーザ装置20は、第2のユーザ10がブラウザ画面57の同期を行う権限を有する場合には、他装置にブラウザ画面57の同期を行うためのデータを送信する。第2のユーザ10がブラウザ画面57の同期を行う権限を有しない場合には、第2のユーザ10のユーザ装置20は他装置にブラウザ画面57の同期を行うためのデータを送信しない。所定の条件は、ホストユーザが操作を行っていないことである。又は所定の条件は、ユーザ装置20が、ユーザ10の操作を受け付けたことである。
In another embodiment, all
In addition, the
<アバターオブジェクト>
・上記各実施形態では、ユーザ装置20は、配信ユーザ10Aに対応するアバターオブジェクト52を、配信ユーザ10Aの動きを検出したトラッキングデータ又はエモートデータを用いて描画する。これによれば、配信ユーザ10Aの動き又は配信ユーザ10Aが選択した動きがアバターオブジェクト52に反映される。これに代えて又は加えて、ユーザ装置20は、一時的に若しくは継続的にトラッキングデータ及びエモートデータを用いずにアバターオブジェクト52を描画してもよい。第1出力制御部23は、ユーザ10の入力操作に基づいて、アバターオブジェクト52を制御する。アバターオブジェクト52は、ユーザ10の入力操作に応じてアクションを行う。この態様では、仮想空間50に多数のアバターオブジェクト52を描画する際に、ユーザ装置20の描画処理の負荷を軽減することができる。
<Avatar Object>
In each of the above embodiments, the
・上記各実施形態では、ユーザ装置20は、配信ユーザ10Aに対応するアバターオブジェクト52を描画する。これに代えて、ユーザ装置20は一人称視点で仮想空間50の画像を描画し、アバターオブジェクト52を描画しなくてもよい。
In each of the above embodiments, the
<動画配信の有無>
・上記各実施形態では、配信ユーザ装置20Aが動画を配信することが前提である。これに代えて又は加えて、ユーザ装置20が実装するアプリケーションは、動画を配信せずにユーザ10が仮想空間50を移動可能なアプリケーションであってもよい。つまり、管理サーバ12は、動画の配信のための処理を行わず、ユーザ装置20の要求に応じて仮想空間50のアセットデータ等を提供する。ユーザ装置20は、仮想空間画面60を出力する。但し、他のユーザ10に対応するアバターオブジェクト52が同じ仮想空間50に位置する場合には、そのアバターオブジェクト52を仮想空間画面60に表示してもよい。この態様において、ユーザ10はアプリケーションを起動して、所望の仮想空間50を選択する。ユーザ装置20は、各仮想カメラ54から見た仮想空間50の仮想空間画面を表示する。この態様においては、ユーザ10は、第1実施形態の配信ユーザ10Aと同様に、投影画面の操作を行うことができる。
<Availability of video streaming>
In each of the above embodiments, it is assumed that the
<ユーザ>
・上記各実施形態では、配信ユーザ10Aは、画像(映像)に関する情報及び音声に関する情報の少なくとも一方を送信する側のユーザを意味する。例えば、配信ユーザ10Aは、単独での動画配信を行うユーザ(第1実施形態)、複数人が参加可能なコラボレーション配信を実行するユーザ(第2実施形態)である。又は、配信ユーザ10Aは、複数人が参加すること及び複数人が視聴することの少なくとも一方が可能なビデオチャット又はボイスチャット、複数人が参加すること及び複数人が視聴することの少なくとも一方が可能な仮想空間上でのイベント(パーティ等)を主催又は開催するユーザであればよい。すなわち、配信ユーザ10Aは、ホストユーザ、主催ユーザ又は開催ユーザと言い換えることもできる。
<User>
In the above embodiments, the
一方で、視聴ユーザ10Bは、映像に関する情報及び音声に関する情報の少なくとも一方を受信するのユーザを意味する。ただし、視聴ユーザ10Bは上記情報を受信するのみならず、情報に対するリアクションを行い得る。例えば、視聴ユーザ10Bは、動画配信又はコラボレーション配信を視聴するユーザである。又は視聴ユーザ10Bは、ビデオチャット、ボイスチャットやイベントへの参加及び視聴の少なくとも一方を行うユーザであればよい。そのため、視聴ユーザ10Bは、ゲストユーザ、参加ユーザ、リスナー、観覧ユーザ、応援ユーザ等と言い換えることもできる。 On the other hand, viewing user 10B refers to a user who receives at least one of video-related information and audio-related information. However, viewing user 10B not only receives the above information, but can also react to the information. For example, viewing user 10B is a user who watches a video broadcast or collaboration broadcast. Or viewing user 10B may be a user who participates in and/or watches video chat, voice chat, or an event. Therefore, viewing user 10B can also be referred to as a guest user, participating user, listener, viewing user, supporting user, etc.
<情報処理システム>
・上記各実施形態では、管理サーバ12はPF提供者、ウェブサーバ13は公開者によって管理される。これに代えて又は加えて、ユーザ10は、上記各実施形態のように仮想空間50に予め関連付けられたリソースではなく、任意のウェブページをブラウザ画面57に表示してもよい。例えば、ユーザ10が仮想空間50内に表示オブジェクト58を見つけた場合等に、ユーザ10が所定の領域に検索ワード等を入力して検索を実行することにより、任意のブラウザ画面57を出力させてもよい。所定の領域は、例えばUI領域55に表示されたテキストボックスである。
<Information Processing System>
In each of the above embodiments, the
・上記各実施形態では、ユーザ装置20は、スマートフォン、携帯電話機、タブレット端末、パーソナルコンピュータ、コンソールゲーム機、ヘッドマウントディスプレイ等のウェアラブルコンピュータ等の情報処理装置である。これに代えて、情報処理システムを、動画配信用のスタジオに設けられたシステムとしてもよい。情報処理システムは、情報処理装置、サーバ、配信ユーザ10Aの身体に装着されるセンサユニット、センサユニットの位置を検出するトラッキングシステム、操作部、スピーカ、ディスプレイ等を有する。トラッキングシステムは、同期用のパルスレーザ光を出射する多軸レーザエミッターを備えていてもよい。センサユニットは、レーザ光を検出するセンサを備え、同期パルスで同期を取りつつ、自らの位置及び向きを検出する。
In each of the above embodiments, the
・ユーザ装置20は、アプリケーションの実行により、入力座標取得部21、操作判定部22、第1出力制御部23及び第2出力制御部24として機能する。これらのうち少なくとも一つの機能は、管理サーバ12、又は情報処理システム11における他の装置が実行してもよい。また、管理サーバ12は、プログラムの実行により、配信管理部30、閲覧履歴情報受信部32及び実績記録部33として機能する。これらのうち少なくとも一つの機能は、ユーザ装置20、又は情報処理システム11における他の装置が実行してもよい。また、管理サーバ12は、ユーザ管理情報記憶部34、閲覧集計情報記憶部36、及び実績情報記憶部37を備える。これらのうち少なくとも一つは、ユーザ装置20、又は情報処理システム11における他の装置が備えてもよい。
- By executing an application, the
Claims (12)
三次元仮想空間を仮想カメラから見た仮想空間画像を、ユーザが視認するディスプレイに出力する第1出力制御部と、
前記ユーザによる操作が可能な投影画面を、前記仮想空間画像内に出力する第2出力制御部と、
前記ユーザの入力装置への入力座標を取得する入力座標取得部と、
取得した前記入力座標に基づき、前記ユーザの入力操作が、前記投影画面に対応する入力領域への操作であるか否かを判定する操作判定部として機能させ、
前記操作判定部が、前記入力操作が前記入力領域への操作ではないと判定した場合に、前記第1出力制御部は、前記投影画面に対する制御以外の前記三次元仮想空間に関する第1表示制御処理を行い、
前記操作判定部が、前記入力操作が前記入力領域への操作であると判定した場合に、前記第2出力制御部は、前記入力座標に応じて、前記投影画面に対する第2表示制御処理を行う、プログラム。 One or more computers,
a first output control unit that outputs a virtual space image of the three-dimensional virtual space viewed from a virtual camera to a display that is visually recognized by a user;
a second output control unit that outputs a projection screen that can be operated by the user within the virtual space image;
an input coordinate acquisition unit that acquires input coordinates to an input device of the user;
functioning as an operation determination unit that determines whether or not an input operation by the user is an operation on an input area corresponding to the projection screen, based on the acquired input coordinates;
when the operation determination unit determines that the input operation is not an operation on the input area, the first output control unit performs a first display control process regarding the three-dimensional virtual space other than a control for the projection screen;
A program in which, when the operation determination unit determines that the input operation is an operation on the input area, the second output control unit performs a second display control process on the projection screen according to the input coordinates.
前記第2出力制御部は、前記投影画面を、前記スクロール操作の方向にスクロールする、請求項1に記載のプログラム。 When the operation determination unit determines that the input operation is a scroll operation in which the input coordinates continuously change along a first axis,
The program according to claim 1 , wherein the second output control unit scrolls the projection screen in a direction of the scroll operation.
前記第2出力制御部は、前記投影画面を、前記スクロール操作の方向にスクロールする、請求項1又は2に記載のプログラム。 When the operation determination unit determines that the input operation is a combination of a predetermined designation operation and a scroll operation in which the input coordinates continuously change along a second axis,
The program according to claim 1 , wherein the second output control unit scrolls the projection screen in a direction of the scroll operation.
前記第1出力制御部は、前記第1表示制御処理を行う、請求項1~3のいずれか一項に記載のプログラム。 When the operation determination unit determines that the input operation includes only a scroll operation in which the input coordinates continuously change along a second axis,
The program according to claim 1 , wherein the first output control unit performs the first display control process.
前記第2出力制御部は、当該ロック操作と当該ロック操作を解除する解除操作を入力するまでの期間内の前記入力操作に基づき、前記投影画面に対する処理を行う、請求項1~6のいずれか一項に記載のプログラム。 When the operation determination unit determines that the input operation in the input area includes a lock operation that specifies that the input operation is an operation on the projection screen,
The program according to any one of claims 1 to 6, wherein the second output control unit performs processing on the projection screen based on the input operation within a period between the input of the lock operation and the input of an unlock operation to unlock the lock operation.
前記アバターオブジェクト及び前記投影画面を含む動画を出力させるためのデータを、他のユーザが用いるユーザ装置に送信する、請求項1~8のいずれか一項に記載のプログラム。 the first output control unit outputs an avatar object corresponding to the user to the three-dimensional virtual space;
The program according to any one of claims 1 to 8, further comprising transmitting data for outputting a video including the avatar object and the projection screen to a user device used by another user.
三次元仮想空間を仮想カメラから見た仮想空間画像を、ユーザが視認するディスプレイに出力する第1出力制御処理と、
前記ユーザによる操作が可能な投影画面を、前記仮想空間画像内に出力する第2出力制御処理と、
前記ユーザの入力装置への入力座標を取得する入力座標取得処理と、
取得した前記入力座標に基づき、前記ユーザの入力操作が、前記投影画面に対応する入力領域内への操作であるか否かを判定する操作判定処理とを実行し、
前記操作判定処理において前記入力操作が前記入力領域への操作ではないと判定した場合に、前記投影画面に対する制御以外の前記三次元仮想空間に関する第1表示制御処理を行い、
前記操作判定処理において前記入力操作は前記入力領域への操作であると判定した場合に、前記入力座標に応じて、前記投影画面に対する第2表示制御処理を行う、情報処理方法。 One or more computers
a first output control process for outputting a virtual space image of the three-dimensional virtual space viewed from a virtual camera onto a display visually recognized by a user;
a second output control process for outputting a projection screen operable by the user within the virtual space image;
an input coordinate acquisition process for acquiring input coordinates to an input device of the user;
an operation determination process for determining whether or not an input operation by the user is an operation within an input area corresponding to the projection screen based on the acquired input coordinates;
performing a first display control process for the three-dimensional virtual space other than a control process for the projection screen when it is determined in the operation determination process that the input operation is not an operation on the input area;
an information processing method comprising: performing a second display control process on the projection screen according to the input coordinates when it is determined in the operation determination process that the input operation is an operation on the input area;
前記ユーザによる操作が可能な投影画面を、前記仮想空間画像内に出力する第2出力制御部と、
前記ユーザの入力装置への入力座標を取得する入力座標取得部と、
取得した前記入力座標に基づき、前記ユーザの入力操作が、前記投影画面に対応する入力領域への操作であるか否かを判定する操作判定部とを備え、
前記操作判定部が、前記入力操作が前記入力領域への操作ではないと判定した場合に、前記第1出力制御部は、前記投影画面に対する制御以外の前記三次元仮想空間に関する第1表示制御処理を行い、
前記操作判定部が、前記入力操作が前記入力領域への操作であると判定した場合に、前記第2出力制御部は、前記入力座標に応じて、前記投影画面に対する第2表示制御処理を行う、情報処理システム。 a first output control unit that outputs a virtual space image of the three-dimensional virtual space viewed from a virtual camera to a display that is visually recognized by a user;
a second output control unit that outputs a projection screen that can be operated by the user within the virtual space image;
an input coordinate acquisition unit that acquires input coordinates to an input device of the user;
an operation determination unit that determines whether or not an input operation by the user is an operation on an input area corresponding to the projection screen based on the acquired input coordinates,
when the operation determination unit determines that the input operation is not an operation on the input area, the first output control unit performs a first display control process regarding the three-dimensional virtual space other than a control for the projection screen;
An information processing system in which, when the operation determination unit determines that the input operation is an operation on the input area, the second output control unit performs a second display control process on the projection screen according to the input coordinates.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024575686A JP7787533B2 (en) | 2023-06-08 | 2023-12-18 | Program, information processing method and information processing system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023-094517 | 2023-06-08 | ||
| JP2023094517 | 2023-06-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024252695A1 true WO2024252695A1 (en) | 2024-12-12 |
Family
ID=93795771
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/045378 Pending WO2024252695A1 (en) | 2023-06-08 | 2023-12-18 | Program, information processing method, and information processing system |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024252695A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10154244A (en) * | 1996-09-30 | 1998-06-09 | Sony Corp | Three-dimensional virtual reality space display processing device, three-dimensional virtual reality space display processing method, and information providing medium |
| JP2012212340A (en) * | 2011-03-31 | 2012-11-01 | Sony Corp | Information processing apparatus, image display device and image processing method |
| US20140033078A1 (en) * | 2010-03-10 | 2014-01-30 | Xmobb, Inc. | Instantiating media into a virtual social venue to share with friends |
| JP2021135582A (en) * | 2020-02-25 | 2021-09-13 | 株式会社コロプラ | Programs, information processing methods, and information processing equipment |
-
2023
- 2023-12-18 WO PCT/JP2023/045378 patent/WO2024252695A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10154244A (en) * | 1996-09-30 | 1998-06-09 | Sony Corp | Three-dimensional virtual reality space display processing device, three-dimensional virtual reality space display processing method, and information providing medium |
| US20140033078A1 (en) * | 2010-03-10 | 2014-01-30 | Xmobb, Inc. | Instantiating media into a virtual social venue to share with friends |
| JP2012212340A (en) * | 2011-03-31 | 2012-11-01 | Sony Corp | Information processing apparatus, image display device and image processing method |
| JP2021135582A (en) * | 2020-02-25 | 2021-09-13 | 株式会社コロプラ | Programs, information processing methods, and information processing equipment |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2024252695A1 (en) | 2024-12-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11460970B2 (en) | Meeting space collaboration in augmented reality computing environments | |
| US11402964B1 (en) | Integrating artificial reality and other computing devices | |
| US11050977B2 (en) | Immersive interactive remote participation in live entertainment | |
| US10838574B2 (en) | Augmented reality computing environments—workspace save and load | |
| KR102735623B1 (en) | Method, system, and computer program for displaying reaction during voip-based call | |
| JP2020091504A (en) | Avatar display system in virtual space, avatar display method in virtual space, computer program | |
| US12289561B2 (en) | Parallel video call and artificial reality spaces | |
| JP7145266B2 (en) | Information processing system, information processing method and computer program | |
| JP6883140B1 (en) | Information processing system, information processing method and computer program | |
| US20230368464A1 (en) | Information processing system, information processing method, and information processing program | |
| US12200320B2 (en) | Moving image distribution system, moving image distribution method, and moving image distribution program | |
| JP7199791B2 (en) | Information processing system, information processing method and computer program | |
| JP7244450B2 (en) | Computer program, server device, terminal device, and method | |
| JP7787533B2 (en) | Program, information processing method and information processing system | |
| JP7281012B1 (en) | Program, information processing method and information processing system | |
| WO2024252695A1 (en) | Program, information processing method, and information processing system | |
| CN114984574B (en) | Information display method, device, storage medium and equipment | |
| JP7550411B1 (en) | PROGRAM, INFORMATION PROCESSING METHOD, SERVER, SERVER INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING SYSTEM | |
| US20240212264A1 (en) | Program, information processing method, and information processing system | |
| JP2025167649A (en) | Information processing system, information processing method and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024575686 Country of ref document: JP |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23940789 Country of ref document: EP Kind code of ref document: A1 |