Simulation of multiple connected bodies for real-time application
AssigneeSquare Enix Co., Ltd.
InventorsGary Linn Snethen, Sree Harsha Kalangi
Life of this patent
Estimating the term…
Abstract
Embodiments relate to simulating the movements of three or more bodies connected on a cord for use in real-time videogame applications. The state of the bodies such as position, velocity, and orientation of the bodies connected by a cord are determined in single pass without iteration. For a given time step and the state of the bodies in the time step, the Jacobian matrix for the connected bodies is calculated. The, the tension in the cord is calculated based on the Jacobian matrix. From the tension, the state of the bodies for the next time step is obtained.
Claims12
A method of simulating movements of connected bodies, comprising:
- (a) receiving constraint parameters describing constraints associated with physical properties of three or more bodies connected by a cord, wherein the constraint parameters include a mass of the cord that is greater than zero;
- (b) receiving a state of the bodies including at least one of a position, linear velocity, angular velocity, mass, inertia tensor, and orientation of the bodies at a current time step;
- (c) receiving external force parameters or external impulse parameters, the external force parameters indicative of external forces applied to the connected bodies at the current time step, the external impulse parameters indicative of external impulses applied to the connected bodies at the current time step;
- (d) determining a Jacobian matrix for the connected bodies based on the constraint parameters and the state of the bodies for the current time step;
- (e) determining a tension experienced in the cord at the current time step based on the external force parameters or the external impulse parameters at the current time step and the Jacobian matrix;
- (f) updating the state of the bodies for a next time step subsequent to the current time step based on the determined tension at the current time step;
- and
- (g) sending for display, on a display device, representations of the bodies and the cord at the next time step based on the updated state,
- wherein each of steps (c) through (f) are performed only once for the current time step.
A non-transitory computer readable storage medium with instructions that when executed by a processor cause the processor to:
- (a) receive constraint parameters describing constraints associated with physical properties of three or more bodies connected by a cord, wherein the constraint parameters include a mass of the cord that is greater than zero;
- (b) receive a state of the bodies including at least one of a position, linear velocity, angular velocity, mass, inertia tensor, and orientation of the bodies at a current time step;
- (c) receive external force parameters or external impulse parameters, the external force parameters indicative of external forces applied to the connected bodies at the current time step, the external impulse parameters indicative of external impulses applied to the connected bodies at the current time step;
- (d) determine a Jacobian matrix for the connected bodies based on the constraint parameters and the state of the bodies for the current time step;
- (e) determine a tension experienced in the cord at the current time step based on the external force parameters or the external impulse parameters at the current time step and the Jacobian matrix;
- (f) update the state of the bodies for a next time step subsequent to the current time step based on the determined tension at the current time step;
- and
- (g) sending for display, on a display device, representations of the bodies and the cord at the next time step based on the updated state,
- wherein each of steps (c) through (f) are performed only once for the current time step.
Dependencies are inferred from the claim text.