U.S. Pat. No. 8,909,506

PROGRAM, INFORMATION STORAGE MEDIUM, INFORMATION PROCESSING SYSTEM, AND INFORMATION PROCESSING METHOD FOR CONTROLLING A MOVEMENT OF AN OBJECT PLACED IN A VIRTUAL SPACE

AssigneeSony Interactive Entertainment Inc

Issue DateMay 31, 2012

Illustrative Figure

Abstract

An object placement managing unit changes at least one of a position and a direction of a virtual object based on a value of a parameter associated with a physical quantity that is an attribute of the virtual object. The object placement managing unit determines a first change, which corresponds to a user's operation, in a first physical quantity of the virtual object. The object placement managing unit determines a second change in a second physical quantity. The second change corresponds to and is different from the first change. The object placement managing unit changes a value of a parameter based on the first change and the second change. The object placement managing unit changes, after the value of the parameter is changed, at least one of the position and the direction of the virtual object based on the changed value of the parameter.

Description

DETAILED DESCRIPTION OF THE INVENTION An embodiment of the present invention will be described below in detail with reference to the accompanying drawings. FIG. 1is a diagram showing a structure of a game device10that functions as an information processing system according to an embodiment of the present invention. The game device10according to this embodiment is, for example, a game console, a portable game terminal, or a personal computer. As shown inFIG. 1, the game device10according to this embodiment includes a control unit12, a storage unit14, an operating unit16, and a display unit18. The control unit12is a program control device, such as a central processing unit (CPU), that operates according to a program installed in the game device10. The storage unit14is a memory element such as a read-only memory (ROM) or a random access memory (RAM), or a hard disk drive. The operating unit16is a keyboard, a mouse, or a controller of a video game console, or the like, and upon receipt of input of a user operation, outputs a signal indicating the content of the user operation to the control unit12. The display unit18is a display device, such as a liquid crystal display, and displays a variety of images according to an instruction from the control unit12. Note that the game device10may include a communication interface, such as a network board, an optical disc drive for reading an optical disc, such as a digital video disc ROM (DVD-ROM) or a Blu-ray (registered trademark) disc, and a USB (Universal Serial Bus) port. The game device10according to this embodiment executes a program to which the present invention is applied to thereby generate a virtual space20shown as an example inFIG. 2in the memory. As shown, the virtual space20according to this embodiment is a virtual 3D space where virtual objects, such as a player ...

DETAILED DESCRIPTION OF THE INVENTION

An embodiment of the present invention will be described below in detail with reference to the accompanying drawings.

FIG. 1is a diagram showing a structure of a game device10that functions as an information processing system according to an embodiment of the present invention. The game device10according to this embodiment is, for example, a game console, a portable game terminal, or a personal computer. As shown inFIG. 1, the game device10according to this embodiment includes a control unit12, a storage unit14, an operating unit16, and a display unit18.

The control unit12is a program control device, such as a central processing unit (CPU), that operates according to a program installed in the game device10. The storage unit14is a memory element such as a read-only memory (ROM) or a random access memory (RAM), or a hard disk drive. The operating unit16is a keyboard, a mouse, or a controller of a video game console, or the like, and upon receipt of input of a user operation, outputs a signal indicating the content of the user operation to the control unit12. The display unit18is a display device, such as a liquid crystal display, and displays a variety of images according to an instruction from the control unit12.

Note that the game device10may include a communication interface, such as a network board, an optical disc drive for reading an optical disc, such as a digital video disc ROM (DVD-ROM) or a Blu-ray (registered trademark) disc, and a USB (Universal Serial Bus) port.

The game device10according to this embodiment executes a program to which the present invention is applied to thereby generate a virtual space20shown as an example inFIG. 2in the memory. As shown, the virtual space20according to this embodiment is a virtual 3D space where virtual objects, such as a player object22, a chain object24, a ceiling object26, and a floor object28, are placed, as well as a viewpoint30.

In this embodiment, a virtual object includes a plurality of polygons, each having a texture mapped thereon. In this embodiment, a user of the game device10can operate the operating unit16to thereby move the player object22in the virtual space20.

In the program executed in the game device10according to this embodiment, the function of a physics engine for simulating the laws of physics, such as the laws of classical mechanics, is implemented.

In this embodiment, for example, a user can operate the operation unit16to make the player object22perform some actions, such as grasping the chain object24, moving away from the chain object24, swinging the chain object24, and rotating the chain object24.

FIG. 3is a functional block diagram of the game device10according to this embodiment. As shown inFIG. 3, the game device10functionally comprises a data storage unit40, an operation state obtaining unit42, an object placement managing unit44, and a spatial image generation and output unit46. The data storage unit40is implemented mainly using the storage unit14, while the other components are implemented mainly using the control unit12.

These functions are achieved by executing a program according to this embodiment in the game device10, or an information processing system. This program may be downloaded from another computer via a communication interface through a computer communication network or stored in a computer readable information storage medium, such as an optical disc (e.g., a compact disc ROM (CD-ROM) or a DVD-ROM) or a USB memory, to be installed therefrom into the game device10via an optical disc drive, a USB (Universal Serial Bus) port, or the like.

In this embodiment, various data necessary for producing the virtual space20is stored in advance in the data storage unit40. In the data storage unit40, polygon data, texture data, and so forth, relating to a virtual object placed in the virtual space20, are stored. For example, as shown inFIG. 2, the chain object24includes a plurality of rigid objects24aand joints24bfor connecting the rigid objects24atogether and connecting the rigid object24aand the ceiling object26. Note that in this embodiment, the rigid object24ahas a cylinder shape. In addition, in this embodiment, one end of the chain object24is a fixed end connecting to the ceiling object26, and the other end is a free end.

In this embodiment, the data storage unit40stores a value of a parameter indicative of physical quantities of each rigid object24a, such as size, mass, moment of inertia (inertia tensor in this embodiment), velocity, angular velocity, maximum velocity, maximum angular velocity, and impulse value (value indicating impulse). Further, in this embodiment, the same value of a mass parameter is set to respective rigid objects24ain advance, and the same value of a moment-of-inertia parameter is also set to respective rigid objects24a. These values are changeable according to the progress of the game.

In this embodiment, the data storage unit40also stores, for each joint24b, constraint conditions to be satisfied in the physical simulation processing, with regard to a positional relationship between the rigid objects24aconnected to the joint24b, and a positional relationship between the ceiling object26and the rigid objects24aconnected to the joint24b. The constraint conditions include, for example, the maximum angle of rotation around the axis, and the maximum angle formed by each axis of the rigid objects24a. In this embodiment, the physical simulation processing is executed so as to satisfy the constraint conditions.

Further, in this embodiment, the data storage unit40also stores control necessity information, which is a flag to indicate whether or not each rigid object24ais an object of the physical simulation processing. In addition, in this embodiment, the data storage unit40stores correspondence rule data indicative of a correspondence rule between a first physical quantity related to a virtual object and a second physical quantity, which is changeable according to the change in the first physical quantity under the condition that the first physical quantity is changed. In this embodiment, the correspondence rule data also includes data indicating whether the second physical quantity is to be changed in preprocessing described later or in postprocessing described later. Note that how the control necessity information or the correspondence rule data are used in the processing will be discussed below.

In this embodiment, the spatial image generation and output unit46generates an image showing a picture obtained by viewing from the viewpoint32set in the virtual space20in the viewing direction (hereinafter referred to as a spatial frame image) at a predetermined interval (e.g., 1/60th of a second), and displays on the display unit18.

Below, an example of a flow of processing executed for every frame (e.g., at an interval of 1/60th of a second) in the game device10in this embodiment will be described referring to the flowchart illustrated inFIG. 4.

In this example of the processing, the data storage unit40stores the correspondence rule data in which an increase in forces on a rigid object24ais set as a first physical quantity, and an increase in mass of such a rigid object24aand a decrease in mass of all the other rigid objects24aincluded in the chain object24are set as a second physical quantity. In addition, the correspondence rule data sets the change in mass with respect to an increase of force per unit. The correspondence rule data also indicates that the change in the mass of the rigid object24ais performed in the preprocessing.

Further, in this example of the processing, the data storage unit40also stores the correspondence rule data in which, for example, an increase in velocity of the chain object24with respect to a specific direction is set as the first physical quantity, and a decrease in velocity of the chain object24with respect to the directions other than the specific direction mentioned above is set as the second physical quantity. In the correspondence rule data, a damping coefficient (decreasing rate 0 or more and less than 1) at the time when the velocity is decreasing as mentioned above is also set. The correspondence rule data also indicates that decreasing the velocity is performed in the postprocessing.

First, the operation state obtaining unit42obtains an operation state of the operation unit16. The operation state includes, for example, a kind of button that is pressed, and how much the button is pressed (S101). Then, the object placement managing unit44determines, based on the obtained operation state, a motion of the player object22and a value of a parameter related to the motion (S102). Here, for example, a motion of the player object22to grasp one of the rigid objects24ais determined. In addition, a value of a force parameter indicative of a force added to the rigid object24aby the grasping motion is also determined.

When none of the rigid objects24aare objects of the physical simulation processing, if the predetermined conditions are satisfied, the object placement managing unit44updates a value of the control necessity information so that all of the rigid objects24aare to be objects of the physical simulation processing (S103). For example, under the condition that a distance between one of the rigid objects24aand the player object22is equal to or less than a predetermined distance, or the player object22grasps one of the rigid objects24a, the object placement managing unit44updates a value of the control necessity information so that all of the rigid objects24aare to be objects of the physical simulation processing.

Subsequently, the object placement managing unit44obtains the control necessity information stored in the data storage unit40so as to specify the rigid object24ato be an object of the physical simulation processing, and obtains a value of a parameter indicative of a physical quantity set in the specified rigid object24ato be the object of the physical simulation processing (S104). In this example, the object placement managing unit44obtains, for example, values of a velocity parameter and an angular velocity parameter, and in addition, a value indicative of a position and direction of each rigid object24, each of the values being set for each rigid object24a. In this embodiment, a value of the velocity parameter is represented by a three-dimensional vector. The object placement managing unit44then executes the preprocessing for performing the physical simulation processing, based on the motion determined in the processing shown in S102, and the value of the parameter relating to the determined motion, and the correspondence rule data indicating that the second physical quantity is to be changed in the preprocessing (S105). In a frame where the motion of the player object22to grasp one of the rigid objects24ahas occurred, for example, the object placement managing unit44increases a value of the mass parameter set in the rigid object24agrasped by the player object22, and decreases values of the mass parameters set in all of the other rigid objects24acontained in the chain object24. Here, based on the correspondence rule data, increase and decrease in values of the mass parameter are determined according to the values of the force parameter that represents a force added to the rigid object24awhen the player object22grasps the rigid object24a.

Subsequently, based on the value of the parameter set in each rigid object24aand the value of the force parameter determined in the processing shown in S102mentioned above, the object placement managing unit44executes the physical simulation processing so as to change a position or direction of each rigid object24aand the value of the parameter set in each rigid object24a(S106).

In this embodiment, the physical simulation processing shown in S106is executed using functions of a known physics engine. In the known physics engine, for example, a value of amass parameter, a value of a moment-of-inertia parameter, a value of a velocity parameter, a value of an angular velocity parameter, respectively being set for each rigid object24a, a position and direction of each rigid object24a, a value of a force parameter determined in the processing shown in S102mentioned above, and constraint conditions by the joint24bare input so as to output a value of velocity parameter and a value of angular velocity parameter for each rigid object24a, and a position and direction of each rigid object24a, which are the results of the physical simulation.

Like the chain object24according to this embodiment, in a case where the rigid objects24aare connected by the joints24bin which the constraint conditions are set, processing for determining a temporary position, temporary direction, and temporary value of the velocity parameter, and temporary value of an angular velocity parameter, is sequentially performed for every rigid object24a, thereby increasing accuracy of the physical simulation. However, the processing that can be performed within a time corresponding to one frame is limited. Thus, in this embodiment, after the processing for every rigid object24aas described above is repeatedly performed predetermined times, the processing is ceased. Then, at that point, the temporary value of velocity parameter, temporary angular velocity parameter, and temporary direction are respectively determined as the final value of the velocity parameter, the final value of the angular velocity parameter, and the final direction. In addition, starting from the rigid object24aplaced at the fixed end, a position of each of the rigid objects24ais determined in order so as to adjust a distance between the adjacent rigid objects24ato be a predetermined distance.

Subsequently, in response to the result of the physical simulation processing shown in S106, the object placement managing unit44performs the postprocessing to additionally change the value of the parameter set in each rigid object24a(S107). For example, as illustrated inFIG. 5, under the condition that the player object22applies a force in the direction of an X-axis (i.e., the player object22moves to the X-axis positive direction), and a velocity Vx of the chain object24in the X-axis direction is increased, the object placement managing unit44multiplies a value Vy of the velocity parameter with respect to the Y-axis direction, which is perpendicular to the X-axis direction, and multiplies a value Vz of the velocity parameter with respect to the Z-axis direction, which is also perpendicular to the X-axis direction, by a damping coefficient set in the correspondence rule data.

The object placement managing unit44then specifies the number of the rigid object24ahaving an absolute value of a value of the set velocity parameter that is equal to or less than a predetermined threshold value (cut-off threshold value velocity) and an absolute value of a value of the set angular velocity parameter that is equal to or less than a predetermined threshold value (cut-off threshold value angular velocity) (S108). In the following, the number of the rigid object24aspecified as mentioned above is referred to as a specified object number.

The object placement managing unit44determines whether or not the specified object number continues to be the predetermined number (for example, three) or more during the period of predetermined number or more of frames (for example, three) (S109). If so (S109:Y), the value of the control necessity information is updated so that none of the rigid objects24aincluded in the chain object24is to be the object of the physical simulation processing (S110).

Otherwise (S109:N), or after the completion of the processing shown in S110, the spatial image generation and output unit46generates a spatial frame image, which shows a scene viewed from the viewpoint30to the viewing direction, outputs the image on the screen of the display unit18(S111), and completes the processing shown in this example.

In this embodiment, while the player object22grasps and swings the chain object24, the value of the mass parameter of the grasped rigid object24acontinues to be greater than the values of the mass parameters of other rigid objects24a. For example, under the condition that the player object22releases the chain object24in response to the user's operation, the player object22is separated from the chain object24and thrown. At this time, the object placement managing unit44returns the value of the mass parameter of each rigid object24ato the predetermined initial value. In other words, the same value is set to the mass parameter of respective rigid objects24a.

Further, during the period after the player object22releases the chain object24and before the whole chain object24is displaced from the objects of the physical simulation processing, the object placement managing unit44multiplies all of the rigid objects24aincluded in the chain object24by the damping coefficient (0 or more and less than 1) with respect to the scene when the player object22separates from the chain object24. In this embodiment, the value of the damping coefficient is set in advance and stored in the data storage unit40. Note that the damping coefficient may be set differently among the direction (for example, X-axis direction) that the player object22is going to move towards and other directions (for example, Y-axis direction and Z-axis direction). For example, the value of the damping coefficient in the X-axis direction may be set smaller than the value of the damping coefficient in the Y-axis direction and the value of the damping coefficient in the Z-axis direction. This way, in this embodiment, it is possible to quickly stop the swing of the chain object24after the player object22separates from the chain object24.

In this embodiment, for example, in the processing shown in S105, the value of the mass parameter set to the rigid object24agrasped by the player object22is increased and the values of the mass parameters set to the other rigid objects24aare decreased, thereby resulting in a condition where the chain object24swings more easily compared to the case where the value of the mass parameter of respective rigid objects24ais set to the same value. As explained, changing the value of the mass parameter as indicated in the processing of S105makes it possible to provide an image representation more suitable for games than the image representation in which the laws of physics are precisely reproduced by the physics engine.

In this embodiment, for example, in the processing shown in S107, in a case where the object placement managing unit44multiplies the value of the velocity parameter in the Y-axis direction and the Z-axis direction by the damping coefficient set to the correspondence rule data, it is possible to quickly stop the swing of the chain object24with respect to the directions other than the X-axis direction that the player object22is going to move towards, compared to a case where the processing is not executed as mentioned above. Further, under the condition that the player object22changes the direction of movement while grasping the chain object24, it is possible to prevent the circular motion of the chain object24and provide the image to represent the chain object24swinging along the direction that the player object22is going to move towards.

As explained above, in this embodiment, in addition to a change in the physical quantity of the rigid object24ain response to the operation received from the user, a change in the physical quantity of the rigid object24athat is associated with the change in the physical quantity in the correspondence rule data is also reflected in changes in the position or direction of the rigid object24a. Accordingly, a wider variety of expressions of moving rigid object24acan be achieved, compared to the case where the laws of physics are simply reproduced by the physics engine precisely while the functions of the physics engine are utilized.

In this embodiment, in a given frame, the number of the rigid objects24ahaving the set velocity parameter value, the absolute value of which is equal to or less than the predetermined threshold value (cut-off threshold value velocity), and the set angular velocity parameter value, the absolute value of which is equal to or less than the predetermined threshold value (cut-off threshold value angular velocity), is specified as the specified object number. Under the condition that the specified object number continues to be the predetermined number or more during the predetermined number of the frames (in this embodiment, for example, under the condition that the specified object number is continuously determined as the predetermined number or more for three times or more), all of the chain objects24are displaced from the objects of the physical simulation processing. This way, in this embodiment, the situation can be avoided where, while some of the rigid objects24aare displaced from the objects of the physical simulation processing, the rest of the rigid objects24aare the objects of the physical simulation processing. As a result, in this embodiment, the possibility of the chain object24moving unnaturally (for example, unnatural swing motions of the chain object24) can be reduced. In addition, the number of the virtual objects that are the objects of the physical simulation processing can be reduced faster than in the case where the processing is not executed as mentioned above, and accordingly, the load of the physical simulation processing can be reduced. As a result, it is possible to prevent information processing load of the game device10from being increased.

The present invention is not to be limited to the above described embodiment.

For example, in a processing similar to the above mentioned processing, the chain objects24lying and bouncing on a floor object28as shown inFIG. 6may be expressed. Here, the floor object28is static, and is set to keep its position and direction unchanged even though the chain object24collides therewith. Further, the value of a coefficient-of-reflection (COR) parameter, which represents a COR in a relationship between the rigid object24aand the floor object28, is set at the rigid object24a, and is input into the physics engine in the physical simulation processing.

For example, inFIG. 6, under the condition that the absolute value of the relative velocity Vr of the rigid object24awith respect to the floor object28when the rigid object24aplaced on the second from the left collides with the floor object28is equal to or less than a predetermined second threshold value, the object placement managing unit44may multiply the value of the COR parameter by the damping coefficient (0 or more and less than 1), which is set in advance with respect to the COR and stored in the data storage unit40. In this respect, the relative velocity Vr matches the value of the velocity parameter of the rigid object24a, since the floor object28is static in this embodiment. Further, the predetermined second threshold value mentioned above is greater than the threshold value in the processing of S108mentioned above, which is referred to as a first threshold value in the following. This way, with respect to this rigid object24a, the absolute value of the velocity parameter and the changes in position or direction per unit of time when the rigid object24amoves away from the floor object28are relatively small compared to a case where the value of the COR parameter is not updated. With this, the situation can be avoided where the rigid object24anever come to a stop over the floor object28due to the effect of rounding errors. In addition, the absolute value of the relative velocity with respect to the floor object28becomes equal to or less than the first threshold value, and thus the floor object28is displaced from the object of the physical simulation processing faster than a case where the value of the COR parameter is not updated. This way, the number of the virtual objects that are the objects of the physical simulation processing can be reduced faster than the case where the value of the COR parameter is not updated, and thus the load of the physical simulation processing can be reduced.

In this case too, under the condition that the specified object number continues to be the predetermined number (for example, 3) or more during the predetermined number of the frames (for example, 3 frames) or more, the object placement managing unit44may displace all of the rigid objects24aincluded in the chain object24from the objects of the physical simulation processing.

The present invention is also not to be limited to the above described embodiment.

For example, in the processing shown in S107, the object placement managing unit44may change the value of the parameter which has the value that has been changed in the processing shown in S106(for example, velocity Vx in the X-axis direction).

Further, for example, in the processing shown in S108, the object placement managing unit44may specify, as the specified object number, the number of the rigid object24ahaving the set velocity parameter value, the absolute value of which is continuously equal to or less than the cut-off threshold value velocity during the predetermined number of the frames (for example, 2 frames) or more, and the set angular velocity parameter value, the absolute value of which is equal to or less than the cut-off threshold value angular velocity.

Further, in the processing shown in S108, it is possible to have an arrangement where the object placement managing unit44does not specify, as the specified object number, the number of the rigid object24ahaving the set velocity parameter value, the absolute value of which is equal to or less than the cut-off threshold value velocity, and the set angular velocity parameter value, the absolute value of which is equal to or less than the cut-off threshold value angular velocity, but instead specifies, as the specified object number, the number of the rigid object24ahaving the set velocity parameter value, the absolute value of which is equal to or less than the cut-off threshold value velocity, or specifies, as the specified object number, the number of the rigid object24ahaving the set angular velocity parameter value, the absolute value of which is equal to or less than the cut-off threshold value angular velocity. Here, the game device10does not need to control whether to displace all of the rigid objects24afrom the objects of the physical simulation in response to results of the comparison between the specified object number and the predetermined value. For example, the game device10may control whether to displace all of the rigid objects24afrom the objects of the physical simulation based on whether or not a difference between the maximum value and the minimum value of the parameter value set at each rigid object24ais equal to or less than the predetermined value.

Further, for example, in the processing shown in S109and S110, whether to update the value of the control necessity information so that all of the rigid objects24aincluded in the chain object24are displaced from the objects of the physical simulation processing may be controlled using the proportion of the number of the rigid objects24athat continue to be specified for the predetermined number of frames or more as mentioned above in the number of the rigid objects24aincluded in the chain object24, for example, 50%, instead of using the number of the rigid object24athat continues to be specified for the predetermined number of frames or more as mentioned above.

Further, for example, the data storage unit40may store the correspondence rule data in which the increase of the angular velocity with respect to the specific rotational direction of the chain object24is set as a first physical quantity, and the decrease of the angular velocity with respect to other rotational directions of the chain object24is set as a second physical quantity. In this correspondence rule data, for example, the damping coefficient (0 or more and less than 1) at the time of decrease of the angular velocity mentioned above is also set. It is also indicated in the correspondence rule data that decreasing the angular velocity of the rigid object24ais performed in the postprocessing. For example, in the processing shown in S107, the object placement managing unit44may multiply the value of the angular velocity parameter with respect to the direction of movement of the player object22or the rotational direction, rather than the direction towards which the player object22rotates the chain object24, by the damping coefficient set in the correspondence rule data. This way, with respect to the rotational direction, rather than the direction towards which the player object22rotates the chain object24, the rotation of the chain object24can be stopped quickly.

Further, for example, both of increase or decrease of the velocity and increase or decrease of the angular velocity may be indicated in the correspondence rule data as the first physical quantity. For example, as the second physical quantity, both of increase or decrease of the velocity and increase or decrease of the angular velocity may be indicated. Then, in the processing shown in S107, both of the velocity and the angular velocity may be changed.

Further, for example, an increase in mass of a certain rigid object24aand a decrease in mass of some of the rigid objects24aother than the certain rigid object24a(for example, two objects, one in front of and one next to the certain rigid object) included in the chain object24may be set in the correspondence rule data. The object placement managing unit44may decrease the value of the mass parameter of two rigid objects24aplaced in front of and next to the rigid object24agrasped by the player object22in the processing shown in S105.

Further, for example, the data storage unit40may store the correspondence rule data in which an increase in the torque on a rigid object24ais set as the first physical quantity, and an increase in the moment of inertia of that rigid object24aand a decrease in the moment of inertia of other rigid objects24aare set as the second physical quantity. The object placement managing unit44may change the moment-of-inertia parameter set in each rigid object24abased on the determined value of the torque parameter and the correspondence rule data in which a relationship between the increased amount of the torque and the amount of changes in the moment of inertia is indicated. The object placement managing unit44may change a position and direction of each rigid object24aand values of various parameters set in each rigid object24aby inputting the value of the torque parameter in the physics engine.

Further, for example, in the above mentioned embodiment, the processing performed in the preprocessing may be performed in the postprocessing, or the processing performed in the postprocessing may be performed in the preprocessing. In particular, for example, in a frame where the player object22has grasped one of the rigid objects24a, an increase and decrease of the mass parameter may be performed in the postprocessing, and the increase and decrease of the mass parameter may be reflected in the physical simulation processing of next and subsequent frames.

Further, for example, the value of the mass parameter may be changed according to the changes in the velocity of the rigid object24a. In addition, for example, changes in the physical quantity (e.g., velocity of wind) relating to the entire virtual space20may be set as the second physical quantity indicated in the correspondence rule data.

It is noted that this embodiment may be applied to information processing systems (e.g., simulation system or image processing system) other than the game device10. In the above, the invention is described in particular values and strings, but these values and strings, and values and strings in the accompanying drawings, are exemplary descriptions, and the invention is not limited to these particular values and strings.

Further, according the one embodiment of the present invention, there is provided a program stored in a non-transitory computer readable information storage medium, for causing a computer to function as an information processing system for controlling a movement of an object placed in a virtual space. The program may include: control necessity information obtaining instructions to obtain control necessity information from a control necessity information storage unit which stores control necessity information indicative of whether or not the movement of each of a plurality of objects placed in the virtual space is controlled, object changing instructions to change, for each of the objects which are indicated in the control necessity information that the movement of which is controlled, at least one of the position and the direction of the object by an amount that is calculated based on the value of at least one of the parameters indicating physical quantity which is an attribute of the object, and control necessity information update instructions to update control necessity information to indicate that movements of all of the plurality of objects are not controlled under the condition that a value of the parameter set to each object satisfies predetermined conditions.

According to the embodiment of the present invention, there is provided a non-transitory computer readable information storage medium storing a program for causing a computer to function as an information processing system for controlling a movement of an object placed in a virtual space. The program may include: control necessity information obtaining instructions to obtain control necessity information from a control necessity information storage unit which stores control necessity information indicative of whether or not the movement of each of a plurality of objects placed in the virtual space is controlled, object changing instructions to change, for each of the objects which are indicated in the control necessity information that the movement of which is controlled, at least one of the position and the direction of the object by an amount that is calculated based on the value of at least one of the parameters indicating physical quantity which is an attribute of the object, and control necessity information update instructions to update control necessity information to indicate that movements of all of the plurality of objects are not controlled under the condition that a value of the parameter set to each object satisfies predetermined conditions.

According to one embodiment of the present invention, there is provided an information processing system for controlling a movement of an object placed in a virtual space. The information processing system may include a control necessity information obtaining unit for obtaining control necessity information from a control necessity information storage unit which stores control necessity information indicative of whether or not the movement of each of a plurality of objects placed in the virtual space is controlled, an object changing unit for changing, for each of the objects which are indicated in the control necessity information that the movement of which is controlled, at least one of the position and the direction of the object by an amount that is calculated based on the value of at least one of the parameters indicating physical quantity which is an attribute of the object, and a control necessity information update unit for updating control necessity information to indicate that movements of all of the plurality of objects are not controlled under the condition that a value of the parameter set to each object satisfies predetermined conditions.

According to one embodiment of the present invention, there is provided an information processing method for controlling a movement of an object placed in a virtual space. The method may include: obtaining control necessity information from a control necessity information storage unit which stores control necessity information indicative of whether or not the movement of each of plurality of objects placed in the virtual space is controlled, changing, for each of the objects which are indicated in the control necessity information that the movement of which is controlled, at least one of the position and the direction of the object by an amount that is calculated based on the value of at least one of the parameters indicating physical quantity which is an attribute of the object, and updating control necessity information to indicate that movements of all of the plurality of objects are not controlled under the condition that a value of the parameter set to each object satisfies predetermined conditions.

If the physical simulation processing by the physics engine with respect to all of the objects placed in the virtual space is performed, the load on the information processing system is increased. In this regard, if the object that satisfies the predetermined conditions (for example, the object with the moving velocity equal to or less than the predetermined velocity) is displaced from the objects of the physical simulation processing, the processing load on the information processing system is assumed to be reduced.

With respect to an object composed of a plurality of connected elements, such as an object representing a chain, it is desirable to perform the physical simulation processing individually on each element so as to increase reality of movements of entire objects. However, for example, if some of the elements are displaced from the objects of the physical simulation processing while the rest of the elements are the objects of the physical simulation processing, expressions of movements of the objects may appear unnatural.

In one embodiment of the present invention, under the condition that the value of the parameter set at each of the objects satisfies the predetermined conditions, the control necessity information is updated so as to indicate that movements of all of the objects are not controlled. As such, it is possible to prevent the processing load on the information processing system from being increased, and in addition, avoid a situation where some of the elements are displaced from the objects of the physical simulation processing while the rest of the elements are the objects of the physical simulation processing. In this way, according to one embodiment of the present invention, it is possible to prevent the processing load on the information processing system from being increased while reducing the risk that the expressions of movements of the objects placed in the virtual space will appear unnatural.

Further, in one embodiment of the present invention, a control necessity information update instructions may include instructions to update the control necessity information so as to indicate that movements of all of the objects are not controlled under the condition that the value of the set parameter satisfies the predetermined conditions.

Further, in one embodiment of the present invention, the program may further include judging instructions to judge repeatedly at the predetermined timing whether or not the value of the parameter set at each object satisfies the predetermined conditions. In addition, the control necessity information update instructions may include instructions to update the control necessity information so as to indicate that movements of all of the objects are not controlled under the condition that it is determined that the number of the objects that satisfy the predetermined conditions continues to be the predetermined number or more for the predetermined number of times or more.

Further, in one embodiment of the present invention, the control necessity information update instructions may include instructions to update the control necessity information so as to indicate that movements of all of the objects are not controlled under the condition that the number of the objects that satisfy the predetermined conditions continues to be the predetermined number or more for a predetermined period of time.

Further, in one embodiment of the present invention, the control necessity information update instructions may include instructions to update the control necessity information so as to indicate that movements of all of the objects are not controlled under the condition that the number of the objects having the parameter value indicating at least one of the velocity and the angular velocity set at each object, the absolute value of which is equal to or less than the predetermined threshold value, is the predetermined number or more.

Further, in one embodiment of the present invention, the program may further include value update instructions to update the value of the parameter indicating the physical quantity of a collision object, which is the object to collide with other objects, such that amount of changes in at least one of the position and the direction of the collision object is smaller than the case where the value of the parameter is not updated, under the condition that the absolute value of the value indicating the relative velocity of the collision object with respect to another object is equal to or less than the predetermined threshold value of the values indicating the relative velocity.

Further, in one embodiment of the present invention, the value update instructions may include instructions to decrease the value of the parameter indicating the COR between the collision object and other objects.

Further, in one embodiment of the present invention, the control necessity information update instructions include instructions to update the control necessity information so as to indicate that movements of a plurality of objects, which are indicated in the control necessity information as being not controlled, are controlled, in response to the occurrence of the predetermined event.

Further, in one embodiment of the present invention, the program may further include image generation instructions to generate an image that represents the virtual space, in which the objects are placed, viewed from the viewpoint set in the virtual space.

While there have been described what are at present considered to be certain embodiments of the invention, it will be understood that various modifications may be made thereto, and it is intended that the appended claims coverall such modifications as fall within the true spirit and scope of the invention.

Claims

  1. A program stored in a non-transitory computer readable information storage medium, for causing a computer to function as an information processing system for controlling a movement of an object placed in a virtual space, the program including: object changing instructions to change at least one of a position and a direction of an object to be moved placed in the virtual space based on a value of a parameter associated with a physical quantity that is an attribute of the object to be moved;first change determination instructions to determine a first change in the physical quantity of the object to be moved, the first change corresponding to a user's operation;second change determination instructions to determine a second change in the physical quantity of the object to be moved, the second change corresponding to and different from the determined first change;and value changing instructions to change a value of the parameter based on the first change and the second change, wherein the object changing instructions include instructions to change, after the value of the parameter is changed, at least one of the position and the direction of the object to be moved based on the changed value of the parameter, wherein the first change determination instructions include instructions to determine changing a force applied to at least one of a plurality of elements included in the object to be moved, and wherein the second change determination instructions include instructions to determine changing a mass or a moment of inertia of at least one of the elements.
  1. The program according to claim 1 , wherein the first change determination instructions include instructions to determine a change in at least one of a velocity and an angular velocity of the object to be moved with respect to a specific direction, wherein the second change determination instructions include instructions to determine a change in at least one of a velocity and an angular velocity of the object to be moved with respect to a direction different from the specific direction.
  2. The program according to claim 2 , wherein under a condition that the first change determination instructions include instructions to determine increasing at least one of the velocity and the angular velocity of the object to be moved with respect to the specific direction, the second change determination instructions include instructions to determine decreasing at least one of the velocity and the angular velocity of the object to be moved with respect to the direction different from the specific direction.
  3. The program according to claim 1 , wherein the second change determination instructions include instructions to determine increasing at least one of the mass and the moment of inertia of at least one of the elements in which the change in the force is determined, and decreasing at least one of the mass and the moment of inertia of at least one of the rest of the elements.
  4. The program according to claim 4 , wherein the second change determination instructions include instructions to determine increasing at least one of the mass and the moment of inertia of at least one of the elements in which the change in the force is determined, and decrease at least one of the mass and the moment of inertia of all of the rest of the elements.
  5. The program according to claim 4 , wherein the object changing instructions include instructions to change at least one of the position and the direction of the object to be moved based on values of a plurality of parameters, each of the parameters being associated with at least one of a mass and a moment of inertia of each element, and wherein the value changing instructions include instructions to change a value of a parameter associated with at least one of a mass and a moment of inertia of an element in which an increase or a decrease in at least one of the mass and the moment of inertia is determined.
  6. The program according to claim 1 , wherein the program further includes instructions to generate an image representing the virtual space, in which the object is placed, viewed from a viewpoint defined in the virtual space.
  7. A non-transitory computer readable information storage medium storing a program for causing a computer to function as an information processing system for controlling a movement of an object placed in a virtual space, the program including: object changing instructions to change at least one of a position and a direction of an object to be moved placed in the virtual space based on a value of a parameter associated with a physical quantity that is an attribute of the object to be moved;first change determination instructions to determine a first change in the physical quantity of the object to be moved, the first change corresponding to a user's operation;second change determination instructions to determine a second change in the physical quantity of the object to be moved, the second change corresponding to and different from the determined first change;and value changing instructions to change a value of the parameter based on the first change and the second change, wherein the object changing instructions include instructions to change, after the value of the parameter is changed, at least one of the position and the direction of the object to be moved based on the changed value of the parameter, wherein the first change determination instructions include instructions to determine changing a force applied to at least one of a plurality of elements included in the object to be moved, and wherein the second change determination instructions include instructions to determine changing a mass or a moment of inertia of at least one of the elements.
  8. An information processing system for controlling a movement of an object placed in a virtual space, comprising: an object changing unit for changing at least one of a position and a direction of an object to be moved placed in the virtual space based on a value of a parameter associated with a physical quantity that is an attribute of the object to be moved;a first change determination unit for determining a first change in the physical quantity of the object to be moved, the first change corresponding to a user's operation;a second change determination unit for determining a second change in the physical quantity of the object to be moved, the second change corresponding to and different from the determined first change;and a value changing unit for changing a value of the parameter based on the first change and the second change, wherein the object changing unit changes, after the value of the parameter is changed, at least one of the position and the direction of the object to be moved based on the changed value of the parameter, wherein the first change determination unit determines changing a force applied to at least one of a plurality of elements included in the object to be moved, and wherein the second change determination unit determines changing a mass or a moment of inertia of at least one of the elements.
  9. An information processing method for controlling a movement of an object placed in a virtual space, the method comprising: changing at least one of a position and a direction of an object to be moved placed in the virtual space based on a value of a parameter associated with a physical quantity that is an attribute of the object to be moved;determining a first change in the physical quantity of the object to be moved, the first change corresponding to a user's operation;determining a second change in the physical quantity of the object to be moved, the second change corresponding to and different from the determined first change;changing a value of the parameter based on the first change and the second change;and changing, after the value of the parameter is changed, at least one of the position and the direction of the object to be moved based on the changed value of the parameter, wherein the first change changes a force applied to at least one of a plurality of elements included in the object to be moved, and wherein the second change changes a mass or a moment of inertia of at least one of the elements.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.