Program, game control device, game system, and control method
The system addresses directional confusion in spherical game fields by using fixed and relative axes to rotate the sphere, ensuring clear navigation and orientation.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KONAMI DIGITAL ENTERTAINMENT CO LTD
- Filing Date
- 2023-08-30
- Publication Date
- 2026-06-25
AI Technical Summary
In games with a spherical game field, determining directional changes can be difficult due to the spherical nature, leading to confusion and incorrect movement.
A system that rotates a spherical game field using a first axis fixed to the sphere and a second axis relative to a virtual camera, restricting rotations to these axes to maintain directional clarity.
Maintains directional orientation by restricting sphere rotations, ensuring players can easily understand and navigate the spherical game field.
Smart Images

Figure 0007880145000001 
Figure 0007880145000002 
Figure 0007880145000003
Abstract
Description
Technical Field
[0001] The present invention relates to a program, a game control device, a game system, and a control method.
Background Art
[0002] Conventionally, there is a game in which a part of a vast game field formed on a two-dimensional plane is used as a display range to be displayed on a screen, and the game is advanced. In the case of such a game field on a two-dimensional plane, for example, if the upper side is set as the north, the directions (east, south, west, north) within the game field can be easily determined.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004]
[0005] In the case of a game field on a two-dimensional plane, when reaching the end of the game field, progress stops there. Therefore, in order to enhance the game properties, for example, it is conceivable to form a game field on a spherical surface (such as the surface of a virtual earth) and use a part of the spherical surface as the display range. However, when the game field is spherical, it may be more difficult to grasp the positional relationship compared to a two-dimensional plane field. For example, since the game field is spherical, depending on the position (latitude) of movement on the spherical surface, the direction (longitude) changes even with the same amount of movement. Therefore, when the display range of the game field changes, it may become difficult to grasp the directions (east, south, west, north). Further, due to this, if the moving direction is mistaken, it may also happen that the player moves to a position different from the assumption.Therefore, one of the objectives of the present invention is to avoid the situation where the user has difficulty understanding the direction even when the display range changes, when the display range is set to a part of a sphere or the like. [Means for solving the problem]
[0006] A program according to one aspect of the present invention causes a computer to function as a display control unit that generates a main image with a portion of the game field on the surface of a sphere or ellipsoid by capturing the surface of the sphere with a virtual camera and displays it on the screen of a display unit; an operation detection unit that detects user operations to change the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component; and a display range changing unit that changes the display range based on the user operation by rotating the sphere with respect to the virtual camera, wherein the display range changing unit operates on the surface of the sphere The system includes a first rotation unit that rotates the solid using the first axis as its axis of rotation, based on the first component detected by the operation detection unit, with the straight line connecting a specific point and the center of the solid as the first axis fixed to the solid; and a second rotation unit that rotates the solid in the pitch direction relative to the virtual camera using the second axis as its axis of rotation, based on the second component detected by the operation detection unit, with the second axis being the pitch axis as viewed from the virtual camera, which is perpendicular to the first axis, not fixed to the solid, and does not move relative to the virtual camera when the solid rotates; thereby restricting the rotation of the solid to rotation along the first and second axes.
[0007] A game control device according to another aspect of the present invention includes a display control unit that generates a main image with a portion of the game field on the surface of a sphere or ellipsoid as its display range by imaging the surface of the sphere with a virtual camera and displays it on the screen of a display unit; an operation detection unit that detects user operations for changing the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component; and a display range changing unit that changes the display range based on the user operation by rotating the sphere with respect to the virtual camera, wherein the display range changing unit specifies the surface of the sphere The system includes a first rotation unit that rotates the solid using the first axis as the axis of rotation, based on the first component detected by the operation detection unit, with the straight line connecting the point and the center of the solid as the first axis fixed to the solid; and a second rotation unit that rotates the solid in the pitch direction relative to the virtual camera using the second axis as the axis of rotation, based on the second component detected by the operation detection unit, with the second axis being the pitch axis as viewed from the virtual camera, which is perpendicular to the first axis, not fixed to the solid, and does not move relative to the virtual camera when the solid rotates; thereby restricting the rotation of the solid to rotation along the first and second axes.
[0008] Another aspect of the present invention relates to a game system comprising a server and a terminal device capable of communicating with the server, the game system comprising: a display control unit that generates a main image with a portion of the game field on the surface of a sphere or ellipsoid by capturing the surface of the sphere with a virtual camera and displays it on the screen of a display unit; an operation detection unit that detects user operations for changing the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component; and a display range changing unit that changes the display range based on the user operation by rotating the sphere with respect to the virtual camera, the display The range changing unit includes a first rotation unit that rotates the solid using the first axis as the axis of rotation, based on the first component detected by the operation detection unit, with the straight line connecting a specific point on the surface of the solid and the center of the solid as the first axis fixed to the solid; and a second rotation unit that rotates the solid in the pitch direction relative to the virtual camera using the second axis as the axis of rotation, based on the second component detected by the operation detection unit, with the second axis being the pitch axis as seen from the virtual camera, which is perpendicular to the first axis, not fixed to the solid, and does not move relative to the virtual camera when the solid rotates; thereby limiting the rotation of the solid to rotation along the first and second axes.
[0009] Another aspect of the present invention relates to a control method for controlling a computer, comprising: a display control step of generating a main image with a portion of the game field on the surface of a sphere or ellipsoid as the display area by imaging the surface of the sphere or ellipsoid with a virtual camera, and displaying it on the screen of a display unit; an operation detection step of detecting a user operation to change the display area as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component; and a display area change step of changing the display area based on the user operation by rotating the sphere with respect to the virtual camera, wherein the display area change step is performed by the vertical The system includes: a first rotation step in which a straight line connecting a specific point on the surface of the body and the center of the solid is defined as a first axis fixed to the solid, and the solid is rotated with respect to the first axis as the axis of rotation based on the first component detected in the operation detection step; and a second rotation step in which a pitch axis as seen from the virtual camera is defined as a second axis perpendicular to the first axis, not fixed to the solid, and not moving relative to the virtual camera when the solid rotates, and the solid is rotated with respect to the virtual camera in the pitch direction with respect to the virtual camera as the axis of rotation based on the second component detected in the operation detection step, thereby limiting the rotation of the solid to rotation along the first and second axes. [Brief explanation of the drawing]
[0010] [Figure 1] This is a schematic block diagram showing an example of the configuration of a game system according to one embodiment of the present invention. [Figure 2] This figure shows an example of a virtual space where the surface of a sphere is imaged by a virtual camera. [Figure 3] This figure shows an example of a screen displaying a main image with a portion of the game field on the surface of a sphere as the display area. [Figure 4] This is an example of a schematic plan view of an analog stick seen from directly above. [Figure 5] This is an example of a schematic plan view of a screen configured as a touch panel, seen from directly above. [Figure 6]This diagram illustrates an example of how a sphere's rotation can be controlled around the Earth's axis based on the x-component of a two-dimensional vector. [Figure 7] This diagram illustrates an example of how a sphere is controlled to rotate in the pitch direction relative to a virtual camera, using the pitch axis as the axis of rotation, based on the y-component of a two-dimensional vector. [Figure 8] This figure shows an example of how a sphere changes as seen from a virtual camera before and after rotation around the Earth's axis and pitch axis, respectively. [Figure 9] This is a schematic functional block diagram illustrating an example of the functional configuration of a game system. [Figure 10] This flowchart shows an example of a process for changing the display range of the game field. [Figure 11] This diagram illustrates an example of restricting the rotation of a sphere in the pitch direction. [Figure 12] This diagram illustrates an example of limiting the rotation of a sphere in the pitch direction so that the North Pole, as seen from a virtual camera, does not extend beyond the upper half of the sphere. [Figure 13] This diagram illustrates an example of limiting the rotation of a sphere in the pitch direction so that the South Pole, as seen from a virtual camera, does not extend beyond the lower half of the sphere. [Figure 14] Figure 10 is a flowchart showing an example of a variation of the process. [Figure 15] This figure shows an example of a screen where sub-images are displayed along with the main image. [Figure 16] This figure shows another example of a screen where sub-images are displayed along with the main image. [Figure 17] This figure shows an example of a sub-image. [Figure 18] This figure shows another example of a sub-image. [Figure 19] Figure 10 is a flowchart showing an example of a variation of the process. [Figure 20] This diagram illustrates the direction of the virtual camera's viewing axis relative to a sphere. [Figure 21] This diagram illustrates the direction of the virtual camera's viewing axis relative to a sphere. [Figure 22] It is a diagram showing an example of the viewing axis direction according to the distance between the virtual camera and the sphere. [Figure 23] It is a diagram showing another example of the viewing axis direction according to the distance between the virtual camera and the sphere. [Figure 24] It is a diagram showing another example of the viewing axis direction according to the distance between the virtual camera and the sphere. [Figure 25] It is a diagram showing another example of the viewing axis direction according to the distance between the virtual camera and the sphere. [Figure 26] It is a flowchart showing an example of a modification of the process shown in FIG. 10. [Figure 27] It is a schematic functional block diagram showing another example of the functional configuration of the game system. [Figure 28] It is a diagram showing an example of a screen displaying shortest path information. [Figure 29] It is a diagram showing another example of a screen on which a sub-image is displayed together with the main image. [Figure 30] It is a diagram showing another example of a screen displaying shortest path information. [Figure 31] It is a flowchart showing an example of a process for displaying shortest path information on a screen. [Figure 32] It is a diagram showing an example of a screen displaying the number of squares and the position information indicators to the destinations of each character. [Figure 33] It is a diagram showing another example of a screen on which a position information indicator is displayed. [Embodiments for Carrying Out the Invention]
[0011] Hereinafter, an example of an embodiment of the present invention will be described with reference to the drawings.
[0012] [1. Example of System Configuration] Figure 1 is a schematic block diagram showing an example configuration of a game system 1 to which a display user interface according to an embodiment of the present invention is applied. This game system 1 includes a plurality of terminal devices 10-n (where n is a positive integer; 10-1, 10-2, ...) and a server 30. The terminal devices 10-n and the server 30 within the game system 1 are connected to each other via a network N such as the Internet, enabling data communication. Here, since the plurality of terminal devices 10-n have similar configurations, they will simply be described as "terminal device 10" unless otherwise specified.
[0013] The network N in this embodiment is not limited to the Internet, but may be any network that can enable communication between the terminal devices 10-n and the server 30 within the game system 1, such as a dedicated line, a public line (telephone line, mobile communication line, etc.), a wired LAN (Local Area Network), a wireless LAN, or a combination of the Internet.
[0014] The terminal device 10 operated by the user is a computer used by the user to play games. Examples of terminal devices 10 include home game consoles (stationary or portable), personal computers, smartphones, mobile phone terminals, PHS (Personal Handy-phone System) terminals, personal digital assistants (PDAs), tablet computers, multi-function television receivers (so-called smart TVs), and commercial game machines installed in amusement facilities, etc.
[0015] Server 30 is, for example, a server computer. Server 30 stores and manages information about a user's game, for example, in a database DB, associating it with a user ID to uniquely identify each user. The database DB may be built within Server 30, or it may be built on a server computer separate from Server 30.
[0016] Game System 1 allows for computer vs. computer (also called CPU vs. computer) and online vs. online play. In online play, for example, user A operating terminal device 10-1 and users B, C, ... operating other terminal devices 10-2, 10-3, ... can play a game against each other via network N. In this online play, for example, multiple terminal devices 10-n matched by server 30 can communicate directly with each other via P2P (Peer to Peer) connection or the like. Alternatively, data exchange between multiple terminal devices 10-n can be routed through server 30 for online play. Online play can be conducted using either method. Furthermore, for example, in a terminal device 10-n having a short-range wireless communication function (e.g., Bluetooth®) using a predetermined frequency band (e.g., the 2.4GHz frequency band), multiple terminal devices 10-n can communicate directly with each other to play competitive games, etc.
[0017] (Example of terminal device hardware configuration) The terminal device 10 mainly comprises a CPU (Central Processing Unit) 11, ROM (Read Only Memory) 12, RAM (Random Access Memory) 13, auxiliary storage device 14, communication unit 15, input unit 16, display unit 17, and sound output unit 18, which are interconnected via bus lines including an address bus, data bus, and control bus. Interface circuits, image processing units, or sound processing units are interposed between the bus lines and each component as needed, but these are omitted from the illustration here.
[0018] The CPU 11 is a processor that interprets and executes instructions from system software and application software (such as game programs) and controls the entire terminal device 10. In addition to the CPU 11, or in place of the CPU 11, the processor may also include hardware such as a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), or an FPGA (Field Programmable Gate Array). ROM 12 stores programs and data necessary for the basic operation control of the terminal device 10. RAM 13 stores various programs and data and reserves workspace for the CPU 11.
[0019] The auxiliary storage device 14 is a storage device that stores game programs and various data. For example, the auxiliary storage device 14 can be a non-volatile semiconductor memory, a hard disk drive, a solid-state drive, etc.
[0020] The communication unit 15 is equipped with a communication interface (not shown) and has communication control functions for data communication. Here, the communication control functions for data communication include, for example, an internet connection function, a wireless LAN (Local Area Network) connection function, and a short-range wireless communication function. Based on instructions from the CPU 11, the communication unit 15 transmits a connection signal to connect the terminal device 10 to the network N, and also receives information transmitted from the communication partner and supplies it to the CPU 11.
[0021] The input unit 16 is for the user to input various operation commands to the terminal device 10. Examples of the input unit 16 include a position input unit with a touch interface (a component of a touch panel), physical buttons, a controller, an analog stick, a keyboard, a pointing device, etc. Alternatively, the input unit 16 may be configured to accept voice input by identifying voice input from a voice input unit such as a microphone.
[0022] The display unit 17 is driven based on image display commands from the CPU 11 and displays game screens, etc. Various known display devices such as liquid crystal displays and organic EL (Electro-Luminescence) displays can be applied to the display unit 17. Alternatively, the display unit 17 can be a touch panel that combines a display device such as a liquid crystal display with a position input unit equipped with a touch interface. When the display unit 17 is configured as a touch panel, the terminal device 10 includes a touch input detection unit (not shown). When an object such as a finger or pen touches the screen, this touch input detection unit detects the contact position coordinates on the screen and supplies a coordinate signal to the CPU 11. This allows the CPU 11 to recognize the contact position on the screen of the display unit 17. The display unit 17 does not need to be integrated with the terminal device 10; for example, it may be an externally connected television monitor, etc., to the terminal device 10. In this case, when the display unit 17 is an externally connected television monitor, etc., the display unit 17 is not included in the configuration of the terminal device 10.
[0023] The sound output unit 18 is equipped with a speaker and generates an audio signal (speech signal) based on sound generation instructions from the CPU 11, and outputs sound including game sound effects from the speaker. The sound output unit 18 is equipped with an output interface for outputting the audio signal outside the terminal device 10, either in place of the speaker or in addition to the speaker.
[0024] Furthermore, the terminal device 10 may also be equipped with a recording medium drive. Examples of recording medium drives include DVD-ROM drives, CD-ROM drives, hard disk drives, optical disk drives, flexible disk drives, silicon disk drives, and cassette media readers. In this case, the recording medium may be a DVD-ROM, CD-ROM, hard disk, optical disk, flexible disk, or semiconductor memory. The recording medium drive reads image data, audio data, and program data from the recording medium and supplies the read data to the RAM 13 or the like via a decoder.
[0025] Furthermore, the terminal device 10 may also be equipped with hardware components such as a camera, an angular velocity sensor (gyro sensor), and a GPS (Global Positioning System) receiving module.
[0026] (Example of server hardware configuration) The server 30 mainly comprises a CPU 31, ROM 32, RAM 33, auxiliary storage device 34, and communication unit 35, which are interconnected via bus lines including an address bus, data bus, and control bus. Interface circuits are interposed between the bus lines and each component as needed, but the illustration of the interface circuits is omitted here.
[0027] The CPU 31 is a processor that interprets and executes instructions from system software and application software, and controls the entire server 30. The processor may include, in addition to or instead of the CPU 31, hardware such as a GPU, DSP, or FPGA. The ROM 32 stores programs and other data necessary for the basic operation control of the server 30. The RAM 33 stores various programs and data, and reserves workspace for the CPU 31. The auxiliary storage device 34 is a storage device that stores programs and various data. For example, a hard disk drive or a solid-state drive can be used as the auxiliary storage device 34.
[0028] The communication unit 35 is equipped with a communication interface (not shown) and controls communication with each terminal device 10-n via the network N. The communication unit 35 also controls communication with other servers (not shown) connected to the network N. For example, in a system configuration in which server 30 is integrated into a social networking service (SNS), the communication unit 35 of server 30 controls communication with the SNS server. Also, for example, server 30 controls communication with a distribution server that distributes game videos played by users to viewers. It is also possible to give server 30 the functionality of a distribution server.
[0029] Server 30 can be configured as a single computer, but it can also be configured in a function-distributed manner, where the functions of server 30 are distributed among multiple servers. Alternatively, a load-balancing configuration may be implemented by providing redundancy (multiplexing) by setting up multiple servers 30 with the same functionality on the network N. Furthermore, the servers 30 may be configured as cloud servers utilizing cloud computing technology.
[0030] [2. Overview of an example game] An example of a game to which a display user interface according to an embodiment of the present invention is applied will be described in outline. Game System 1 can run various games. The games may be run by terminal device 10 communicating data with server 30 or other terminal devices 10, or they may be run by terminal device 10 alone. Below, as an example of a game run on Game System 1, a game modeled after a board game will be described, and other games will be mentioned as needed.
[0031] Figure 2 shows an example of a virtual space V in which the surface of a sphere S is imaged by a virtual camera VC. As shown in Figure 2, in this game, a sphere S, representing a virtual Earth, is placed in a three-dimensional virtual space V. A game field GF is placed on the surface of the sphere S (i.e., the spherical surface). By imagering the surface of the sphere S within the field of view of the virtual camera VC, a main image is generated with a portion of the game field GF on the surface of the sphere S as the display area, and this image is displayed on the screen of the display unit 17. The main image captured by the virtual camera VC may be a still image or a video. Note that in Figure 2, the display of objects located in the game field GF is omitted. Also, in Figure 2, lines of latitude and longitude are displayed on the surface of the sphere S, but the display of lines of latitude and longitude is optional.
[0032] Figure 3 shows an example of a screen displaying a main image G10, with a portion of the game field GF on the surface of a sphere S as the display area. As illustrated in Figure 3, the game field GF has multiple squares M on which the player character CT (an example of a game element) can stop, and a path R that determines whether movement between the squares M is possible. The squares M may be called, for example, "nodes". In the game according to this embodiment, the squares M are, for example, objects such as railway stations, ports, airports, or transit points in various countries around the world on the virtual Earth. The path R is, for example, an object that can be a railway track, a shipping route, or an aircraft route. The player character CT is, for example, an object of a vehicle such as a train, ship, or aircraft. The game field GF may also be provided with various objects such as people, animals, plants, buildings, the sea, mountains, rivers, clouds, and others. In addition to objects that are fixedly set, the objects set in the game field GF may include objects that appear or disappear depending on the progress of the game. Additionally, the game field GF displays textual information such as the names of squares M (city names, station names, etc.) and notable buildings, mountains, rivers, and seas, but this is omitted in Figure 3 (the same applies to other figures that display the game field GF).
[0033] In this embodiment of the game, players roll one or more dice in each turn and can advance their character CT by the number of spaces indicated by the dice roll. One of the spaces M on the game field GF is set as the destination. The screen in Figure 3 displays the information P11 of the currently set destination. The destination information P11 includes information such as the country name where the destination is located, the place name (name of space M), and the number of spaces to the destination via the shortest path. The user and the opponent advance their controlled character CT toward the same destination. The opponent may be a computer (so-called CPU opponent) or one or more other users. The number of paths R connected by space M (so-called degree) differs (in other words, the number of connected spaces M differs depending on space M), and there are many routes to reach the destination. Various effects are associated with each space M. For example, effects such as increasing money, decreasing money, acquiring card items, purchasing card items with money, and drawing a lottery ticket may be possible, and the effects associated with each space M differ. The effect of square M occurs when the character CT lands on that square M, but as a variation, there may be square Ms where the effect occurs simply by passing through them. Additionally, when a user acquires a card item, they will be able to activate the effect associated with that item. There are several types of card items. For example, there are cards that give the user an advantage in the game, cards that hinder at least one of the opponents, and so on; the effects associated with each card item differ. Additionally, when you land on a square M, you can use your funds to purchase the property associated with that square M. Purchasing properties allows you to increase your assets. There are several types of properties, and each has different purchase prices and return rates.
[0034] The user whose character CT is the first to arrive at the destination will receive a reward (such as money). Additionally, at the moment any character CT arrives at the destination, the character CT that is furthest from the destination will be associated with a "Poverty God" character, which will make them more likely to be at a disadvantage in the game for the rest of the game. Furthermore, if a character CT associated with a Poverty God character passes by or lands on the same square M as another user's character CT, the Poverty God character will move to the other user's character CT. When any character CT reaches a destination, a new destination is set, and each character CT then aims for the next destination square M. This process of setting a new destination is repeated each time a character CT reaches a destination until the end of the game. The goal of this game is to compete to see who has the most total assets at the end of the game.
[0035] Each user aims to reach their destination faster than their opponent, while simultaneously hindering the progress of other users' characters' CTs and utilizing advantageous squares (M) along the way. Therefore, users must constantly consider the location of their destination, the location of their opponents' characters' CTs, and the locations of advantageous or disadvantageous squares (M) to determine the best route to take on the game field (GF).
[0036] The main image G10 displayed on the screen represents only a portion of the game field GF. Therefore, locations the user wants to check, such as the destination, may not be within the displayed area. As needed, the user can change the display area of the game field GF. For example, the main image G10 in Figure 3 shows a button B12 that allows the user to switch to a display mode that changes the display range of the game field GF. By operating button B12, the user can switch to a display mode that changes the display range of the game field GF. For example, the user presses the button on the controller that corresponds to button B12. Alternatively, if the screen is a touch panel, the user touches button B12 as an operator with their finger or a stylus pen. Button B12 may be given an arbitrary name (for example, magnifying glass, world map, etc.).
[0037] (An example of user operation to change the display range) In this embodiment, when the user changes the display range of a portion of the game field GF placed on the surface of a sphere S representing the virtual Earth, the display range is changed by rotating the sphere S relative to the virtual camera VC (see Figure 2). That is, the display range is changed by rotating the sphere S relative to the virtual camera VC based on the user's operation, thereby changing the game field GF on the surface of the sphere S that falls within the field of view of the virtual camera VC. Here, the rotation of the sphere S is restricted so that the Earth's axis EA (an example of the first axis) is always located in the center of the sphere S as seen from the virtual camera VC and does not shift from side to side. Specifically, the rotation is restricted to only the rotation of the sphere S with the Earth's axis EA as the axis of rotation, and the pitch rotation of the sphere S as seen from the virtual camera VC. As a result, the Earth's axis EA or the North Pole NP (an example of a specific point) is always located in the center of the sphere S as seen from the virtual camera VC and does not shift from side to side, thereby maintaining the north-south orientation of the game field GF relative to the screen of the display unit 17. This prevents the user from having difficulty determining the cardinal directions (north, south, east, and west) of the game field GF displayed on the screen, even when the display range of the game field GF changes due to the user rotating the sphere S. This will be explained in detail below.
[0038] As shown in Figure 2, the North Pole NP is set on the surface of sphere S. A straight line connecting this North Pole NP and the center of the sphere SC (an example of the center of the solid) is set as the Earth's axis EA (an example of the first axis). The Earth's axis EA is an axis fixed to sphere S. In this case, the point on the opposite side of the North Pole NP where the surface of sphere S and the Earth's axis EA intersect becomes the South Pole. Then, a spherical map of a virtual Earth, with the North Pole NP as the reference point, is unfolded on the game field GF placed on the surface of sphere S.
[0039] Here, Figure 2 shows the definition of the orientation (coordinates) of the virtual space V in which the sphere S and virtual camera VC are placed. The horizontal direction (left-right direction) of the main image G10 captured by the virtual camera VC placed in the virtual space V is defined as the Y axis, the vertical direction (up-down direction) as the Z axis, and the depth direction perpendicular to the Y and Z axes as the X axis. Thus, mutually orthogonal X, Y, and Z axes are defined. The center SC of the sphere is defined as the intersection point (origin) of the X, Y, and Z axes. In the example in Figure 2, the X axis is the straight line connecting the center SC of the sphere and the virtual viewpoint VCa of the virtual camera VC. Although the sphere S rotates relative to the virtual camera VC based on user input, the X, Y, and Z axes do not move relative to the virtual camera VC even when the sphere S rotates.
[0040] As shown in Figure 2, for example, the initial state of the sphere S is defined as the Earth's axis EA being aligned with the Z-axis such that the North Pole NP is at the top and the South Pole is at the bottom (the Earth's axis EA is aligned with the Z-axis). Furthermore, the pitch axis PA (an example of a second axis) as seen from the virtual camera is set on the Y-axis passing through the sphere's center SC. This pitch axis PA is the axis that rotates the sphere S in the pitch direction relative to the virtual camera VC, and is not fixed to the sphere S; it does not move relative to the virtual camera VC when the sphere S rotates. The Earth axis EA and the pitch axis PA are perpendicular to each other. In the example in Figure 2, the Earth axis EA and the pitch axis PA are orthogonal at the sphere's center SC.
[0041] Generally, the roll, pitch, and yaw rotation axes set for an object to be rotated are all fixed to the object, and each rotation axis rotates and moves along with the rotation of the object. In contrast, the pitch axis PA in this embodiment is not fixed to the sphere S to be rotated, and does not move relative to the virtual camera VC with the rotation of the sphere S.
[0042] User operations to change the display range of the game field GF can be performed, for example, by input from a controller or touch panel. This user operation is detected as two-dimensional vector information and used to control the rotation of the sphere S relative to the virtual camera VC. A specific example is shown below.
[0043] Figure 4 is an example of a schematic plan view of the analog stick 51 of the physical controller 50, viewed from directly above. When not being operated, the analog stick 51 maintains the home position (initial position) indicated by the dashed line. When the analog stick 51 is tilted (an example of user operation), the CPU 11 detects information about a two-dimensional vector 2V, which consists of an x component 2Vx (an example of the first component) and a y component 2Vy (an example of the second component) perpendicular to the x component 2Vx, based on the direction and amount of tilt of the analog stick 51.
[0044] Figure 5 is an example of a schematic plan view of the screen 17a of the display unit 17, viewed from directly above. When the screen 17a is configured as a touch panel, the user performs a slide operation (an example of user operation) with an object such as a finger F. In this case, the CPU 11 detects information about a two-dimensional vector 2V consisting of an x component 2Vx and a y component 2Vy, based on the direction and length of the line segment connecting the start and end points of the slide operation.
[0045] Here, the direction of the x-component 2Vx of the two-dimensional vector 2V in Figure 4 or Figure 5 corresponds to the horizontal direction (left-right direction) of the main image G10 captured by the virtual camera VC, that is, the horizontal direction (left-right direction) of the screen 17a on which the main image G10 is displayed. In other words, the direction of the x-component 2Vx of the two-dimensional vector 2V corresponds to the direction of the Y-axis in Figure 2. Furthermore, the direction of the y component 2Vy of the two-dimensional vector 2V corresponds to the vertical direction (up and down) of the main image G10 captured by the virtual camera VC, that is, the vertical direction (up and down) of the screen 17a on which the main image G10 is displayed. In other words, the direction of the y component 2Vy of the two-dimensional vector 2V corresponds to the direction of the Z axis in Figure 2.
[0046] The x-component 2Vx of the detected two-dimensional vector 2V is then used to rotate the sphere S around the Earth axis EA (see Figure 6). The y-component 2Vy of the detected two-dimensional vector 2V is used to rotate the sphere S around the pitch axis PA, which is the rotation in the pitch direction relative to the virtual camera VC (see Figure 7).
[0047] (An example of using information from a two-dimensional vector 2V to determine the rotation speed of a sphere S) For example, the x component 2Vx is used to determine the rotation speed and direction of a sphere S with the Earth's axis EA as its rotation axis. Also, for example, the y component 2Vy is used to determine the rotation speed and direction of the sphere S in the pitch direction relative to a virtual camera VC with the pitch axis PA as its rotation axis.
[0048] For example, if the vector direction of the x component 2Vx is to the right, it takes a positive value, causing the sphere S to rotate in the positive direction around the Earth's axis EA (direction of the + (plus) arrow in Figure 2: rotating counterclockwise when viewed from above (north) with the Earth's axis EA). On the other hand, if the vector direction of the x component 2Vx is to the left, it takes a negative value, causing the sphere S to rotate in the reverse direction around the Earth's axis EA (direction of the - (minus) arrow in Figure 2: rotating clockwise when viewed from above (north) with the Earth's axis EA). Then, the sphere S rotates around the Earth's axis EA at a rotation speed corresponding to the length of the x component 2Vx vector. For example, relational information expressing the relationship between the length of the x component 2Vx vector and the rotation speed in a mathematical formula (function), etc., is stored in advance in a memory device (RAM13, auxiliary memory device 14, RAM33, auxiliary memory device 34, etc.). Alternatively, relational information in the form of a table showing the relationship between the length of the x component 2Vx vector and the rotation speed is stored in advance in a memory device.
[0049] Furthermore, for example, if the vector direction of the y component 2Vy is upward, it takes a positive value, causing the sphere S to rotate in the forward direction (rotate in the direction of the + (plus) arrow in Figure 2) around the pitch axis PA as the axis of rotation. On the other hand, if the vector direction of the y component 2Vy is downward, it takes a negative value, causing the sphere S to rotate in the reverse direction (rotate in the direction of the - (minus) arrow in Figure 2) around the pitch axis PA as the axis of rotation. Then, the sphere S is rotated around the pitch axis PA as the axis of rotation at a rotation speed corresponding to the length of the y component 2Vy vector. For example, relationship information expressing the relationship between the length of the y component 2Vy vector and the rotation speed in a mathematical formula (function) or table is stored in the memory beforehand.
[0050] In the case of user operation where the analog stick 51 is tilted as illustrated in Figure 4, the sphere S continues to rotate at the corresponding rotational speed, with the Earth axis EA and pitch axis PA as its respective axes of rotation. When the user returns the analog stick 51 to the home position, the rotation of the sphere S stops. Normally, when the force applied to the analog stick 51 is released, the analog stick 51 returns to the home position. Here, if the direction or amount of tilt of the analog stick 51 changes while it is being tilted, the rotation speed or direction of rotation may be changed based on the two-dimensional vector 2V detected after the change.
[0051] In the case of a touch operation on a touch panel as illustrated in Figure 5, the CPU 11 detects the starting point as the position where finger F touches the screen 17a, starting from a state where finger F is not in contact with the screen 17a. Subsequently, if finger F moves from the starting point by a sliding operation while remaining in contact with the screen 17a, the CPU 11 detects the line segment connecting the starting point and the finger F's new position (endpoint) as a two-dimensional vector 2V. For example, at predetermined sampling times (e.g., 1 / 60 second), coordinate information of the finger F's position in contact with the screen 17a is input to the terminal device 10. This position information may be stored in RAM 13 by sequentially overwriting only the latest information, or all the position information acquired at each sampling time may be stored in RAM 13 in chronological order. When the movement of the position stops, the finger F's new position (endpoint) is determined. If the user does not lift their finger F from the screen 17a at the endpoint, the rotation of the sphere S continues at the corresponding rotation speed, with the Earth axis EA and the pitch axis PA as the axes of rotation, respectively. When the user lifts their finger F from the touch panel screen 17a, the CPU 11 stops the rotation of the sphere S.
[0052] If the user keeps their finger F in contact with the screen 17a and moves the finger F from the endpoint to another position, the CPU 11 detects the line segment connecting the starting point (the position where the finger F first touched the screen 17a) and the other position as an updated two-dimensional vector 2V. In this case, the rotation speed or rotation direction (or the amount of rotation, as described later) may be changed based on the updated two-dimensional vector 2V. Alternatively, if the user keeps their finger F in contact with the screen 17a and moves their finger F from the endpoint to another position, the endpoint position before the movement may be used as the updated starting point, and the line segment connecting the updated starting point to the other position may be detected as the updated two-dimensional vector 2V.
[0053] Alternatively, in the case of touch operation on a touch panel, the movement speed of finger F (amount of change in position per unit time) may be detected as a two-dimensional vector 2V while finger F is moving on the touch panel screen 17a by a sliding operation. For example, every 1 / 60 second, the change in position of the touch panel screen 17a indicated by finger F is sampled, and the movement speed of finger F is detected as a two-dimensional vector 2V. While finger F is moving, the rotation of sphere S with the Earth axis EA and pitch axis PA as its axes of rotation may continue at a rotation speed and direction corresponding to the detected two-dimensional vector 2V. When the user stops moving finger F (ends sliding), the rotation of sphere S may stop.
[0054] (An example of using information from a two-dimensional vector 2V to determine the rotational displacement of a sphere S) In the above example, the x-component 2Vx and y-component 2Vy of the detected two-dimensional vector 2V were used as the rotational movement velocity of the sphere S, but this is not limited to this. For example, the x-component 2Vx of the two-dimensional vector 2V may be used as the amount of rotational movement (i.e., rotation angle) of the sphere S with respect to the Earth axis EA as the axis of rotation. Alternatively, for example, the y-component 2Vy may be used as the amount of rotational movement (i.e., rotation angle) of the sphere S in the pitch direction relative to the virtual camera VC with respect to the pitch axis PA as the axis of rotation.
[0055] For example, a sphere S is rotated around the Earth's axis EA by a rotational displacement corresponding to the length of the x-component 2Vx vector. For instance, relationship information expressing the relationship between the length of the x-component 2Vx vector and the rotational displacement (rotation angle) is pre-stored in a memory device, either as a mathematical formula (function) or a table. Furthermore, for example, the sphere S is rotated around the pitch axis PA as the axis of rotation by a rotational displacement corresponding to the length of the y-component 2Vy vector. For example, relationship information expressing the relationship between the length of the y-component 2Vy vector and the rotational displacement (rotation angle) is pre-stored in the memory, either as a mathematical formula (function) or a table. Furthermore, controlling the rotation direction (forward or reverse) of the sphere S according to the vector direction of the x component 2Vx or the y component 2Vy is the same as when using the information of the two-dimensional vector 2V described above to determine the rotation speed of the sphere S.
[0056] Figures 6 and 7 show a sphere S as seen from a virtual camera VC. Figure 6 illustrates an example of how the rotation of the sphere S is controlled around the Earth axis EA as the axis of rotation, based on the "x component 2Vx of a two-dimensional vector 2V" detected by user operation as exemplified in Figure 4 or Figure 5. In the example shown in this figure, the two-dimensional vector 2V is in the downward-left direction, and therefore the x component 2Vx is in the left direction (negative value), so the sphere S is controlled to rotate in the opposite direction around the Earth axis EA as the axis of rotation. If the x component 2Vx is in the right direction (positive value), the sphere S is controlled to rotate in the forward direction around the Earth axis EA as the axis of rotation. Figure 7 illustrates an example of how a sphere S is controlled to rotate in the pitch direction relative to a virtual camera VC, with the pitch axis PA as the axis of rotation, based on the "y component 2Vy of a two-dimensional vector 2V" detected by user operation as exemplified in Figure 4 or Figure 5. In the example shown in this figure, the two-dimensional vector 2V is in the lower left direction, and therefore the y component 2Vy is in the downward direction (negative value), so the sphere S is controlled to rotate in the opposite direction with the pitch axis PA as the axis of rotation. If the y component 2Vy were in the upward direction (positive value), the sphere S would be controlled to rotate in the forward direction with the pitch axis PA as the axis of rotation.
[0057] The rotation of a sphere S around the Earth's axis EA, based on the x component 2Vx, and the rotation of a sphere S around the pitch axis PA, based on the y component 2Vy, may or may not occur simultaneously. If they do not occur simultaneously, either rotation may take precedence.
[0058] Figure 8 shows an example of the changes in the sphere S as seen from the virtual camera VC before and after rotation around the Earth axis EA and pitch axis PA, respectively. Figure 8(A) shows an example of the sphere S as seen from the virtual camera VC before rotation control is performed. Here, we show an example where the sphere S is in its initial state (with the Earth axis EA positioned on the Z axis so that the North Pole NP is at the top). Figure 8(B) shows an example of the sphere S as seen from the virtual camera VC after the user operation exemplified in Figure 4 or Figure 5 has been performed, resulting in "rotation of the sphere S around the Earth axis EA as the axis of rotation" based on the x component 2Vx (see Figure 6) and "rotation of the sphere S around the pitch axis PA as the axis of rotation" based on the y component 2Vy (see Figure 7).
[0059] As shown in Figures 6 to 8, by restricting rotation to the Earth axis EA and the pitch axis PA, respectively, no roll rotation occurs in the sphere S as seen from the virtual camera VC. As shown in Figure 8, after the rotation of the sphere S with the Earth axis EA and the pitch axis PA as its respective axes, the Earth axis EA and the North Pole NP rotate from their original positions, but remain in the XZ plane perpendicular to the pitch axis PA and do not drift from side to side as seen from the virtual camera VC. The reason for this is as follows.
[0060] In other words, when a sphere S rotates with the Earth's axis EA as its axis of rotation (see Figures 1, 6, and 8), the position and angle of the Earth's axis EA itself, as seen from the virtual camera VC in the virtual space V, naturally do not change. In this case, the pitch axis PA is not fixed to the sphere S and does not move relative to the virtual camera VC with the rotation of the sphere S. That is to say, when a sphere S rotates with the Earth's axis EA as its axis of rotation, the position and angle of the pitch axis PA, as seen from the virtual camera VC in the virtual space V, do not change.
[0061] Here, the pitch axis PA as seen from the virtual camera VC is an axis that remains parallel to the planar direction of the screen in relation to the screen of the display unit 17 on which the main image G10, which is an image of the surface of the sphere S captured by the virtual camera VC, is displayed. In one example of this embodiment, the pitch axis PA is on the Y axis. When the sphere S is rotated in the pitch direction relative to the virtual camera VC with the pitch axis PA as the axis of rotation (see Figures 1, 7, and 8), the earth axis EA fixed to the sphere S rotates. With regard to this rotation of the earth axis EA, the earth axis EA rotates only within the XZ plane perpendicular to the pitch axis PA, maintaining a state that is perpendicular to the pitch axis PA and parallel to the planar direction of the display unit 17 screen. Here, the XZ plane, which is perpendicular to the pitch axis PA and maintains a state parallel to the plane direction of the screen, is a plane parallel to the depth direction of the screen (the depth direction of the main image G10 displayed on the screen). In other words, even if the sphere S is rotated in the pitch direction relative to the virtual camera VC with the pitch axis PA as the axis of rotation, the movement of the Earth axis EA is limited to movement within a plane parallel to the depth direction of the screen and perpendicular to the pitch axis PA, so the Earth axis EA does not wobble from side to side on the screen.
[0062] Note that while Figures 2, 6, 7, and 8 show the Earth axis EA for explanatory purposes, the main image G10 displayed on the screen may or may not display the Earth axis EA. The same applies to the pitch axis PA.
[0063] As described above, when changing the display range of the game field GF, the rotation of the sphere S relative to the virtual camera VC is restricted to rotation around the Earth axis EA, which is fixed to the sphere S, and rotation in the pitch direction as seen from the virtual camera VC, with the pitch axis PA, which is not fixed to the sphere S, as the axis of rotation. As a result, no matter how many times the rotation of the sphere S due to the Earth axis EA and pitch axis PA is repeated, the Earth axis EA will not shift left or right within the screen (within the main image G10 displayed on the screen). In other words, no roll rotation of the sphere S as seen from the virtual camera VC occurs. Therefore, the Earth's axis EA, which extends in the north-south direction, always maintains its orientation relative to the two-dimensional screen. As a result, even if the display range of the game field GF changes, the north-south orientation of the game field GF relative to the screen is always maintained.
[0064] [3. An example of the functional configuration of the game system] Figure 9 is a schematic functional block diagram showing an example of the functional configuration of the game system 1. As shown in Figure 9, the game system 1 includes a storage unit 150. The storage unit 150 stores programs and data necessary for controlling the operation of the game system 1 (including the terminal device 10 and the server 30) in a storage device (at least one of the following: database DB, ROM 12, RAM 13, auxiliary storage device 14, ROM 32, RAM 33, and auxiliary storage device 34). In this embodiment, the storage unit 150 stores game programs 151, game data 152, and game progress data 153, etc.
[0065] The game program 151 is an application program for the user to operate the terminal device 10 and run the game. Game data 152 contains various data necessary for game execution. For example, game data 152 includes a grid information table, a character information table, and a user information table. The grid information table is master data for managing each grid M placed on the game field GF. The grid information table stores information such as the location of each grid M within the game field GF, its name (such as a station name), the effects it generates, and the routes it connects to, associated with an identification information (grid ID) that uniquely identifies each grid M. The character information table is master data for managing all characters that may appear in the game provided by game system 1. The user information table stores information such as the username, the user's game level, information about the character the user controls, information about items owned, information about points owned, and information about other users associated with the user (so-called friend information), associated with the user ID of each user registered in game system 1. In addition, game data 152 also includes information about various objects placed on the game field GF and game sound information. Game progress data 153 includes various data necessary for managing the game's progress. For example, game progress data 153 includes information about square M set as the destination, and information about the square M where the user's and opponent's characters are currently located.
[0066] For example, various data for running the game stored in the memory unit 150 can be stored in a database DB or the auxiliary storage device 34 of the server 30, and when the terminal device 10 accesses the server 30, the necessary data can be downloaded to the RAM 13 or auxiliary storage device 14 of the terminal device 10. In addition, information about the results of the game run on the terminal device 10 and changes in data can be transmitted from the terminal device 10 to the server 30 in real time or at a predetermined time, and the data stored in the database DB or the auxiliary storage device 34 of the server 30 can be updated as appropriate. Furthermore, for example, at least a portion of the game can be run offline on each user's terminal device 10 without logging into the server 30, by storing the necessary data in the auxiliary storage device 14 of the terminal device 10.
[0067] As shown in Figure 9, the game system 1 includes a control unit 100. The control unit 100 is implemented by the CPU 11 of the terminal device 10 and / or the CPU 31 of the server 30 executing a game program stored in a memory device (ROM 12, RAM 13, auxiliary memory device 14, ROM 32, RAM 33, or auxiliary memory device 34, etc.). Some of the functions of the control unit 100 may be implemented by the CPU 11 of the terminal device 10 and the remaining functions by the CPU 31 of the server 30. Alternatively, all of the functions of the control unit 100 may be implemented by the CPU 31 of the server 30, or all of the functions of the control unit 100 may be implemented by the CPU 11 of the terminal device 10. The control unit 100 includes a display control unit 110, an operation detection unit 120, and a display range changing unit 130.
[0068] The display control unit 110 has the function of generating a main image G10, which has a display range of a portion of the game field GF on the surface of a sphere S (an example of a three-dimensional object) by capturing an image of the surface of the sphere S with a virtual camera VC, and displaying it on the screen of the display unit 17. Here, "sphere S" is a three-dimensional object placed in a three-dimensional virtual space V, having a spherical surface. It does not necessarily have to be a perfect sphere, and the surface of sphere S may have irregularities. Furthermore, a part of the surface (spherical surface) of sphere S may be missing. In addition, there are no particular restrictions on the internal structure inside the spherical surface of sphere S; it may be hollow or not.
[0069] Alternatively, an ellipsoid (a three-dimensional object having an ellipsoidal surface) may be used instead of the sphere S. In this case, the ellipsoid is the same as the sphere S. For example, strictly speaking, the real Earth is an ellipsoid in which the polar radius (radius in the north-south direction) is smaller than the equatorial radius, and an ellipsoid of a virtual Earth generated to resemble the real Earth, or to exaggerate the flattening ratio of the real Earth, may be used. In the game described above, the game field GF on the surface of sphere S was shown as a virtual Earth, but sphere S or ellipsoids are not limited to virtual Earths. For example, sphere S or ellipsoids could be imaginary planets, etc.
[0070] Furthermore, "Game Field GF" is a virtual game space formed on the surface of a three-dimensional object such as a sphere S, and various three-dimensional or two-dimensional objects can be placed there. In addition, various types of information such as letters, symbols, and illustrations may be placed in Game Field GF.
[0071] The operation detection unit 120 has the function of detecting user operations to change the display range of the game field GF as information of a two-dimensional vector 2V consisting of an x component 2Vx (an example of a first component) and a y component 2Vy (an example of a second component) perpendicular to the x component 2Vx. Here, "user operation" includes a variety of operations, such as tilting the analog stick 51 of the controller 50 (see Figure 4), input operations on a touch interface such as a touch panel (see Figure 5), operations such as dragging using a pointing device, and operations such as specifying coordinate information of a two-dimensional vector using a keyboard. Furthermore, if a configuration is adopted in which the user's fingers etc. moved in real space are captured by a camera and two-dimensional vector 2V information is detected by image processing, the operation of the user moving their fingers corresponds to an example of "user operation".
[0072] The display range changing unit 130 has a function to change the display range of the game field GF based on user operation to change the display range of the game field GF by rotating the sphere S relative to the virtual camera VC. This display range changing unit 130 includes a first rotation unit 131 and a second rotation unit 132.
[0073] The first rotating unit 131 uses a straight line connecting the North Pole NP (an example of a specific point) on the surface of the sphere S and the center SC of the sphere as the Earth's axis EA (an example of a first axis) fixed to the sphere S, and has the function of rotating the sphere S with the Earth's axis EA as the axis of rotation based on the x component 2Vx detected by the operation detection unit 120.
[0074] The second rotating part 132 is perpendicular to the Earth axis EA, is not fixed to the sphere S, and does not move relative to the virtual camera VC when the sphere S rotates. It rotates with respect to the pitch axis PA (an example of the second axis) as seen from the virtual camera VC as its axis of rotation, and has the function of rotating the sphere S in the pitch direction relative to the virtual camera VC based on the y component 2Vy detected by the operation detection unit 120. Here, the "pitch axis PA as seen from the virtual camera VC" can be defined as an axis extending horizontally parallel to the planar direction of the display unit 17, in relation to the "screen" of the display unit 17 on which the main image G10 captured by the virtual camera VC is displayed.
[0075] For example, the pitch axis PA can be perpendicular to the Earth axis EA, and also perpendicular to the line connecting the sphere center SC and the virtual camera VC, or perpendicular to the visual axis of the virtual camera VC (see Figures 2 and 11).
[0076] The display range changing unit 130 then restricts the rotation of the sphere S to rotation around the Earth axis EA and the pitch axis PA. Here, the rotation of the sphere S around the Earth axis EA controlled by the first rotation unit 131 and the rotation of the sphere S around the pitch axis PA controlled by the second rotation unit 132 may occur simultaneously, or one rotation may occur first.
[0077] [4. Example of processing] Next, an example of the processing performed by the game system 1 of this embodiment will be described below. Figure 10 is a flowchart showing an example of the process of changing the display range of the game field GF. The processes described below are implemented, for example, by the control unit 100 (CPU 11 of terminal device 10 and / or CPU 31 of server 30) executing a game program stored in a memory device (ROM 12, RAM 13, auxiliary memory device 14, ROM 32, RAM 33, or auxiliary memory device 34, etc.).
[0078] At the start of the game, the control unit 100 positions a sphere S in a three-dimensional virtual space V with the North Pole NP at the top (South Pole at the bottom) relative to the virtual camera VC, as illustrated in Figure 2 (S100). Here, the control unit 100 positions the sphere S relative to the virtual camera VC such that the Earth axis EA is perpendicular to the pitch axis PA as seen from the virtual camera VC. The game field GF is formed on the surface of the sphere S. Subsequently, the control unit 100 determines whether a user operation has been performed to change the display range of the game field GF (S102). If no user operation has been performed (NO in S102), such as immediately after the start of the game, the system proceeds to step S110.
[0079] In step S110, the control unit 100 captures an image of the surface of the sphere S with the virtual camera VC and generates a main image G10 with a portion of the game field GF on the surface of the sphere S as the display area. Then, the control unit 100 displays the generated main image G10 on the screen of the display unit 17 (S112). After the execution of step S112, if it is not determined that the display has ended (for example, the game has been interrupted or ended) (NO in S114), the process returns to step S102.
[0080] If a user operation is performed in step S102 to change the display range of the game field GF (YES in S102), the process proceeds to step S104. In step S104, the control unit 100 detects user operations to change the display range of the game field GF as information for a two-dimensional vector 2V consisting of mutually orthogonal x-components 2Vx and y-components 2Vy (see Figure 4 or Figure 5).
[0081] Subsequently, the control unit 100 performs the following steps S106 and S108, and rotates the sphere S relative to the virtual camera VC based on the x component 2Vx and y component 2Vy of the detected two-dimensional vector 2V. In step S106, the control unit 100 rotates the sphere S around the Earth's axis EA as the axis of rotation based on the x component 2Vx (see Figure 6). In step S108, the sphere S is rotated in the pitch direction relative to the virtual camera VC, using the pitch axis PA as seen from the virtual camera VC, which is perpendicular to the Earth's axis EA, is not fixed to the sphere S, and does not move relative to the virtual camera VC when the sphere S rotates, as the axis of rotation (see Figure 7). Note that while the flowchart in Figure 10 shows an example where steps S106 and S108 are executed simultaneously, the process is not limited to this. For example, step S108 may be executed after step S106, or step S106 may be executed after step S108. Alternatively, either step S106 or S108 may be started first, and the other step may be started before the first step is completed.
[0082] After processing in steps S106 and S108, the process proceeds to step S110. In this case, since the sphere S is rotated relative to the virtual camera VC due to the processing in steps S106 and S108 (see Figure 8), in step S110, the main image G10 with a modified display range for the game field GF is generated by capturing an image of the surface of the sphere S with the virtual camera VC. Then, the main image G10 with the modified display range based on user input is displayed on the screen (S112).
[0083] The process described in steps S102 to S112 above is repeated until the display ends (YES in S114).
[0084] [5. Summary] As described above, the program according to this embodiment is a program that causes the game system 1 (an example of a computer), terminal device 10 (an example of a computer), or server 30 (an example of a computer) to function as a display control unit 110, an operation detection unit 120, and a display range changing unit 130. Furthermore, the terminal device 10 (an example of a game control device), server 30 (an example of a game control device), or game system 1 according to this embodiment includes a display control unit 110, an operation detection unit 120, and a display range changing unit 130. The display control unit 110 captures the surface of the sphere S with a virtual camera VC to generate a main image G10 with a portion of the game field GF on the surface of the sphere S as the display range, and displays it on the screen of the display unit 17. The operation detection unit 120 detects user operations to change the display range of the game field GF as information of a two-dimensional vector 2V consisting of an x component 2Vx and a y component 2Vy perpendicular to the x component 2Vx. The display range changing unit 130 changes the display range based on user operations by rotating the sphere S relative to the virtual camera VC, and includes a first rotation unit 131 and a second rotation unit 132. The first rotation unit 131 rotates the straight line connecting the North Pole NP on the surface of the sphere S and the center SC of the sphere. The first rotation unit 132 is perpendicular to the Earth axis EA, is not fixed to the sphere S, and rotates the sphere S around the Earth axis EA as its axis of rotation based on the x component 2Vx. The second rotation unit 132 is perpendicular to the Earth axis EA, is not fixed to the sphere S, and does not move relative to the virtual camera VC with the rotation of the sphere S. It rotates the sphere S in the pitch direction relative to the virtual camera VC, based on the y component 2Vy, using the pitch axis PA as its axis of rotation as viewed from the virtual camera VC. The display range changing unit 130 then restricts the rotation of the sphere S to rotation based on the Earth axis EA and the pitch axis PA. With the above configuration, no matter how many times the sphere S is rotated by the Earth axis EA and pitch axis PA, the Earth axis EA or the North Pole NP will not shift from side to side on the screen, and no roll rotation of the sphere S as seen from the virtual camera VC will occur. Therefore, even if the user changes the display range by rotating the sphere S, the east-west and north-south directions of the game field GF relative to the screen can be maintained, and it is possible to avoid the user having difficulty understanding the direction of the game field GF.
[0085] [6. Restrictions on rotation in the pitch direction] Regarding rotation of a sphere S with the pitch axis PA as the axis of rotation in the pitch direction, if the rotation causes the North Pole NP to be located in the lower half of the sphere S relative to the virtual camera VC, the north-south direction of the game field GF will be reversed (south at the top of the screen, north at the bottom). In this case, it may become difficult to recognize the game field GF. The same applies if a pitch rotation occurs that causes the South Pole to be located in the upper half of the sphere S relative to the virtual camera VC. Therefore, in order to avoid such situations, it is preferable to impose restrictions on rotation of the sphere S with the pitch axis PA as the axis of rotation in the pitch direction.
[0086] Figure 11 illustrates an example of restricting the rotation of a sphere S in the pitch direction. The second rotating part 132 in this embodiment has the function of limiting the rotation of the sphere S in the pitch direction with the pitch axis PA as the axis of rotation, so that the North Pole NP does not move beyond the point P1 or P2 where the straight line SL connecting the sphere center SC and the virtual camera VC intersects the surface of the sphere S. Alternatively, the second rotating part 132 according to this embodiment has the function of limiting the rotation of the sphere S in the pitch direction with the pitch axis PA as the axis of rotation so that the North Pole NP or the South Pole SP (a point on the side of the Earth axis EA that intersects the surface of the sphere S but is different from the North Pole NP) does not move beyond the point P1 or P2 where the straight line SL connecting the center of the sphere SC and the virtual camera VC intersects the surface of the sphere S. Here, "the straight line SL connecting the sphere center SC and the virtual camera VC" refers to the straight line SL connecting the sphere center SC and the virtual viewpoint VCa of the virtual camera VC. Furthermore, regarding the points (intersections) where the line SL connecting the center SC of the sphere and the virtual camera VC intersects the surface of the sphere S, the intersection on the virtual camera VC side is denoted as P1, and the intersection on the other side as P2.
[0087] As shown in Figure 11, when the sphere S is rotated in the opposite direction (rotating in the "-" direction in Figure 2) with the pitch axis PA as the axis of rotation, if the pitch rotation causes the North Pole NP to move below the upper half of the sphere S as seen from the virtual camera VC, the North Pole NP will move downwards. Therefore, the pitch rotation of the sphere S is controlled so that the North Pole NP does not move downwards beyond the intersection P1. Furthermore, if the sphere S is rotated in the positive direction (rotating in the "+" direction in Figure 2) with the pitch axis PA as the axis of rotation, when the North Pole NP rotates beyond the intersection P2, the South Pole SP will move upward beyond the lower half of the sphere S as seen from the virtual camera VC. Therefore, the pitch rotation is controlled so that the North Pole NP does not move downward beyond the intersection P2 (in other words, the pitch rotation of the sphere S is controlled so that the South Pole SP does not move upward beyond the intersection P1).
[0088] Therefore, the second rotating section 132 restricts the pitch rotation of the sphere S to within the 180-degree angular range indicated by arrow AR1 in Figure 11, such that the north pole NP of the sphere S lies only between intersections P1 and P2.
[0089] Alternatively, the second rotating part 132 according to this embodiment restricts the rotation of the sphere S in the pitch direction with the pitch axis PA as the axis of rotation, so that the South Pole SP does not move beyond the points P1 and P2 where the straight line SL connecting the sphere center SC and the virtual camera VC intersects the surface of the sphere S.
[0090] Next, an example of the processing of the game system 1 according to this embodiment will be described below with reference to Figures 12 to 14. Figure 12 is a diagram illustrating an example of limiting the rotation of the sphere S in the pitch direction so that the North Pole NP as seen from the virtual camera VC does not exceed the upper half of the sphere S. Figure 13 is a diagram illustrating an example of limiting the rotation of the sphere S in the pitch direction so that the South Pole SP as seen from the virtual camera VC does not exceed the lower half of the sphere S. Figure 14 is a flowchart showing a modified version of the processing shown in Figure 10. In the processing example according to this embodiment, the processing of steps S200 to S206 shown in Figure 14 is added between steps S108 and S110 of the flowchart in Figure 10.
[0091] After step S108, the second rotation unit 132 of the control unit 100 determines the direction of the pitch rotation of the sphere S (S200). If it is in the "-" direction, it proceeds to step S202, and if it is in the "+" direction, it proceeds to step S204. As illustrated in Figure 12, when the second rotating unit 132 is rotating the sphere S in the "-" direction with the pitch axis PA as the axis of rotation, if the North Pole NP moves to the position of intersection P1 (i.e., the boundary between the upper and lower halves of the sphere S as seen from the virtual camera VC) (YES in S202), it stops the rotation of the sphere S in the pitch direction so that the North Pole NP does not move any further down (S206). Furthermore, as illustrated in Figure 13, when the sphere S is rotated in the "+" direction with the pitch axis PA as the axis of rotation, if the South Pole SP moves to the position of intersection P1 (i.e., the boundary between the upper and lower halves of the sphere S as seen from the virtual camera VC) (YES in S204), the rotation of the sphere S in the pitch direction is stopped (S206) to prevent the South Pole SP from moving further upward. In the above example, the position of the North Pole NP at which the rotation of the sphere S is stopped is set to the position of intersection P1, so that the North Pole NP does not exceed intersection P1. However, this is not the only example. That is, the position of the North Pole NP at which the rotation of the sphere S is stopped can be any position within which the North Pole NP does not exceed intersection P1. For example, when the North Pole NP moves to a predetermined position just before reaching intersection P1, the rotation of the sphere S may be stopped at that predetermined position. Referring to Figure 11, an example of this may be shown where the rotation of the sphere S is stopped at the predetermined position a predetermined angle θ (e.g., 10 degrees) before the North Pole NP reaches intersection P1 or P2, and the pitch rotation of the sphere S may be limited to an angular range of, for example, 160 degrees, as indicated by arrow AR2. The predetermined angle θ can be set arbitrarily, for example, to 3 degrees, 5 degrees, etc. Similarly, the position of the South Pole SP that stops the rotation of sphere S is sufficient as long as the South Pole SP does not exceed the intersection point P1.
[0092] [7. Displaying sub-images] Figure 15 shows an example of a screen displaying the main image G10 along with a sub-image G20 that shows the entire surface of the sphere S. The main image G10 displays a portion of the game field GF on the surface of the sphere S. The main image G10 also displays information necessary for the user to progress through the game, such as the grid squares M and the path R. As mentioned above, the user can check the parts of the game field GF that are not displayed by changing the display range of the game field GF, but it is desirable for the user to be able to easily understand which part of the entire surface of the sphere S the position currently displayed in the main image G10 corresponds to. Therefore, in addition to the main image G10, a sub-image G20 displaying the entire surface of the sphere S is displayed on the screen of the display unit 17, as shown in the example screen in Figure 15.
[0093] Sub-image G20 is, for example, an image that is superimposed on the main image G10 and has a smaller display area than the main image G10. In this case, sub-image G20 may be referred to as a mini-view, for example.
[0094] In the case of a display unit 17 equipped with multiple screens, the sub-image G20 may be displayed on a screen different from the screen on which the main image G10 is displayed. In this case, depending on the size of each of the multiple screens, the display area of the main image G10 and the sub-image G20 may be the same, or the sub-image G20 may be larger or smaller than the main image G10.
[0095] In this embodiment, sub-image G20 displays an overall field map P21, which shows the entire game field GF of the sphere S using the Mercator projection. Note that the display of the overall field map P21 is not limited to the Mercator projection; other projection methods such as the Mollweide projection, Eckert projection, Sanson projection, Goode projection, Bonne projection, and Equal Earth projection may also be used.
[0096] Furthermore, sub-image G20 displays virtual viewpoint position information P22, which indicates the position of the virtual camera VC relative to the entire surface of the sphere S. Figure 15 illustrates virtual viewpoint position information P22, showing that the center of the rectangular aiming frame is the position of the virtual camera VC. This example is not limiting; the virtual viewpoint position information P22 may also be other information such as illustrations (arrows, etc.), symbols, or text, as long as it allows the user to recognize the position of the virtual camera VC relative to the entire surface of the sphere S.
[0097] Here, the "position of the virtual camera VC" can be, for example, the position of the intersection point P1 where the line connecting the center SC of the sphere and the virtual camera VC intersects the surface of the sphere S (see Figure 11). In this case, the information indicating the position corresponding to the intersection point P1 within the overall field map P21 represented by a Mercator projection or the like corresponds to the "virtual viewpoint position information P22 indicating the position of the virtual camera VC relative to the entire surface of the sphere S." Note that the "position of the virtual camera VC" may be, for example, the position of the intersection point where the viewing axis of the virtual camera VC intersects the surface of the sphere S.
[0098] Furthermore, sub-image G20 displays information P23, which shows the position of the user's controlled character CT relative to the entire surface of sphere S. Sub-image G20 also displays information P24, which shows the position of other characters controlled by the user's opponent (another user or CPU) relative to the entire surface of sphere S. If there are multiple other characters, information P24 showing the position of each other character is displayed. Information P23 and information P24 are displayed in different ways (e.g., different colors). Also, if there are multiple other characters, each is displayed in a different way. In addition, sub-image G20 displays information P25 indicating the location of the destination relative to the entire surface of sphere S. In this way, sub-image G20 displays information P23 and P24 indicating the position of the character (the character controlled by the user CT, other characters controlled by other users, or NPCs (Non-Player Characters) automatically controlled by the CPU) relative to the entire surface of sphere S, and / or information P25 indicating the position of the destination relative to the entire surface of sphere S, so that the user can use this as a reference for future game strategies.
[0099] As described above, the display control unit 110 according to this embodiment has the function of displaying a sub-image G20, which includes information showing the entire surface of the sphere S, along with the main image G10, on the screen of the display unit 17. Furthermore, the display control unit 110 according to this embodiment has a function to display a sub-image G20, which includes virtual viewpoint position information P22 indicating the position of the virtual camera VC relative to the entire surface of the sphere S, along with the main image G10, on the screen of the display unit 17. This makes it easier for the user to understand where the position currently displayed by the main image G10 corresponds to on the entire surface of the sphere S.
[0100] (An example of displaying the area shown in the main image within a sub-image.) The sub-image G20 may display not only the position of the virtual camera VC relative to the entire surface of the sphere S, but also information indicating the display range relative to the entire surface of the sphere S. Here, the display range is the area of the surface of the sphere S displayed as the main image G10 (a part of the game field GF).
[0101] Figure 16 shows another example of a screen displaying the main image G10 along with a sub-image G30 that shows the entire surface of the sphere S. Sub-image G30 differs from sub-image G20 in Figure 15 in that it displays information P31 indicating the display range for the entire surface of the sphere S, but is otherwise the same as sub-image G20. Here, "information P31 indicating the display range for the entire surface of the sphere S" is information that shows the display range of the main image G10, which has a portion of the game field GF on the surface of the sphere S as its display range, in sub-image G20, which shows the entire surface of the sphere S.
[0102] For example, in a sub-image G30 that applies the overall field map P21 of the Mercator projection, where the scale changes with latitude, the information P31 indicating the display range will not be rectangular, as illustrated in Figure 16, even if the main image G10 is rectangular. Thus, the game field GF on the surface of the sphere S and the overall field map P21 of the sub-image G30, which represents the entire game field GF of the sphere S, do not necessarily have the same shape for their corresponding ranges. However, by displaying information P31 indicating the display range for the entire surface of the sphere S in the sub-image G30, the correspondence of the display ranges becomes clear on the screen.
[0103] The process of mapping the display range of the surface of sphere S in the main image G10 to the overall field map P21, which is displayed using a Mercator projection or similar method, can be performed using a known algorithm.
[0104] In the sub-image G30 of Figure 16, the approximate center of the area displayed as information P31 indicating the display range for the entire surface of the sphere S (in the example of Figure 16, the area is roughly trapezoidal in shape) represents the position of the virtual camera VC relative to the entire surface of the sphere S. For example, the position of the virtual camera VC relative to the entire surface of the sphere S may be clarified by displaying virtual viewpoint position information P22, as exemplified in Figure 15, together with the information P31, within the sub-image G30.
[0105] Furthermore, the user may be able to change the size of the display range of the game field GF, which is displayed as the main image G10, by performing a predetermined operation. Here, the method for changing the size of the display range includes, for example, the following two methods, and either of them may be used.
[0106] One method involves changing the scaling factor (zooming in, zooming out) of an image of the game field GF on the surface of a sphere S, captured by a virtual camera VC, using digital image processing. For example, the size of the display range of the game field GF is changed by performing digital image processing such as enlargement, pixel interpolation, and cropping on an image of the game field GF captured by the virtual camera VC. This method is also called digital zoom. With this method of changing the scaling factor of an image using digital image processing, the image resolution may decrease as the zoom in increases.
[0107] Another method involves changing the distance between the virtual camera VC and the sphere S. By bringing the virtual camera VC and sphere S closer together, zooming in reduces the display range of the game field GF captured by the virtual camera VC, while moving them further apart zooms out increases the display range of the game field GF captured by the virtual camera VC. Unlike the method of changing the image scaling ratio through digital image processing mentioned earlier, this method of changing the distance between the virtual camera VC and sphere S does not reduce the resolution of the image captured by the virtual camera VC even when zooming in. In other words, as the distance between sphere S and virtual camera VC decreases, the display range relative to the surface of sphere S decreases, but subjects (objects in the game field GF) within the display range are displayed larger. Also, the closer the distance between the 3D object and the virtual camera, the higher the resolution of the subject, making it easier to obtain detailed information about the subject.
[0108] For example, the screen in Figure 15 or Figure 16 displays zoom-in button B16 and zoom-out button B17 for changing the size (width) of the display range of the game field GF, which is displayed as the main image G10. These buttons B16 and B17 can be operated in various ways, such as pressing the corresponding buttons on a controller, tapping the buttons B16 and B17 as controls on a touch panel, or selecting and confirming buttons B16 and B17 via voice input. Alternatively, the buttons B16 and B17 may not be displayed on the screen, and operations corresponding to zoom in and zoom out (such as pressing the corresponding buttons) may be enabled.
[0109] When the user operates the zoom-in button B16, the display range of the game field GF shown in the main image G10 becomes smaller, but individual squares M, paths R, and other objects placed in the game field GF are enlarged, allowing for detailed viewing. Conversely, when the user operates the zoom-out button B17, the display range of the game field GF shown in the main image G10 becomes larger, allowing for viewing of a wider area. The size of the display range of the game field GF shown as the main image G10 may be changed in steps by user operation, or it may be changed seamlessly and continuously. Furthermore, if the screen of the display unit 17 is configured as a touch panel, the size of the display range may be changed by predetermined operations such as pinching in (bringing two fingers close together) and pinching out (spreading two fingers apart).
[0110] Figure 15 or Figure 16 shows an example screen of a display mode in which the display range of the game field GF can be changed, and a display mode object P15 indicating that this display mode is active is displayed in the center of the main image G10. By operating the back button B18 on the screen of Figure 15 or Figure 16, the display mode is canceled and the screen returns to the display shown in Figure 3, for example. Alternatively, even without changing the display mode, the user may be allowed to change the display range of the game field GF (see Figures 4 and 5) or change the size of the display range, for example, while the screen remains as shown in Figure 3.
[0111] If the position or size of the display range of the game field GF, which is displayed as the main image G10, is changed, the information P31 indicating the display range for the entire surface of the sphere S in the sub-image G30 shown in Figure 16 is also changed. Figures 17 and 18 are examples of magnified views of only the sub-image G30 shown in Figure 16. The position and size of the display range of the game field GF, which is displayed as the main image G10, differ between the sub-image G30 in Figure 17 and the sub-image G30 in Figure 18. Compared to the sub-image G30 in Figure 17, the display range of the game field GF, which is displayed as the main image G10, is larger in the sub-image G30 in Figure 18.
[0112] As described above, the display control unit 110 according to this embodiment has the function of displaying a sub-image G30, which includes information P31 indicating the display range for the entire surface of the sphere S, along with the main image G10, on the screen of the display unit 17. This makes it easier for the user to understand which part of the entire surface of the sphere S the area currently displayed by the main image G10 corresponds to.
[0113] Next, an example of the process of displaying a sub-image G20 or G30 together with the main image G10 will be described below with reference to the flowchart in Figure 19. Figure 19 is a flowchart of a modified version of the process shown in Figure 10. In the example of the process according to this embodiment, the processes of steps S300 to S304 shown in Figure 19 are added between steps S110 and S112 of the flowchart in Figure 10.
[0114] In step S110, the control unit 100 captures an image of the surface of the sphere S with the virtual camera VC and generates a main image G10 with a display area set to a portion of the game field GF on the surface of the sphere S. Then, the control unit 100 acquires information on the position of the virtual camera VC relative to the entire surface of the sphere S (S300). The control unit 100 also acquires information on the display area relative to the entire surface of the sphere S (S302). Then, the control unit 100 generates a sub-image G20 or G30 that reflects the information acquired in steps S300 and / or S302 (S304). Then, the control unit 100 displays the main image G10 generated in step S110 and the sub-image G20 or G30 generated in step S304 on the screen of the display unit 17 (S112). Furthermore, as illustrated in Figure 15, if a sub-image G20 including virtual viewpoint position information P22 indicating the position of the virtual camera VC relative to the entire surface of the sphere S is displayed on the screen, step S302 may be omitted. Also, as illustrated in Figure 16, if a sub-image G20 including display range information P31 for the entire surface of the sphere S is displayed on the screen, step S302 may be omitted.
[0115] [8. Virtual camera's viewing axis] Figure 20 or Figure 21 is a diagram illustrating the optical axis direction VA (optical axis direction) of the virtual camera VC relative to the sphere S. As illustrated in Figure 20, the viewing axis direction VA of the virtual camera VC relative to the sphere S may be the direction passing through the sphere's center SC. In this case, the viewing axis direction VA coincides with the direction of the straight line SL connecting the sphere's center SC and the virtual camera VC.
[0116] Alternatively, as illustrated in Figure 21, the viewing axis VA of the virtual camera VC relative to the sphere S may be set offset from the direction of the straight line SL connecting the sphere center SC and the virtual camera VC (i.e., the virtual viewpoint VCa). For example, the viewing axis VA of the virtual camera VC relative to the sphere S may be set to be above the sphere center SC. In this case, as shown in Figure 3, for example, the main image G10, which is a view of the sphere S from an oblique angle, will be displayed on the screen, making it easier to perceive the three-dimensionality and depth of objects placed on the game field GF. Therefore, even over a relatively wide area, it becomes easier to intuitively grasp the distance on the game field GF.
[0117] For example, as shown in Figure 21, the angle α between the straight line SL connecting the sphere center SC and the virtual camera VC, and the viewing axis direction VA of the virtual camera VC, may be kept constant. The angle α can be set arbitrarily, for example, to 10 degrees, 15 degrees, or 30 degrees.
[0118] Furthermore, as mentioned above, there are two ways to change the size of the display range of the game field GF, which is displayed as the main image G10: changing the scaling ratio of the image captured by the virtual camera VC through digital image processing, and changing the distance between the virtual camera VC and the sphere S. Here, changing the distance between the virtual camera VC and the sphere S is a desirable method because, when you want to display the details of the game field GF, the virtual camera VC moves closer to the sphere S, making it easier to obtain the necessary resolution.
[0119] Furthermore, as illustrated in Figures 22 to 25, when changing the display range based on the distance D between the virtual camera VC and the sphere S, the angle α between the straight line SL connecting the sphere center SC and the virtual camera VC and the viewing axis direction VA of the virtual camera VC may be changed according to the distance D. Here, the distance D between the virtual camera VC and the sphere S is the distance between the position of the virtual viewpoint VCa of the virtual camera VC and the surface of the sphere S.
[0120] For example, as shown in Figures 22 and 23, the angle α may be increased as the distance D decreases (shorter). In Figure 22, the angle α is larger because the distance D is smaller compared to the case in Figure 23. In this way, by changing the VA in the viewing axis direction according to the distance D between the virtual camera VC and the sphere S, the main image G10 captured by the virtual camera VC can be displayed appropriately according to the distance D.
[0121] For example, as shown in Figure 22, if the distance D between the virtual camera VC and the sphere S decreases, the angle α increases, making it possible to display a three-dimensional image that gives a sense of depth. Also, by increasing the angle α as the distance D decreases, it becomes easier to capture the horizon or waterline within the screen even when the distance D is small. In this way, when the horizon or waterline can be displayed within the screen, it becomes easier to grasp the size of the sphere S, and therefore the positional relationships of objects on the sphere S can also be grasped intuitively. Furthermore, as shown in Figure 23, for example, if the distance D between the virtual camera VC and the sphere S increases, the angle α decreases, making the wide game field GF appear closer to a view from directly above. In this case, the user can view a wide area as if looking at a map.
[0122] Alternatively, as illustrated in Figures 24 and 25, the angle α may be reduced as the distance D decreases. In Figure 24, the angle α is smaller because the distance D is shorter compared to the case in Figure 25. By changing the VA in the visual axis direction in accordance with the distance D between the virtual camera VC and the sphere S, the main image G10 captured by the virtual camera VC can be displayed appropriately according to the distance D.
[0123] For example, if a user wants to know detailed information about an object within the game field GF (e.g., a square M, a path R, etc.), the distance D is reduced to make it easier to check the details, and the angle α is reduced to bring the axial direction VA closer to the center SC of the sphere. This increases the resolution of the image of the captured sphere S, and furthermore, it becomes closer to a two-dimensional display of the game field GF viewed from directly above, allowing the user to check the details as if looking at a map. On the other hand, if a user wants to roughly grasp the positional relationships of a wide range of objects, such as checking a distant mass M, the distance D is increased to display a wider area of the game field GF, and the angle α is increased to tilt the viewing axis VA upward from the sphere center SC. This makes it possible to create a display that gives a sense of depth and makes it easier to grasp the positional relationships with respect to the entire sphere S.
[0124] As described above, the display control unit 110 according to this embodiment has a function to set the viewing axis direction VA of the virtual camera VC to be offset from the direction of the straight line SL connecting the sphere center SC and the virtual camera VC. As a result, the main image G10 captured by the virtual camera VC becomes an image of the sphere S viewed from an oblique angle, making it easier for the user to perceive a sense of three-dimensionality and depth. Therefore, it is easier for the user to intuitively grasp the distance on the game field.
[0125] Furthermore, the display control unit 110 according to this embodiment has a function to change the angle α between the straight line SL connecting the center SC of the sphere and the virtual camera VC, and the viewing axis direction VA of the virtual camera VC, according to the distance D between the sphere S and the virtual camera VC. This makes it possible to display the main image G10 captured by the virtual camera VC appropriately according to the distance D.
[0126] Next, an example of a process to change the size of the display range of the game field GF, which is displayed as the main image G10, by changing the distance D between the sphere S and the virtual camera VC will be described below with reference to the flowchart in Figure 26. Figure 26 shows an example of a process in which the angle α is increased as the distance D decreases. Figure 26 is a flowchart of a modified version of the process shown in Figure 10. In the example of the process according to this embodiment, the processes of steps S400 to S410 shown in Figure 26 are added before step S110 in the flowchart of Figure 10. For example, if the answer is NO in step S102 in Figure 10, or after processing S106 and S108, the process proceeds to step S400 in Figure 26. Alternatively, the processing in steps S400 to S410 may be performed before steps S102, S106, and S108.
[0127] In step S400, the control unit 100 determines whether an operation has been performed to change the size of the display range of the game field GF, which is displayed as the main image G10. The method of operation to change the size of the display range is not particularly limited. As mentioned above, any operation can be applied, such as pressing a controller button corresponding to zooming in or out of the display range, tapping an operator on the touch panel, pinching out or in on the touch panel, or voice input. If no such operation has been performed (NO in S400), the process proceeds to step S110. On the other hand, if an such operation has been performed (YES in S400), it is determined whether it is an operation to zoom in or out of the display range (S402).
[0128] If the display range is reduced at this point, the process proceeds to step S404. In step S404, the control unit 100 reduces the distance D between the sphere S and the virtual camera VC based on the operation. Then, the control unit 100 increases the angle α between the straight line SL connecting the sphere center SC and the virtual camera VC and the direction of view VA, according to the changed distance D (S406). On the other hand, if an operation to expand the display range is performed, the process proceeds to step S408. In step S408, the control unit 100 increases the distance D between the sphere S and the virtual camera VC based on the operation. Then, the control unit 100 decreases the angle α formed by the straight line SL connecting the center SC of the sphere and the virtual camera VC and the direction of view VA, according to the changed distance D (S410). After the processing in step S406 or S408 is completed, the process proceeds to step S110.
[0129] [9. Displaying the shortest path] As illustrated in Figure 3, the game field GF according to this embodiment has multiple squares M on which a character CT (an example of a game element) can stop, and a path R that determines whether movement between squares M is possible, with one of the squares M being set as the destination. In this case, the shortest path to the destination may be displayed on the screen of the display unit 17.
[0130] In particular, as in the game according to this embodiment, when the game field GF is formed on the surface of the sphere S, the character CT will move across the sphere. Therefore, if the character wants to go towards a destination in a certain direction, for example, to the west, simply moving west will not necessarily be the shortest path to the destination. For example, it may be possible to reach the destination via the shortest path by choosing a route R that passes near the North Pole NP (or South Pole SP).
[0131] As illustrated in Figure 27, the control unit 100 can be configured to include a shortest path presentation unit 140. The shortest path presentation unit 140 has the function of finding the shortest path from the square M where the character CT is stopped to the destination and displaying the shortest path information on the screen of the display unit 17. This allows the user to find the fastest route to reach their destination and use it as a reference for future travel routes.
[0132] Figure 28 shows an example of a screen displaying information PT for the shortest path. For example, the main image G10 in Figure 28 shows a button B13 for displaying information PT for the shortest path. When the user operates button B13 (for example, by pressing a button on the corresponding controller or tapping on a touch panel), information PT for the shortest path is displayed on the screen. Information PT for the shortest path is displayed on the screen, for example, by a semi-transparent or opaque line along the shortest path.
[0133] The shortest path information PT may be displayed on the screen only when a predetermined action is performed by the user, or it may be displayed automatically at a predetermined time (for example, when the dice roll is determined during the user's turn) even without any user action. Alternatively, the shortest path information PT may be displayed on the screen at all times, even without any user action.
[0134] Furthermore, as illustrated in Figure 29, the shortest path information PT may be displayed not only in the main image G10 but also in the sub-image G40. The sub-image G40 differs from the sub-image G20 in Figure 15 or the sub-image G30 in Figure 16 in that it displays the shortest path information PT, but otherwise it is the same. By displaying the shortest path information PT in the sub-image G40, the shortest path to the destination can be roughly grasped. In addition, the shortest path information PT displayed in the sub-image G40 is useful as a reference when the user changes the display range of the game field GF displayed as the main image G10.
[0135] To find the shortest path from the current cell M (start point) where character CT is stopped to the destination (end point), known algorithms for solving the shortest path problem, such as Dijkstra's algorithm or Bellman-Ford's algorithm, can be used.
[0136] In this embodiment of the game, there is no difference in weight among the paths R. For example, if the dice roll is "5", the player can move 5 spaces regardless of which path R is chosen. Thus, it is possible not to set weights for the paths R, but different weights may be set for each path R. For example, at least one path R may be assigned a different weight than the other paths R. For example, the virtual distance or time of travel may differ depending on the path R, and one of three weights, for example, "1", "2", or "3", may be set. In the case of a path R with a weight of "2", the player cannot pass through if the dice roll is "1", and can only pass through if the roll is "2" or higher, consuming the equivalent of two dice rolls (two spaces). Similarly, in the case of a path R with a weight of "3", the player can only pass through if the dice roll is "3" or higher, consuming the equivalent of three dice rolls (three spaces). Thus, even when weights are assigned to the path R, the shortest path from the current cell M (start point) where character CT is stopped to the destination (end point) can be identified using known algorithms such as Dijkstra's algorithm and Bellman-Ford's algorithm.
[0137] Furthermore, in the game according to this embodiment, all paths R are undirected paths. For example, in the case of a path R connecting two squares M1 and M2, it is possible to access the other square M from either square M. As a variation, at least one path R may be a directed path. For example, in the case of a path R connecting two squares M1 and M2, a directed path is one in which it is possible to pass from square M1 to square M2, but not from square M2 to square M1, and there is a defined direction in which passage is possible. In the case of a directed path, information about the directions in which passage is possible is displayed on the screen. Even when such directed paths are included, the shortest path can be identified using a known algorithm.
[0138] (Changes to the shortest route depending on the presence or absence of obstacles) Regarding the aforementioned shortest path, the shortest path may be determined by taking into account obstacles set on square M or path R on the game field GF. Figure 30 shows an example of a screen displaying information PT for the shortest path when an obstacle OBS is present on the game field GF. Here, an obstacle OBS is an object that has the effect of making it impossible to pass through a square M or path R that would normally be passable. Obstacle OBS can appear and disappear at any location and at any time on the game field GF as the game progresses. Obstacle OBS may be stationary, moving, or appearing and disappearing periodically or irregularly. Since the character CT cannot pass through the location of an obstacle OBS, the shortest path to the destination may change when obstacle OBS are taken into account.
[0139] Furthermore, obstacle OBS are not limited to objects that prevent passage; they can also be objects that, while passable, cause disadvantages in the game when passed through or stopped upon. In other words, objects that can be passed through but that the user would rather not pass through can also be included in obstacle OBS.
[0140] Comparing Figure 28 and Figure 30, Figure 28 displays the shortest path information PT when there are no obstacles OBS on the game field GF, while Figure 30 displays the shortest path information PT different from Figure 28 when obstacles OBS are present and need to be avoided.
[0141] The shortest path presentation unit 140 according to this embodiment has a function to change the shortest path based on obstacles set in the mass M or path R. As a result, even if an obstacle is set in the mass M or path R, the information PT of the shortest path, which has been changed according to the obstacle, will be displayed on the screen. Therefore, the user can consider their future travel route by referring to the shortest path that has been updated according to the obstacle.
[0142] Here, the “obstacle” includes, for example, the Obstacle OBS. The “obstacle” also includes effect information that is not an object, such as an event that is set on (associated with) a mass or path and has the effect of preventing the character CT from passing through. Furthermore, "obstacles" include not only effects that prevent passage, but also effect information such as obstacles, OBS (Obstacles in Gameplay), or events that, while passable, cause disadvantages in the game when passed through or stopped.
[0143] Furthermore, "changing the shortest path based on obstacles" may include not only "changing the shortest path based on the presence or absence of obstacles," but also "changing the shortest path based on the nature of the obstacles." For example, in the case of an "obstacle" that results in a disadvantageous effect such as a reduction in game points (including in-game currency, etc.) upon passing through or stopping, the decision of whether to allow or prohibit passage through the target square M or path R may be made based on the degree (amount or percentage) of game points reduced. For example, if 1000 points or more are reduced, the target square M or path R may be made impassable, while if the reduction is less than 1000 points, it may be made passable. In this case, the user may be able to pre-set, through user interaction, what amount of point reduction will make passage possible or impossible.
[0144] Furthermore, if the shortest path presentation unit 140 has an obstacle set in square M or along path R that can be passed but would have a disadvantageous effect in the game, it may display information PT of the shortest path calculated by assuming that the obstacle can be passed, and may also display warning information indicating that the obstacle exists on that shortest path. This allows the user to consider their future travel route while comparing whether to choose the shortest path knowing the obstacle or to choose a route that avoids the obstacle, by referring to the display.
[0145] Here, the warning information may be displayed when the information PT for the shortest path is displayed, or when the user tentatively selects a square M that is on the shortest path and attempts to pass through it. In this game example, the user can advance their character CT by a number of squares corresponding to the roll of the dice, but if there are multiple squares M that can be selected as destinations, the choice of which square M to select is left to the user. For example, until the user tentatively selects a destination square M and confirms that selection, they can cancel the tentatively selected square M and select a different square M. In the process of the user selecting a number of squares M corresponding to the roll of the dice, if a certain square M is tentatively selected and that tentatively selected square M is included in the shortest path, the warning information may be displayed at the time of that tentative selection.
[0146] Next, an example of the process for displaying the shortest path information on the screen will be explained below, referring to the flowchart in Figure 31. The control unit 100 determines whether an operation to display the shortest path has been performed (S500). If no such operation has been performed (NO in S500), the process terminates. On the other hand, if the operation has been performed (YES in S500), the control unit 100 obtains information to identify the square M where the user's character CT is currently stopped (S502). The control unit 100 also obtains information to identify the square M set as the destination (S504). Information on the currently stopped square M or the square M set as the destination can be obtained from the game progress data 153. The control unit 100 also obtains information on obstacles in the game field GF (S506). For example, the control unit 100 obtains from the game progress data 153 which square M or path R in the game field GF currently has an obstacle such as an obstacle OBS. The control unit 100 may also obtain information on the content of the set obstacle. The control unit 100 may then obtain information on the content of the set obstacle and decide whether to treat the obstacle as passable or impassable. For convenience, Figure 31 shows steps S502, S504, and S506 being executed in this order, but this is not limited to this order. Steps S502, S504, and S506 may be executed simultaneously or not. If not simultaneously, they may be executed in any order.
[0147] Subsequently, the control unit 100 uses known algorithms such as Dijkstra's algorithm and Bellman-Ford algorithm to determine the shortest path from the cell M (start point) where the character CT is currently stopped to the destination cell M (end point) (S508). At this time, the shortest path is determined by taking into account the fault information obtained in step S506. Furthermore, if the game does not have any obstacles set in the game field GF, or if the configuration simply seeks the shortest path without considering obstacles, the processing in step S506 can be omitted.
[0148] Subsequently, the control unit 100 displays the information PT of the shortest path identified in step S508 on the screen of the display unit 17 (S510). If, in step S508, the shortest path was determined by assuming that obstacles that are passable but would have a disadvantageous effect in the game can be passed, the control unit 100 also displays warning information on the screen of the display unit 17 indicating that obstacles exist in the shortest path.
[0149] (Displays the number of squares to each character's destination) A character aiming for the destination square M (an example of a game element) includes not only the user-controlled character CT (an example of a user-controlled game element), but also at least one other character (an example of another game element). Here, "other characters" refers to characters other than the user-controlled character CT. For example, other characters may include characters controlled by other users or NPCs automatically controlled by the computer. The shortest path presentation unit 140 may then determine the shortest path to the destination for each of the multiple characters aiming for the destination square M, and display the number of squares to the destination for each of the multiple characters along their respective shortest paths on the screen of the display unit 17.
[0150] Figure 32 shows an example of a screen displaying P19, which is information about the number of squares to reach the destination via the shortest path for each character. In Figure 32, an example is shown where P19, which is information about the number of squares to reach the destination via the shortest path, is displayed for each of the three user characters, A, B, and C.
[0151] This allows users to see the number of spaces needed to reach their destination via the shortest path, not only for their own character's CT but also for other characters such as their opponents, which can be used as a reference for future game strategies. For example, if a user's character CT has the fewest spaces needed to reach its destination and is significantly ahead of other characters, they can consider a strategy of taking a detour to a highly effective space M, even if it deviates somewhat from the shortest path. Alternatively, if the number of spaces needed to reach the destination for the user's character CT is not significantly different from that of other characters, they can consider a strategy of moving while staying as close to the shortest path as possible to reach the destination first.
[0152] The position of the display area for the information P19, which indicates the number of squares to the destination, may be fixed on the screen, but it may also be changed depending on other information displayed on the screen. For example, the position of the display area for the information P19, which indicates the number of squares to the destination, may be changed so that it does not overlap with the shortest path information PT or the information about the character or destination location described later. Similarly, the positions of the sub-images G20, G30, and G40 on the screen may also be changed depending on other information displayed on the screen.
[0153] [10. Display information regarding the positions of other characters, etc., that are not within the display range.] When playing a game with multiple people, users may want to know not only the position of their own character CT, but also the positions of other characters controlled by other users. Similarly, in CPU battles, users may want to know the positions of other characters (NPCs) automatically controlled by the computer. While other characters may sometimes be present within the display area of the game field GF, there are also many cases where other characters are not present within the display area and are not shown on the main image G10. In such cases where other characters are not present within the display area, their position information may be clearly displayed on the main image G10. For example, for other characters that are not present within the display area, position information indicating the direction in which those characters are located could be displayed on the main image G10.
[0154] Figure 32 is a diagram showing an example of a screen displaying position information indicating the direction in which "other characters not present within the display area" are located. As shown in Figure 32, a position information indicator P70, which has an icon (illustration) of another character and a direction indicator P71 for indicating the direction, corresponds to an example of position information indicating the direction in which other characters are located. If multiple other characters exist, they can be identified, for example, by using position indicators P70 with different colors or shapes. Figure 32 shows an example where two other characters exist and two position indicators P70-1 and P70-2 with different colors are displayed.
[0155] The direction indicator P71 of the position information indicator P70 has a tip that indicates direction. The center of the main image G10 (or screen) is used as the reference point P5, and the position information indicator P70 corresponding to the other character is displayed at or near the intersection of the line connecting the reference point P5 and the direction in which the other character is located and the outer frame of the main image G10 (or screen). In this case, the display angle of the position information indicator P70 is adjusted along the line connecting the reference point P5 and the direction in which the other character is located, and the position information indicator P70 is positioned so that the tip of the direction indicator P71 points in the direction in which the other character is located.
[0156] Here, the "line connecting the reference point P5 of the main image G10 (or screen) and the direction in which other characters are located" can be, for example, the shortest distance line along the surface of the sphere, connecting the position on the surface of the sphere S corresponding to the reference point P5 and the position on the surface of the sphere S where other characters are located. Alternatively, the "line connecting the reference point P5 of the main image G10 (or screen) and the direction in which other characters are located" can be a straight line connecting the position on the surface of the sphere S corresponding to the reference point P5 and the position on the surface of the sphere S where other characters are located.
[0157] While it is preferable to set the reference point P5 at the center of the main image G10 (or screen), the reference point P5 may be located at a position within the main image G10, even if it is offset from the center of the main image G10. Furthermore, the location information indicator P70 is not limited to the example shown in Figure 32, and may, for example, be in the shape of an arrow. For example, in the case of an arrow-shaped location information indicator P70, the tip of the arrow becomes the direction indicator P71.
[0158] Furthermore, there may be cases where the destination does not exist within the display area of the game field GF, and the destination is not displayed on the main image G10. In such cases, the location information of the destination may be clearly displayed on the main image G10 when the destination does not exist within the display area. For example, as shown in Figure 32, a location information indicator P80, which has an icon (illustration) of the destination and a direction indicator P81 to show the direction, may be displayed on the main image G10. The destination location information indicator P80 is the same as the location information indicator P70 of the other characters mentioned above, and a detailed explanation of it will be omitted.
[0159] Furthermore, if the display area of the game field GF is changed, the character CT controlled by the user may be removed from the display area and may not be displayed on the main image G10. Therefore, when the character CT controlled by the user is not within the display area, the location information of the character CT may be clearly displayed on the main image G10. For example, as shown in Figure 32, a location information indicator P90, which has an icon (illustration) of the character CT and a direction indicator P91 to show the direction, may be displayed on the main image G10. The location information indicator P90 of the character CT controlled by the user is the same as the location information indicator P70 of the other characters mentioned above, and a detailed explanation is omitted.
[0160] Note that in Figure 32, for illustrative purposes, lines connecting other characters, destinations, or the user's character CT to the reference point P5 that are not within the display area are shown as dotted lines, but these lines are not displayed in the main image G10. As a variation, these lines may be displayed on the screen.
[0161] As a variation, the size of the position information indicators P70, P80, or P90 may be varied depending on the distance between the position of other characters, destinations, or user character CTs that are not within the display area and the reference point P5 of the main image G10. Figure 33 is an example of a screen where the location indicators P70, P80, or P90 are displayed smaller as the distance between the location of other characters, the destination, or the user's character CT and the reference point P5 in the main image G10 increases. Of the location indicators P70, P80, and P90, the location indicator P90 for the user's character CT is displayed the largest because that character CT is the closest to the reference point P5. For example, the location indicator P70-2 for another character of user B is displayed smaller than the location indicator P90 because that other character is farther away from the reference point P5. Also, the destination's location indicator P80 is displayed the smallest because the destination is the furthest from the reference point P5.
[0162] As a variation, the larger the distance between the position of other characters, destinations, or the user's character CT that are not within the display area and the reference point P5 of the main image G10, the larger the position information indicators P70, P80, or P90 may be displayed.
[0163] As described above, the display control unit 110 according to this embodiment has the function of displaying position information indicators P70, P80, or P90 on the screen of the display unit 17, which indicate at least the direction in which a game element (for example, the user's character CT or other characters) or destination exists that is not present in the display area. Furthermore, the display control unit 110 displays the position information indicators P70, P80, or P90 at the intersection of the line connecting the reference point P5 in the main image G10 and the game element (for example, the user's character CT or other characters) or destination that is not present in the display area, or at the vicinity of the outer frame of the main image G10, or near the intersection of the line. In this way, by displaying the aforementioned location information indicators P70, P80, or P90 on the main image G10, the user can intuitively recognize the direction of other characters, destinations, or the user's character CT that are not present within the display area.
[0164] Furthermore, the display control unit 110 may vary the size of the position information indicators P70, P80, or P90 depending on the distance between the position of other characters, destinations, or user character CTs that are not present in the display area and the reference point P5 of the main image G10. This allows the user to intuitively recognize not only the direction in which other characters, destinations, or user character CTs are located that are not within the display area, but also how far away they are in that direction.
[0165] [11. Variations, etc.] Although embodiments of the present invention have been described above, the specific configuration is not limited to the embodiments described above, and includes designs and the like that do not depart from the spirit of the present invention. Furthermore, the above-described configurations and embodiments can be combined arbitrarily.
[0166] [11-1] In the above explanation, as illustrated in Figure 21, an example was shown in which the VA in the viewing axis direction of the virtual camera VC is set to be above the sphere center SC when offset from the direction of the straight line SL connecting the sphere center SC and the virtual camera VC, but the explanation is not limited to this. For example, the VA in the viewing axis direction of the virtual camera VC relative to the sphere S may be set to be below the sphere center SC, or offset to the left or right of the sphere center SC. Regardless of which direction the VA in the viewing axis direction of the virtual camera VC relative to the sphere S is offset from the sphere center SC, it is possible to create a sense of depth for objects placed on the surface of the sphere S.
[0167] [11-2] The above describes a configuration in which the shortest path from the square M where the character CT is stopped to the destination is detected, and the information PT of the shortest path is displayed on the screen. Here, it is not the case that only one path is detected as the shortest path, but there may be two or more shortest paths detected. That is, there may be two or more shortest paths in which at least some of the paths are different, but the number of squares to the destination is the same. If there are multiple shortest paths, the information PT of any one of the shortest paths may be displayed on the screen, or the information PT of all the shortest paths may be displayed on the screen. Alternatively, an upper limit (e.g., 3) may be set for the number of shortest paths to display, and if the number of shortest paths is up to the upper limit, the information PT of all shortest paths may be displayed, and if the number of shortest paths exceeds the upper limit, the information PT of the up to the upper limit may be displayed. In other words, if multiple shortest paths are detected, it is sufficient to display the information PT of at least one shortest path on the screen.
[0168] Here, if multiple shortest paths are detected, and instead of displaying the information PT for all of them, one or more of them are to be selectively displayed, the shortest paths to be displayed may be determined, for example, by random selection, or based on the priority shown below.
[0169] For example, if multiple shortest paths are detected, the priority of each shortest path may be calculated based on the parameters associated with the mass M included in the shortest path. There are multiple types of squares M, and the degree of the effect they produce differs depending on the type. For example, parameters such as rarity may be set for squares M according to the degree of the effect they produce. For example, one of several levels (e.g., 10 levels) of parameters may be associated with each square M according to the degree of the effect they produce. Alternatively, a parameter that quantifies the degree of the effect produced may be associated with each square M. In the case of squares M that produce unfavorable effects, a parameter with a negative value may be associated with them. When determining the priority of each shortest path, for example, it may be determined based on the sum or average magnitude of the parameters of all squares M included in the shortest path. Alternatively, the priority of each shortest path may be determined by extracting and comparing the highest (or lowest) parameter among the squares M included in each shortest path.
[0170] Furthermore, if multiple shortest paths are detected, instead of displaying the information PT for all of them, if you want to selectively display one or more of them, you can determine which shortest paths to display based on the calculated priority.
[0171] Furthermore, when there are multiple shortest paths and the information PT for all or two or more of these shortest paths is displayed, the priority information for each shortest path may also be displayed on the screen. For example, the priority information for the shortest paths displayed on the screen may be displayed by making the display format of each shortest path different. Specifically, the priority information for the shortest paths may be indicated by the color of the shortest paths (for example, the shortest path in red has the highest priority), or by the thickness of the shortest paths (for example, the thicker the line of the shortest path, the higher the priority). Alternatively, the priority information for the shortest paths may be indicated by the form of the line of the shortest path (for example, a solid line, a dotted line, a dashed line, etc.). Alternatively, priority information such as a number (for example, 1, 2, ...), a letter (for example, A, B, ...), or a symbol (for example, the number of stars) may be associated with each shortest path and displayed.
[0172] Incidentally, when there are multiple shortest paths, there are often partially common paths. For example, there may be two shortest paths of 30 squares each, but 20 squares of the path are common, and only the 10 squares branching off from the common path are different. In this case, the differences in the paths are displayed in the branching portion other than the common path. The priority information mentioned above is then displayed in the branching portion other than the common path.
[0173] Furthermore, the parameters may also be associated with the path R, and if multiple shortest paths are detected, the priority of each shortest path may be calculated based on the parameters associated with the squares M and / or path R included in the shortest path. For example, in a game where there are multiple types of paths R, and the effects produced by the path R traversed by character CT differ, parameters may be associated with each path R, similar to the squares M described above. Then, the parameters of path R may be used to calculate the priority of the shortest path.
[0174] [11-3] In the above description, a configuration has been described in which information on the shortest path from the cell M where the character CT is currently stopped to the destination can be displayed on the screen. As a variation, the user may be able to set an arbitrary cell M as an "intermediate point" different from the destination, and information on the shortest path from the currently stopped cell M to the intermediate point may be displayed on the screen. For example, when the user wants to stop at a specific cell M with high effect before arriving at the destination, by setting the specific cell M as the intermediate point, the information on the shortest path to the intermediate point can be confirmed on the screen.
[0175] [11-4] In the above description, a game has been described in which the user's character CT and another character of the opponent (another user or CPU) aim at the same destination. As a variation, a game in which the user and the opponent each advance their characters aiming at different destinations may also be possible.
[0176] [11-5] In the above description, a game imitating a board game in which cells M and paths R are formed on the game field GF has been described, but it is not limited to this, and it can be applied to various games. That is, as long as it is a game executed on a game field GF formed on the surface of a solid such as a sphere S, for example, a sports game (a game themed on sports), a battle game, a simulation game, an adventure game, or a breeding game, it can be applied to various games regardless of the game format or genre.
[0177] [11-6] The above describes a configuration in which user operations are detected as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component, and the display range is changed based on the information of the two-dimensional vector. As a variation, a configuration may be used in which the display range is changed without detecting user operations as information of a two-dimensional vector. For example, a configuration may be used in which the display range is changed by rotating a sphere S relative to a virtual camera VC so that the specified cell M is included in the display area, based on a user operation in which the station name or city name of a specific cell M is specified by voice input or the like. Alternatively, a configuration may be used in which the display range is changed so that the country (or the capital of the country) is included in the display area, based on a user operation in which the country name is specified by voice input or the like. Note that the user operation in which the station name, city name, or country name of a specific cell M is specified is not limited to voice input, but may also be a text input operation using a keyboard or the like, or a selection operation from multiple options displayed in a pull-down menu or the like.
[0178] [11-7] The above examples show game fields GF formed on the surface of a sphere S or an ellipsoid, but are not limited to these. As a variation, game fields GF may be formed not only on the surface of a sphere S or an ellipsoid, but also on the surface of other solids (e.g., icosahedron, dodecahedron, octahedron, cube, tetrahedron, prism, cylinder, pyramid, cone, and other polyhedra). That is, the main image G10 may be generated by capturing a portion of the game field GF on the surface of various solids with a virtual camera VC.
[0179] [11-8] The above describes an example in which a game field GF is formed on the surface of a three-dimensional object and the display user interface according to an embodiment of the present invention is applied to the field of games. However, it is not limited to this and the above-described display user interface can be applied to various fields other than games. For example, it can be applied to navigation software (e.g., car navigation systems), software that allows users to experience a simulated world trip, other programs that use maps, and control devices and systems that execute such programs.
[0180] [11-9] The terminal device 10 and the server 30 are capable of communicating with each other and sending and receiving various types of data. Both are information processing devices (computers) equipped with a CPU, ROM, RAM, auxiliary storage device, communication unit, etc., and basically have the same hardware configuration. Therefore, some of the functions described above may be implemented by the CPU 11 of the terminal device 10, and the rest by the CPU 31 of the server 30.
[0181] [11-10] Some or all of the functions of the control unit 100 described above may be implemented by an integrated circuit such as an LSI (Large Scale Integration). Alternatively, each of the above functions may be made into a separate processor. Or, some or all of the above functions may be integrated into a processor.
[0182] [11-11] The computer-readable program according to this embodiment is recorded on various computer-readable recording media such as hard disks, optical discs (CD-ROMs, DVD-ROMs, etc.), flexible disks, and semiconductor memory, and is read from the recording media and executed by a computer constituting the game system 1, terminal device 10, or server 30. The program may also be provided to the computer via a network including communication lines such as the Internet, WAN, LAN, or dedicated line. The computer may read a program stored on a file server (online storage). The computer may also receive a program distributed from a distribution server. The recording media include internal or external recording media accessible from the distribution server for the purpose of distributing programs. The code of the program stored on the distribution server's recording media does not have to be in a format that can be directly executed by the computer that receives it. That is, the format of the program stored on the distribution server's recording media is arbitrary as long as it can be installed executablely on the computer after being downloaded from the distribution server. The program may also be divided into multiple parts, downloaded at different times, and then combined. Different distribution servers may distribute each of the divided programs. Furthermore, computer-readable recording media also include volatile memory such as RAM in servers that transmit or receive programs over a network, which retain programs for a certain period of time. Additionally, the program may be a differential program that, in combination with programs already stored on the computer, can achieve the aforementioned functions.
[0183] [12. Addendum] Based on the above description, the present invention can be understood as follows, for example. For the sake of ease of understanding the present invention, reference numerals in the attached drawings are conveniently added in parentheses, but this does not mean that the present invention is limited to the illustrated embodiments.
[0184] 1) A program according to one aspect of the present invention causes a computer (1, 10, 30) to function as a display control unit (110) that generates a main image (G10) with a portion of the game field (GF) on the surface of a sphere or ellipsoid (S) as the display range by imaging the surface of the sphere with a virtual camera (VC) and displays it on the screen of a display unit (17); an operation detection unit (120) that detects user operations to change the display range as information of a two-dimensional vector (2V) consisting of a first component (e.g., x component 2Vx) and a second component perpendicular to the first component (e.g., y component 2Vy); and a display range changing unit (130) that changes the display range based on the user operation by rotating the sphere with respect to the virtual camera. The display range changing unit (130) includes a first rotation unit (131) that rotates the solid with respect to the first axis as the axis of rotation, based on the first component detected by the operation detection unit (120), with respect to the first axis as the axis of rotation, and a second rotation unit (132) that rotates the solid in the pitch direction relative to the virtual camera with respect to the virtual camera, based on the second component detected by the operation detection unit (120), with respect to the first axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, based on the second component detected by the operation detection unit (120), thereby limiting the rotation of the solid to rotation along the first axis and the second axis.
[0185] Here, the term "computer" refers to any device that includes at least a processor and memory. Here, the processor is, for example, a CPU. In addition to the CPU, the processor may also include hardware such as a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), or an FPGA (Field Programmable Gate Array) in place of the CPU. For example, personal computers, tablet computers, smartphones, stationary or portable game consoles, commercial game consoles, mobile phone terminals, PHS terminals, PDAs, multi-function television receivers with information processing capabilities, servers, and any other devices that include a processor and memory are all included in the term "computer." Furthermore, a "computer" may consist of multiple units that can communicate with each other. For example, a system including a server and terminal devices is also included in the term "computer."
[0186] According to the embodiment described in 1) above, a game field is formed on the surface of a three-dimensional object (sphere or ellipsoid), and by capturing images of the surface of the object with a virtual camera, a main image with a portion of the game field as the display area is displayed on the screen. The display area can be changed based on user operation by rotating the object with respect to the virtual camera. When user operation is performed, it is detected by the operation detection unit as information of a two-dimensional vector consisting of a first component and a second component. The first and second components detected here are used to rotate the object with respect to the virtual camera, but the rotation of the object is limited to rotation around a "first axis fixed to the object" and a "second axis not fixed to the object".
[0187] In other words, based on the first component detected by the operation detection unit, the solid is rotated around a "first axis fixed to the solid" as the axis of rotation. This first axis is a straight line connecting a specific point on the surface of the solid to the center of the solid. Even when the solid is rotated around the first axis as the axis of rotation, the position and angle of the first axis do not change. Furthermore, the second axis is not fixed to the solid and does not move relative to the virtual camera when the solid is rotated around the first axis as the axis of rotation (even when the solid is rotated around the first axis as the axis of rotation, the position and angle of the second axis do not change).
[0188] Here, the second axis is the pitch axis as seen from the virtual camera, and it is the axis that remains parallel to the plane direction of the screen in relation to the screen on which the main image, captured by the virtual camera on the surface of a 3D object, is displayed. Then, based on the second component detected by the operation detection unit, the 3D object is rotated in the pitch direction relative to the virtual camera, with the second axis as the axis of rotation. This rotation in the pitch direction with the second axis of rotation as the axis of rotation causes the "first axis fixed to the 3D object" to move, but the first axis is perpendicular to the second axis (the pitch axis as seen from the virtual camera) and only moves within a plane perpendicular to the "second axis, which maintains a state parallel to the plane direction of the screen". Here, the plane perpendicular to the "second axis, which maintains a state parallel to the plane direction of the screen" is the "plane perpendicular to the second axis and parallel to the depth direction of the screen". In other words, even if the 3D object is rotated in the pitch direction with the second axis as the axis of rotation, the movement of the first axis is limited to movement within the "plane perpendicular to the second axis and parallel to the depth direction of the screen", and the first axis does not wobble from side to side on the screen.
[0189] As described above, by restricting the rotation of the 3D object relative to the virtual camera to rotation around a first axis fixed to the object and rotation in the pitch direction around a second axis not fixed to the object, the first axis will not shift left or right on the screen no matter how many times the object is rotated along the first and second axes. In other words, no roll rotation of the object as seen from the virtual camera occurs. Therefore, the first axis, which connects a specific point on the surface of the object to the center of the object, always maintains its direction relative to the two-dimensional screen. Thus, even if the user changes the display range of the game field by rotating the object, the specific direction of the game field relative to the screen can be maintained, preventing the user from having difficulty understanding the direction of the game field. For example, if the first axis is set to the north-south direction, the east-west-north-south direction of the game field relative to the screen will always be maintained even if the display range of the game field is changed.
[0190] 2) In one aspect of the present invention, in the aspect described in 1) above, the second axis is perpendicular to the first axis and is perpendicular to the line connecting the center of the solid and the virtual camera or perpendicular to the viewing axis of the virtual camera. In this aspect, since the second axis perpendicular to the first axis is perpendicular to the line connecting the center of the solid and the virtual camera or perpendicular to the viewing axis of the virtual camera, the second axis is parallel to the planar direction of the screen in relation to the screen on which the main image of the surface of the solid captured by the virtual camera is displayed.
[0191] 3) In one aspect of the present invention, in the aspect described in 1) or 2) above, the second rotating part (132) restricts the rotation of the solid in the pitch direction with the second axis as the axis of rotation so that the specific point does not move beyond the point (P1 or P2) where the straight line connecting the center of the solid and the virtual camera intersects the surface of the solid. According to this aspect, if the specific point, for example, the North Pole or the South Pole, moves beyond the point where the straight line connecting the center of the solid and the virtual camera intersects the surface of the solid, the north-south direction of the game field relative to the screen will be reversed, but the above configuration can avoid this reversal of direction.
[0192] 4) In one aspect of the present invention, in the embodiments described in 1) to 3) above, the display control unit (110) displays a sub-image (G20) on the screen of the display unit, along with the main image, which includes information indicating the position of the virtual camera relative to the entire surface of the three-dimensional object. According to this embodiment, the user can easily understand where the position displayed by the current main image corresponds to on the entire surface of the three-dimensional object.
[0193] 5) In one aspect of the present invention, in the embodiment described in any of 1) to 4) above, the display control unit (110) displays a sub-image (G30 or G40) containing information indicating the display range for the entire surface of the three-dimensional object, along with the main image, on the screen of the display unit. According to this embodiment, the user can easily understand which part of the entire surface of the three-dimensional object the range currently displayed by the main image corresponds to.
[0194] 6) In one aspect of the present invention, in the embodiment described in any of 1) to 5) above, the display control unit (110) sets the viewing axis direction (VA) of the virtual camera to be offset from the direction of the straight line (SL) connecting the center of the solid and the virtual camera. According to this embodiment, the solid, which is a sphere or ellipsoid, is viewed from an oblique angle, making it easier for the user to perceive a sense of three-dimensionality and depth. Therefore, it is easier for the user to intuitively grasp the distance on the game field.
[0195] 7) In one aspect of the present invention, in the embodiment described in 6) above, the display control unit (110) changes the angle (α) between the straight line connecting the center of the solid and the virtual camera and the viewing axis direction of the virtual camera, according to the distance (D) between the solid and the virtual camera. In this embodiment, the distance between the 3D object and the virtual camera is not constant but changes. When the distance between the 3D object and the virtual camera becomes closer, the display range for the surface of the 3D object decreases, but the subjects (objects in the game field) within the display range are displayed larger. Also, the closer the distance between the 3D object and the virtual camera, the higher the resolution for the subjects, making it easier to obtain detailed information about the subjects. On the other hand, when the distance between the 3D object and the virtual camera increases, the display range for the surface of the 3D object increases, and individual subjects (individual objects in the game field) become smaller, but the game field can be displayed over a wider area.
[0196] Then, depending on the distance between the 3D object and the virtual camera, the angle between the line connecting the center of the 3D object and the virtual camera, and the viewing axis of the virtual camera is changed. This allows the main image captured by the virtual camera to be displayed appropriately according to the distance between the 3D object and the virtual camera. For example, the angle can be increased as the distance between the 3D object and the virtual camera decreases. In this case, the closer the distance between the 3D object and the virtual camera, the more three-dimensional the display becomes, giving a sense of depth. Also, when the distance between the 3D object and the virtual camera increases, the display of a wide game field approaches a view from directly above, allowing you to check a wide area as if you were looking at a map. Alternatively, as the distance between the 3D object and the virtual camera decreases, the angle between the line connecting the center of the 3D object and the virtual camera and the virtual camera's viewing axis can be reduced. In this case, the closer the distance between the 3D object and the virtual camera, the closer the display will resemble a top-down view of the game field on the object's surface, allowing for a map-like experience of examining the details of objects within the game field. Furthermore, when the distance between the 3D object and the virtual camera increases, the display can be made more nuanced, making it easier to grasp the positional relationships of objects relative to the entire sphere.
[0197] 8) In one aspect of the present invention, in the embodiment described in any of 1) to 7) above, the game field is set with a plurality of squares (M) on which game elements can stop, and a path (R) that determines whether movement between the squares is possible, and one of the squares is set as the destination. According to this embodiment, it can be applied to games such as sugoroku in which a plurality of squares and a path are formed on the surface of a three-dimensional object that is a sphere or an ellipsoid.
[0198] 9) In one aspect of the present invention, in the embodiment described in 8) above, the computer is further made to function as a shortest path presentation unit (140) that finds the shortest path from the square where the game element is stopped to the destination and displays the shortest path information (PT) on the screen. Here, "game elements" refer to objects, for example, that can be placed on each square in the game field. These objects include, for example, fictional creatures such as people, animals, plants, and monsters, as well as inanimate game characters such as robots and vehicles. Furthermore, game elements do not have to be objects; they can also be information such as letters, symbols, illustrations, or colors that indicate the current square the player is on. For example, color information that displays the current square with a different color from other squares is one example of a game element. In this configuration, the shortest path from the square where the game element is currently stopped to the destination is displayed on the screen, allowing the user to see the fastest route to reach the destination and use it as a reference for future travel routes.
[0199] 10) In one aspect of the present invention, in the embodiment described in 9) above, the shortest path presentation unit (140) changes the shortest path based on an obstacle (e.g., an obstacle OBS) set in the square or the path. According to this embodiment, even if an obstacle is set in the square or the path, the information of the shortest path changed in accordance with the obstacle is displayed on the screen. Therefore, the user can consider future travel routes by referring to the shortest path that is updated in accordance with the obstacle.
[0200] 11) In one aspect of the present invention, in the embodiment described in 9) or 10) above, if an obstacle that can be passed but causes a disadvantage in the game is set in the square or the path, the shortest path presentation unit (140) displays on the screen the information of the shortest path obtained by assuming that the obstacle can be passed, and also displays warning information indicating that the obstacle exists on the shortest path. According to this embodiment, in the case of an obstacle that can be passed but causes a disadvantage in the game, the shortest path obtained by assuming that the obstacle can be passed is displayed along with a warning indicating that the obstacle exists. The user can then refer to this display and consider whether to choose the shortest path knowing the obstacle, or to choose a route that avoids the obstacle, while considering their future movement route.
[0201] 12) In one aspect of the present invention, as described in 9) to 11) above, the game element comprises a plurality of game elements, including a game element controlled by the user (e.g., character CT) and at least one other game element (e.g., another user's character, or an NPC automatically controlled by the computer), and the shortest path presentation unit (140) determines the shortest path for each of the plurality of game elements and displays information (P19) of the number of squares to the destination along the shortest path for each of the plurality of game elements on the screen. According to this aspect, the user can recognize the shortest number of squares to the destination for each of the plurality of game elements (e.g., a character controlled by the user, a character controlled by another user, an NPC automatically controlled by the computer, etc.), and can use this as a reference for future game strategies.
[0202] 13) In one aspect of the present invention, in the embodiment described in any of 8) to 12) above, the display control unit (110) causes the display unit (17) screen to display a location information indicator (P70, P80, or P90) on the screen of the display unit (17) that indicates at least the direction in which the game element (e.g., the user's character CT or other character) or the destination is located, which is not located within the display area. The display control unit (110) then causes the location information indicator to display at or near the intersection of a line connecting the reference point (P5) in the main image (G10) and the game element or destination that is not located within the display area, and the outer frame of the main image. According to this embodiment, the location information indicator displayed in the main image allows the user to intuitively recognize the direction in which game elements (the user's character or other characters) or destinations that are not present within the display area are located.
[0203] 14) In one aspect of the present invention, in the aspect described in 13) above, the display control unit (110) changes the size of the position information indicator (P70, P80, or P90) according to the distance between the position of the game element (e.g., the user's character CT or other character) or the destination that is not located within the display area and the reference point of the main image. According to this aspect, the user can intuitively recognize not only the direction in which the game element or destination that is not located within the display area is located, but also how far away it is in that direction.
[0204] 15) A game control device (1, 10, 30) according to one aspect of the present invention includes: a display control unit (110) that generates a main image (G10) with a portion of the game field (GF) on the surface of a sphere or ellipsoid (S) as the display range by imaging the surface of the sphere or ellipsoid with a virtual camera (VC), and displays it on the screen of a display unit (17); an operation detection unit (120) that detects user operations to change the display range as information of a two-dimensional vector (2V) consisting of a first component (e.g., x component 2Vx) and a second component perpendicular to the first component (e.g., y component 2Vy); and a display range changing unit (130) that changes the display range based on the user operation by rotating the sphere with respect to the virtual camera. The display range changing unit (130) includes a first rotation unit (131) that rotates the solid with respect to the first axis as the axis of rotation, based on the first component detected by the operation detection unit (120), with respect to the first axis as the axis of rotation, and a second rotation unit (132) that rotates the solid in the pitch direction relative to the virtual camera with respect to the virtual camera, based on the second component detected by the operation detection unit (120), with respect to the first axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, based on the second component detected by the operation detection unit (120), thereby limiting the rotation of the solid to rotation along the first axis and the second axis. This achieves the same effect as the embodiment described in 1) above.
[0205] 16) A game system (1) according to one aspect of the present invention includes a server (30) and a terminal device (10) capable of communicating with the server, and includes a display control unit (110) that generates a main image (G10) with a portion of the game field (GF) on the surface of a sphere or ellipsoid (S) as the display range by imaging the surface of the sphere with a virtual camera (VC) and displays it on the screen of a display unit (17); an operation detection unit (120) that detects user operations for changing the display range as information of a two-dimensional vector (2V) consisting of a first component (e.g., x component 2Vx) and a second component perpendicular to the first component (e.g., y component 2Vy); and a display range changing unit (130) that changes the display range based on the user operation by rotating the sphere with respect to the virtual camera. The display range changing unit (130) includes a first rotation unit (131) that rotates the solid with respect to the first axis as the axis of rotation, based on the first component detected by the operation detection unit (120), with respect to the first axis as the axis of rotation, and a second rotation unit (132) that rotates the solid in the pitch direction relative to the virtual camera with respect to the virtual camera, based on the second component detected by the operation detection unit (120), with respect to the first axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, with respect to the second axis as the axis of rotation, based on the second component detected by the operation detection unit (120), thereby limiting the rotation of the solid to rotation along the first axis and the second axis. This achieves the same effect as the embodiment described in 1) above.
[0206] 17) A control method according to one aspect of the present invention is a control method for controlling a computer (1, 10, 30), and includes: a display control step (S110, S112) which generates a main image (G10) with a portion of the game field (GF) on the surface of a sphere or ellipsoid (S) as the display range by imaging the surface of the sphere or ellipsoid with a virtual camera (VC), and displays the main image on the screen of a display unit (17); an operation detection step (S102, S104) which detects a user operation to change the display range as information of a two-dimensional vector (2V) consisting of a first component (e.g., x component 2Vx) and a second component perpendicular to the first component (e.g., y component 2Vy); and a display range change step (S106, S108) which changes the display range based on the user operation by rotating the sphere with respect to the virtual camera. The display range changing step includes: a first rotation step (S106) in which a straight line (SL) connecting a specific point on the surface of the solid (S) (e.g., the North Pole NP) and the center (SC) of the solid is defined as a first axis (e.g., the Earth's axis EA) fixed to the solid, and the solid is rotated with respect to the first axis as the axis of rotation based on the first component detected by the operation detection step; and a second rotation step (S108) in which the pitch axis as seen from the virtual camera is defined as a second axis (PA) perpendicular to the first axis, not fixed to the solid, and not moving relative to the virtual camera when the solid is rotated, and the solid is rotated with respect to the virtual camera in the pitch direction with respect to the virtual camera as the axis of rotation based on the second component detected by the operation detection step, thereby limiting the rotation of the solid to rotation along the first and second axes. This achieves the same effect as the embodiment described in 1) above.
[0207] The solids captured by the virtual camera (VC) are not limited to spheres or ellipsoids, but may also be, for example, icosahedrons, dodecahedrons, octahedrons, cubes, tetrahedrons, prisms, cylinders, pyramidal cones, cones, or other polyhedra. Furthermore, a field for content other than games may be formed on the surface of the three-dimensional object, making it applicable not only to the gaming field but also to various other fields. Therefore, the program, display control device, display system, or control method may be of the following nature.
[0208] 18) A program according to one aspect of the present invention causes a computer (1, 10, 30) to function as a display control unit (110) that generates a main image (G10) with a portion of the surface of a three-dimensional object (for example, a sphere S) as the display area by capturing an image of the surface of the three-dimensional object with a virtual camera (VC) and displays it on the screen of a display unit (17); an operation detection unit (120) that detects user operations to change the display area; and a display area changing unit (130) that changes the display area based on the user operations by rotating the three-dimensional object with respect to the virtual camera. The display range changing unit (130) includes a first rotation unit (131) that rotates the solid using a straight line (SL) connecting a specific point on the surface of the solid (e.g., the North Pole NP) and the center (SC) of the solid as a first axis (e.g., the Earth's axis EA) fixed to the solid, and a second rotation unit (132) that rotates the solid in the pitch direction relative to the virtual camera using the second axis as a rotation axis, with the second axis being perpendicular to the first axis, not fixed to the solid, and not moving relative to the virtual camera when the solid rotates, and the second axis being rotated in the pitch direction relative to the virtual camera. The rotation of the solid is limited to rotation along the first and second axes. In this embodiment, no matter how many times the 3D object is rotated along the first and second axes, the first axis will not shift from side to side within the screen. In other words, no roll rotation of the 3D object as seen from the virtual camera occurs. Therefore, the first axis, which connects a specific point on the surface of the 3D object to the center of the 3D object, always maintains its orientation relative to the screen. Thus, even when the display range is changed, the specific orientation relative to the main image displayed on the screen can be maintained, preventing the user from having difficulty understanding the orientation of the main image.
[0209] 19) A display control device (1, 10, 30) according to one aspect of the present invention includes a display control unit (110) that generates a main image (G10) with a portion of the surface of a three-dimensional object (e.g., a sphere S) as the display area by imaging the surface of the three-dimensional object with a virtual camera (VC) and displays the main image (G10) on the screen of a display unit (17); an operation detection unit (120) that detects a user operation to change the display area; and a display area changing unit (130) that changes the display area based on the user operation by rotating the three-dimensional object with respect to the virtual camera. The display range changing unit (130) includes a first rotation unit (131) that rotates the solid using a straight line (SL) connecting a specific point on the surface of the solid (e.g., the North Pole NP) and the center (SC) of the solid as the first axis (e.g., the Earth's axis EA) fixed to the solid, and a second rotation unit (132) that rotates the solid in the pitch direction relative to the virtual camera using the second axis as the rotation axis, with the second axis being perpendicular to the first axis, not fixed to the solid, and not moving relative to the virtual camera when the solid rotates, and the second axis being the pitch axis as seen from the virtual camera as the rotation axis, thereby restricting the rotation of the solid to rotation along the first and second axes. This achieves the same effect as the embodiment described in 18) above.
[0210] 20) A display system (1) according to one aspect of the present invention includes a server (30) and a terminal device (10) capable of communicating with the server, and includes a display control unit (110) that generates a main image (G10) with a portion of the surface of a three-dimensional object (e.g., a sphere S) as the display area by imaging the surface of the three-dimensional object with a virtual camera (VC) and displays it on the screen of a display unit (17), an operation detection unit (120) that detects user operations to change the display area, and a display area changing unit (130) that changes the display area based on the user operations by rotating the three-dimensional object with respect to the virtual camera. The display range changing unit (130) includes a first rotation unit (131) that rotates the solid using a straight line (SL) connecting a specific point on the surface of the solid (e.g., the North Pole NP) and the center (SC) of the solid as the first axis (e.g., the Earth's axis EA) fixed to the solid, and a second rotation unit (132) that rotates the solid in the pitch direction relative to the virtual camera using the second axis as the rotation axis, with the second axis being perpendicular to the first axis, not fixed to the solid, and not moving relative to the virtual camera when the solid rotates, and the second axis being the pitch axis as seen from the virtual camera as the rotation axis, thereby restricting the rotation of the solid to rotation along the first and second axes. This achieves the same effect as the embodiment described in 18) above.
[0211] 21) A control method according to one aspect of the present invention is a control method for controlling a computer (1, 10, 30), and includes a display control step (S110, S112) which generates a main image (G10) with a portion of the surface of a three-dimensional object (for example, a sphere S) as the display range by imaging the surface of the three-dimensional object with a virtual camera (VC), and displays the main image on the screen of a display unit (17); an operation detection step (S102, S104) which detects a user operation to change the display range; and a display range change step (S106, S108) which changes the display range based on the user operation by rotating the three-dimensional object with respect to the virtual camera. The display range changing step includes a first rotation step (S106) in which a straight line (SL) connecting a specific point on the surface of the solid (e.g., the North Pole NP) and the center (SC) of the solid is defined as a first axis (e.g., the Earth's axis EA) fixed to the solid, and the solid is rotated using the first axis as the axis of rotation; and a second rotation step (S108) in which the pitch axis as seen from the virtual camera, which is perpendicular to the first axis, not fixed to the solid, and does not move relative to the virtual camera when the solid is rotated, is defined as a second axis (PA), and the solid is rotated in the pitch direction relative to the virtual camera using the second axis as the axis of rotation, thereby restricting the rotation of the solid to rotation along the first and second axes. This produces the same effect as the embodiment described in 18) above.
[0212] 22) In one aspect of the present invention, in the embodiment described in any of 18) to 21) above, the operation detection unit (or operation detection step) detects the user operation as information of a two-dimensional vector (2V) consisting of a first component (e.g., x component 2Vx) and a second component perpendicular to the first component (e.g., y component 2Vy), the first rotation unit (or first rotation step) rotates the solid with respect to the first axis as the axis of rotation based on the first component detected by the operation detection unit (or operation detection step), and the second rotation unit (or second rotation step) rotates the solid in the pitch direction with respect to the virtual camera with respect to the second axis as the axis of rotation based on the second component detected by the operation detection unit (or operation detection step). In this embodiment, the first component of the two-dimensional vector due to the user operation is used for the rotation of the solid with respect to the first axis, and the second component is used for the rotation of the solid with respect to the second axis. Therefore, a display user interface can be realized that allows the display range to be intuitively changed by user operations that can detect two-dimensional vectors (for example, tilting the analog stick of a physical controller or sliding on a touch panel).
[0213] 23) An information storage medium according to one aspect of the present invention is an information storage medium that can be read by a computer on which any of the programs described in 1) to 14), 18), or 22) are recorded. This provides the same effects as the aspects described in 1) to 14), 18), and 22) above. [Explanation of symbols]
[0214] 1...Game system, N...Network, DB...Database, 10...Terminal device, 11...CPU, 13...RAM, 14...Auxiliary storage device, 17...Display unit, 17a...Screen, 18...Sound output unit, 30...Server, 31...CPU, 33...RAM, 34...Auxiliary storage device, 35...Communication unit, 50...Controller, 51...Analog stick, 100...Control unit, 110...Display control unit, 120...Operation detection unit, 130...Display range change unit, 131...First rotation unit, 132...Second rotation unit, 140...Shortest path suggestion unit, 150...Storage unit, 151...Game program, 152...Game data, 153…Game progress data, V…Virtual space, VC…Virtual camera, VCa…Virtual viewpoint, VA…Visual axis direction, S…Sphere, CT…Character, NP…North Pole, SP…South Pole, SC…Sphere center, EA…Earth axis, PA…Pitch axis, 2V…Two-dimensional vector, x component 2Vx…x component, 2Vy…y component, GF…Game field, M…Mass, R…Path, PT…Shortest path information, OBS…Obstacles, P5…Reference point, P70·P80·P90…Position information indicator, PT…Shortest path information, G20·G30·G40…Sub-image, P21…Overall field map, P22…Virtual viewpoint position information
Claims
1. Computers, A display control unit generates a main image with a portion of the game field on the surface of a sphere or ellipsoid, which is captured by a virtual camera, and displays it on the screen of a display unit. An operation detection unit detects user operations for changing the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component, The rotation of the 3D object relative to the virtual camera is used to create a display range changing unit that changes the display range based on user operation. The aforementioned display range changing unit is A straight line connecting a specific point on the surface of the solid and the center of the solid is defined as the first axis fixed to the solid, and a first rotation unit rotates the solid using the first axis as the axis of rotation based on the first component detected by the operation detection unit. A second rotation unit rotates the three-dimensional object in the pitch direction relative to the virtual camera, using the second axis as the axis of rotation, based on the second component detected by the operation detection unit, the pitch axis as viewed from the virtual camera, which is perpendicular to the first axis, is not fixed to the three-dimensional object, and does not move relative to the virtual camera when the three-dimensional object rotates, This includes restricting the rotation of the solid to rotation along the first and second axes. program.
2. The second axis is perpendicular to the first axis and is also perpendicular to the line connecting the center of the solid and the virtual camera, or perpendicular to the visual axis of the virtual camera. The program according to claim 1.
3. The second rotating part restricts the rotation of the solid in the pitch direction with the second axis as the axis of rotation, so that the specific point does not move beyond the point where the line connecting the center of the solid and the virtual camera intersects the surface of the solid. The program according to claim 1.
4. The display control unit causes the display unit's screen to display, along with the main image, a sub-image containing information indicating the position of the virtual camera relative to the entire surface of the three-dimensional object. The program according to claim 1.
5. The display control unit causes the display unit's screen to display, along with the main image, a sub-image containing information indicating the display range for the entire surface of the three-dimensional object. The program according to claim 1.
6. The display control unit sets the viewing axis direction of the virtual camera to be offset from the direction of the straight line connecting the center of the 3D object and the virtual camera. The program according to claim 1.
7. The display control unit changes the angle between the line connecting the center of the 3D object and the virtual camera and the viewing axis direction of the virtual camera, according to the distance between the 3D object and the virtual camera. The program according to claim 6.
8. The game field has multiple squares on which game elements can stop, and paths that determine whether movement between these squares is possible, with one of the squares being set as the destination. The program according to any one of claims 1 to 7.
9. The computer is further configured to function as a shortest path presentation unit, which finds the shortest path from the square where the game element is stopped to the destination and displays the information of the shortest path on the screen. The program according to claim 8.
10. The shortest path presentation unit changes the shortest path based on the obstacles set in the square or the path. The program according to claim 9.
11. If an obstacle that can be passed through but causes a disadvantage in the game is set in the square or path, the shortest path presentation unit displays information of the shortest path calculated assuming that the obstacle can be passed through on the screen, and also displays warning information indicating that the obstacle exists in the shortest path. The program according to claim 10.
12. The aforementioned game element includes multiple game elements, including a game element that the user interacts with and at least one other game element. The shortest path display unit determines the shortest path for each of the multiple game elements and displays the number of squares to the destination along the shortest path for each of the multiple game elements on the screen. The program according to claim 9.
13. A display control unit generates a main image with a portion of the game field on the surface of a sphere or ellipsoid, which is captured by a virtual camera, and displays it on the screen of a display unit. An operation detection unit detects user operations for changing the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component, Includes a display range changing unit that changes the display range based on user operation by rotating the 3D object relative to the virtual camera, The aforementioned display range changing unit is A straight line connecting a specific point on the surface of the solid and the center of the solid is defined as the first axis fixed to the solid, and a first rotation unit rotates the solid using the first axis as the axis of rotation based on the first component detected by the operation detection unit. A second rotation unit rotates the three-dimensional object in the pitch direction relative to the virtual camera, using the second axis as the axis of rotation, based on the second component detected by the operation detection unit, the pitch axis as viewed from the virtual camera, which is perpendicular to the first axis, is not fixed to the three-dimensional object, and does not move relative to the virtual camera when the three-dimensional object rotates, This includes restricting the rotation of the solid to rotation along the first and second axes. Game control device.
14. A game system including a server and a terminal device capable of communicating with the server, A display control unit generates a main image with a portion of the game field on the surface of a sphere or ellipsoid, which is captured by a virtual camera, and displays it on the screen of a display unit. An operation detection unit detects user operations for changing the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component, Includes a display range changing unit that changes the display range based on user operation by rotating the 3D object relative to the virtual camera, The aforementioned display range changing unit is A straight line connecting a specific point on the surface of the solid and the center of the solid is defined as the first axis fixed to the solid, and a first rotation unit rotates the solid using the first axis as the axis of rotation based on the first component detected by the operation detection unit. A second rotation unit rotates the three-dimensional object in the pitch direction relative to the virtual camera, using the second axis as the axis of rotation, based on the second component detected by the operation detection unit, the pitch axis as viewed from the virtual camera, which is perpendicular to the first axis, is not fixed to the three-dimensional object, and does not move relative to the virtual camera when the three-dimensional object rotates, This includes restricting the rotation of the solid to rotation along the first and second axes. Game system.
15. A computer-controlled control method, A display control step involves generating a main image with a portion of the game field on the surface of a sphere or ellipsoid as the display area by capturing the surface of the sphere or ellipsoid with a virtual camera, and displaying it on the screen of the display unit. An operation detection step that detects a user operation to change the display range as information of a two-dimensional vector consisting of a first component and a second component perpendicular to the first component, The step includes a display range modification step which modifies the display range based on user operation by rotating the 3D object relative to the virtual camera, The aforementioned display range change step is: A first rotation step involves defining a straight line connecting a specific point on the surface of the solid and the center of the solid as a first axis fixed to the solid, and rotating the solid with the first axis as the axis of rotation based on the first component detected in the operation detection step, A second rotation step is performed in which the pitch axis as seen from the virtual camera is defined as the second axis, which is perpendicular to the first axis, is not fixed to the solid, and does not move relative to the virtual camera when the solid rotates, and the solid is rotated in the pitch direction relative to the virtual camera with respect to the virtual camera, based on the second component detected in the operation detection step, with the second axis as the axis of rotation. This includes restricting the rotation of the solid to rotation along the first and second axes. Control method.