Method and program for determining posture of skeleton model
The posture determination method employs a monopolar spherical coordinate system to define and restrict the rotation angles of child bones relative to parent bones, addressing the challenge of accurately determining natural postures in skeletal models for human or robot representations.
Patent Information
- Application Number
- PCT/JP2024/029343
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-04
- Filing Date
- 2024-08-19
- Publication Date
- 2025-06-12
AI Technical Summary
Existing technologies face challenges in accurately determining the bent or twisted postures of bones in skeletal models, particularly for characters representing humans or robots, due to limitations in joint angle restrictions and inverse kinematics applications.
A posture determination method using a monopolar spherical coordinate system to define the rotation of child bones relative to parent bones, with parameters μ and ν representing the bending and twisting angles. The method sets limits on these parameters to restrict the movable range, ensuring natural postures are maintained.
This method enables more accurate and natural determination of bone postures in skeletal models, effectively addressing the limitations of existing technologies by ensuring that the postures conform to realistic human or robot movements.
Smart Images

Figure JP2024029343_12062025_PF_FP_ABST
Abstract
Description
Method and program for determining posture of skeletal model
[0001] The technology of the present disclosure relates to a method and program for determining the posture of a skeletal model.
[0002] There is a technology for creating poses and animations of characters in virtual space, such as on a computer screen. In this case, a skeletal model, which consists of multiple bones connected by joints, is sometimes used. Such skeletal models can be used not only in virtual space, but also when controlling objects in real space, such as robots.
[0003] For example, there is a technology for controlling the posture of a skeletal model in which a parent bone and a child bone are connected by a joint, in which a given point on a sphere with a joint as its center point is set as a focus, a plane perpendicular to the axis connecting the center point and the focus is set as a projection plane, and the range of motion of the joint is set on the projection plane (see, for example, Patent Document 1).
[0004] In addition, an angle range boundary circle is set on the spherical surface of the sphere centered on the joint to define the boundary of the angle range of the child bone, so as to control the movement of the child bone by limiting the angle range at the joint of the child bone relative to the parent bone. The angle range boundary circle passes through the intersection 1 between the sphere centered on the joint and the parent bone or an extension line of the parent bone, and is expressed as μ=2 tan -1 (-z / (x+1)), ν=2tan -1 There is a technique that uses a monopolar spherical coordinate system (μ,ν) having a relationship of (y / (x+1)) (see, for example, Patent Document 2). However, with the conventional technique, it is not easy to determine the bending or twisting posture of bones of many types of characters, including human characters.
[0005] JP 2009-70340 A JP 2012-164162 A
[0006] The disclosed technology aims to provide a technology that can more easily and accurately determine the posture of bones of a character that virtually represents a human or the like in a virtual space, or a robot that exists in real space.
[0007] The disclosed technology is a posture determination method for determining the posture of a child bone in a skeletal model in which a parent bone and a child bone are connected by a joint, using a plurality of parameters that define the rotation of the child bone relative to the parent bone, the method comprising: making a determination on at least one of the plurality of parameters; correcting the plurality of parameters based on the determination; and determining the posture of the child bone using the corrected plurality of parameters.
[0008] making the determination includes making a first determination as to whether any of the plurality of parameters exceeds a first limit, the first limit being expressed as a limit where at least one parameter affects limits associated with two or more other parameters.
[0009] The attitude determination method may include modifying the plurality of parameters using the first limit if the first determination is that the plurality of parameters exceed the first limit, so that the plurality of parameters are within the first limit.
[0010] The first restriction may include a restriction that, when at least one parameter increases or decreases, the ranges of the other two or more parameters all decrease monotonically.
[0011] In a three-dimensional space in which the three parameters are orthogonal coordinate axes, the first restriction may be a restriction by a shape including a three-dimensional shape whose cross-sectional area monotonically decreases along one direction. The three-dimensional shape may be a cone. The three-dimensional shape may be a part of a cone.
[0012] The three-dimensional shape may also be a three-dimensional shape in which the shape of the bottom surface has an area and the shape of the top end is a line segment or curve that is located at a predetermined distance from the bottom surface in the one direction.
[0013] The three-dimensional shape may also be a part of a three-dimensional shape in which the shape of the bottom surface has an area and the shape of the top end is a line segment or curve located at a predetermined distance in the one direction from the bottom surface.
[0014] Furthermore, the change in the pose of the skeletal model due to a change in a parameter in one direction may be a change in the pose in a direction away from a preset initial pose of the skeletal model. Furthermore, the first restriction may include a shape that combines three-dimensional shapes whose cross-sectional area monotonically decreases. Furthermore, the method may further include, before making the determination, detecting whether inverse kinematics is applied to the deformation of the skeletal model,
[0015] making the determination further includes, when the detection indicates that inverse kinematics is not being applied, making a second determination as to whether any of the plurality of parameters exceeds a second limit, the second limit being within the range of the first limit;
[0016] The modifying the plurality of parameters may further include, when the detection indicates that inverse kinematics is not applied, modifying the plurality of parameters using the second limit so that the plurality of parameters are within the second limit if the second determination determines that the second limit is exceeded. The attitude determination method may also be a program that causes a computer to execute the attitude determination method. Alternatively, the program may be stored in a non-transitory storage medium.
[0017] The disclosed technology can provide a technology that can more easily and accurately determine the posture of bones of a character that virtually represents a human or the like in a virtual space, or a robot that exists in real space.
[0018] FIGS. 1A and 1B show a character, a skeletal model, parent ribs, child ribs, and a coordinate system. FIGS. 2A and 2B show monopolar spherical coordinates (FIG. 2B shows a view of FIG. 2A from the opposite side). FIGS. 3A to 3C show how the intersections of a group of planes and a unit sphere form a vertical grid. FIGS. 4A to 4C show how the intersections of a group of planes and a unit sphere form a horizontal grid. FIGS. 5A and 5B show the relationship between the orientation of the planes and φ and θ. FIG. 6A shows φ and μ of point P on the xz plane. FIG. 6B shows θ and ν of point P on the xy plane. FIG. 7 shows a movable area achieved by setting upper and lower limits for μ and ν. FIGS. 8A to 8D show how the posture of the entire arm, including the upper arm (upper arm 800a to upper arm 800d) of the character 102, changes. FIG. 9 shows examples of coordinate axes for the upper arm 124 and clavicle 122. FIGS. 10A to 10C are diagrams showing coordinate axes X0, Y0, and Z0, coordinate axes X1, Y1, and Z1, and upper arm twist λ890d. FIGS. 11A and 11B are diagrams showing an example of limiting the range of a parameter in a three-dimensional space in which parameters s, t, and u are mutually orthogonal coordinate axes, using the technique of the present invention. FIG. 12A shows a state in which point 1202 indicates a parameter value outside the limited range during inverse kinematics calculation or joint manipulation by the operator. FIG. 12B is a schematic diagram showing an example of how the transition of a parameter changes due to the correction of the present invention when an uncorrected parameter transitions from point 1251 to point 1255. FIGS. 13A and 13B are diagrams showing modified examples of a movable range solid in which the range of a parameter is limited in a three-dimensional space in which parameters s, t, and u are mutually orthogonal coordinate axes. FIGS. 14A to 14H are examples of the shape of a movable range solid. Figures 15A to 15C are views of a movable area solid in stu space viewed from a direction parallel to the bottom. Figures 16A and 16B are views showing the cross-sectional contour shape of an oval. Figure 17 is a view showing the cross-sectional contour shape of an ellipse. Figure 18 is a flowchart showing a method of an embodiment. Figure 19 is a flowchart showing a method of posture control when inverse kinematics is applied and when inverse kinematics is not applied. Figure 20 is a hardware configuration diagram of an embodiment.
[0019] Before describing in detail an embodiment of the disclosed technology, a monopolar coordinate system that can be used in the technology of the present disclosure to determine the posture of a skeletal model in which bones and joints are combined will be described. An example of how posture can be determined when this monopolar coordinate system is used will be shown. Note that the monopolar coordinate system is just an example, and the technology of the present disclosure does not prevent the use of coordinate systems other than the monopolar coordinate system.
[0020] [1. Monopolar Spherical Coordinates] As an example, assume that the skeletal model shown in FIG. 1A is used. This skeletal model is a model of a human skeleton. A character 102 has a skeletal model including a clavicle 122, a shoulder joint 123, and a humerus 124. For example, the range of motion of the arm at the shoulder joint is limited. Creating a pose in which the arm is bent at an angle (bending, twisting) beyond this limit would be far removed from a model of a real human. To create a skeletal model that can assume a natural pose for a human, it is necessary to impose certain limitations on the range of motion of the bones at the shoulder joint, for example. As described above, to represent the orientation of the bones in the skeletal model ( FIG. 1A ), a coordinate system is defined for each bone, as shown in FIG. 1B .
[0021] If we create a unit sphere (a sphere with a radius of 1) centered on the joint and denote the intersection of the x-axis (where x > 0) of the child rib and the sphere as P, the bending state of the joint can be expressed by the position of point P on the sphere. One method for expressing joint rotation (bending and twisting) is to use three-axis rotation angles (Euler angles). For example, if rotation is applied around the x-axis, y-axis, and z-axis in that order based on the coordinate system of the parent rib, and we look at the relationship between the rotation angles around each axis and the position of point P, the z-axis rotation angle corresponds to longitude, and the y-axis rotation angle corresponds to latitude. Therefore, if we create a grid on the sphere with equally spaced y-axis and z-axis rotation angles, the result will be a shape similar to the meridians and parallels of a globe. The two points corresponding to the North Pole and South Pole become singular points in the angle expression and are difficult to handle, so it is desirable to have as few singular points as possible.
[0022] In contrast to this, the method disclosed in Patent Document 2 is known as a method for reducing the number of singular points to one. The characteristics of this method can be represented by a grid on a sphere as shown in Figures 2A and 2B. This grid can be considered as a coordinate system created on a sphere. Because there is one pole (singular point), this coordinate system will be referred to as a "monopolar spherical coordinate" in this specification.
[0023] The following points will be discussed regarding this monopolar spherical coordinate system: ・Method of limiting joint angles using monopolar spherical coordinate system
[0024] [2. Configuration of a Monopolar Spherical Coordinate System] Generally, when a two-dimensional coordinate system is scaled, it becomes a grid. In the following description, the term "grid" may be used for convenience, but this does not simply mean a grid, but also includes the meaning of a coordinate system.
[0025] 3A to 3C are diagrams illustrating vertical lines of a grid on a unit sphere.
[0026] Let the point with coordinates (-1, 0, 0) be P* and call it the "pole." Let ly be the line that passes through the pole P* and is parallel to the y-axis. As shown in Figure 3A, a group of planes with equal angular intervals that include ly are prepared. As shown in Figure 3B, this group of planes is superimposed on a unit sphere. As shown in Figure 3C, the intersections between this group of planes and the unit sphere are taken as vertical lines of the grid on the unit sphere.
[0027] 4A to 4C are diagrams illustrating the horizontal lines of the grid on the unit sphere. Similarly, as shown in FIG. 4A, a line lz passing through the pole P* and parallel to the z-axis is defined as a group of planes at equal angular intervals including lz. As shown in FIG. 4B, this group of planes is superimposed on the unit sphere. As shown in FIG. 4C, the intersections between this group of planes and the unit sphere are defined as the horizontal lines of the grid.
[0028] As shown in Figures 5A and 5B, the orientation of the plane containing the line ly is represented by angle φ, and the orientation of the plane containing the line lz is represented by angle θ. The signs of φ and θ are positive in the directions shown in Figures 5A and 5B. The position of point P on the sphere is determined as the intersection of three surfaces: a plane determined by φ, a plane determined by θ, and the unit sphere. Let μ≡2φ and ν≡2θ, and use μ and ν to represent the position on the sphere.
[0029] Using μ and ν instead of φ and θ as they are has the following advantages. Consider the case where point P is on the xz plane (i.e., ν = 0) as shown in Figure 6A. The orientation of the child bone is OP. Let Q be the point with coordinates (1, 0, 0).
[0030] ∠OP*P = ∠OPP* = φ ∠OP*P + ∠OPP* = ∠QOP ∴∠QOP = 2φ = μ Therefore, when v = 0, μ is the rotation angle of the child bone about the y-axis. Similarly, as shown in Figure 6B, when point P is on the xy plane (i.e., μ = 0), v is the rotation angle of the child bone about the z-axis.
[0031] In this way, using μ and ν makes it easy to intuitively grasp the state of rotation (the orientation of the child bones). For example, Figure 2 shows a grid created with μ and ν values at 10° intervals, but it can be seen that the grid is equally spaced 10° around the circumference on the xy plane and xz plane.
[0032] [3. Monopolar spherical coordinates and child bone orientation]
[0033] The unit vector representing the orientation of the child bone is v≡(x, y, z), and this is expressed in monopolar spherical coordinates as (μ, ν). The relationship between the two is expressed by the following equation (in this specification, v represents a vector):
[0034] where M, N, and T are as follows:
[0035]
[0036] The control of specific angles (bending and twisting) will be described in detail below.
[0037] [4. Setting of Movable Area] [Angle Restriction by Rectangular Area] By setting upper and lower limits for the values of μ and ν, the movable area can be set as shown in FIG.
[0038] [Embodiment] In the above method, the orientation of the child bones is defined in a monopolar coordinate system (μ,ν). Furthermore, the torsion angle of the child bone, i.e., the rotation angle around the longitudinal direction (x-axis) of the child bone, is defined as λ. Note that the bending and twisting of a joint are collectively referred to as joint rotation.
[0039] In the following description, the left upper arm, left hand, etc. will be simply referred to as the upper arm, hand, etc., and the notation of left and right will be omitted.
[0040] 8A to 8D are diagrams showing changes in the posture of the entire arm including the upper arm (upper arm 800a to upper arm 800d) of the character 102. A skeletal model such as that shown in FIG. 1A is set for the character 102.
[0041] It is assumed that the position and posture of the collarbone are fixed and that the part beyond the shoulder joint is moved. Also, the twist of the wrist (twist of the hand relative to the forearm) is not changed. In Figure 8A, the wrist beyond the upper arm 800a of the character 102 is being grasped by a pointer such as a mouse operated by an operator, and is being raised in the direction of arrow 890a.
[0042] In Figure 8B, the entire arm, including upper arm 800b, is stretched out substantially horizontally using a technique such as inverse kinematics. Note that inverse kinematics is a well-known technique for determining the posture of each bone in a skeletal model, and therefore a description of its operation technique will be omitted. Furthermore, the wrist, which is located beyond upper arm 800b, continues to be pinched by a pointer, such as a mouse, operated by the operator, and is about to be swung up in the direction of arrow 890b.
[0043] In FIG. 8C, the wrist is continuously grasped and moved in the direction of arrow 890c by a pointer such as a mouse operated by an operator, and as a result, the entire arm including upper arm 800c is stretched substantially upward using a technique such as inverse kinematics.
[0044] 8A to 8C, almost no twisting of upper arms 800a to 800c around the longitudinal axis of the upper arms (hereinafter simply referred to as twisting) occurs, so the palms of the hands in Fig. 8C are facing outward from the body. Fig. 8D shows a state in which upper arm 800d connected to the shoulder joint has been twisted in the direction of arrow 890d at the instruction of the operator.
[0045] When comparing the posture of upper arm 800c in Figure 8C with the posture of upper arm 800d in Figure 8D, the posture of upper arm 800d in Figure 8D is more suitable for a posture when a person naturally raises their entire hand up than the posture of upper arm 800c in Figure 8C.
[0046] Therefore, when the wrist is grasped and the entire arm is raised upward from the state of character 102 in Figure 8A using a technique such as inverse kinematics, it is preferable that the state of character 102 in Figure 8D be achieved rather than the state of character 102 in Figure 8C. However, because the posture of Figure 8C is a posture that a human can assume, it is difficult to avoid the posture of Figure 8C simply by restricting the joint angles. Therefore, in the present invention, the posture is changed so that the posture of Figure 8D is achieved rather than the posture of Figure 8C by, for example, intentionally narrowing the range of motion of the twisting rotation and forward / backward rotation of the upper arm in conjunction with raising the upper arm (i.e., changing the rotation angle in the up-down direction).
[0047] FIG. 9 is a diagram showing examples of coordinate axes of the upper arm 124 and clavicle 122. The clavicle 122, which is the parent bone, and the upper arm 124, which is its child bone, are connected by the shoulder joint 123. The coordinate axes X0, Y0, and Z0 of the clavicle have their origins at the base of the clavicle. The coordinate axes X1, Y1, and Z1 of the upper arm have their origins at the shoulder joint 123. The origin of the upper arm exists on the coordinate axis X0 of the clavicle. The upper arm coordinate axis X1 is the direction from the shoulder to the elbow. To make the explanation of rotation easier to understand, the coordinate axis of the clavicle is displayed superimposed on the shoulder joint 123. The bending of the upper arm 124 with respect to the clavicle is represented by the monopolar coordinate system (μ,ν) described above. The twisting of the upper arm 124 with respect to the clavicle is represented by the rotation angle λ around the axis X1. Therefore, the posture of the upper arm 124 can be defined by three parameters (λ,μ,ν).
[0048] The above posture of the upper arm 124 is defined in three-dimensional space using a monopolar coordinate system, but other parameters that can define the bone posture (Euler angles, quaternions) can be used. In general, the posture of a bone in three-dimensional space can be defined by three parameters.
[0049] In the following explanation, these three parameters will be described using (s, t, u). For example, in the above monopolar coordinate system, the parameters (s, t, u) correspond to each other as follows: s = λ t = μ u = ν
[0050] 10A to 10C are diagrams showing the coordinate system XYZ, the axis X1, and the twist λ890d of the upper arm.
[0051] In the embodiment shown below, a method will be described in which the wrist is lifted in response to an instruction from an operator or the like, resulting in the character's posture in Fig. 10C from the posture in Fig. 10A. Figs. 11A and 11B are diagrams showing an example of limiting the range of a parameter in a three-dimensional space in which the parameters s, t, and u are orthogonal coordinate axes, using the method of the present invention. A solid of motion range 1102 is a solid that indicates the range of motion (allowable range) of the parameter, and the surface and internal area of the solid of motion range 1102 constitute the range of motion.
[0052] The movable area solid 1102 has a bottom surface 1102c and an upper end 1102a, and the area of a cross section 1102b parallel to the bottom surface of the movable area solid 1102 is set to decrease from the bottom surface 1102c to the upper end 1102a. In this case, the larger the parameter u, the narrower the range in which the other two parameters s and t satisfy the constraints.
[0053] For example, if u is the parameter v (i.e., a parameter indicating the bending of the upper arm 124 around the Z0 axis), and the parameter u increases as the hand is raised in the order of Figures 8A, 8B, and 8D, then in accordance with this movement, the range of the parameter μ (i.e., the rotation of the upper arm 124 around the Y0 axis) corresponding to the value of the parameter t is limited to a predetermined range, and the range of the parameter λ (i.e., the twist of the upper arm 124 around the X1 axis) corresponding to the value of the parameter s is limited to a predetermined range.
[0054] In this way, by setting the shape of the movable area solid 1102 so that the value of the twist parameter s of the upper arm 124 is limited so that the palm faces forward when the arm is raised, it is possible to make the raised arm appear more natural.
[0055] 11A, the inside of cross section 1102b shows the limit ranges of the parameters when the upper arm 124 is being raised. In this case, the value of parameter u is u1. The limit range that parameter s can take at this time is between s1a and s1b. In addition, the limit range that parameter t can take at this time is between t1a and t1b.
[0056] The upper end 1102a indicates the parameter limit range when the upper arm 124 is fully raised. In this case, the value of the parameter u is u2. The possible value of the parameter s at this time is s2. In addition, the possible value of the parameter t at this time is t2. In this case, s2 is the value of the twist of the upper arm with the palm facing forward when the hand is raised. Note that if the posture with the arm lowered in FIG. 8A is the initial pose, the direction in which the parameter u increases represents a change in the pose in which the arm is raised up, and can be said to be a change in the pose in a direction away from the initial pose. FIGS. 12A and 12B are diagrams showing examples of parameter correction when the parameters are outside the limit range.
[0057] 12A, point 1202 indicates a state in which a parameter has become outside the limit range during inverse kinematics calculation, joint manipulation by the operator, etc. In this case, point 1202 can be corrected by moving it in the direction of arrow 1212 or arrow 1214 so that the parameter is on the surface or inside of movable area solid 1104.
[0058] The movement indicated by the arrow 1214 is a movement to a point on the surface of the movable area solid 1104 that is closest to the point 1202. The movement indicated by the arrow 1212 is a movement to a point on the contour obtained by the intersection of the movable area solid 1104 and a plane that includes the point 1202 and is parallel to the bottom surface 1220, and is closest to the point 1202. Details of this correction method will be described later.
[0059] 12B is a diagram schematically showing an example of how the transition of a parameter changes due to the modification of the present invention when an unmodified parameter transitions from point 1251 to point 1255. The transition curve from point 1251 to point 1255 intersects with the surface of the movable area solid 1104 at point 1253. A curve 1252 representing the transition from point 1251 to point 1253 is located inside the movable area solid 1104. A curve 1254 representing the transition from point 1253 to point 1255 is located outside the movable area solid 1104.
[0060] The curve 1252 is located within the movable area solid 1104 and is therefore within the restricted range and is not modified. The parameter u transitions from u1 to u2, the parameter s remains at s1, and the parameter t transitions from t1 to t2. In this case, since s remains at the value s1, the twist of the upper arm does not change.
[0061] The curve 1254 is outside the limit range because it is located outside the movable area solid 1104, and is therefore subject to modification. Through modification, the curve 1254 becomes a curve 1264 on the surface of the movable area solid 1104. The parameter u transitions from u2 to u3 both before and after modification. In the transition before modification (curve 1254), the parameter s remains at s1, and the parameter t transitions from t2 to t3a. In the transition after modification (curve 1264), the parameter s transitions from s1 to s2, and the parameter t transitions from t2 to t3b. Thus, the transitions of the parameters s and t change through modification. Because the parameter s transitions from s1 to s2, a twist occurs in the upper arm 124, and the palm faces forward. In this way, when the posture of a skeleton model is changed using the technique of the present invention, the posture of the skeleton model changes to a more natural posture.
[0062] 14A to 14H are examples of the shape of a movable area solid. The direction perpendicular to the bottom surface of the movable area solid is the height direction, and the shape of the movable area solid is shown using contour lines. The movable area solid shown in FIG. 14A is a cone. The top end of the movable area solid is a point, and the bottom surface is a circle. All contour lines are circles.
[0063] The movable area solid shown in Figure 14B has a line segment at the top and a circle at the bottom. The contour lines other than those at the top and bottom are oval. As in this example, the shape of the movable area solid may be a shape other than a cone. The movable area solid shown in Figure 14C has a point at the top and an oval at the bottom. The contour lines other than those at the top are oval. The movable area solid shown in Figure 14D has a line segment at the top and an oval at the bottom. The contour lines other than those at the top are oval.
[0064] The movable area solid shown in Figure 14E has a line segment at the top and an oval bottom. The contour lines other than the top are oval. As in this example, the top and bottom may be misaligned. In other words, the shape obtained by vertically projecting the top shape onto the bottom does not have to be located at the center of the bottom. The movable area solid shown in Figure 14F has a line segment at the top and a circle at the bottom. The contour lines other than the top and bottom are ellipses. The movable area solid shown in Figure 14G has a point at the top and an ellipse at the bottom. The contour lines other than the top are ellipses. The movable area solid shown in Figure 14H has a line segment at the top and an ellipse at the bottom. The contour lines other than the top are ellipses.
[0065] The shape of the upper end may also be a curved segment. Furthermore, the shape of the movable area solid may be, for example, a shape obtained by removing a portion above a certain height from the shapes shown in Figures 14A to 14H. For example, removing a portion above a certain height from the shape shown in Figure 14A results in a truncated cone. A truncated cone may also be the shape of the movable area solid.
[0066] [Correction Method] Figures 15A to 15C are views of the movable area solid in the stu space viewed from a direction parallel to the bottom surface. As shown in Figure 15B, the space outside the movable area solid is divided into three areas: areas A, B, and C. The boundary between area A and area C is a plane that includes the bottom surface. The boundary between area A and area B is a plane that includes the upper end and is parallel to the bottom surface. The parameters (s, t, u) that represent the joint angle correspond to the coordinates of a point in the stu space. If the position of the point corresponding to the joint angle is outside the movable area solid, the position of that point can be corrected.
[0067] The joint angle is corrected by moving the point to the surface of the movable area solid. The correction method differs depending on whether the position of the point before correction is located in area A, B, or C, as shown in Figure 15C.
[0068] If the point before correction is located in area A, such as point P1a, the point is moved on a plane that includes point P1a and is parallel to the bottom surface, and is moved to the closest point P1b on the surface of the movable area solid. Point P1b is set as the position after correction. Details of the movement of points on the plane will be described later.
[0069] If the point before correction is located in area B, the point is first vertically projected onto the boundary plane between areas A and B (i.e., a plane that includes the top end of the movable area solid and is parallel to the bottom). If the position of the projected point is on the surface of the movable area solid, that position is used as the position after correction (for example, point P2a is moved to point P2b). If the position of the projected point is outside the movable area solid, the point is moved on the projected plane to the closest point on the surface of the movable area solid, and used as the position after correction (for example, point P3a is moved to point P3c).
[0070] If the point before correction is located in area C, the point is first vertically projected onto a plane including the bottom surface of the movable area solid. If the projected point is located on the surface of the movable area solid, that position is used as the corrected position (for example, point P4a is moved to point P4b). If the projected point is located outside the movable area solid, the point is moved on the projected plane to the closest point on the surface of the movable area solid, and used as the corrected position (for example, point P5a is moved to point P5c).
[0071] The movement of a point on a plane parallel to the base (or a plane including the base) is performed in the following manner. As an example, we will explain the case where the outline shape of the cross section of the movable area solid by the plane is oval or elliptical. Note that this outline shape is the same as one of the contour lines of the movable area solid.
[0072] [When the cross-sectional contour shape is oval] Figures 16A and 16B are diagrams showing the cross-sectional contour shape of an oval. The area outside the contour is divided into four areas, areas D to G. The boundaries of the areas are perpendicular lines drawn from the endpoints of the straight line portions of the oval. Figure 16B shows an example of moving a point located outside the oval to the closest point on the contour.
[0073] If the point before correction is located in area D, like point Q1a, the closest point Q1b on the contour is on the arc portion of the contour. If the center of the arc is O1, point Q1b is the intersection of the straight line Q1aO1 and the arc. Point Q1b is the position after correction.
[0074] If the point before correction is located in area E, such as point Q2a, the closest point Q2b on the contour is on the straight line portion of the contour. Point Q2b is the foot of a perpendicular line dropped in a straight line from point Q2a. Point Q2b is taken as the position after correction. If the point before correction is located in area F, such as point Q3a, point Q3b is taken as the position after correction using the same method as when the point is located in area D. If the point before correction is located in area G, such as point Q4a, point Q4b is taken as the position after correction using the same method as when the point is located in area E. [When the cross-sectional contour shape is elliptical]
[0075] Figure 17 shows the cross-sectional profile of an ellipse. The point before correction is Q5a. The closest point Q5b on the profile is the position after correction. Compared to when the profile shape is oval, this method has the advantage that no special case distinction is required. The closest point Q5b can be found by solving a quartic equation.
[0076] In the above explanation, for ease of understanding and simplicity, only the twisting of the upper arm has been described. However, in general, when, for example, pinching the wrist and changing the posture of a skeletal model using inverse kinematics, appropriate restrictions are also applied to the twisting of bones other than the upper arm in accordance with the bending of each bone, so that the character 102 changes to a more natural posture. It goes without saying that the technique of the present invention can also be applied to the bending and twisting of bones other than the upper arm. Furthermore, the application of the above joint angle restriction method may be limited to cases where inverse kinematics is used. When inverse kinematics is not used, i.e., when the rotation angle of a joint is manipulated with a manipulator, angle restrictions different from the above joint angle restriction method may be applied. Furthermore, the restriction imposed by the above joint angle restriction method may be defined as a first restriction, and a second restriction that encompasses the first restriction may be prepared in advance. The first restriction may be applied when inverse kinematics is used, and the second restriction may be applied when inverse kinematics is not used.
[0077] 11B is a diagram showing an example in which a movable area solid 1104 is oriented obliquely in a three-dimensional space in which the parameters s, t, and u are orthogonal coordinate axes, and a restricted range is defined by this movable area solid. The bottom surface 1104c is not parallel to the coordinate axes, and the height direction (the direction perpendicular to the bottom surface) is also not parallel to the coordinate axes.
[0078] In this way, it is also possible to limit the range of a parameter using a movable area solid oriented diagonally. In this case, for example, the correction by 1212 in FIG. 12A is performed within the plane of cross section 1104b parallel to bottom surface 1104c. For example, if the coordinate axes of the collarbone are set diagonally and rotation of the arm up changes both parameters t and u, it is advisable to use such a movable area solid oriented diagonally. Figures 13A and 13B are diagrams showing modified examples of movable area solids that limit the range of a parameter in a three-dimensional space in which parameters s, t, and u are orthogonal coordinate axes.
[0079] 13A is a diagram showing a movable area solid 1300 in which a cone 1302 and a cone 1304 are combined and share a common base. Thus, the movable area solid is not limited to a cone. For example, such a geometric restriction 1300 can be applied to the rotation of the thigh bone in response to the movement of swinging the leg back and forth.
[0080] FIG. 13B is a diagram showing the relationship between a cone 1312, which is a movable range solid when inverse kinematics is used, and a rectangular parallelepiped 1314, which is a movable range solid when inverse kinematics is not used. Generally, when bending and twisting bones of the human body, the restrictions tend to be narrower when multiple joints are moved simultaneously than when only one specific joint is moved. When inverse kinematics is applied, the former case is often the case. Therefore, it is natural that the second restriction applied when inverse kinematics is not used is broader than the first restriction applied when inverse kinematics is used. In other words, it is natural that the second restriction is a restriction that encompasses the first restriction. FIG. 13B is a diagram showing this relationship. For example, in the case of a character with a structure in which multiple objects are connected by joints, such as a robot character, the objects themselves may be considered as bones of the present invention, and the method of the present invention may be applied. Quaternions may be used as parameters representing joint rotation. The real part of the quaternion is qr, and the imaginary parts are qx, qy, and qz. A quaternion that represents a rotation has the following properties: 1) qr 2 + qx 2 + qy 2 + qz 2 = 1 2) (qr, qx, qy, qz) and (-qr, -qx, -qy, -qz) represent the same posture. If we always use the expression in 2) above where the real part is non-negative, then qr = (qx 2 +qy 2 +qz 2 ) 1/2qr can be obtained from qx, qy, and qz by the above calculation. Therefore, rotation can be expressed by the three parameters qx, qy, and qz. The method of the present invention may be applied using qx, qy, and qz as parameters expressing rotation.
[0081] 18 is a flowchart showing a method of an embodiment. [S1802] It is checked whether any of a plurality of parameters exceeds a first limit (a limit in which at least one parameter affects the limits of two or more other parameters). If the check is affirmative (Yes), the process proceeds to step S1804. If the check is negative (No), the process proceeds to step S1806.
[0082] [S1804] The plurality of parameters are modified using the first limit so that the plurality of parameters fall within the range of the first limit. [S1806] The plurality of parameters are used to determine the posture of the child bones. By doing the above, a more natural posture of the skeletal model can be obtained. Figure 19 is a flowchart showing a method of posture control when inverse kinematics is applied and when inverse kinematics is not applied.
[0083] [S1902] It is checked whether inverse kinematics is applied. If the check is affirmative (Yes), the process proceeds to S1908. If the check is negative (No), the process proceeds to S1904.
[0084] [S1904] It is checked whether any of the plurality of parameters exceeds a second limit (a limit that encompasses the range of the first limit). If the check is positive (Yes), processing proceeds to S1906. If the check is negative (No), processing proceeds to S1912. [S1906] The plurality of parameters are modified using the second limit so that the plurality of parameters are within the range of the second limit.
[0085] [S1908] It is checked whether any of the multiple parameters exceeds a first limit (a limit where at least one parameter affects the limits of two or more other parameters). If the check is positive (Yes), the process proceeds to S1910. If the check is negative (No), the process proceeds to S1912. [S1910] The multiple parameters are modified using the first limit so that the multiple parameters are within the range of the first limit. [S1912] The posture of the child bone is determined using the multiple parameters.
[0086] In this way, the posture of the skeletal model can be appropriately set by differentiating the restrictions between when inverse kinematics is applied and when inverse kinematics is not applied.
[0087] FIG. 20 is a diagram showing the hardware configuration of the embodiment.
[0088] The hardware configuration of this embodiment includes a CPU 2001, a ROM 2002 in which the program and data of this embodiment can be stored, a RAM 2003, a network interface 2005, an input interface 2006, a display interface 2007, and an external memory interface 2008. These pieces of hardware are connected to each other by a bus 2004.
[0089] The network interface 2005 is connected to a network 2015. The network 2015 may be a wired LAN, a wireless LAN, the Internet, a telephone network, or the like. The input interface 2006 is connected to an input unit 2016. The display interface 2007 is connected to a display unit 2017. The display unit 2017 may be realized by a plurality of display devices. The external memory interface 2008 is connected to a storage medium 2018. The storage medium 2018 may be a RAM, a ROM, a CD-ROM, a DVD-ROM, a hard disk, a memory card, a USB memory, or the like.
[0090] The order of steps in the methods or programs of the illustrated embodiments may be changed as long as there is no contradiction. Furthermore, one illustrated step may be executed multiple times at different times as long as there is no contradiction. Furthermore, multiple steps may be executed simultaneously as long as there is no contradiction. Furthermore, not all steps are essential, and some steps may not exist or may not be executed as long as there is no contradiction.
[0091] The same applies to the elements of the methods defined in the claims. That is, the order of the elements can be changed as long as there is no contradiction. Furthermore, multiple elements can be implemented simultaneously as long as there is no contradiction. The implementation of these elements also falls within the technical scope defined in the claims.
[0092] Each procedure may be executed by an operating system or hardware. The program may be distributed in a state stored in a non-transitory medium.
[0093] The programs and methods for realizing the above-described embodiments can be executed by a computer having the hardware configuration shown in Fig. 20. That is, the programs of the embodiments can be implemented as a method executed by a computer. The programs can be stored in the storage medium 2018, the ROM 2002, or the RAM 2003. Each embodiment can be implemented as a hardware device on which the programs are installed.
[0094] 2001 CPU 2002 ROM 2003 RAM 2004 Bus 2005 Network interface 2006 Input interface 2007 Display interface 2008 External memory interface 2015 Network 2016 Input unit 2017 Display unit 2018 Storage medium
Claims
1. A posture determination method for determining a posture of a child bone in a skeletal model in which a parent bone and a child bone are connected by a joint, using a plurality of parameters that define a rotation of the child bone relative to the parent bone, the posture determination method comprising: making a judgment on at least one of the plurality of parameters; modifying the plurality of parameters based on the judgment; and determining the posture of the child bone using the modified plurality of parameters, wherein making the judgment includes making a first judgment as to whether any of the plurality of parameters exceeds a first limit, the first limit being represented by a limit in which at least one parameter affects limits related to two or more other parameters, and modifying the plurality of parameters includes, if the first judgment is a judgment that the first limit is exceeded, modifying the plurality of parameters using the first limit so that the plurality of parameters are within the range of the first limit.
2. The attitude determination method according to claim 1, wherein the first restriction includes a restriction that, when at least one parameter increases or decreases, the ranges of the other two or more parameters all decrease monotonically.
3. The attitude determination method according to claim 1, wherein the plurality of parameters are three parameters, and in a three-dimensional space having coordinate axes perpendicular to each other, the first constraint is a constraint by a shape including a three-dimensional shape whose cross-sectional area monotonically decreases along one direction.
4. The method of claim 3, wherein the solid shape is a cone.
5. The method of claim 3, wherein the solid shape is a portion of a cone.
6. The attitude determination method according to claim 3, wherein the three-dimensional shape is a three-dimensional shape whose bottom shape has an area and whose top shape is a line segment or curve that is located at a predetermined distance from the bottom in the one direction.
7. The attitude determination method according to claim 3, wherein the three-dimensional shape is a part of a three-dimensional shape whose bottom shape has an area and whose top shape is a line segment or curve located at a predetermined distance from the bottom in the one direction.
8. The posture determination method according to claim 3, wherein the change in the pose of the skeletal model caused by a change in a parameter in one direction is a change in the pose in a direction away from a preset initial pose of the skeletal model.
9. The attitude determination method according to claim 3, wherein the first constraint includes a shape that is a combination of solid shapes whose cross-sectional area monotonically decreases.
10. The posture determination method of claim 1, further comprising, before making the determination, performing detection of whether inverse kinematics has been applied to the deformation of the skeletal model, wherein making the determination further includes making a second determination of whether any of the plurality of parameters exceeds a second limit, the second limit including the range of the first limit, when the detection indicates that inverse kinematics has not been applied, and modifying the plurality of parameters further includes, when the detection indicates that inverse kinematics has not been applied and the second determination is a determination of exceeding the second limit, modifying the plurality of parameters using the second limit so that the plurality of parameters are within the range of the second limit.
11. A program for causing a computer to execute the attitude determination method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Skeleton operation control system, program, and information storage medium
JP2009070340A
Skeleton motion control system, program, and information storage medium
JP2010170279A
Skelton angle control method, apparatus, and program
JP2012164162A
Attitude control method for skeleton model, and program
JP2013120395A
Movement modeling device, method, and program
WO2012111622A1