Controlling objects in a virtual environment
First Claim
1. One or more computer storage hardware devices storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method, the method comprising:
- identifying an object in a virtual environment;
identifying an object skeleton to associate with the object, the object skeleton being identified based on one or more properties of the object;
mapping the object skeleton to the object, the object skeleton being a pre-defined template having one or more joint angles, a joint angle representing a degree of an angle between one or more joints;
receiving a user skeleton, the user skeleton being an image of a skeleton of a user having one or more joint angles; and
mapping the user skeleton to the object skeleton such that the object is controlled by the user, the mapping of the user skeleton to the object skeleton comprising;
mapping a joint position of the user skeleton to a joint scale of the object skeleton, the object being stretched in response to movement of the joint position, andmapping at least one of the one or more joint angles of the user skeleton to control a multi-angle animation, the joint position controlling multiple joints of the object in a non-linear fashion.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and computer-storage media having computer-usable instructions embodied thereon, for controlling objects in a virtual environment are provided. Real-world objects may be received into a virtual environment. The real-world objects may be any non-human object. An object skeleton may be identified and mapped to the object. A user skeleton of the real-world user may also be identified and mapped to the object skeleton. By mapping the user skeleton to the object skeleton, movements of the user control the movements of the object in the virtual environment.
194 Citations
20 Claims
-
1. One or more computer storage hardware devices storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method, the method comprising:
-
identifying an object in a virtual environment; identifying an object skeleton to associate with the object, the object skeleton being identified based on one or more properties of the object; mapping the object skeleton to the object, the object skeleton being a pre-defined template having one or more joint angles, a joint angle representing a degree of an angle between one or more joints; receiving a user skeleton, the user skeleton being an image of a skeleton of a user having one or more joint angles; and mapping the user skeleton to the object skeleton such that the object is controlled by the user, the mapping of the user skeleton to the object skeleton comprising; mapping a joint position of the user skeleton to a joint scale of the object skeleton, the object being stretched in response to movement of the joint position, and mapping at least one of the one or more joint angles of the user skeleton to control a multi-angle animation, the joint position controlling multiple joints of the object in a non-linear fashion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for controlling objects in a virtual environment, comprising:
-
a computing device associated with one or more processors and one or more computer-readable storage media; a data store coupled with the computing device; and a controlling engine that identifies an object; identifies one or more skeletons including a user skeleton and an object skeleton, each skeleton having one or more joint angles, a joint angle representing a degree of an angle between one or more joints, the object skeleton being identified based on one or more properties of the object; maps the one or more joint angles of the user skeleton to the corresponding one or more joint angles of the object skeleton; maps a joint position of the user skeleton to a joint scale of the object skeleton, the object being stretched in response to movement of the joint position, and uses the one or more joint angles of the user skeleton to control a multi-angle animation so that the joint position controls multiple joints of the object in a non-linear fashion; and manages the object skeleton such that the object is manipulated to mirror movements of the user skeleton. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. One or more computer storage hardware devices storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method, the method comprising:
-
identifying an object in a virtual environment, the object being a real-world object that has been digitized into a virtual form; creating an object skeleton to associate with the object in real-time based on degree of freedom of a user; mapping an object skeleton to the object by identifying a center of mass of the object and imposing a center of the object skeleton onto the center of mass of the object, the object skeleton being a pre-defined template; resizing the object to correspond to a size of the object skeleton such that a bottom of the object skeleton is aligned with a bottom of the object; receiving a user skeleton, the user skeleton being a skeleton of the user, the user skeleton being identified by a pose of the user, user skeleton information comprising one or more joint angles of the pose; mapping the user skeleton to the object skeleton such that one or more joint angles of the object skeleton mirror at least one of the one or more joint angles of the pose, a joint angle representing a degree of an angle between one or more joints, the object being stretched in response to movement of a joint position of the user skeleton pose, and the one or more joint angles of the user skeleton controlling a multi-angle animation, the joint position controlling multiple joints of the object in a non-linear fashion; identifying a movement of the user; and in response to identifying the movement of the user, moving the object such that the object'"'"'s movements mirror the movement of the user. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification