Information processing system, information processing program, information processing method, and information processing device

The information processing system improves usability by allowing users to selectively attach and detach virtual objects, enhancing the intuitive assembly and disassembly of combined objects in virtual environments.

JP7777161B2Active Publication Date: 2025-11-27NINTENDO CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024015608
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-02-05
Publication Date
2025-11-27
Estimated Expiration
2042-03-03

AI Technical Summary

Technical Problem

Existing systems for combining multiple virtual objects in a virtual space lack usability improvements when generating objects through user operations.

Method used

An information processing system that includes arrangement, combined object generation, setting, movement, and release means, allowing users to select and manipulate virtual objects using multiple input means to form and disassemble combined objects intuitively.

Benefits of technology

Enhances user convenience by enabling selective attachment and detachment of virtual objects, facilitating intuitive operations for assembling and disassembling combined objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007777161000001
    Figure 0007777161000001
  • Figure 0007777161000002
    Figure 0007777161000002
  • Figure 0007777161000003
    Figure 0007777161000003
Patent Text Reader

Abstract

To provide an information processing system capable of improving usability when connecting a plurality of virtual objects to generate an object consisting of the virtual objects.SOLUTION: An information processing system connects a plurality of virtual objects to generate a combined object, and selects at least one of the plurality of virtual objects constituting the combined object as a selection object. In a case where the selection object is selected, when input to input means satisfies cancellation conditions, other virtual objects connected to the selection object are separated, while connection of a virtual object that constitutes the combined object and is not connected to the selection object is maintained.SELECTED DRAWING: Figure 35
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system, an information processing program, an information processing method, and an information processing device that are capable of combining a plurality of virtual objects through user operations. [Background technology]

[0002] BACKGROUND ART Conventionally, there has been a game system in which a plurality of objects are integrated by moving an operation target object and bringing it into contact with an object existing in a virtual space (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-21248 Summary of the Invention [Problem to be solved by the invention]

[0004] However, when a plurality of individual virtual objects are used and an object made up of the plurality of virtual objects is generated by a user's operation, there is room for improvement in terms of improving usability.

[0005] Therefore, an object of the present invention is to provide an information processing system, an information processing program, an information processing method, and an information processing device that can improve usability when generating an object consisting of multiple individual virtual objects using the multiple virtual objects. [Means for solving the problem]

[0006] In order to solve the above problems, the present invention employs the following configuration.

[0007] The information processing system of the present invention includes: an arrangement means for arranging a plurality of virtual objects within a game space; a combined object generation means for generating a combined object by gluing the plurality of virtual objects together using an input means; a setting means for setting at least one of the plurality of virtual objects constituting the combined object as a selected object; and a movement means for, when the selected object has been set, moving the combined object in response to a predetermined input using the input means. When the selected object has been set, the combined object generation means connects another virtual object to the combined object based on the movement. The information processing system further includes a release means for, when the selected object has been set, releasing the adhesion between the selected object and other virtual objects that are glued to the selected object, while maintaining the adhesion of virtual objects that are not glued to the selected object, when the predetermined input satisfies a release condition.

[0008] According to the above, at least one virtual object included in a combined object can be selected and some of the connections can be released, thereby improving user convenience when assembling multiple virtual objects to form a combined object.

[0009] Furthermore, the setting means may continue to set the selected object when the adhesion between the selected object and the other virtual object is released.

[0010] Based on the above, after releasing the adhesion between the selected object and another virtual object, the user can immediately move on to an operation of adhering another virtual object to the selected object.

[0011] The input means may include first input means and second input means. The moving means may include first moving means for moving a user character and the combined object including the selected object based on an input using the first input means, and second moving means for moving the combined object including the selected object based on an input using the second input means without moving the user character. The releasing means may release the adhesion between the selected object and the other virtual object when the input using the second input means satisfies the release condition. Note that the release condition may not be satisfied by the input using the first input means.

[0012] Based on the above, by moving the selected object without moving the user character, it is possible to release the adhesion with the other virtual object.

[0013] The combined object generating means may also attach the other virtual object to the selected object based on an input to the input means.

[0014] Based on the above, it is possible to release adhesion of another virtual object to a selected object or to attach another virtual object to the selected object by input to the input means.

[0015] The cancellation condition may be a condition that is more likely to be satisfied as the number of changes in the predetermined input using the input means within a predetermined time period increases.

[0016] Based on the above, when the number of input changes for moving the selected object is large, it is possible to release the adhesion between the selected object and the other virtual object.

[0017] The cancellation condition may be that the number of changes in the predetermined input using the input means reaches a predetermined number within the predetermined time period.

[0018] According to the above, by changing a predetermined input using the input means a predetermined number of times within a predetermined time, it is possible to release the adhesion between the selected object and another virtual object, and it is possible to release the adhesion between the selected object and another virtual object through an intuitive operation.

[0019] The cancellation condition may be that the number of changes in the movement direction of the combined object moved by the moving means reaches a predetermined number within a predetermined time period.

[0020] Based on the above, by changing the moving direction of the combined object a predetermined number of times within a predetermined time, it is possible to release the adhesion between the selected object and the other virtual object.

[0021] The cancellation condition may be that the number of times the combined object moves in the opposite direction reaches the predetermined number of times within the predetermined time period.

[0022] According to the above, for example, by moving the combined object left and right a predetermined number of times within a predetermined time, it is possible to release the adhesion between the selected object and other virtual objects, and it is possible to release the adhesion between the selected object and other virtual objects with a more intuitive operation.

[0023] The input means may include third input means and fourth input means. The release means may be more likely to determine that the release condition has been satisfied the greater the number of input changes using the third input means within a predetermined time period, and more likely to determine that the release condition has been satisfied the greater the number of input changes using the fourth input means within the predetermined time period. The release means may be more likely to determine that the release condition has been satisfied when input is made to both the third input means and the fourth input means within the predetermined time period than when input is made to either the third input means or the fourth input means. The release means may release the adhesion between the selected object and the other virtual object when it is determined that the release condition has been satisfied.

[0024] According to the above, the adhesion between the selected object and another virtual object can be released using two input means, and when input is made to the two input means simultaneously, the adhesion between the selected object and another virtual object can be released quickly.

[0025] The release means may determine that the release condition is satisfied when the number of input changes using the third input means reaches a predetermined number within the predetermined time period, determine that the release condition is satisfied when the number of input changes using the fourth input means reaches the predetermined number within the predetermined time period, and determine that the release condition is satisfied when the sum of the number of input changes using the third input means and the number of input changes using the fourth input means reaches the predetermined number within the predetermined time period.

[0026] According to the above, the adhesion between the selected object and another virtual object can be released using two input means, and at the same time, when the number of inputs using the two input means reaches a predetermined number, the adhesion between the selected object and another virtual object can be released.

[0027] The second input means may include third input means and fourth input means. The release means may be more likely to determine that the release condition has been satisfied the greater the number of changes in the input using the third input means within a predetermined time period, more likely to determine that the release condition has been satisfied the greater the number of changes in the input using the fourth input means within the predetermined time period, more likely to determine that the release condition has been satisfied when inputs have been made to both the third input means and the fourth input means within the predetermined time period than when inputs have been made to either the third input means or the fourth input means, and may release the adhesion between the selected object and the other virtual object when it is determined that the release condition has been satisfied.

[0028] According to the above, input to move the combined object can be made using two input means without moving the user character, and when input is made to two input means simultaneously, the bond with other virtual objects can be quickly released.

[0029] The release means may determine that the release condition is satisfied when the number of input changes using the third input means reaches the predetermined number within the predetermined time period, determine that the release condition is satisfied when the number of input changes using the fourth input means reaches the predetermined number within the predetermined time period, and determine that the release condition is satisfied when the sum of the number of input changes using the third input means and the number of input changes using the fourth input means reaches the predetermined number within the predetermined time period.

[0030] According to the above, inputs to move the combined object can be made using two input means without moving the user character, and when the number of inputs made using the two input means at the same time reaches a predetermined number, the connection with other virtual objects can be released.

[0031] Another invention may be an information processing device including the above-mentioned means, or an information processing program that causes a computer of the information processing device to function as the above-mentioned means. Another invention may be an information processing method performed in the above-mentioned information processing system. [Effects of the Invention]

[0032] According to the present invention, at least one virtual object included in the combined object can be selected and some of the connections can be released. [Brief explanation of the drawings]

[0033] [Figure 1] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. [Figure 2] FIG. 10 shows an example of a state in which the left controller 3 and the right controller 4 are detached from the main unit 2. [Figure 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Figure 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] FIG. 10 is a diagram showing an example of a game image displayed when the game of this embodiment is executed. [Figure 9] FIG. 10 is a diagram showing an example of a game image showing a state in which a user is selecting an engine object 70a. [Figure 10] FIG. 10 is a diagram showing an example of a game image after the user character PC has moved diagonally upward from the position shown in FIG. 9; [Figure 11] FIG. 11 shows an example of a game image after the user character PC has moved further in the depth direction from the position shown in FIG. 10. [Figure 12] FIG. 12 shows an example of a game image after a bonding instruction is given by a user in the state shown in FIG. 11 . [Figure 13] FIG. 7 shows an example of an airplane object 75 as a combined object composed of an engine object 70a and a wing object 70b. [Figure 14] FIG. 10 is a diagram showing an example of a game image immediately after a wheel object 70c is selected. [Figure 15] FIG. 10 is a diagram showing an example of a game image after the wheel object 70c is selected and the attitude of the wheel object 70c is changed. [Figure 16] FIG. 10 is a diagram showing an example of a game image when a selected wheel object 70c is brought close to a board object 70d. [Figure 17] FIG. 10 is a diagram showing an example of a game image after a wheel object 70c is glued to a board object 70d. [Figure 18] FIG. 10 is a diagram showing an example of how a plate object 70d that constitutes a combined object 76 is selected and a wheel object 70c is attached to the plate object 70d. [Figure 19] FIG. 10 is a diagram showing an example of a four-wheeled vehicle object 76 as a combined object. [Figure 20] FIG. 10 is a diagram showing an example of a game image immediately after selecting a rock object 70g. [Figure 21] FIG. 10 is a diagram showing an example of a game image when a selected rock object 70g is brought close to a box object 70f. [Figure 22] FIG. 22 shows an example of a game image when a rock object 70g is moved from the state shown in FIG. 21. [Figure 23] FIG. 23 is a diagram showing an example of a game image when a bonding instruction is given in the state of FIG. 22; [Figure 24] FIG. 10 is a diagram showing an example of the basic shape of an adhesive object 78. [Figure 25] A diagram for explaining a method for transforming an adhesive object 78. [Figure 26] A diagram for explaining a method for transforming an adhesive object 78. [Figure 27] A diagram for explaining a method for transforming an adhesive object 78. [Figure 28] A diagram for explaining a method for transforming an adhesive object 78. [Figure 29] FIG. 10 is a diagram illustrating generation of an adhesion object 78 when two virtual objects 70 are adhered at a priority adhesion part BP. [Figure 30] FIG. 10 is a diagram showing the positional relationship before and after a bonding instruction is issued when two virtual objects 70 are bonded at a priority bonding part BP. [Figure 31] FIG. 10 is a diagram illustrating an example in which the attitude of a selected object is controlled according to a tangent vector TL. [Figure 32] FIG. 10 is a diagram showing an example of when an operation to release the adhesive between two virtual objects 70 is performed while the two virtual objects 70 are adhesively joined together. [Figure 33] FIG. 10 is a diagram showing an example of movement of a selected object when the direction of the virtual camera VC is changed to the right. [Figure 34] FIG. 10 is a diagram showing an example of when an input that does not satisfy a predetermined release condition is made in a state where two virtual objects 70 are glued together. [Figure 35]FIG. 10 is a diagram showing an example of adhesive release when an adhesive release operation is performed in a state where four virtual objects 70 are glued together. [Figure 36] FIG. 10 is a diagram showing an example of data stored in the memory of the main unit 2 during execution of the game process. [Figure 37] 10 is a flowchart showing an example of game processing executed by the processor 81 of the main unit 2. [Figure 38] A flowchart showing an example of the combined object generation process in step S106. [Figure 39] A flowchart showing an example of the adhesive object generation process in step S152. [Figure 40] 10 is a flowchart showing an example of the adhesion release process in step S108. DETAILED DESCRIPTION OF THE INVENTION

[0034] A game system according to an example of this embodiment will be described below. An example of a game system 1 according to this embodiment includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and right controller 4 are each detachable from the main unit 2.

[0035] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and the right controller 4 are devices that have operation units that allow the user to perform inputs.

[0036] Fig. 2 is a diagram showing an example of the state in which the left controller 3 and the right controller 4 are detached from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. Note that, below, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."

[0037] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular.

[0038] 3, the main device 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays an image generated by the main device 2.

[0039] The main device 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitance type).

[0040] The main unit 2 is provided with a speaker (that is, a speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, the main surface of the housing 11 is formed with speaker holes 11a and 11b.

[0041] The main unit 2 also has a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via a wired connection, and a right terminal 21, which is a terminal for the main unit 2 to communicate with the right controller 4 via a wired connection.

[0042] 3, the main device 2 includes a slot 23. The slot 23 is provided on the upper side surface of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be inserted therein.

[0043] The main unit 2 has a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor.

[0044] 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31.

[0045] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit that can input directions. By tilting the analog stick 32, the user can input a direction corresponding to the tilt direction (and input a magnitude corresponding to the tilt angle). Note that instead of an analog stick, the left controller 3 may be equipped with a cross key or a slide stick that can perform slide inputs as a direction input unit. In this embodiment, input can be made by pressing the analog stick 32.

[0046] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. The left controller 3 also is equipped with a record button 37 and a - (minus) button 47. The left controller 3 is equipped with a first L button 38 and a ZL button 39 on the upper left of the side of the housing 31. The left controller 3 is also equipped with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached to the main unit 2. These operation buttons are used to issue instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.

[0047] The left controller 3 also includes a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0048] 5 is a six-sided view showing an example of the right controller 4. As shown in FIG.

[0049] Like the left controller 3, the right controller 4 is equipped with an analog stick 52 as a directional input unit. In this embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. The right controller 4 may also be equipped with a cross key or a slide stick that allows slide input, instead of an analog stick. Like the left controller 3, the right controller 4 is equipped with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 is also equipped with a + (plus) button 57 and a home button 58. The right controller 4 is also equipped with a first R button 60 and a ZR button 61 on the upper right side of the housing 51. Like the left controller 3, the right controller 4 is also equipped with a second L button 65 and a second R button 66.

[0050] The right controller 4 also includes a terminal 64 for wired communication between the right controller 4 and the main unit 2.

[0051] Fig. 6 is a block diagram showing an example of the internal configuration of main unit 2. In addition to the configuration shown in Fig. 3, main unit 2 includes components 81-91, 97, and 98 shown in Fig. 6. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in housing 11.

[0052] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be composed of, for example, only a CPU (Central Processing Unit), or may be composed of an SoC (System-on-a-chip) that includes multiple functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various types of information processing by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium inserted into slot 23, etc.).

[0053] The main device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media built into the main device 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used primarily to store various types of data (which may be programs) saved in the main device 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.

[0054] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted into the slot 23 in accordance with instructions from the processor 81.

[0055] The processor 81 reads and writes data from and to the flash memory 84, DRAM 85, and the above-mentioned storage media as appropriate, to execute the above-mentioned information processing.

[0056] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with an external device via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with the external device using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also communicates wirelessly with other main units 2 of the same type using a predetermined communication method (for example, communication using a proprietary protocol or infrared communication) as a second communication mode.

[0057] The main body device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 communicates wirelessly with the left controller 3 and / or the right controller 4.

[0058] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When performing wired communication with the right controller 4, the processor 81 transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0059] The main device 2 includes a touch panel controller 86, which is a circuit that controls the touch panel 13. The touch panel controller 86 is connected between the touch panel 13 and the processor 81. Based on a signal from the touch panel 13, the touch panel controller 86 generates data indicating, for example, the position where a touch input was made, and outputs the data to the processor 81.

[0060] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside.

[0061] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speakers 88 and the audio input / output terminal 25.

[0062] The main unit 2 also includes an acceleration sensor 89. In this embodiment, the acceleration sensor 89 detects the magnitude of acceleration along three predetermined axes (for example, the x, y, and z axes shown in FIG. 1). The acceleration sensor 89 may also detect acceleration along one or two axes.

[0063] The main body device 2 also includes an angular velocity sensor 90. In this embodiment, the angular velocity sensor 90 detects angular velocities around three predetermined axes (for example, the x, y, and z axes shown in FIG. 1). Note that the angular velocity sensor 90 may also detect angular velocities around one axis or two axes.

[0064] The acceleration sensor 89 and the angular velocity sensor 90 are connected to the processor 81, and the detection results of the acceleration sensor 89 and the angular velocity sensor 90 are output to the processor 81. The processor 81 can calculate information related to the movement and / or attitude of the main unit 2 based on the detection results of the acceleration sensor 89 and the angular velocity sensor 90.

[0065] The main body device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81.

[0066] Figure 7 is a block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Figure 7 because they are shown in Figure 6.

[0067] The left controller 3 is equipped with a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 7 , the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 both via wired communication via the terminal 42 and via wireless communication without using the terminal 42. The communication control unit 101 controls the method of communication between the left controller 3 and the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. When the left controller 3 is detached from the main unit 2, the communication control unit 101 communicates wirelessly with the main unit 2 (specifically, with the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

[0068] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured, for example, by a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.

[0069] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes an analog stick (referred to as "stick" in FIG. 7) 32. Each button 103 and analog stick 32 repeatedly outputs information related to operations performed on the button 103 and analog stick 32 to the communication control unit 101 at appropriate timing.

[0070] The left controller 3 is equipped with an inertial sensor. Specifically, the left controller 3 is equipped with an acceleration sensor 104. The left controller 3 is also equipped with an angular velocity sensor 105. In this embodiment, the acceleration sensor 104 detects the magnitude of acceleration along three predetermined axes (for example, the x, y, and z axes shown in FIG. 4). The acceleration sensor 104 may detect acceleration along one or two axes. In this embodiment, the angular velocity sensor 105 detects angular velocity around three predetermined axes (for example, the x, y, and z axes shown in FIG. 4). The angular velocity sensor 105 may detect angular velocity around one or two axes. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. The detection results of the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timing.

[0071] The communication control unit 101 acquires information about the input (specifically, information about the operation or the detection results by the sensors) from each input unit (specifically, each button 103, analog stick 32, and each sensor 104 and 105). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a predetermined process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every predetermined time. The interval at which the information about the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0072] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input made to the left controller 3. That is, the main unit 2 can determine the operation of each button 103 and analog stick 32 based on the operation data. The main unit 2 can also calculate information about the movement and / or attitude of the left controller 3 based on the operation data (specifically, the detection results of the acceleration sensor 104 and the angular velocity sensor 105).

[0073] The left controller 3 is equipped with a power supply unit 108. In this embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).

[0074] As shown in FIG. 7 , the right controller 4 includes a communication control unit 111 that communicates with the main unit 2. The right controller 4 also includes a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component, including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3.

[0075] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113, an analog stick 52, and inertial sensors (an acceleration sensor 114 and an angular velocity sensor 115). These input units have the same functions as those of the left controller 3, and operate in the same manner.

[0076] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3 and operates in the same manner.

[0077] (Game Overview) Next, the game of this embodiment will be described. In the game of this embodiment, a user character PC is placed in a virtual space (game space), and the game progresses as the user character PC moves within the virtual space, performs predetermined actions, and defeats enemy characters. A virtual camera is placed in the virtual space. The virtual camera is placed so that the user character PC is included in its imaging range. For example, the virtual camera may be set behind the user character PC. A game image including the user character PC is generated using the virtual camera and displayed on the display 12 or a stationary monitor.

[0078] Fig. 8 is a diagram showing an example of a game image displayed when the game of this embodiment is executed. As shown in Fig. 8, a user character PC and a plurality of virtual objects 70 (70a to 70g) are arranged in a virtual space. In addition, although not shown in the figure, objects such as trees and buildings that are fixed to the virtual space are also arranged in the virtual space.

[0079] The user character PC is a character operated by a user. The user character PC moves within the virtual space in response to inputs to the controller (3 or 4) and performs predetermined actions within the virtual space. The user character PC also combines multiple virtual objects 70 to create a combined object.

[0080] The multiple virtual objects 70 are objects that can move within the virtual space in response to a user's operation and can be attached to one another. The multiple virtual objects 70 form a combined object by being attached to one another. For example, the multiple virtual objects 70 are placed on the ground in the virtual space in advance. The multiple virtual objects 70 may also appear in the virtual space based on a user's operation. For example, the virtual objects 70 may appear in the virtual space when the user character PC defeats an enemy character or completes a predetermined task. The multiple virtual objects 70 are managed as items owned by the user character PC and are not normally placed in the virtual space. Instead, they may be contained as material objects in a virtual containing area of ​​the user character PC. Then, when a user operation is performed, the virtual objects 70 contained in the containing area may appear in the virtual space.

[0081] A user can generate a combined object by combining multiple virtual objects 70. For example, a user can generate a vehicle, a tank, an airplane, etc. as a combined object, and can use the generated combined object to progress through the game. For example, a user can use the generated combined object to move within the virtual space or to attack enemy characters.

[0082] For example, the plurality of virtual objects 70 include an engine object 70a, a wing object 70b, a wheel object 70c, a board object 70d, a joystick object 70e, a box object 70f, and a rock object 70g. Note that in addition to these, other virtual objects for forming a combined object may also be provided.

[0083] The engine object 70a is an object that resembles a jet engine and is a virtual object that has power. When configured as a part of a combined object, the engine object 70a applies speed, acceleration, and angular velocity to the entire combined object. The wing object 70b is a virtual object for flying in the sky and generates lift when moving in virtual space at a predetermined speed or faster.

[0084] The wheel object 70c is a virtual object having power, and can be configured as, for example, a wheel of a vehicle. The wheel object 70c is configured to be rotatable in a predetermined direction. The plate object 70d is a planar virtual object. The plate object 70d can be used, for example, as the body of a vehicle. A wall can be formed in the virtual space by arranging multiple plate objects 70d vertically, or a hexahedron can be formed using multiple plate objects 70d.

[0085] The control stick object 70e is a virtual object for controlling the movement of the combined object when configured as a part of the combined object. For example, the control stick object 70e applies rotation to the combined object to control the movement direction of the combined object.

[0086] The box object 70f is a virtual object having, for example, a cube shape, and is an object that can be configured as a part of various combined objects. The rock object 70g is a virtual object having a curved surface shape, and is an object that resembles a rock.

[0087] 8, one or more priority adhesion parts BP may be set on the surface of the virtual object 70. As will be described in detail later, the priority adhesion parts BP are positions that are given priority over other parts when adhering virtual objects 70 together.

[0088] In this embodiment, "gluing" virtual objects 70 together means that the virtual objects 70 are positioned close to each other and behave as a unified object. For example, when two virtual objects 70 are glued together, the two virtual objects 70 may be in contact with each other. Furthermore, when two virtual objects 70 are glued together, the two virtual objects 70 do not need to be in strict contact with each other. For example, there may be a gap between the two virtual objects 70, or an adhesive object (described later) may be present between the two virtual objects 70. Furthermore, "multiple virtual objects 70 behaving as a unified object" includes maintaining the relative positional relationship between the multiple virtual objects 70 and allowing the multiple virtual objects 70 to move or change their posture within the virtual space as if they were a single object. Note that the relative positional relationship between the glued virtual objects 70 is not completely fixed. For example, when a force or impact is applied to one of the multiple virtual objects 70, the relative positional relationship between the multiple virtual objects 70 may change slightly while remaining glued together.

[0089] The game creator sets the priority adhesion part BP in advance for each virtual object 70. For example, one priority adhesion part BP is set on the bottom surface of the engine object 70a. Three priority adhesion parts BP are set on the top surface of the wing object 70b. Multiple priority adhesion parts BP are set on the top surface and side surfaces of the plate object 70d. One or multiple priority adhesion parts BP are also set in advance for the wheel object 70c and the control stick object 70e.

[0090] On the other hand, no priority adhesion part BP is set for the box object 70f and the rock object 70g.

[0091] The user can select any one of the virtual objects 70 placed in the virtual space and attach it to another virtual object 70 to generate a combined object that attaches multiple virtual objects 70. Figure 9 is a diagram showing an example of a game image showing a state in which the user is selecting an engine object 70a.

[0092] The user can move the user character PC within the virtual space using, for example, the analog stick 32 of the left controller 3. As the user character PC moves within the virtual space, the virtual camera also moves within the virtual space to follow the user character PC. The user can also control the orientation (line of sight) of the virtual camera using the analog stick 52 of the right controller 4. The virtual camera moves within the virtual space so that the user character PC is included in its imaging range.

[0093] For example, an indication sign (not shown) for pointing to the virtual object 70 is displayed in the center of the screen, and the user moves the user character PC or changes the direction of the virtual camera so that the engine object 70a is positioned in the center of the screen. When a predetermined button on the left controller 3 or the right controller 4 is pressed while the engine object 70a is being pointed to by the indication sign (i.e., when the engine object 70a is positioned in the center of the screen), the engine object 70a is selected, as shown in FIG. 9 . The selected virtual object 70 is displayed in a different manner from the other virtual objects 70. For example, when not selected by the user, each virtual object 70 has its own unique color, but when selected by the user, the color changes to a predetermined color (e.g., yellow). For example, as shown in FIG. 9 , the selected engine object 70a is displayed in a predetermined color (e.g., yellow) different from the other virtual objects 70. The selected virtual object 70 may be displayed in a different manner from the other virtual objects 70 by displaying an image surrounding the selected virtual object 70 or by displaying an arrow pointing to the selected virtual object 70.

[0094] In the following, the virtual object 70 selected by the user may be referred to as a "selected object." Also, the virtual object 70 not selected by the user may be referred to as an "other virtual object 70."

[0095] Furthermore, when a virtual object 70 is selected, a selection image 77 is displayed indicating that the virtual object 70 is selected. The selection image 77 is an image extending from the user character PC to the selected object.

[0096] The selected engine object 70a is displayed as if floating above the ground, either by user operation (or automatically). When the selected engine object 70a is floating above the ground, an image 71a (projected image) of the engine object 70a is projected onto the ground. In addition, a point 72a indicating a predetermined position (for example, the center position) of the engine object 70a is also projected onto the ground.

[0097] When the user character PC moves in the virtual space while the engine object 70a is selected, the engine object 70a also moves in accordance with the movement of the user character PC. In other words, the selected object moves in accordance with the movement of the user character PC.

[0098] Furthermore, as will be described later, the selected object may move even if the position of the user character PC does not change. For example, it may also move if the orientation of the user character PC changes. Specifically, the selected object moves in accordance with the change in the orientation of the user character PC so that the selected object is positioned directly in front of the user character PC. The selected object may also move if the distance between the user character PC and the selected object changes. For example, if the orientation of the user character PC is changed upward in the virtual space, the selected object also moves upward in the virtual space. When the user character PC faces upward in the virtual space, the distance between the user character PC and the selected object is longer than when the user character PC faces in a direction parallel to the ground.

[0099] FIG. 10 is a diagram showing an example of a game image after the user character PC has moved diagonally upward from the position shown in FIG. 9. As shown in FIG. 10, when the user character PC moves, the selected engine object 70a also moves. Specifically, the user character PC moves according to the input direction of the analog stick 32 of the left controller 3, and the virtual camera also moves according to the movement of the user character PC. The selected object moves so as to maintain its positional relationship with the user character PC. Therefore, when the user character PC moves in a predetermined direction in the virtual space, the selected engine object 70a also moves in the predetermined direction.

[0100] 11 is a diagram showing an example of a game image after the user character PC has moved further in the depth direction from the position shown in FIG. 10. As shown in FIG. 11, when the user character PC moves further in the depth direction from the position shown in FIG. 10, the engine object 70a also moves further in the depth direction. In this case, the engine object 70a is positioned above a wing object 70b placed on the ground. At this time, an adhesive object 78 appears connecting the engine object 70a and the wing object 70b.

[0101] Here, the adhesion object 78 is an object for adhering the selected object and the other virtual object 70, and is an object simulating a viscous adhesive. The adhesion object 78 is an object that indicates the adhesion positions of the selected object and the other virtual object 70. Here, the "adhesion position" is the position where the selected object and the other virtual object 70 come into contact when the selected object and the other virtual object 70 are adhered. The adhesion object 78 connects the adhesion positions of the two virtual objects 70, and when the user issues an adhesion instruction, the adhesion object 78 makes the user recognize that the two virtual objects 70 are adhered at the adhesion position. The adhesion object 78 appears when the selected object and the other virtual object 70 satisfy a predetermined adhesion condition before the selected object and the other virtual object 70 are adhered. The predetermined adhesion condition is a condition under which the selected object and the other virtual object 70 can be adhered. For example, the predetermined adhesion condition is a condition determined by the distance between the selected object and the other virtual object 70, the size, shape, orientation, etc. of the selected object and the other virtual object 70. Specifically, when the selected object is moved, another virtual object 70 that satisfies a predetermined adhesion condition is searched for. If the search results in finding another virtual object 70 that may come into contact with the selected object, an adhesion object 78 appears that connects the selected object to the other virtual object 70. The adhesion object 78 allows the user to recognize, before the adhesion, which virtual object 70 the selected object will be adhered to and which position on the selected object will be adhered to which position on the other virtual object 70.

[0102] The adhesive object 78 may appear on the surface of the selected object and the other virtual object 70 in response to the selection of the virtual object 70 (the virtual object 70 being set as the selected object), and may then be formed to connect the selected object and the other virtual object 70 when the selected object and the other virtual object 70 satisfy a predetermined adhesion condition.

[0103] When a selected object and another virtual object 70 satisfy a predetermined adhesion condition, if a priority adhesion part BP is set between the selected object and another virtual object 70, the priority adhesion parts are preferentially adhered to each other. Specifically, when the priority adhesion part BP set in the selected object and the priority adhesion part BP set in the other virtual object 70 satisfy a first condition (details of which will be described later), these priority adhesion parts BP are set as adhesion positions. Then, the adhesion object 78 is formed so as to connect these priority adhesion parts BP.

[0104] If the priority adhesion part BP set on the selected object and the priority adhesion part BP set on the other virtual object 70 do not satisfy the first condition, the priority adhesion part BP or another part is set as the adhesion position (at this time, the priority adhesion part BP may be set as the adhesion position without being particularly distinguished from other parts). Specifically, positions on the selected object and the other virtual object 70 that satisfy the second condition are set as adhesion positions, and an adhesion object 78 that connects the adhesion positions is generated. For example, the position that satisfies the second condition is the position where the selected object and the other virtual object 70 are closest to each other. Also, even if a priority adhesion part BP is not set on at least one of the selected object and the other virtual object 70, a position on the selected object and the other virtual object 70 that satisfies the second condition (closest position) is set as the adhesion position. Note that, for example, if the priority adhesion part BP of the selected object and a part of the other virtual object 70 other than the priority adhesion part satisfy the second condition, the priority adhesion part BP of the selected object and the part of the other virtual object 70 other than the priority adhesion part are set as the adhesion position. A method for generating the adhesive object 78 will be described in detail later.

[0105] In the example shown in Figure 11, the priority adhesion part BP of the selected engine object 70a and the priority adhesion part BP of the wing object 70b satisfy the first condition, so the adhesion object 78 is displayed so as to connect these priority adhesion parts BP.

[0106] 11 , when the engine object 70a is moved above the wing object 70b, an image 71a of the engine object 70a is projected onto the surface of the wing object 70b. The image 71 of the selected object and the center position 72 of the selected object are projected onto the surface of the other virtual object 70, allowing the user to recognize the positional relationship between the selected object and the other virtual object 70.

[0107] FIG. 12 is a diagram showing an example of a game image after a user issues a bonding instruction in the state shown in FIG. 11. As shown in FIG. 12, when the priority bonding portion BP is connected by the bonding object 78, if the user issues a bonding instruction (for example, by pressing one of the operation buttons 53 to 56), the engine object 70a and the wing object 70b are bonded at the priority bonding portion BP. That is, the engine object 70a and the wing object 70b are bonded so that the priority bonding portions BP overlap. When the two virtual objects 70a and 70b are bonded, at least one of the two virtual objects 70a and 70b moves so as to attract each other. After the two virtual objects 70a and 70b are bonded, the engine object 70a, which was selected before the bonding instruction, is deselected, and the display mode of the engine object 70a returns to normal. By bonding the engine object 70a and the wing object 70b, the engine object 70a and the wing object 70b are configured as a combined object, and thereafter, these two virtual objects 70 operate as a single unit. That is, after the two virtual objects 70 are glued together, the relative positional relationship between these two virtual objects 70 does not change. The glue between the two virtual objects 70 is released when an input that satisfies a predetermined release condition is performed. Details of releasing the glued state of the two virtual objects 70 will be described later.

[0108] Even after the selected object and the other virtual object 70 are adhered to each other, the adhesion object 78 remains between the selected object and the other virtual object 70. Specifically, the adhesion object 78 remains so as to follow the surface around the adhesion position of the selected object and the surface around the adhesion position of the other virtual object 70. In this case, the shape of the adhesion object 78 changes before the selected object and the other virtual object 70 are adhered to each other and after the selected object and the other virtual object 70 are adhered to each other. The change in the shape of the adhesion object 78 will be described later.

[0109] 13 is a diagram showing an example of an airplane object 75 as a combined object formed by an engine object 70a and a wing object 70b. In FIG. 13, a state in which a user character PC is riding on the airplane object 75 and flying in the sky is shown.

[0110] The behavior of the airplane object 75 as a whole is determined by each part (the engine object 70a and the wing object 70b) that constitutes part of the airplane object 75 and an object that does not constitute part of the airplane object 75 (e.g., the user character PC). Specifically, the engine object 70a has power and applies a predetermined speed (or acceleration) to the entire airplane object 75. The wing object 70b applies lift to the entire airplane object 75 according to the speed of the airplane object 75. The engine object 70a, the wing object 70b, and the user character PC each have a predetermined weight. The airplane object 75 is also affected by wind in the virtual space. The behavior of the entire flying object 75 is determined by performing physical calculations based on the speed of the engine object 70a, the lift of the wing object 70b, the weight of each object, wind force, and the like. For example, if sufficient speed is applied by the engine object 70a and sufficient lift is obtained by the wing object 70b, the flying object 75 will fly in the sky in the virtual space.

[0111] It is also possible to attach another virtual object 70 to the airplane object 75 configured with an engine object 70a and a wing object 70b shown in FIG. 13. For example, two or more engine objects 70a can be attached to the wing object 70b. In this case, the speed of the airplane object 75 having two or more engine objects 70a increases. Also, by attaching one wing object 70b next to another wing object 70b, it is possible to configure a large wing in which the two wing objects 70b are integrated. An airplane object 75 having two wing objects 70b can obtain greater lift and can fly even when carrying a heavier object.

[0112] Next, with reference to FIGS. 14 to 19, a case where a four-wheeled vehicle object is generated as a combined object using a plurality of virtual objects 70 will be described. FIG. 14 is a diagram showing an example of a game image immediately after a wheel object 70c is selected. FIG. 15 is a diagram showing an example of a game image after the wheel object 70c is selected and the attitude of the wheel object 70c is changed. FIG. 16 is a diagram showing an example of a game image when the selected wheel object 70c is brought closer to a board object 70d. FIG. 17 is a diagram showing an example of a game image after the wheel object 70c is attached to the board object 70d. FIG. 18 is a diagram showing an example of a state in which a board object 70d that constitutes a combined object 76 is selected and the wheel object 70c is attached to the board object 70d. FIG. 19 is a diagram showing an example of a four-wheeled vehicle object 76 as a combined object.

[0113] As shown in Fig. 14, when a user performs a selection operation while a wheel object 70c placed on the ground is displayed approximately in the center of the screen, the wheel object 70c is selected. When the selected wheel object 70c is lifted up, an image 71c of the wheel object 70c is projected onto the ground. The image 71c projected onto the ground has the same shape as when the wheel object 70c is viewed from directly above in the virtual space. In addition, a point 72c indicating the center position of the wheel object 70c is projected onto the ground.

[0114] When the user performs a rotation operation in the state shown in Fig. 14, the posture of the selected wheel object 70c in the virtual space changes (Fig. 15). Specifically, the posture of the wheel object 70c is changed so that the rotation axis (the axis about which the wheel rotates) of the wheel object 70c becomes parallel to the ground. In this case, the image 71c of the wheel object 70c projected onto the ground also changes.

[0115] The user character PC is moved in the direction of the board object 70d in the state shown in Fig. 15. Note that Fig. 15 shows an example in which two wheel objects 70c have already been attached to the board object 70d.

[0116] When the movement of the user character PC (movement of the wheel object 70c) causes the wheel object 70c and the plate object 70d to satisfy a predetermined adhesion condition, an adhesion object 78 appears that connects the wheel object 70c and the plate object 70d (FIG. 16). Specifically, the adhesion object 78 is generated so as to connect the priority adhesion part BP of the selected wheel object 70c with the priority adhesion part BP set on the side of the plate object 70d. In addition, an image 71cx of the wheel object 70c is projected onto the side of the plate object 70d.

[0117] Here, an image 71c of the selected wheel object 70c is projected onto both the ground and the side of the plate object 70d. The image 71 of the selected object is not simply a shadow cast by a light source in the virtual space, but is intended to facilitate the user's recognition of the positional relationship between the selected object and other virtual objects 70. The image 71 of the selected object is formed in the vertical, horizontal, and depth directions of the virtual space. Specifically, by projecting the selected object based on a straight line parallel to the vertical direction of the virtual space, an image 71y of the selected object in the vertical direction is formed on the ground. Furthermore, by projecting the selected object based on a straight line parallel to the horizontal direction of the virtual camera, an image 71x of the selected object in the horizontal direction is formed on the surface of another virtual object 70 located to the left or right of the selected object. Furthermore, by projecting the selected object based on a straight line parallel to the depth direction of the virtual space as seen from the virtual camera, an image 71z of the selected object in the depth direction is formed on the surface of another virtual object 70 located to the depth of the selected object. Note that the shadow of the virtual object 70 is also displayed separately from the image 71 depending on the presence and position of a light source in the virtual space.

[0118] 16, since the plate object 70d is present to the left of the selected wheel object 70c, a part of the left-right image 71cx of the wheel object 70c is formed on the side of the plate object 70d. In addition, a point 72cx indicating the center position of the selected wheel object 70c is also displayed on the side of the plate object 70d.

[0119] In this way, since the selected object is projected in three directions, namely, the up-down direction, the left-right direction, and the depth direction, when another virtual object 70 exists near the selected object, an image 71 of the selected object and a point 72 indicating the center position are displayed on the surface of the other virtual object 70. This allows the user to easily recognize the positional relationship between the selected object and the other virtual object 70. For example, the left-right image 71x of the selected object allows the user to recognize whether the selected object is located directly to the side of the other virtual object 70 or is diagonally shifted from it. Furthermore, the shape of the image 71 of the selected object formed on the surface of the other virtual object 70 allows the user to recognize the posture of the selected object.

[0120] When the wheel object 70c and the plate object 70d are connected by the adhesive object 78, if the user issues an adhesive instruction, the wheel object 70c and the plate object 70d are adhered at the priority adhesive part BP (FIG. 17), thereby forming a combined object 76 including three wheel objects 70c and one plate object 70d.

[0121] The user can further adhere the virtual object 70 to the combined object 76 using a similar procedure. For example, the user can select another wheel object 70c arranged in the virtual space and adhere the selected wheel object 70c to the left side of the plate object 70d shown in FIG. 17. Furthermore, as shown in FIG. 18, the user can select the plate object 70d that constitutes the combined object 76 and move the entire combined object 76 including the plate object 70d so that it approaches the wheel object 70c arranged in the virtual space. Then, an adhesion object 78 appears that connects the priority adhesion part BP of the plate object 70d and the priority adhesion part BP of the wheel object 70c. Then, the user can issue an adhesion instruction to adhere the wheel object 70c to the selected plate object 70d.

[0122] As a result, a combined object 76 having four wheel objects 70c is generated. Furthermore, when a control stick object 70h is attached onto the board object 70d, a four-wheeled vehicle object 76 as shown in FIG.

[0123] As shown in FIG. 19, the four-wheeled vehicle object 76 includes a plate object 70d that constitutes the vehicle body, four wheel objects 70c that constitute the wheels, and a control stick object 70h. Each of the four wheel objects 70d imparts a velocity (speed and direction of movement) to the entire four-wheeled vehicle object 76. The control stick object 70 also imparts rotation to the entire four-wheeled vehicle object 76, changing the direction of travel of the entire four-wheeled vehicle object 76. The user can place the user character PC on the four-wheeled vehicle object 76 and, for example, operate the analog stick 32 to move the four-wheeled vehicle object 76 in a direction corresponding to the input direction of the analog stick 32. This allows the user character PC to move within the virtual space.

[0124] Next, with reference to Figs. 20 to 23, a case where virtual objects 70 for which no priority adhesion part BP is set are glued together will be described. Fig. 20 is a diagram showing an example of a game image immediately after a rock object 70g is selected. Fig. 21 is a diagram showing an example of a game image when the selected rock object 70g is brought closer to a box object 70f. Fig. 22 is a diagram showing an example of a game image when the rock object 70g is moved from the state shown in Fig. 21. Fig. 23 is a diagram showing an example of a game image when a glue instruction is given in the state shown in Fig. 22.

[0125] As shown in FIGS. 20 and 21 , when a rock object 70g placed on the ground is selected and brought close to a box object 70f, an adhesion object 78 appears connecting the selected rock object 70g and the box object 70f. Here, no priority adhesion part BP is set for the rock object 70g and the box object 70f. In this case, the position on the surface of the rock object 70g closest to the box object 70f is set as the adhesion position. Similarly, the position on the surface of the box object 70f closest to the rock object 70g is set as the adhesion position. The adhesion object 78 is displayed so as to connect these two adhesion positions. For example, in FIG. 21 , point P1 on the rock object 70g and a corner of the box object 70f are the closest positions, so these positions are connected by the adhesion object 78.

[0126] When the rock object 70g is moved from the state shown in Fig. 21, the adhesion position indicated by the adhesion object 78 changes (Fig. 22). For example, in Fig. 21, the adhesion object 78 indicates point P1 on the rock object 70g and a corner of the box object 70f as adhesion positions. In contrast, in Fig. 22, the adhesion object 78 indicates point P2 on the rock object 70g and the center of the side surface of the box object 70f as the closest positions, and therefore these positions are indicated as adhesion positions.

[0127] As described above, the selected object is projected in the vertical, horizontal, and depth directions of the virtual space. If a projection plane exists in that direction, an image 71 of the selected object is generated on the projection plane. In FIG. 21, the box object 70f is not located directly to the side of the rock object 70g, so the image 71gx of the rock object 70g is not displayed on the side of the box object 70f. On the other hand, in FIG. 22, the box object 70f is located almost directly to the side of the rock object 70g, so the image 71gx of the rock object 70g is displayed on the side of the box object 70f. Although not shown, a point 72gx indicating the center position of the rock object 70g is also displayed on the side of the box object 70f. In addition, in FIGS. 21 and 22, the image 71gy of the rock object 70g is projected onto the ground.

[0128] When a bonding instruction is given in the state of FIG. 22, the rock object 70g and the box object 70f are bonded together (FIG. 23). Specifically, point P2 on the rock object 70g and the center part of the side surface of the box object 70f are bonded together. That is, at least one of the rock object 70g and the box object 70f is moved so that point P2 on the rock object 70g and the center part of the side surface of the box object 70f overlap. The bonded object 78 remains even after the rock object 70g and the box object 70f are bonded together.

[0129] (Details on how to generate glue object 78) Next, a detailed description will be given of a method for generating the adhesion object 78. A case where two virtual objects 70 are adhered to each other in a portion other than the priority adhesion part BP will be described with reference to Figs.

[0130] FIG. 24 is a diagram showing an example of the basic shape of an adhesion object 78. As shown in FIG. 24, the adhesion object 78 includes two first portions 782 that form the bottom or top surface, and a second portion 783 that connects the two first portions 782. The first portions 782 are adhered to the adhesion positions of the virtual object 70. The first portions 782 and the second portions 783 include a plurality of bones 781. The bones 781 serve as a framework for determining the shape of the adhesion object 78. A surface is formed so as to surround the plurality of bones 781. The entire adhesion object 78 is deformed by deforming each of the plurality of bones 781. A method for generating an adhesion object 78 between two virtual objects 70 will be described below.

[0131] 25 to 28 are diagrams for explaining a method for transforming the adhesion object 78. FIG.

[0132] As described above, when two virtual objects 70 are not adhered to each other at the priority adhesion part BP, the position where the two virtual objects 70 are closest to each other is set as the adhesion position. Specifically, first, it is determined whether or not the selected object and the other virtual object 70 satisfy a predetermined adhesion condition.

[0133] 25, when the selected object 70A and the other virtual object 70B satisfy a predetermined adhesion condition, the closest position between the selected object 70A and the other virtual object 70B is calculated. Any method can be used to calculate the closest position, but for example, starting from the center of the selected object 70A, the closest position between the selected object 70A and the other virtual object 70B is recursively determined. As a result, for example, the point MPA on the selected object 70A and the point MPB on the other virtual object 70B are calculated as the closest positions.

[0134] Next, the normal vector at point MPA of the selected object 70A and the normal vector at point MPB of the other virtual object 70B are calculated, and planes perpendicular to each normal vector are calculated. Next, a cut plane 74 is calculated by averaging the two calculated planes. Specifically, the cut plane 74 is a plane that passes through the midpoint between points MPA and MPB and has as its normal a vector that is the average of the normal vector at point MPA and the normal vector at point MPB.

[0135] Next, as shown in FIG. 26 , a bounding box 73A of the selected object 70A and a bounding box 73B of another virtual object 70B are cut using the calculated cut plane 74. Here, the bounding box is a solid that surrounds each virtual object 70 and is set for each virtual object 70. The bounding box is a solid that has a simpler shape than the corresponding virtual object 70, or has the same shape. Specifically, the calculated cut plane 74 is placed at a position a predetermined distance away from the midpoint MPC between points MPA and MPB toward point MPA in the normal direction of the cut plane 74, and the bounding box 73A is cut using the cut plane 74A placed at that position. Furthermore, the calculated cut plane 74 is placed at a position a predetermined distance away from the midpoint MPC toward point MPB in the normal direction of the cut plane 74, and the bounding box 73B is cut using the cut plane 74B placed at that position.

[0136] FIG. 27 shows a cross section SA obtained by cutting a bounding box 73A of a selected object 70A with a cutting plane 74A, and a cross section SB obtained by cutting a bounding box 73B of another virtual object 70B with a cutting plane 74B. A surface SAB is calculated by superimposing these two cross sections SA and SB. This surface SAB is a surface obtained by projecting the cross section SA onto the cross section SB (or projecting the cross section SB onto the cross section SA). The size of each bone 781 of the adhesion object 78 is determined based on the size of this surface SAB. For example, the size of each bone 781 of the first portion 782 of the adhesion object 78 is determined so that the first portion 782 of the adhesion object 78 matches the shape of the surface SAB. Then, the first portion 782 of the adhesion object 78 is placed on the surface SAB. That is, one first portion 782 of the adhesion object 78 is placed on a portion of the cross section SA that corresponds to the surface SAB, and the other first portion 782 of the adhesion object 78 is placed on a portion of the cross section SB that corresponds to the surface SAB.

[0137] Then, as shown in FIG. 28 , each bone 781 of the adhesion object 78 is deformed so as to fit along the surface of each virtual object 70. For example, the bone 781, indicated by dashed lines and included in the first portion 782 of the adhesion object 78, is deformed so as to fit along the surface of the selected object 70A. In FIG. 28 , the bone 781 before deformation is indicated by dashed lines, and the bone 781 after deformation is indicated by solid lines. By deforming each bone 781 in this manner, the adhesion object 78 is deformed so as to adhere to the surfaces of the selected object 70A and the other virtual object 70B. Specifically, one first portion 782 of the adhesion object 78 adheres to the surface of a predetermined range including point MPA of the selected object 70A, and the other first portion 782 of the adhesion object 78 adheres to the surface of a predetermined range including point MPB of the other virtual object 70B. Furthermore, the second portion 783 of the adhesion object 78 is deformed in accordance with the distance between point MPA and point MPB. Therefore, when the distance between the selected object 70A and the other virtual object 70B is short, the adhesion object 78 becomes short, and when the distance is long, the adhesion object 78 becomes long.

[0138] As described above, when two virtual objects 70 are not adhered to each other at the priority adhesion part BP, first, the closest positions MPA and MPB of the two virtual objects 70 are set as adhesion positions. Then, an adhesion object 78 is generated between the two virtual objects 70 so as to connect the adhesion positions. When the two virtual objects 70 are not yet adhered (i.e., when an adhesion instruction has not yet been issued since the adhesion object 78 appeared between the two virtual objects 70), if the positional relationship between the two virtual objects 70 changes, the adhesion positions also change. For example, if the selected object 70A is moved away from or closer to the other virtual object 70B, the closest positions MPA and MPB change. Furthermore, if the attitude of the selected object 70A is changed, the closest positions MPA and MPB change. The adhesion object 78 changes so as to always connect the closest positions MPA and MPB. In other words, the adhesion positions of the two virtual objects 70 indicated by the adhesion object 78 change according to a change in the positional relationship between the two virtual objects 70 (according to the movement of the selected object 70A). Furthermore, the overall shape of the adhesion object 78 also changes in accordance with the change in the positional relationship between the two virtual objects 70 (in accordance with the movement of the selection object 70A).

[0139] By generating the adhesive object 78 in this way, the user can easily recognize the position where the two virtual objects 70 are to be attached, which makes it easier to assemble the two virtual objects 70.

[0140] When a user issues a bonding instruction in the state shown in FIG. 28 , the selected object 70A and the other virtual object 70B are bonded to each other at their closest positions MPA and MPB. Specifically, the positions of the selected object 70A and the other virtual object 70B are changed so that the distance between the two closest positions MPA and MPB becomes zero over a predetermined time (a plurality of frame times). During this time, the relative orientation of the other virtual object 70B with respect to the selected object 70A does not change. Furthermore, during this time, the shape of the bonded object 78 is determined as described above, and the shape of the bonded object 78 also changes depending on the distance between the closest positions MPA and MPB. Then, when the two closest positions MPA and MPB match, bonding of the two virtual objects 70 is completed. Even after the two virtual objects 70 are bonded, the bonded object 78 remains in the vicinity of the bonding position. The shape of the bonded object 78 after the two virtual objects 70 are bonded is also determined by the method described above. After the two virtual objects 70 are glued together, the relative positional relationship between them does not change, and therefore the shape of the glued object 78 does not change.

[0141] Here, the expression "remaining" of an adhesion object may mean that, strictly speaking, an adhesion object identical to the adhesion object before gluing remains intact, or that an adhesion object remains in a manner that makes it appear as if it exists, even though the data is different from the adhesion object before gluing. For example, as described above, an adhesion object includes multiple bones (data for determining the three-dimensional shape of the adhesion object), but an adhesion object remaining after two virtual objects 70 are glued together may include multiple bones, just like the adhesion object before gluing. Furthermore, an adhesion object remaining after two virtual objects 70 are glued together may appear to be the same as the adhesion object including multiple bones, but may be displayed between the two virtual objects 70 as an object that does not include multiple bones or has a reduced number of bones. Furthermore, an adhesion object remaining after two virtual objects 70 are glued together may be displayed between the two virtual objects 70 as a simple image that appears to be the same as the adhesion object.

[0142] Note that a cover object may be displayed to cover the adhesion position of the two glued virtual objects 70. The adhesion object that was displayed before the adhesion is performed may remain at the adhesion position as the cover object after the adhesion is performed. The cover object may be the same object as the adhesion object in terms of data, or may be an object that can be considered to be the adhesion object in terms of appearance (including a simple image), or may be an object that is different in appearance from the adhesion object.

[0143] In this way, after two virtual objects 70 are glued together, the presence of a cover object (the above-mentioned glued object, an object that can be seen as a glued object in appearance, or an object that looks different from the glued object) covering the glued position allows the user to recognize the glued position. Also, for example, when two large virtual objects 70 come into point contact to form a combined object, if there is no cover object at the point of contact, the two virtual objects 70 will appear to be combined at the point of contact, which may cause a sense of incongruity to the user. In this embodiment, a volumetric cover object covering the contacting portion exists at the portion where the two virtual objects 70 are in contact, and such a cover object (for example, a glue-like adhesive object) makes the two virtual objects 70 appear to be glued together, thereby reducing the sense of incongruity.

[0144] Next, a case where two virtual objects 70 are adhered at a priority adhesion part BP will be described. Fig. 29 is a diagram for explaining generation of an adhesion object 78 when two virtual objects 70 are adhered at a priority adhesion part BP.

[0145] When the selected object 70A and another virtual object 70B satisfy predetermined adhesion conditions, if the priority adhesion part BPa in the selected object 70A and the priority adhesion part BPb in the other virtual object 70B satisfy a first condition, the two priority adhesion parts BP are set as adhesion positions. Then, an adhesion object 78 connecting these two priority adhesion parts BP is generated. For example, if the priority adhesion part BPa1 of the selected object 70A and the priority adhesion part BPb1 of the other virtual object 70B satisfy the first condition, an adhesion object 78 connecting the priority adhesion part BPa1 and the priority adhesion part BPb1 is generated.

[0146] Here, the first condition is the following three conditions A to C. (Condition A) The distance between the priority adhesion part BPa of the selected object 70A and the priority adhesion part BPb of the other virtual object 70B is within a predetermined threshold value. (Condition B) The angle between the normal vector NVa set to the priority adhesive portion BPa and the inverse vector of the normal vector NVb set to the priority adhesive portion BPb is equal to or smaller than a predetermined threshold value. (Condition C) (C-1) The preferred adhesive portion BPa is located on the side indicated by the normal vector NVb relative to the plane Sb that passes through the preferred adhesive portion BPb and is perpendicular to the normal vector NVb, and (C-2) the preferred adhesive portion BPb is located on the side indicated by the normal vector NVa relative to the plane Sa that passes through the preferred adhesive portion BPa and is perpendicular to the normal vector NVa.

[0147] For example, in the example shown in FIG. 29, the distance between the priority adhesion portion BPa1 and the priority adhesion portion BPb1 is within a predetermined threshold, so these two priority adhesion portions BPa1 and BPb1 satisfy condition A. Also, in FIG. 29, the normal vector NVa1 and the normal vector NVb1 face in opposite directions. That is, the angle between the normal vector NVa1 and the inverse vector of the normal vector NVb1 is 0 degrees. Therefore, in the example shown in FIG. 29, the two priority adhesion portions BPa1 and BPb1 satisfy condition B. A normal vector NV indicating the normal at that point is set in advance to each priority adhesion portion BP. Note that the normal vector NV at the priority adhesion portion BP does not need to be set in advance, but may be calculated each time.

[0148] Furthermore, the above-mentioned condition C is that the two preferentially bonded portions BPa and BPb have a relationship in which they face each other, as shown by the preferentially bonded portions BPa1 and BPb1 in FIG. 29. That is, the preferentially bonded portion BPa1 is located on the side indicated by the normal vector NVb1 (the right side in FIG. 29) of the plane Sb1 that passes through the preferentially bonded portion BPb1 and is perpendicular to the normal vector NVb1 (satisfying the above-mentioned C-1). Furthermore, the preferentially bonded portion BPb1 is located on the side indicated by the normal vector NVa1 (the left side in FIG. 29) of the plane Sa1 that passes through the preferentially bonded portion BPa1 and is perpendicular to the normal vector NVa1 (satisfying the above-mentioned C-2). Therefore, in the example shown in FIG. 29, the preferentially bonded portions BPa1 and BPb1 satisfy the condition C.

[0149] Note that the preferential adhesion part BPb2 does not satisfy condition C in relation to the preferential adhesion part BPb1. That is, the preferential adhesion part BPa1 does not exist on the side indicated by the normal vector NVb2 (the left side in FIG. 29) of the plane Sb2 that passes through the preferential adhesion part BPb2 and is perpendicular to the normal vector NVb2. In other words, the preferential adhesion part BPa1 is located on the opposite side of the plane Sb2 from the normal vector NVb2.

[0150] Therefore, only the priority adhesion part BPb1 satisfies the above three conditions A to C in relation to the priority adhesion part BPa1. Therefore, the priority adhesion part BPa1 and the priority adhesion part BPb1 are set as adhesion positions. Then, as shown in Fig. 29, an adhesion object 78 is generated so as to connect the priority adhesion part BPa1 and the priority adhesion part BPb1.

[0151] The adhesion object 78 is generated in the same manner as described above. That is, in FIGS. 25 to 28, the closest position between the selected object 70A and the other virtual object 70B is set as the adhesion position, but instead of the closest position, the priority adhesion parts BPa1 and BPb1 are set as the adhesion positions. Then, the adhesion object 78 is generated so as to connect these two adhesion positions. Specifically, the adhesion object 78 is generated so as to adhere to the surface of a predetermined range including the priority adhesion part BPa1 of the selected object 70A, and to the surface of a predetermined range including the priority adhesion part BPb1 of the other virtual object 70B.

[0152] Note that there may be cases where a plurality of priority adhesion parts BPb of another virtual object 70B that satisfy the first condition exist for a given priority adhesion part BPa in the selected object 70A. In this case, any one of the plurality of priority adhesion parts BPb that satisfy the first condition in relation to the priority adhesion part BPa is selected as the priority adhesion part BPb that forms a pair with the priority adhesion part BPa. For example, of the plurality of priority adhesion parts BPb, the priority adhesion part BPb that is closest to the priority adhesion part BPa may be selected. Also, of the plurality of priority adhesion parts BPb, the priority adhesion part BPb having a normal vector NVb whose orientation is closest to the normal vector NVa set for the priority adhesion part BPa (i.e., whose angle with the normal vector NVa is closest to 180 degrees) may be selected. Then, these two paired priority adhesion parts BPa and BPb are set as adhesion positions, and an adhesion object 78 that connects these two priority adhesion parts BPa and BPb is generated.

[0153] Furthermore, there may be a plurality of pairs of priority adhesive parts BPa, BPb that satisfy the first condition. In this case, the pair with the shortest distance may be selected from the plurality of pairs of priority adhesive parts BPa, BPb, and an adhesive object 78 may be generated that connects the two priority adhesive parts BPa, BPb of the selected pair. Note that, if there are a plurality of pairs with the shortest distance, a plurality of adhesive objects 78 may be generated that connect each pair.

[0154] When the priority adhesion part BPa1 and the priority adhesion part BPb1 are connected by the adhesion object 78, if the user issues an adhesion instruction, the two priority adhesion parts BP are adhered to each other. In this case, the positional relationship between the two virtual objects 70 is changed so that the positions of the priority adhesion part BPa1 and the priority adhesion part BPb1 match and the angle between the normal vector NVa1 and the inverse vector of the normal vector NVb1 becomes 0 degrees.

[0155] FIG. 30 is a diagram showing the positional relationship before and after a bonding instruction is given when two virtual objects 70 are bonded at a priority bonding part BP.

[0156] As shown in the upper diagram of FIG. 30, before a bonding instruction is issued, the priority bonding portion BPa1 of the selected object 70A and the priority bonding portion BPb1 of the other virtual object 70B are not the closest positions of the two virtual objects 70, but they satisfy the first condition. That is, (Condition A) the distance between the priority bonding portion BPa1 and the priority bonding portion BPb1 is within a predetermined threshold. Also, (Condition B) the angle between the normal vector NVa1 of the priority bonding portion BPa1 and the inverse vector of the normal vector NVb1 of the priority bonding portion BPb1 is greater than 0 degrees but is equal to or less than the predetermined threshold. Also, as can be seen from the diagram, the priority bonding portion BPa1 and the priority bonding portion BPb1 satisfy condition C. Therefore, the priority bonding portion BPa1 and the priority bonding portion BPb1 satisfy the first condition. Therefore, the priority bonding portions BPa1 and BPb1 are set as bonding positions, and a bonding object 78 connecting the priority bonding portions BPa1 and BPb1 is generated.

[0157] When a user issues a bonding instruction in this state, the priority bonding portion BPa1 and the priority bonding portion BPb1 are bonded together, as shown in the lower diagram of FIG. 30. Specifically, the positions of the priority bonding portion BPa1 and the priority bonding portion BPb1 are aligned. Furthermore, the orientations of the two virtual objects 70 are adjusted so that the angle between the normal vector NVa1 and the inverse vector of the normal vector NVb1 becomes 0 degrees. In other words, the orientation of at least one of the selected object 70A and the other virtual object 70B is adjusted so that the normal direction of the priority bonding portion BPa1 and the normal direction of the priority bonding portion BPb1 are parallel to each other.

[0158] In addition to the normal vector NV, a tangent vector TL perpendicular to the normal vector NV is set at each priority adhesion part BP. The tangent vector TL is a vector indicating a tangent at the priority adhesion part BP. When two virtual objects 70 are adhered at the priority adhesion part BP, the relative orientation of the two virtual objects 70 is controlled according to the tangent vector TL.

[0159] FIG. 31 is a diagram for explaining an example in which the attitude of a selected object is controlled in accordance with a tangent vector TL.

[0160] In the upper diagram of FIG. 31 , the board object 70d and the control stick object 70h are not yet glued together, and the priority glued part BPd of the board object 70d and the priority glued part BPh of the control stick object 70h are connected by a glued object 78. For example, a tangent vector TLd that is parallel to the top surface of the board object 70d and points forward of the board object 70d is set in advance to the priority glued part BPd set on the top surface of the board object 70d. Also, a tangent vector TLh that is parallel to the bottom surface of the control stick object 70h and points forward of the control stick object 70h is set in advance to the priority glued part BPh set on the bottom surface of the control stick object 70h. In the upper diagram of FIG. 31 , the angle between the tangent vector TLd and the tangent vector TLh is not 0 degrees but has a certain degree of angle.

[0161] When a bonding instruction is issued in this state, as shown in the lower diagram of FIG. 31 , the orientation of the control stick object 70h is controlled so that the angle between the tangent vector TLd and the tangent vector TLh becomes one of a plurality of predetermined angles, and the control stick object 70h and the board object 70d are bonded together. The predetermined angle may be, for example, 0 degrees, 45 degrees, 90 degrees, 135 degrees, or 180 degrees. For example, if the angle between the tangent vector TLd and the tangent vector TLh immediately before the bonding instruction is issued is in the range of 0 degrees to 30 degrees, the orientation of the control stick object 70h is adjusted when the bonding instruction is issued so that the angle between the tangent vector TLd and the tangent vector TLh becomes 0 degrees. Furthermore, if the angle between the tangent vector TLd and the tangent vector TLh immediately before the bonding instruction is issued is in the range of 31 degrees to 74 degrees, the orientation of the control stick object 70h is adjusted when the bonding instruction is issued so that the angle between the tangent vector TLd and the tangent vector TLh becomes 45 degrees. That is, when the angle between the tangent vector TLd and the tangent vector TLh is in a first range, the angle between the tangent vector TLd and the tangent vector TLh is adjusted to a first angle, and when the angle between the tangent vector TLd and the tangent vector TLh is in a second range, the angle between the tangent vector TLd and the tangent vector TLh is adjusted to a second angle.

[0162] 31, the orientation of the control stick object 70h is controlled so that the angle between the tangent vector TLh of the control stick object 70h and the tangent vector TLd of the plate object 70d becomes 0 degrees. This makes it easy to attach the control stick object 70h in the same direction as the traveling direction of the four-wheeled vehicle object 76.

[0163] As described above, the selected object 70A and the other virtual objects 70B are preferentially adhered to each other at the priority adhesion portions. The priority adhesion portions are set in advance for each virtual object 70, and are set at the center or symmetrical positions of each virtual object 70. The priority adhesion portion BPa of the selected object 70A and the priority adhesion portion BPb of the other virtual objects 70B are adhered to each other so as to overlap with each other, so that the user can adhere the selected object 70A and the other virtual objects 70B at an appropriate position without having to precisely control the position of the selected object 70A.

[0164] Furthermore, a normal vector NV is set in advance for each priority adhesion part BP, and when two priority adhesion parts BP are adhered, the two normal vectors NV are controlled to be in opposite directions. This allows the user to adhere the selected object 70A and the other virtual object 70B in an appropriate posture without having to precisely control the posture of the selected object 70A.

[0165] Furthermore, a tangent vector TL is set in advance for each priority adhesion part BP, and when two priority adhesion parts BP are adhered, the two tangent vectors TL are controlled to be at one of a plurality of predetermined angles, which allows the user to adhere the selected object 70A to another virtual object 70B in an appropriate posture.

[0166] Note that such adjustment of the postures of the selected object 70A and the other virtual object 70B based on the normal vector NV or the tangent vector TL is performed only when the selected object 70A and the other virtual object 70B are adhered to each other at the priority adhesion part BP.

[0167] (Details of detachment) Next, a description will be given of a method for releasing the adhesion of a plurality of virtual objects 70 when the plurality of virtual objects 70 are glued together. After the plurality of virtual objects 70 are glued together to form a combined object as described above, when an input that satisfies a predetermined release condition (hereinafter referred to as an "unsticking operation") is performed, the adhesion of the virtual objects 70 is released.

[0168] FIG. 32 is a diagram showing an example of a situation where an operation to release adhesion is performed when two virtual objects 70 are adhered to each other.

[0169] When a selection operation is performed while a box object 70f and a rock object 70g are glued together by a glued object 78, one of the two virtual objects 70f, 70g is selected. For example, if a selection operation is performed while the rock object 70g is pointed to among the box object 70f and the rock object 70g that constitute a combined object, the rock object 70g is selected as the selected object, as shown in FIG. 32 . When the rock object 70g is selected, the display mode of the rock object 70g changes. Furthermore, when the rock object 70g is selected, images 71f and 71g of the box object 70f and the rock object 70g that constitute the combined object are projected onto the ground. Furthermore, a point 72g indicating the center position of the selected rock object 70g is projected onto the ground. When an ungluing operation is performed while the rock object 70g is selected, the adhesion between the box object 70f and the rock object 70g is released.

[0170] Here, the adhesive release operation is, for example, an operation of reversing the orientation of the user character PC (the orientation of the virtual camera) a predetermined number of times within a predetermined time. When a selected object is set (i.e., when the virtual object 70 is selected), the selected object, the user character PC, and the virtual camera maintain a predetermined positional relationship. Specifically, the orientation of the user character PC and the orientation of the virtual camera are controlled to roughly match, and the selected object is positioned roughly in front of the user character (in front of the virtual camera). Therefore, when the orientation of the user character PC (the orientation of the virtual camera) changes, the position of the selected object in the virtual space also changes.

[0171] For example, the orientation of the user character PC (the orientation of the virtual camera) changes depending on the input direction of the analog stick 52. If a directional input operation in the opposite direction is performed a predetermined number of times using the analog stick 52 within a predetermined time, a bond release operation is detected, and the bond between the box object 70f and the rock object 70g is released. Here, the directional input operation in the opposite direction is a directional input in a first direction followed by a directional input in a second direction that has an angle with the first direction greater than a predetermined threshold (for example, 150 degrees).

[0172] Furthermore, the orientation of the user character PC (the orientation of the virtual camera) may change, for example, according to the attitude of the right controller 4 (which may be the left controller 3 or the main unit 2). For example, the attitude of the right controller 4 is calculated based on the output of the angular velocity sensor 115 (and the acceleration sensor 114). For example, a swing operation of the right controller 4 may be detected based on the output of the angular velocity sensor 115, and the bond between the box object 70f and the rock object 70g may be released in accordance with the detection result of the swing operation. Specifically, the bond between the box object 70f and the rock object 70g may be released when a swing operation in the opposite direction using the right controller 4 is performed a predetermined number of times within a predetermined time as the bond release operation. The swing operation in the opposite direction using the right controller 4 may be performed by performing a swing operation in a first direction, followed by a swing operation in a second direction that has an angle with the first direction that is greater than a predetermined threshold (for example, 90 degrees).

[0173] FIG. 33 is a diagram illustrating an example of movement of the selected object when the orientation of the user character PC (the orientation of the virtual camera VC) is changed to the right. FIG. 33 illustrates a view of the virtual camera VC, the user character PC, and the selected object 70 viewed from above in the virtual space. As illustrated in FIG. 33, when the virtual object 70 is set as the selected object, the user character PC and the virtual camera VC face the same direction. For example, when the left or right direction of the analog stick 52 is input, the orientation of the user character PC changes to the left or right direction, and the orientation of the virtual camera VC also changes to the left or right direction while rotating in the yaw direction around the user character PC. Furthermore, the selected object 70 is moved so that the selected object 70 is positioned directly in front of the user character PC (in front of the virtual camera VC). For example, when the right direction of the analog stick 52 is input, the orientation of the user character PC (virtual camera VC) changes to the right, and the selected object 70 also moves to the right. On the other hand, when the right direction of the analog stick 52 is input, the user character PC does not move. For example, if a predetermined number of leftward and rightward inputs are performed using the analog stick 52 within a predetermined time (e.g., one second), the orientations of the user character PC and virtual camera VC change to the left and right, and the selected object 70 moves to the left and right in the virtual space. In this case, the selected object is displayed as if it is swinging left and right around the user character PC. Then, the attachment between the selected object and the other virtual objects attached to the selected object is released, and the other virtual objects are detached from the selected object.

[0174] The same applies when the up or down direction of the analog stick 52 is input. That is, when the up or down direction of the analog stick 52 is input, the orientation of the user character PC changes up or down, and the orientation of the virtual camera VC also changes up or down while rotating in the pitch direction around the user character PC. When the up or down direction of the analog stick 52 is input a predetermined number of times within a predetermined time (for example, one second) as an adhesion release operation, the selected object is displayed as swinging up and down around the user character PC, and the adhesion between the selected object and other virtual objects is released.

[0175] In this way, when the user character PC is swung in a predetermined direction, the selected object also moves as if it is swung in the predetermined direction, the attachment between the selected object and the other virtual objects is released, and the other virtual objects are separated from the selected object. This results in a behavior as if the user object PC is swaying the selected object to shake off the other virtual objects that are attached to the selected object. Therefore, the attachment between the selected object and the other virtual objects can be released with an operation that matches the user's intuition.

[0176] Furthermore, in this embodiment, the selected object moves in conjunction with not only the orientation of the user character PC but also the orientation of the virtual camera VC. That is, by swinging the orientation of the virtual camera VC in a predetermined direction, the selected object also moves as if it is being swung in the predetermined direction, and the attachment between the selected object and other virtual objects can be considered to be released. As a result, the selected object remains displayed near the center of the screen, and the entire screen moves as if it is being swung in the predetermined direction, resulting in a behavior that shakes off the other virtual objects that were attached to the selected object. Therefore, the attachment between the selected object and other virtual objects can be released with an operation that matches the user's intuition.

[0177] Note that different controls may be performed for the orientation of the user character PC, the virtual camera settings, and the movement of the selected object in the left-right and up-down directions. For example, in response to a left-right input using the analog stick 52, the orientation of the user character PC and the virtual camera change left-right depending on the amount of input (degree of tilt), and the selected object also moves left-right. On the other hand, in response to an up-down input using the analog stick 52, the orientation of the user character PC changes up-down and the selected object also moves up-down, but the amount of change in the orientation of the user character PC in the up-down direction may be smaller than the amount of movement of the selected object in the up-down direction. The amount of change in the orientation of the virtual camera may also be similar. In addition, in response to an up-down input using the analog stick 52, the virtual camera may zoom in / out. For example, in response to an up-down input using the analog stick 52, the user character PC faces upward and the selected object moves upward, increasing the distance between the user character PC and the selected object. At this time, the virtual camera zooms out to include the user character PC and the selected object in its imaging range. Furthermore, when a downward input is performed using the analog stick 52, the selected object does not move downward due to the ground, the orientation of the user character PC does not face downward but faces approximately horizontally, and the virtual camera may zoom in. The same applies when an up or down input is performed using the orientation of the right controller 4 (or the left controller 3 or main unit 2).

[0178] Note that while a left-right input is detected as the above-mentioned detachment operation, an up-down input does not necessarily have to be detected as the above-mentioned detachment operation. That is, the selected object moves up and down in response to an up-down input, but the attachment between the selected object and another virtual object 70 does not necessarily have to be released in response to an up-down input. Furthermore, while a up-down input using the analog stick 52 is not detected as a detachment operation, a up-down input using the attitude of the controller (3 or 4, which may be the main unit 2) (an operation of shaking the controller or the main unit 2 up and down) may be detected as a detachment operation.

[0179] Returning to FIG. 32, if an ungluing operation is performed while the rock object 70g is selected, the rock object 70g is unglued from the box object 70f. As shown in FIG. 32, when the rock object 70g is unglued from the box object 70f, the box object 70f separates from the rock object 70g, and the box object 70f falls to the ground. The glued object 78 that had been gluing the box object 70f to the rock object 70g is erased. Even after the rock object 70g is unglued from the box object 70f, the rock object 70g remains selected and remains floating in the air.

[0180] FIG. 34 is a diagram showing an example of a case where an input that does not satisfy a predetermined release condition is made in a state where two virtual objects 70 are adhered to each other.

[0181] As shown in FIG. 34, if an input is made to the analog stick 52 while a rock object 70g is selected and the input does not satisfy a predetermined release condition, the rock object 70g moves in accordance with a change in the orientation of the user character PC (virtual camera). In this case, the bond between the rock object 70g and the box object 70f is not released, and the combined object (rock object 70g and box object 70f) moves in the virtual space in accordance with a change in the orientation of the user character PC (virtual camera). For example, if an input is made to the right with the analog stick 52 while the rock object 70g is selected, the orientation of the user character PC (virtual camera) changes to the right, and the virtual space becomes visible to the right of the upper part of FIG. 34 (lower part of FIG. 34). In this case, the rock object 70g and the box object 70f also move to the right.

[0182] If an input is made to the analog stick 32 of the left controller 3 while the rock object 70g is selected, the user character PC moves within the virtual space, and the virtual camera also moves within the virtual space. The combined objects (rock object 70g and box object 70f) also move in conjunction with the movement of the user character PC and virtual camera. That is, if an input is made to the analog stick 32, the relative positions of the user character PC and the selected object do not change, and the user character PC and the selected object move in response to the input to the analog stick 32. The above-mentioned release condition is not satisfied by this input (input to the analog stick 32) that involves movement of the user character PC. For example, if a predetermined number of inputs in the opposite direction are made within a predetermined time using the analog stick 32 for moving the user character PC, the adhesion between the rock object 70g and the box object 70f is not released. In this case, the combined objects (rock object 70g and box object 70f) move within the virtual space in response to the input using the analog stick 32. Meanwhile, the orientation of the user character PC and the virtual camera changes in response to an input to the analog stick 52, and the selected object moves as if being shaken by the user character PC. This movement of the selected object as if being shaken releases the bond between the selected object and the other virtual object 70.

[0183] When three or more virtual objects 70 are glued together to form a combined object, the glued state can be released by a similar release operation. Figure 35 is a diagram showing an example of release of glue when a release operation is performed when four virtual objects 70 are glued together.

[0184] As shown in the upper diagram of FIG. 35, a rock object 70g1 and a rock object 70g2 are glued to a box object 70f. Furthermore, a rock object 70g3 is further glued to the rock object 70g2. As a result, a combined object made up of four virtual objects 70 is formed. In this state, one of the four virtual objects 70 that make up the combined object is selected by a selection operation by the user. For example, of the four virtual objects 70, the box object 70f is selected as the selected object.

[0185] If the user performs an adhesive detachment operation while a selected object is selected, the adhesive between the selected object and all virtual objects 70 glued to the selected object is detached (the lower diagram in FIG. 35 ). Specifically, the adhesive between the box object 70f and the rock object 70g1 is detached, and the adhesive object 78 that had been adhering the box object 70f and the rock object 70g1 is erased. The adhesive between the box object 70f and the rock object 70g2 is also detached, and the adhesive object 78 that had been adhering the box object 70f and the rock object 70g2 is also erased. On the other hand, even if the adhesive between the box object 70f and the rock object 70g2 is detached, the adhesive between the rock object 70g2 and the rock object 70g3 is not detached.

[0186] That is, when a detachment operation is performed when a plurality of virtual objects 70 are attached to a selected object, the attachment state between the selected object and the virtual objects 70 attached to the selected object is released, but the attachment states of the virtual objects 70 other than the selected object are maintained. In other words, the detachment operation erases all of the attachment objects 78 attached to the selected object, and the attachment objects 78 attached to the virtual objects 70 other than the selected object remain.

[0187] As described above, in this embodiment, after a combined object is generated by gluing multiple virtual objects 70 together, if one of the multiple virtual objects 70 constituting the combined object is selected and an input satisfying a predetermined release condition is made, the selected virtual object 70 is released from the glued other virtual objects. If one of the multiple virtual objects 70 constituting the combined object is selected and an input not satisfying a predetermined release condition is made, the entire combined object moves. Furthermore, if one of the multiple virtual objects 70 constituting the combined object is selected, another virtual object 70 can be glued to the selected virtual object. For example, one of the multiple virtual objects 70 constituting the combined object is selected, and the user character PC is moved to move the entire combined object. When the selected object approaches another virtual object 70 arranged in the virtual space, an adhesive object 78 appears, connecting the selected object to the other virtual object 70. Then, the selected object and the other virtual object 70 are glued together in accordance with the user's adhesion instruction.

[0188] This allows the user to bond multiple virtual objects 70 together to generate a combined object, and then release the bonding between the virtual objects 70. The combined object can be reconstructed by detaching some of the virtual objects 70 included in the created combined object and bonding another virtual object to it.

[0189] By selecting one virtual object constituting a combined object, only the virtual objects attached to the selected object can be detached from the combined object, thereby improving user convenience. For example, when detaching a combined object, it is possible to detach all of the attachments between all of the virtual objects 70 included in the combined object. However, if all attachments are detached, the user must start assembling the combined object from the beginning. In contrast, in this embodiment, the user can select some of the virtual objects constituting the combined object and detach only the attachments of the selected virtual objects, thereby reconstructing the combined object while maintaining some of the attachments.

[0190] Furthermore, in this embodiment, the selected object is fixed in front of the user character PC (virtual camera), and the selected object moves within the virtual space by changing the orientation of the user character PC (virtual camera). Therefore, for example, when the orientation of the user character PC (virtual camera) is swung left and right or up and down, the selected object sways left and right or up and down. The adhesive state of the virtual object can be released by such an intuitive and easy-to-understand operation for the user. In other words, the adhesive state of the selected object can be released by an operation that is similar to shaking off the virtual object that is attached to the selected object.

[0191] (Explanation of data used in game processing) Next, the data used in the above-mentioned game processing will be described. Figure 36 shows an example of data stored in the memory of the main unit 2 during execution of the game processing.

[0192] As shown in FIG. 36, the memory of the main unit 2 (DRAM 85, flash memory 84, or external storage medium) stores a game program, user character data, virtual object data, selected object data, adhesive object data, virtual camera data, and multiple combined object data.

[0193] The game program is a program for executing the above-mentioned game processing. The game program is stored in advance in an external storage medium inserted into the slot 23 or in the flash memory 84, and is read into the DRAM 85 when the game is executed. The game program may also be obtained from another device via a network (for example, the Internet).

[0194] The user character data is data related to the user character PC and includes information about the position and posture of the user character PC in the virtual space. The user character data may also include information about items and abilities possessed by the user character PC.

[0195] The virtual object data is data related to virtual objects 70 that are placed in the virtual space and are not configured as part of a combined object. The virtual object data includes information indicating the type, weight, position in the virtual space, and posture of each virtual object 70 (70a to 70g). The virtual object data also includes information related to the position, normal vector NV, and tangent vector TL of the priority adhesion part BP set for each virtual object 70 in the virtual object 70.

[0196] The selected object data is data relating to the selected object selected by the user.

[0197] The adhesion object data includes information relating to the position, shape, etc. of the adhesion object 78. The adhesion object data includes information indicating the adhesion position of the virtual object 70.

[0198] The virtual camera data includes information about the position and orientation of the virtual camera.

[0199] The combined object data is data relating to one combined object created by the user and made up of a plurality of virtual objects 70. When a plurality of combined objects are placed in the virtual space, combined object data is stored for each combined object.

[0200] Specifically, the combined object data includes virtual object data related to the plurality of virtual objects 70 that make up the combined object, and adhesive object data related to adhesive objects 78 that adhere the virtual objects 70 together. The combined object data also includes combined object information.

[0201] The combined object information is information used when calculating the behavior of a combined object, and includes, for example, the weight and center of gravity of the combined object. The center of gravity of the combined object is calculated based on the weights of the multiple virtual objects 70 that make up the combined object, the positions and postures of the combined object, and the like. The combined object information may also include information regarding the speed of the combined object. If the combined object includes one or more powered virtual objects 70, the speed of the combined object may be calculated based on the positions and postures of the powered virtual objects 70 in the combined object. The speed of the combined object calculated in this manner is stored as the combined object information. The combined object information is recalculated every time a change occurs in the virtual objects 70 that make up the combined object. For example, if there is a combined object consisting of two virtual objects 70A and 70B, the combined object information (e.g., center of gravity, speed, etc.) is calculated and stored based on the positions, postures, types, weights, etc. of the virtual objects 70A and 70B, respectively. When another virtual object 70C is attached to this combined object, combined object information is recalculated and stored based on the position, posture, type, weight, etc. of each of the three virtual objects 70A to 70C.

[0202] (Details of Game Processing on Main Unit 2) Next, a detailed description will be given of the game processing performed by the main unit 2. Figure 37 is a flowchart showing an example of the game processing executed by the processor 81 of the main unit 2.

[0203] 37, processor 81 first executes initial processing (step S100). Specifically, processor 81 sets up a virtual space and places a user character PC, a virtual camera, a plurality of virtual objects 70, etc. in the virtual space. In addition to these, various other objects (for example, an object representing the ground of the virtual space, and objects such as trees and buildings fixed to the virtual space) are also placed in the virtual space.

[0204] Next, the processor 81 acquires operation data from the controllers (step S101). The operation data includes data from the buttons 103, analog stick 32, acceleration sensor 104, and angular velocity sensor 105 of the left controller 3, and the buttons 113, analog stick 52, acceleration sensor 114, and angular velocity sensor 115 of the right controller 4. The main unit 2 receives the operation data from each controller at predetermined time intervals (for example, 1 / 200 second intervals) and stores the operation data in memory. In step S101, the processor 81 acquires the operation data transmitted from each controller and stored in memory. The processor 81 also acquires data from the acceleration sensor 89, angular velocity sensor 90, and touch panel 13 of the main unit 2 as operation data.

[0205] Next, the processor 81 performs an object selection process (step S102). The object selection process is a process of setting one virtual object 70 as the selected object. Specifically, the processor 81 determines whether or not a selection operation for the virtual object 70 has been performed, based on the operation data, and if a selection operation has been performed, sets the pointed virtual object 70 as the selected object. For example, if a predetermined button on the left controller 3 is pressed when one virtual object 70 that does not constitute a combined object is pointed to, the virtual object 70 that does not constitute the combined object is set as the selected object. Furthermore, if a predetermined button on the left controller 3 is pressed when one virtual object 70 that constitutes a combined object is pointed to, the virtual object 70 that constitutes the combined object is set as the selected object. Furthermore, when the processor 81 has set the selected object, the processor 81 changes the display mode of the selected object to a different display mode (for example, yellow). Furthermore, when the processor 81 has set one virtual object 70 that constitutes a combined object as the selected object, the processor 81 changes the display mode of the entire combined object including the selected object to a different display mode (for example, yellow). In this case, the selected object in the combined object and the other virtual objects 70 in the combined object may be displayed in different display modes.

[0206] Next, the processor 81 performs character movement processing (step S103). Specifically, the processor 81 determines whether a movement operation of the user character PC has been performed based on the operation data, and if a movement operation has been performed, moves the user character PC within the virtual space. For example, if a directional input is performed using the analog stick 32 of the left controller 3, the processor 81 moves the user character PC within the virtual space in accordance with the input direction of the analog stick 32. The processor 81 also moves the virtual camera within the virtual space in conjunction with the movement of the user character PC. The virtual camera is moved in accordance with the movement of the user character PC so as to include the user character PC within its imaging range. In addition, if a selected object has been set, the processor 81 moves the selected object in conjunction with the movement of the user character PC. If the selected object is a virtual object 70 that constitutes a combined object, the entire combined object including the selected object is moved.

[0207] Next, the processor 81 performs orientation control processing (step S104). Specifically, the processor 81 determines, based on the operation data, whether an operation to change the orientation of the virtual camera has been performed, and if such an operation has been performed, changes the orientation of the virtual camera. More specifically, when a selected object has been set and a directional input has been performed using the analog stick 52 of the right controller 4, the processor 81 changes the orientations of the user character PC and the virtual camera according to the input direction of the analog stick 52. Furthermore, when a selected object has been set, the processor 81 may calculate the orientation of the right controller 4 based on data from an angular velocity sensor of the right controller 4, for example, and change the orientations of the user character PC and the virtual camera based on the calculated orientation. Furthermore, when a selected object has been set, the processor 81 moves the selected object according to changes in the orientations of the user character PC and the virtual camera. The selected object is controlled to be positioned in the front direction of the user character PC and the virtual camera. When the selected object is one virtual object 70 that constitutes a combined object, the entire combined object including the selected object is moved. Note that the user character PC is not moved in step S104.

[0208] Next, the processor 81 performs processing to generate an image 71 of the selected object (step S105). Specifically, when a selected object is set, the processor 81 performs processing to project the selected object in the up-down direction of the virtual space, the left-right direction as seen from the virtual camera, and the depth direction. As a result, the image 71 (projected image) of the selected object is generated on a surface that exists in the up-down direction, the left-right direction, and the depth direction of the selected object. For example, the image 71 of the selected object 71 is projected onto the surface of another virtual object 70 to the left of the selected object, and the image 71 of the selected object 71 is projected onto the surface of another virtual object 70 to the right of the selected object.

[0209] Following step S105, the processor 81 performs a combined object generation process (step S106). The combined object generation process is a process for generating a combined object by bonding the selected object and another virtual object 70. For example, when the selected object and another virtual object 70 are bonded in accordance with a user's bonding instruction, the selected object and the other virtual object 70 move so as to attract each other, and finally the selected object and the other virtual object 70 are bonded together. Details of the combined object generation process will be described later.

[0210] Next, processor 81 performs object control processing (step S107). In step S107, calculations are performed for all objects in the virtual space in accordance with the laws of physics based on their positions, sizes, weights, speeds, rotational speeds, applied forces, friction, etc., to control the behavior of each object. When virtual object 70 or a combined object moves in the virtual space, a collision determination with other objects is performed, and the behavior of each object is calculated according to the results of the collision determination.

[0211] For example, even when the selected object is moved in order to adhere the selected object to another virtual object 70, a collision determination is performed between the selected object and the other virtual object 70. The collision determination is performed based on the position, orientation, size, and shape of each object. If the selected object collides with the other virtual object 70 as a result of the collision determination, the behavior of each object is calculated based on the weight of each object, the speed at the time of collision, and the like. For example, a collision between the selected object and the other virtual object 70 may cause the other virtual object 70 to move, the movement of the selected object to be hindered, or the movement direction of the selected object to be changed.

[0212] Note that the processor 81 does not perform the above-described collision determination for the adhesion object 78. For example, when an adhesion object 78 that connects the selected object and another virtual object 70 is generated, even if another object is present between the selected object and the other virtual object 70, contact determination between the adhesion object 78 and the other object is not performed. Therefore, even if the adhesion object 78 collides with the other object, it does not affect the movement of the other object. In other words, the adhesion object 78 is not an object that interferes with the movement of the virtual object 70, the user character PC, or another object, but is an immaterial object displayed on the screen. Furthermore, even after the selected object and the other virtual object 70 are bonded to each other, the adhesion object 78 remains, but collision determination is not performed for the remaining adhesion object 78. Note that the above-described collision determination may also be performed for the adhesion object 78. In other words, collision determination may be performed for the adhesion object 78 before the selected object and the other virtual object 70 are bonded to each other, and for the adhesion object 78 after the selected object and the other virtual object 70 are bonded to each other. When the adhesive object 78 collides with another object, the movement of the other object may be affected.

[0213] Furthermore, in the object control process, when a selected object and another virtual object 70 are adhered to each other by an adhesion instruction, the two virtual objects 70 move so as to attract each other. In this case, the relatively heavy virtual object 70 is controlled to move a short distance, and the relatively light virtual object 70 is controlled to move a long distance. Furthermore, when the weight difference or weight ratio between the two virtual objects 70 is equal to or greater than a predetermined value, only the lighter virtual object 70 may move.

[0214] Furthermore, in the object control process, the processor 81 controls the movement of the combined object based on the combined object information and the operation data. For example, the processor 81 moves a four-wheeled vehicle object 76 having a control stick object 70h shown in Fig. 19 as a combined object. In this case, the processor 81 moves the four-wheeled vehicle object 76 based on the speed and center of gravity position included in the combined object information, and changes the moving direction of the four-wheeled vehicle object 76 based on the operation data.

[0215] Next, the processor 81 performs an adhesion release process (step S108). The adhesion release process is a process for releasing the adhesion between the adhered virtual objects 70, and is a process for detaching one or more virtual objects 70 from the combined object. The adhesion release process will be described in detail later.

[0216] Next, the processor 81 performs output processing (step S109). Specifically, the processor 81 generates a game image based on the virtual camera and displays the game image on the display 12 or a stationary monitor. The processor 81 also outputs sound corresponding to the result of the game processing from the speaker.

[0217] Next, processor 81 determines whether or not to end the game processing (step S110). For example, if the user issues an instruction to end the game, processor 81 determines YES in step S110 and ends the game processing shown in FIG. 37. If NO in step S110, processor 81 executes the processing of step S101 again. Processor 81 repeatedly executes the processing of steps S101 to S110 at predetermined frame time intervals (for example, 1 / 60 second intervals). This concludes the description of FIG. 37.

[0218] (Merge object generation process) Next, the combined object generation process in step S106 will be described in detail below. Fig. 38 is a flowchart showing an example of the combined object generation process in step S106.

[0219] Processor 81 determines whether or not a selected object has been set (step S150). If a selected object has not been set (step S150: NO), processor 81 ends the processing shown in FIG.

[0220] If a selected object has been set (step S150: YES), processor 81 determines whether the selected object and another virtual object 70 satisfy a predetermined adhesion condition (step S151). Specifically, processor 81 searches for another virtual object 70 that satisfies the predetermined adhesion condition, based on the position and movement direction of the selected object. If the search results in another virtual object 70 that satisfies the predetermined adhesion condition, processor 81 determines YES in step S151. On the other hand, if another virtual object 70 that satisfies the predetermined adhesion condition is not found, processor 81 determines NO in step S151.

[0221] If the determination in step S151 is YES, the processor 81 performs adhesion object generation processing (step S152). Details of the adhesion object generation processing will be described later.

[0222] Next, the processor 81 determines whether or not a bonding instruction has been given by the user based on the operation data (step S153).

[0223] If an adhesion instruction has been issued (step S153: YES), processor 81 performs adhesion processing to adhere the selected object to another virtual object 70 (step S154). Here, the selected object is adhered to another virtual object 70 at the adhesion position set in step S152. As a result, a combined object made up of a plurality of virtual objects 70 is generated. When two priority adhesion parts BP are set as adhesion positions, the two priority adhesion parts BP are adhered so that the normal directions of the two priority adhesion parts BP are parallel.

[0224] Furthermore, in the adhesion process of step S154, processor 81 calculates combined object information. Specifically, processor 81 calculates the combined object information based on the type, weight, adhesion position, etc. of each virtual object 70 that constitutes the combined object, and stores the combined object information in memory. Each time virtual objects 70 are adhered, the combined object information is calculated and stored in memory.

[0225] If the processing of step S154 is performed, if the result of step S150 is NO, if the result of step S151 is NO, or if the result of step S153 is NO, the processor 81 ends the processing shown in FIG.

[0226] (Glue object generation process) Next, the adhesion object generation process in step S152 will be described in detail below. Fig. 39 is a flowchart showing an example of the adhesion object generation process in step S152.

[0227] 39, the processor 81 determines whether or not the priority adhesion parts can be bonded to each other (step S200). Specifically, the processor 81 determines whether or not each priority adhesion part BP of the selected object and each priority adhesion part BP of another virtual object 70 determined in step S151 to satisfy the predetermined adhesion condition satisfy the first condition (all of conditions A to C). If a pair of priority adhesion parts BP that satisfies the first condition exists, the processor 81 determines YES in step S200. If a pair of priority adhesion parts BP that satisfies the first condition does not exist, the processor 81 determines NO in step S200.

[0228] If the determination in step S200 is YES, the processor 81 sets two priority adhesive parts BP that satisfy the first condition as adhesive positions (step S201). If there are multiple pairs of two priority adhesive parts BP that satisfy the first condition, the processor 81 sets the pair of two priority adhesive parts BP with the shortest distance between them as the adhesive position.

[0229] On the other hand, if the determination in step S200 is NO, processor 81 calculates the closest position between the selected object and the other virtual object 70 and sets it as the adhesion position (step S202). Note that in step S202, if the priority adhesion part BP of one of the selected object and the other virtual object 70 and a part other than the priority adhesion part of the other are closest positions, these are set as the adhesion positions.

[0230] When the processing of step S201 or step S202 has been executed, the processor 81 determines the size of each bone 781 of the adhesion object 78 (step S203). The method of determining the size of each bone 781 of the adhesion object 78 is as described with reference to FIGS. 26 and 27.

[0231] Next, the processor 81 places the adhesion object 78 based on the adhesion position set in step S201 or step S202 (step S204). Specifically, one first portion 782 of the adhesion object 78 is placed at the adhesion position of the selected object, and the other first portion 782 of the adhesion object 78 is placed at the adhesion position of the other virtual object 70.

[0232] Next, the processor 81 determines the orientation of each bone 781 of the adhesion object 78 so that the bones 781 are aligned with the surface of the virtual object 70 (step S205). Here, the orientation of each bone 781 is changed while the shape of each bone 781 is maintained. As a result, an adhesion object 78 is generated that connects the contact position of the selected object with the contact position of the other virtual object 70. One first portion 782 of the adhesion object 78 is aligned with the surface including the adhesion position of the selected object, and the other first portion 782 of the adhesion object 78 is aligned with the surface including the adhesion position of the other virtual object 70. Note that the shape of each bone 781 may be changed so that the shape is aligned with the surface of the virtual object 70.

[0233] If the process of step S205 has been executed, the processor 81 ends the adhesion object generation process shown in FIG.

[0234] (Adhesion removal treatment) Next, the adhesion releasing process in step S108 will be described in detail below. Fig. 40 is a flowchart showing an example of the adhesion releasing process in step S108.

[0235] As shown in FIG. 40, processor 81 determines whether one virtual object 70 that constitutes the combined object is selected (step S300).

[0236] If the determination in step S300 is YES, the processor 81 determines whether or not a detachment operation has been performed based on the operation data (step S301). Specifically, the processor 81 determines whether or not an operation to reverse the orientation of the user character PC (virtual camera) has been performed a predetermined number of times within a predetermined time (for example, one second). For example, if a directional input operation in the opposite direction using the analog stick 52 has been performed a predetermined number of times within the predetermined time, the processor 81 determines that a detachment operation has been performed. The processor 81 also calculates the attitude of the right controller 4 based on the output of the angular velocity sensor 115 and detects a swing operation of the right controller 4. If a swing operation in the opposite direction using the right controller 4 has been detected a predetermined number of times within the predetermined time, the processor 81 determines that a detachment operation has been performed. If a directional input operation in the opposite direction using the analog stick 52 and a swing operation in the opposite direction using the right controller 4 have been detected within the predetermined time, the number of times each operation has been performed is added together. Then, if the total number of operations reaches a predetermined number within the predetermined time, it is determined that a detachment operation has been performed. For example, if the predetermined number of times is set to four, and a directional input operation in the opposite direction using the analog stick 52 is performed twice and a swing operation in the opposite direction using the right controller 4 is performed twice within a predetermined time period, the processor 81 will determine that an adhesive release operation has been performed. Note that the directional input operation using the analog stick 52 and the swing operation using the right controller 4 may not be added together and may be counted as separate operations.

[0237] When an adhesion release operation is performed (step S301: YES), processor 81 releases adhesion between the selected object and all virtual objects 70 adhered to the selected object (step S302). Processor 81 also erases adhesion objects 78 adhered to the selected object.

[0238] Next, processor 81 recalculates the combined object information (step S303). Here, the combined object information of the combined object configured by the processing of step S302 is recalculated and stored in memory. For example, if a combined object made up of three virtual objects 70 becomes a combined object made up of two virtual objects 70 by the processing of step S302, the combined object information of the combined object made up of the two virtual objects 70 is recalculated.

[0239] If the process of step S303 is performed, if the determination in step S300 is NO, or if the determination in step S301 is NO, the processor 81 ends the adhesion release process shown in FIG.

[0240] The processing shown in the above flowchart is merely an example, and the order and content of the processing may be changed as appropriate.

[0241] As described above, in this embodiment, the user selects a first object from among a plurality of virtual objects 70 that are movable in virtual space and can be bonded to each other by a selection operation (step S102). If the selected first object (selected object) and an unselected second object (another virtual object 70) satisfy a predetermined bonding condition (step S151: YES), bonding objects 78 indicating bonding positions of the first object and the second object appear (step S152). In response to a bonding instruction from the user, the first object and the second object are bonded at the bonding positions indicated by the bonding objects (step S154). If the first object moves or its posture changes due to a user operation, the bonding positions of the first object and the second object indicated by the bonding objects 78 change (steps S201 and S202).

[0242] By displaying the adhesive object, the user can easily recognize that the first object and the second object will be glued together when assembling a combined object by gluing multiple virtual objects together, and can also recognize which parts will be glued together. Since the adhesive position indicated by the adhesive object changes according to the movement and posture change of the first object, the first object and the second object can be glued together while adjusting the adhesive position.

[0243] Furthermore, in this embodiment, when the user moves the first object to bond the first object and the second object, collision detection between the first object and the second object is performed (step S106). That is, collision detection is performed even when the user is assembling multiple virtual objects. When the first object and the second object collide, the movement of at least one of the first object and the second object is controlled. For example, in response to the collision, the second object moves, the movement direction of the first object changes, or the movement speed of the first object decreases.

[0244] Even when assembling multiple virtual objects, collision detection is performed and the behavior of each virtual object is controlled, allowing the user to recognize the distance between the first object and the second object. Furthermore, if two virtual objects are separated to avoid a collision, the adhesion position of the two virtual objects is displayed by an adhesion object, allowing the user to recognize which virtual object the first object is attached to and at what position.

[0245] In this embodiment, an image 71 of the first object (selected object) is generated on the surface of the second object (another virtual object 70) (step S105). Specifically, the first object is projected in three orthogonal directions (up / down, left / right, and front / back), and images 71 (projected images) are generated in the three directions. The image 71 is generated separately from the shadow of the first object generated by a light source in the virtual space. The first object selected by the user is displayed in a predetermined color (e.g., yellow) different from that before selection, and the image 71 of the first object is also displayed in the same predetermined color. This allows the user to easily recognize the positional relationship between the first object and the second object. Furthermore, because the first object and its image 71 are displayed in the same display mode, the user can easily recognize that the image 71 reflected on the surface of the second object is the image of the first object, and can easily recognize the positional relationship between the first object and the second object. It should be noted that the color of the selected first object and the color of its image 71 do not have to be displayed in exactly the same color; for example, both may be in the same color family, with one being darker than the other.

[0246] In this embodiment, a priority adhesion portion is set on the virtual object 70, which is more likely to be adhered than other portions. When priority adhesion portions are set on both the first object and the second object, these priority adhesion portions are set as adhesion positions. Specifically, when the priority adhesion portion of the first object and the priority adhesion portion of the second object satisfy a first condition (conditions A to C), the priority adhesion portion of the first object and the priority adhesion portion of the second object are set as adhesion positions. When an adhesion instruction is given in this state, the priority adhesion portion of the first object and the priority adhesion portion of the second object are adhered. On the other hand, when the priority adhesion portion of the first object and the priority adhesion portion of the second object do not satisfy the first condition, or when no priority adhesion portion is set on at least one of the first object and the second object, a position on the first object and the second object that satisfies the second condition (closest position) is set as the adhesion position.

[0247] Furthermore, when a priority adhesion portion of a first object and a priority adhesion portion of a second object are adhered to each other, the posture of at least one of the first object and the second object is adjusted using a predetermined direction (e.g., normal direction, tangential direction) based on each priority adhesion portion, and the first object and the second object are adhered to each other. This allows the user to adhere the first object and the second object in an appropriate posture without having to finely adjust the posture of the first object relative to the second object.

[0248] Specifically, a normal direction is set for each priority adhesion part, and the first object and the second object are adhered together so that the normal directions of the priority adhesion parts are parallel (for example, so that the normal vectors are in opposite directions). This allows the first object and the second object to be adhered together so that, for example, a certain face of the first object and a certain face of the second object are parallel to each other.

[0249] Furthermore, a tangent direction is set for each priority adhesion portion. The first object and the second object are glued together so that the tangent direction set for the priority adhesion portion of the first object and the tangent direction set for the priority adhesion portion of the second object form a predetermined angle. This allows the first object and the second object to be glued together so that the orientations of the first object and the second object form a predetermined angle. For example, two virtual objects can be glued together in the same orientation, or so that their orientations form a right angle.

[0250] In this embodiment, the adhesion object connects the adhesion position of the first object and the adhesion position of the second object. When the positional relationship between the adhesion position of the first object and the adhesion position of the second object changes due to a movement or change in the posture of the first object, the shape of the adhesion object changes. This allows the user to intuitively recognize that two objects are being glued together. Furthermore, because the shape of the adhesion object changes due to a movement or change in the posture of the first object, the user can recognize a change in the positional relationship between the first object and the second object.

[0251] In addition, in this embodiment, while the first object and the second object are glued together, one of the first object and the second object is selected, and an adhesive object is generated that connects the adhesive positions of the selected object and the third object. Then, the selected object is glued to the third object in accordance with a user's adhesive instruction. This makes it easy to glue a new object at a desired position on a combined object made up of multiple virtual objects. If the entire combined object containing multiple virtual objects is selected and the entire combined object becomes the adhesive range of the new object, it may be difficult to specify the adhesive position. However, in this embodiment, the user selects one of the multiple virtual objects that make up the combined object and glues the new object to the selected virtual object, making it easy to specify the adhesive position.

[0252] Furthermore, in this embodiment, after the first object and the second object are adhered at the adhesion position indicated by the adhesion object, the adhesion object remains in a predetermined range including the adhesion position. This makes it possible to indicate that the first object and the second object have been adhered by a user operation. Note that, because the first object and the second object are in contact at the adhesion position, strictly speaking, the adhesion object does not remain at the adhesion position (adhesion point) of the two objects, but rather remains in the vicinity of the adhesion position. The phrase "the adhesion object remains in a predetermined range including the adhesion position" thus includes the case where the adhesion object does not strictly remain at the adhesion position, but remains in the vicinity of the adhesion position.

[0253] In this embodiment, a weight is assigned to each of the multiple virtual objects, and when a first object and a second object are glued together, the lighter object is moved so that the moving distance is longer than that of the heavier object. This makes it possible to understand the weight relationship between the two virtual objects based on their behavior when they are glued together, and to estimate the center of gravity of the combined object after gluing. Furthermore, objects of different weights move as if they are attracting each other, making it possible to express the state in which the two objects are glued together.

[0254] Furthermore, in this embodiment, virtual objects are adhered to form a combined object in response to an adhesion instruction, and combined object information is calculated and stored each time virtual objects are adhered. Furthermore, virtual objects are detached from the combined object in response to an adhesion detachment operation, and combined object information is calculated and stored each time a virtual object is detached. The combined object information (e.g., the center of gravity position of the combined object) is information calculated based on the multiple virtual objects that form the combined object. The behavior of the combined object is controlled based on the combined object information. As a result, when calculating the behavior of the combined object, the behavior of the combined object can be calculated using the combined object information without having to check the adhesion between the multiple virtual objects included in the combined object each time, thereby reducing the load associated with calculations.

[0255] In this embodiment, after a combined object is generated by gluing multiple virtual objects together, one of the multiple virtual objects constituting the combined object is set as a selected object. The combined object including the selected object is moved based on input to the input means, and another virtual object can be glued to the combined object. When the selected object is set, the combined object including the selected object is moved in response to a movement input using the input means (e.g., the analog stick 52 or an angular velocity sensor of the controller) (step S104). When the selected object is set, if the movement input using the input means satisfies a release condition, the adhesion between the selected object and other virtual objects that are glued to the selected object among the virtual objects constituting the combined object is released (step S302), while the adhesion between the selected object and other virtual objects that are not glued to the selected object is maintained. This allows individual virtual objects included in the combined object to be selected and only some of the adhesions are released, improving user convenience when assembling multiple virtual objects to form a combined object through user operation. In other words, if all virtual objects included in the combined object were to be released from the glue, the user would have to start the assembly process over again. However, in this embodiment, the glue can be released partially, eliminating the need to start the assembly process over again. Furthermore, since the input means for moving the combined object is also used for separating the virtual object, the virtual object can be separated and the combined object can be moved by an intuitive operation.

[0256] Furthermore, in this embodiment, when the adhesion between the selected object and another virtual object is released, the selected object continues to be selected (the selected object remains set). This allows the user to move on to an operation of adhering another virtual object to the selected object immediately after detaching the other virtual object from the selected object.

[0257] In this embodiment, the user character is moved based on a movement input using the first input means (analog stick 32), and the combined object including the selected object is also moved (step S103). Furthermore, the combined object including the selected object is moved based on a movement input using the second input means (analog stick 52) without moving the user character, and when the movement input using the second input means satisfies a release condition, the adhesion between the selected object and the other virtual object is released. Since the adhesion between the selected object and the other virtual object is released by moving the selected object without moving the user character, the other virtual object can be separated by an intuitive and easy-to-understand operation.

[0258] In this embodiment, it is also possible to attach another virtual object to the selected object, thereby making it possible to detach another virtual object from the selected object or attach another virtual object to the selected object by inputting to the input means.

[0259] In this embodiment, when the movement direction of the combined object changes a predetermined number of times within a predetermined time, the adhesion between the selected object and the other virtual object is released. A "change in the movement direction of the combined object" refers to a change in the combined object from a state in which the combined object is moving in a first direction to a state in which the combined object is moving in a second direction different from the first direction. For example, when the combined object moves in the opposite direction a predetermined number of times within a predetermined time, the adhesion between the selected object and the other virtual object is released. Here, "movement of the combined object in the opposite direction" may refer to a change in the combined object from a state in which the combined object is moving in the first direction to a state in which the combined object is moving in a second direction at a predetermined angle (e.g., 150 degrees to 180 degrees) from the first direction. This allows the other virtual object to be released by an intuitive operation. For example, when the movement in the opposite direction is performed a predetermined number of times within a predetermined time, the combined object behaves as if it is swinging. This allows the other virtual object to be released by an intuitive operation similar to shaking off the other virtual object attached to the selected object from the combined object.

[0260] The release condition may be a condition that is more likely to be satisfied the more frequently the movement input using the input means changes within a predetermined time period. In other words, the more frequently the movement input using the input means changes within a predetermined time period, the more likely it is that the release condition is satisfied. When the release condition is determined to be satisfied, the adhesion between the selected object and another virtual object may be released. Here, a "change in the movement input using the input means" refers to a change in the input for moving the selected object, and may be, for example, a change from an input in a first direction using the analog stick 52 to an input in a second direction. Furthermore, a "change in the movement input using the input means" may be, for example, a change from a state in which a first button for movement is being pressed to a state in which a second button for movement is being pressed. Furthermore, the phrase "the more frequently the movement input using the input means changes within a predetermined time period, the more likely the release condition is satisfied" may include, for example, a state in which the release condition is satisfied when the number of changes in the movement input using the input means within a predetermined time period reaches a predetermined number. That is, the number of changes in movement input using the input means within a predetermined time period may be counted, and when the counted number reaches a "predetermined number," the adhesion between the selected object and the other virtual object may be released. The "predetermined number" may be a fixed value set in advance by the game creator, a value that changes during the game, or a value set by the user.

[0261] Furthermore, the method of determining whether the release condition is satisfied is not limited to counting the number of changes in movement input using the input means within a predetermined time, and other methods may be used. For example, a value related to the movement input using the input means within a predetermined time (e.g., an angle indicating the input direction) may be accumulated, and the release condition may be satisfied when the accumulated value reaches a predetermined value. Even in such cases, the release condition is more likely to be satisfied the more times the movement input using the input means changes within the predetermined time.

[0262] In this embodiment, the more changes in the movement input using the third input means (analog stick 52) occur within a predetermined time period, the more likely it may be that the release condition is satisfied. Furthermore, the more changes in the movement input using the fourth input means (angular velocity sensor) occur within a predetermined time period, the more likely it may be that the release condition is satisfied. When movement inputs are made to both the third input means and the fourth input means within a predetermined time period, the release condition may be more likely to be satisfied than when movement inputs are made to either the third input means or the fourth input means. For example, the release condition may be satisfied when the number of changes in the movement input using the third input means reaches a predetermined number, and the release condition may be satisfied when the number of changes in the movement input using the fourth input means reaches a predetermined number. In this case, the release condition may be satisfied when the sum of the number of changes in the movement input using the third input means and the number of changes in the movement input using the fourth input means reaches a predetermined number, and the adhesion between the selected object and another virtual object may be released. This allows the adhesion between the selected object and another virtual object to be released using two input means, and when input is made to the two input means at the same time, the adhesion can be released quickly.

[0263] (Variation) Although the present embodiment has been described above, the above embodiment is merely an example, and the following modifications may be made, for example.

[0264] For example, in the above embodiment, the combined object is formed by adhering virtual objects 70 that have been placed in advance in the virtual space, but in other embodiments, the virtual objects 70 may not be placed in advance in the virtual space. For example, the virtual objects 70 may be accommodated in an accommodation area of ​​the user character PC, and the user may select a virtual object 70 in the accommodation area by an operation, causing the selected virtual object 70 to appear in the virtual space.

[0265] Furthermore, a separate virtual space may be prepared, separate from the virtual space in which the user character PC and enemy characters appear, for generating a combined object using a plurality of virtual objects 70. In this case, a combined object is generated by placing a plurality of virtual objects 70 in the separate virtual space. When the combined object is generated, the combined object may appear in the virtual space in which the user character PC and enemy characters appear.

[0266] In the above embodiment, an adhesion object 78 indicating the adhesion position is generated, and the two virtual objects 70 are adhered to each other so that the adhesion positions indicated by the adhesion object 78 coincide. In other embodiments, for example, when two virtual objects 70 are positioned relatively close to each other, an adhesion command (e.g., the same operation as the adhesion instruction or a different operation) can be used, and the two virtual objects 70 may be adhered to each other by fixing (maintaining) their positional relationship without attracting each other in response to the execution of the adhesion command. That is, when the two virtual objects 70 approach each other to a predetermined distance, an adhesion command can be enabled, and the positional relationship (distance and posture) at the time of command execution can be fixed in response to the execution of the adhesion command, and the two virtual objects 70 may be adhered to each other. The adhesion object may or may not be interposed between the two virtual objects 70. Note that the positional relationship between the two virtual objects 70 when the adhesion command is executed may be corrected (e.g., adjusted in posture), and the corrected positional relationship may be fixed.

[0267] Furthermore, in the above embodiment, each priority adhesion portion BP is adhered such that the normal vector at the priority adhesion portion BP of the selected object and the normal vector at the priority adhesion portion BP of the other virtual object 70 are in opposite directions. In other embodiments, each priority adhesion portion BP may be adhered such that the normal vector at the priority adhesion portion BP of the selected object and the normal vector at the priority adhesion portion BP of the other virtual object 70 are in the same direction.

[0268] Furthermore, in the above embodiment, the priority adhesion portion BP of the selected object and the priority adhesion portion BP of another virtual object 70 are adhered when the priority adhesion portion BP of the selected object and the priority adhesion portion BP of another virtual object 70 satisfy a first condition. The first condition is not limited to the above-described one, and may be another condition. For example, the first condition may be any one of conditions A to C, or may be another condition. For example, the first condition may be any condition that does not cause the user to feel uncomfortable when the priority adhesion portions are adhered to each other.

[0269] Furthermore, if the priority adhesion part BP of the selected object and the priority adhesion part BP of the other virtual object 70 do not satisfy the first condition, the two objects are adhered at a position (closest position) that satisfies the second condition in the selected object and the other virtual object 70. In other embodiments, the position that satisfies the second condition is not limited to the closest position.

[0270] In another embodiment, when a priority adhesion portion is set to both the selected object and the other virtual object 70, the two priority adhesion portions are preferentially adhered to each other. In another embodiment, when a priority adhesion portion is set to either the selected object or the other virtual object 70, the priority adhesion portion of either one may be preferentially set as the adhesion position, and a portion other than the priority adhesion portion may be set as the adhesion position of the other object.

[0271] In the above embodiment, the virtual objects constituting the combined object are selected, and a new virtual object is further attached to the selected objects. In another embodiment, the virtual objects constituting the combined object may be selected, and the new virtual object may be attached to a virtual object other than the selected objects constituting the combined object.

[0272] Furthermore, in the above embodiment, the selected object is projected in three orthogonal directions in the virtual space, and if another virtual object 70 exists in that direction, an image 71 of the selected object is generated on the surface of the other virtual object 70. In other embodiments, the selected object may be projected in a direction from the selected object toward the other virtual object 70, and the image 71 of the selected object may be generated on the surface of the other virtual object 70. In this case, even if, for example, the other virtual object 70 does not exist directly to the side of the selected object but exists diagonally from the selected object, the image 71 of the selected object is generated on the surface of the other virtual object 70.

[0273] Furthermore, in the above embodiment, when a first virtual object is moved and attached to a second virtual object, collision determination between the two virtual objects is performed. However, if an attachment object has been generated between the two virtual objects before an attachment instruction is issued, collision determination between the two virtual objects does not have to be performed.

[0274] Furthermore, in the above embodiment, when a first virtual object is moved and attached to a second virtual object, an image of the first virtual object is projected onto the surface of the second virtual object, but such an image does not necessarily have to be projected. Furthermore, in the above embodiment, the image of the first virtual object is projected in the up-down direction and the left-right direction perpendicular thereto, but the projection directions are not limited to these. Furthermore, the image of the first virtual object does not necessarily have to be projected in two directions. Furthermore, when the first virtual object is moved, a shadow of the first virtual object does not necessarily have to be generated.

[0275] Furthermore, in the above embodiment, when a first virtual object is selected and attached to a second virtual object, the first virtual object is displayed in a predetermined color, and the image of the first virtual object is also displayed in a predetermined color. In other embodiments, even when the first virtual object is selected, the first virtual object may be displayed in its original color. Furthermore, the image of the first virtual object may or may not be displayed in a color corresponding to the original color.

[0276] In the above embodiment, there are virtual objects to which priority adhesion portions are set and virtual objects to which priority adhesion portions are not set. In other embodiments, there may be only virtual objects to which priority adhesion portions are not set, or only virtual objects to which priority adhesion portions are set.

[0277] In the above embodiment, the posture of at least one of the first virtual object and the second virtual object is adjusted using a predetermined direction (normal direction or tangential direction) based on the preferential adhesion portion. In other embodiments, such posture adjustment may be performed based on any direction, not limited to the normal direction or the tangential direction, and any posture adjustment method may be used. Furthermore, such posture adjustment may not be performed.

[0278] In the above embodiment, the adhesion object is an object that connects the adhesion positions of two virtual objects. In other embodiments, the adhesion object may be an object that indicates the adhesion positions of two virtual objects but does not connect the adhesion positions.

[0279] In the above embodiment, the two virtual objects 70 are pulled to each other in response to the adhesion instruction, and the lighter virtual object 70 moves a longer distance than the heavier one. However, in other embodiments, the movement is not limited to this, and for example, the virtual objects may be moved the same distance regardless of their weight.

[0280] Furthermore, in the above embodiment, when a selection object is selected, if an operation of changing the orientation of the user character PC (the orientation of the virtual camera) using the analog stick 52 is performed a predetermined number of times as an adhesion release operation, the objects attached to the selection object are detached, and the adhesion between objects other than the selection object is maintained. In other embodiments, when a selection object is selected (set) and the adhesion release operation is performed, the objects attached to the selection object are detached, and the adhesion between some or all of the objects other than the selection object may also be released. In other words, when an adhesion release operation (an operation that shakes the screen around the selection object) is performed, if the objects attached to the selection object are detached, the adhesion between objects other than the selection object may be released or may be maintained.

[0281] Furthermore, an operation other than the above-described deselection operation may be used to detach objects attached to the selected object, while maintaining the attachment of objects other than the selected object.

[0282] For example, adhesion detachment may be performed when an operation of pressing a specific button is performed or when a predetermined touch operation is performed on a touch panel. For example, when a specific button is pressed while a selected object is selected, objects attached to the selected object may be detached, and adhesion between objects not attached to the selected object may be maintained. Furthermore, for example, when a specific button is pressed while a selected object is selected, objects attached to the selected object may be detached, and adhesion between objects not attached to the selected object may also be partially or completely detached.

[0283] Furthermore, in the above embodiment, one virtual object included in the combined object is selected as the selected object. However, in other embodiments, multiple virtual objects included in the combined object may be selectable as the selected objects. When multiple virtual objects included in the combined object are selected as selected objects and an operation for releasing the adhesion is performed, other virtual objects attached to the selected objects may be detached. In this case, the adhesion between the selected multiple selected objects may be maintained, or the adhesion between the selected multiple selected objects may also be released. Furthermore, when the entire combined object is selected and an operation for releasing the adhesion is performed, the adhesion of all or part of the combined object may be released.

[0284] Alternatively, the entire combined object may be selected as the selected object, and another virtual object located in the virtual space may be further attached to the combined object by an attachment instruction. In this case, the other virtual object may be attached to one of the multiple virtual objects included in the combined object.

[0285] Furthermore, in the above embodiment, it is possible to detach the adhesion between the multiple virtual objects 70 that are attached by the adhesive object, but in other embodiments, it may be configured so that detachment of the adhesion is not possible.

[0286] In the above embodiment, a virtual object included in the combined object is selected as a selected object, the selected object is moved, and another virtual object is further glued to the combined object in response to a glue instruction. In the above embodiment, a virtual object included in the combined object is selected as a selected object, and an object glued to the selected object is detached in response to a glue detachment operation. In other embodiments, in addition to (or instead of) such a method of generating and detaching a combined object, another method may be used to generate and detach the combined object.

[0287] For example, as another method of generating a combined object, a user may first input a combine command, then select a selected object, and then issue a bonding instruction, whereby another virtual object is bonded to the selected object. The order of inputting the combine command, selecting the selected object, and issuing a bonding instruction is not limited to this. Furthermore, when a selected object is selected with the combine command input, another virtual object may be bonded to the selected object even without an bonding instruction. Furthermore, when the entire combined object is selected and the combine command is input, another virtual object may be further bonded to the combined object even without selecting a virtual object included in the combined object.

[0288] As another method for releasing adhesion, the adhesion between the virtual objects included in the combined object may be released when a user first inputs a release command, then selects a selected object, and then issues a separation instruction. In this case, the above-described release operation may be performed as the separation instruction. Note that the order of inputting the release command, selecting the selected object, and issuing the separation instruction is not limited to this. Also, when a selected object is selected with the release command input, adhesion may be released even without an instruction to separate. Also, when the entire combined object is selected and a release command is input, the adhesion of all or part of the combined object may be released even without selecting a virtual object included in the combined object.

[0289] The user character PC may also have a virtual storage area (e.g., a virtual bag, pouch, item box, etc. owned by the user character PC) capable of storing items, and the storage area may be capable of storing material objects that may be included in the combined object. The storage area may be carried by the user character PC and displayed, or may not normally be displayed but may be displayed in response to a user operation. If the combined object includes a virtual object (material object) that can be stored in the storage area, performing a specific operation (e.g., pressing a specific button) near the combined object may allow the material object to be stored in the storage area. In this case, pressing the specific button may release the adhesion of the material object included in the combined object, and the material object may be stored in the storage area. For example, assume that a combined object including virtual object 70X, virtual object 70Y, and virtual object 70Z has been generated. In a case where virtual object 70X and virtual object 70Y are adhered to each other with a first adhesion object and virtual object 70Y and virtual object 70Z are adhered to each other with a second adhesion object, when virtual object 70X is accommodated in a containing area as a material object in response to pressing a specific button, the adhesion between virtual object 70X and virtual object 70Y is released, and the first adhesion object is erased. Then, virtual object 70X is accommodated in the containing area as a material object. Meanwhile, because virtual object 70Y and virtual object 70Z are not virtual objects that can be accommodated in a containing area, the adhesion between virtual object 70Y and virtual object 70Z is not released, and the second adhesion object is not erased. Therefore, virtual object 70Y and virtual object 70Z remain in the virtual space as a combined object. The material object (virtual object 70X) accommodated in the containing area may be used to generate another combined object.

[0290] In the above embodiment, adhesion is released in response to an adhesion release operation, but adhesion may also be released without an adhesion release operation. For example, when a large force (a force exceeding a predetermined threshold) is applied in a direction in which the virtual objects constituting a combined object move apart, the adhesion between the virtual objects may be released.

[0291] Furthermore, the hardware configuration for playing the game described above is merely an example, and the game processing may be performed on any other hardware. For example, the game processing may be executed on any information processing system, such as a personal computer, a tablet terminal, a smartphone, or a server on the Internet. Furthermore, the game processing may be executed in a distributed manner by multiple devices.

[0292] Furthermore, the configurations according to the above-described embodiments and their modifications can be combined in any manner as long as they are not inconsistent with each other. Furthermore, the above is merely an example of the present invention, and various other improvements and modifications may be made thereto. [Explanation of symbols]

[0293] 1. Game System 2 Main unit 3 Left Controller 4 Right Controller 32, 52 analog stick 81 processors 70 Virtual Objects 71 Virtual Object Statue 78 Glue Objects

Claims

1. A program executed on a computer of an information processing device, the computer comprising: an arrangement means for arranging a plurality of virtual objects within a game space; a combined object generating means for generating a combined object by gluing the plurality of virtual objects together in response to a first user operation; a designation means for designating at least one of the plurality of virtual objects constituting the combined object in response to a second user operation; a program that functions as a releasing means that, in response to a third user operation, releases the adhesion between the specified object and other virtual objects that are attached to the specified object among the plurality of virtual objects that constitute the combined object, and maintains the adhesion between virtual objects other than the specified object.

2. the combined object generating means attaches the target object to another virtual object or a combined object in response to the first user operation; 2. The program according to claim 1, wherein when the adhesion between the designated object and the other virtual object is released by the releasing means, the designated object is treated as the target object.

3. The computer functioning as an adhesion object display control means for displaying an adhesion object between the plurality of adhered virtual objects included in the combined object; 3. The program according to claim 1, wherein when the adhesion between the specified object and the other virtual object is released by the release means, the adhesion object display control means erases the adhesion object displayed between the specified object and the other virtual object.

4. The computer functioning as a moving means for floating and moving the combined object including the specified object in the air in the game space; 4. The program according to claim 1, wherein when the combined object is floating in the air by the moving means, if the adhesion between the specified object and the other virtual object is released by the releasing means, the other virtual object falls.

5. The computer functioning as a moving means for moving the combined object including the designated object within the game space in response to a moving operation; 4. The program according to claim 1, wherein the release means releases the adhesion between the specified object and the other virtual object when the third user operation is the move operation that satisfies a predetermined release condition.

6. The computer functioning as a moving means for moving the combined object including the designated object within the game space in response to a moving operation; The program according to claim 1 , wherein the releasing means releases the adhesion between the designated object and the other virtual object in response to the third user operation different from the move operation.

7. The computer, functioning as a player character control means for controlling a player character in the game space in response to a user operation; at least one virtual object among a plurality of virtual objects constituting the combined object is designated by controlling the player character; 7. The program according to claim 1, wherein the designation means designates a virtual object designated by controlling the player character in response to the second user operation.

8. A program executed on a computer of an information processing device, the computer comprising: an arrangement means for arranging, within the game space, a plurality of virtual objects that can be bonded to other virtual objects to generate a combined object; a designation means for designating the virtual object in response to a first operation; a combined object generating means for generating a combined object by bonding the designated object or a combined object including the designated object to another virtual object or another combined object in response to a second operation; and when the specified object is part of a combined object, in response to a third operation, functions as a releasing means for releasing the adhesion between the specified object and other virtual objects that are glued to the specified object among a plurality of virtual objects that make up the combined object, and for maintaining the adhesion between virtual objects that are not the specified object.

9. 9. The program according to claim 8, wherein the designation means maintains the designation when the release means releases the attachment between the designated object and another virtual object attached to the designated object.

10. The computer functioning as an adhesion object display control means for displaying an adhesion object between the plurality of adhered virtual objects included in the combined object; 10. The program according to claim 8, wherein when the adhesion between the specified object and the other virtual object is released by the release means, the adhesion object display control means erases the adhesion object displayed between the specified object and the other virtual object.

11. The computer functioning as a moving means for floating and moving the combined object including the specified object in the air in the game space; 11. The program according to claim 8, wherein when the combined object is floating in the air by the moving means, if the adhesion between the specified object and the other virtual object is released by the releasing means, the other virtual object falls.

12. The computer functioning as a moving means for moving the combined object including the designated object within the game space in response to a moving operation; 11. The program according to claim 8, wherein the release means releases the adhesion between the designated object and the other virtual object when the move operation that satisfies a predetermined release condition is performed as the third operation.

13. The computer functioning as a moving means for moving the combined object including the designated object within the game space in response to a moving operation; The program according to claim 8 , wherein the releasing means releases the adhesion between the designated object and the other virtual object in response to the third operation different from the moving operation.

14. The computer, functioning as a player character control means for controlling a player character in the game space in response to a user operation; at least one virtual object among a plurality of virtual objects constituting the combined object is designated by controlling the player character; 14. The program according to claim 8, wherein the designation means designates a virtual object designated by controlling the player character in response to the first operation.

15. an arrangement means for arranging a plurality of virtual objects within a game space; a combined object generating means for generating a combined object by gluing the plurality of virtual objects together in response to a first user operation; a designation means for designating at least one of the plurality of virtual objects constituting the combined object in response to a second user operation; and a releasing means for releasing, in response to a third user operation, the adhesion between the specified object and other virtual objects glued to the specified object among the plurality of virtual objects constituting the combined object, and maintaining the adhesion between virtual objects other than the specified object.

16. an arrangement means for arranging, within the game space, a plurality of virtual objects that can be bonded to other virtual objects to generate a combined object; a designation means for designating the virtual object in response to a first operation; a combined object generating means for generating a combined object by bonding the designated object or a combined object including the designated object to another virtual object or another combined object in response to a second operation; and a releasing means for, when the specified object is part of a combined object, releasing, in response to a third operation, the adhesion between the specified object and other virtual objects that are glued to the specified object among a plurality of virtual objects that constitute the combined object, and maintaining the adhesion between virtual objects that are not the specified object.

17. An information processing method executed in an information processing system, placing a plurality of virtual objects within a game space; generating a combined object by gluing the plurality of virtual objects together in response to a first user operation; designating at least one of the plurality of virtual objects constituting the combined object in response to a second user operation; and in response to a third user operation, releasing the adhesion between the specified object and other virtual objects that are attached to the specified object among the plurality of virtual objects that constitute the combined object, and maintaining the adhesion between virtual objects other than the specified object.

18. An information processing method executed in an information processing system, a step of arranging, within a game space, a plurality of virtual objects that can be bonded to other virtual objects to generate a combined object; designating the virtual object in response to a first operation; a step of generating a combined object by adhering the designated object or a combined object including the designated object to another virtual object or another combined object in response to a second operation; and if the specified object is part of a combined object, in response to a third operation, releasing the adhesion between the specified object and other virtual objects that are attached to the specified object among a plurality of virtual objects that constitute the combined object, and maintaining the adhesion between virtual objects that are not the specified object.

Citation Information

Patent Citations

  • Program, information storage medium and game machine

    JP2007021248A

  • Methods and systems for manipulating digital representations of three-dimensional objects

    JP2007500906A

  • Display system, display control device, and program

    JP2019155062A

  • Real product manufacture and delivery method after working and assembling complete in game programs and the like, program or mobile device for performing same, remotely operated server which performs manufacture of real product

    KR1020140099415A