Motion capture animation optimization method and related equipment

By converting motion capture animation into keyframe animation and adding constraints, the problem of low efficiency in animation optimization is solved, and automated and efficient animation editing is achieved.

CN121120876APending Publication Date: 2025-12-12HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410757629.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-06-12
Publication Date
2025-12-12

AI Technical Summary

Technical Problem

Existing motion capture animation optimization methods rely on professionals manually adjusting each frame, resulting in low optimization efficiency.

Method used

The motion capture animation is converted into a keyframe animation, and optimized by adding constraints to the target joints. Each frame is automatically edited using interpolation methods between keyframes, including constraining the relative positional relationship or motion trajectory of the target joints and specified objects.

Benefits of technology

It improves the optimization efficiency of motion capture animation, reduces the workload of manual adjustments, and achieves efficient animation effect adjustment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121120876A_ABST
    Figure CN121120876A_ABST
Patent Text Reader

Abstract

The invention provides a motion capture animation optimization method, which comprises the following steps: obtaining a motion capture animation which comprises multiple frames of motion data of a role skeleton; and determining a plurality of key frames in the multi-frame action data, and creating a key frame animation according to the plurality of key frames. An operation instruction of a user is received, the operation instruction adds constraint conditions to the target joint of the role skeleton, and the constraint conditions are used for constraining the spatial attribute of the target joint in the key frame animation. And editing the key frame animation according to the operation instruction to enable the target joint to meet the constraint condition.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of animation production, and in particular to a motion capture animation optimization method and related equipment. Background Technology

[0002] Computer animation is a product of the combination of computer technology and graphics, primarily used to generate digital animation. Character animation is an important branch of computer animation, and with the development of metaverse and digital human technology in recent years, character animation has received increasing attention. In character animation, the character's movements determine the expression of the animated character's vitality, directly affecting the viewer's experience of the animation.

[0003] Motion capture is a crucial source of character movement. It captures human motion to create motion-captured animation, which is represented by the rotation of all joints and the displacement of the root joint of the character's skeleton across discrete time frames. Using motion-captured animation to drive the movement of a 3D model generates vivid character animation. However, motion-captured animation generally has some limitations, necessitating optimization of the motion-captured data.

[0004] Existing optimization methods rely on professionals manually adjusting the joints of the character's skeleton frame by frame. However, this requires a huge amount of work and results in very low optimization efficiency. Summary of the Invention

[0005] This application provides a motion capture animation optimization method and related equipment to improve the optimization efficiency of motion capture animation.

[0006] The first aspect of this application provides a method for optimizing motion capture animation:

[0007] The process involves acquiring motion capture animation, which includes multi-frame motion data of the character skeleton. Multiple keyframes are identified within this motion data, and keyframe animation is created based on these keyframes. User commands are received, which add constraints to target joints of the character skeleton. These constraints restrict the spatial properties of the target joints within the keyframe animation. The keyframe animation is then edited according to the user commands to ensure that the target joints meet the constraints.

[0008] In this application, motion capture animation is converted into keyframe animation, and the keyframe animation is optimized by adding constraints to the target joints. Since the animation effect between keyframes is achieved through interpolation, that is, using the values ​​of keyframes and employing a specific algorithm to calculate the values ​​of intermediate frames, keyframe animation has the characteristics of high freedom and easy editing. Professionals only need to add constraints to automatically edit each frame without the need for manual frame-by-frame adjustments, thereby greatly improving optimization efficiency.

[0009] In one possible implementation, spatial attributes include the relative positional relationship between the target joint and the specified object.

[0010] In this application, by constraining the relative positional relationship between the target joint and the specified object, the animation effect of the character skeleton can be effectively adjusted, thereby improving optimization efficiency.

[0011] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the target joint being on one side of the specified plane.

[0012] In this application, by constraining the target joint to one side of a specified plane, the problem of clipping through can be effectively solved.

[0013] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the target joint being attached to the specified plane.

[0014] In this application, by constraining the target joint to adhere to a specified plane, an animation effect can be effectively achieved in which the body parts of the character remain in contact with the specified plane.

[0015] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the distance between the target joint and the specified plane not exceeding a first preset value.

[0016] In this application, by constraining the distance between the target joint and the specified plane to not exceed a preset value, the animation effect of the character's body parts moving within a certain range of the specified plane can be effectively achieved.

[0017] In one possible implementation, the specified object includes a straight line, and the relative positional relationship is that the distance between the target joint and the specified straight line does not exceed a second preset value.

[0018] In this application, by constraining the distance between the target joint and the straight line to not exceed a preset value, it is possible to effectively achieve the animation effect of the character's body parts being distributed around the straight line.

[0019] In one possible implementation, the spatial properties include the motion trajectory of the target joint.

[0020] In this application, by constraining the motion trajectory of the target joint, it is possible to effectively control the movement of the character's body parts along a specific trajectory.

[0021] A second aspect of this application provides a motion capture animation optimization device, including a processing unit and a transceiver unit:

[0022] The transceiver unit is used to acquire motion capture animation, which includes multi-frame motion data of the character skeleton.

[0023] The processing unit is used to determine multiple keyframes in multi-frame motion data.

[0024] The processing unit is also used to create keyframe animations based on multiple keyframes.

[0025] The transceiver unit is also used to receive user operation instructions, which add constraints to the target joints of the character skeleton. These constraints are used to constrain the spatial properties of the target joints in keyframe animation.

[0026] The processing unit is also used to edit keyframe animations according to operation instructions so that the target joints meet the constraints.

[0027] In this application, motion capture animation is converted into keyframe animation, and the keyframe animation is optimized by adding constraints to the target joints. Since the animation effect between keyframes is achieved through interpolation, that is, using the values ​​of keyframes and employing a specific algorithm to calculate the values ​​of intermediate frames, keyframe animation has the characteristics of high freedom and easy editing. Professionals only need to add constraints to automatically edit each frame without the need for manual frame-by-frame adjustments, thereby greatly improving optimization efficiency.

[0028] In one possible implementation, spatial attributes include the relative positional relationship between the target joint and the specified object.

[0029] In this application, by constraining the relative positional relationship between the target joint and the specified object, the animation effect of the character skeleton can be effectively adjusted, thereby improving optimization efficiency.

[0030] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the target joint being on one side of the specified plane.

[0031] In this application, by constraining the target joint to one side of a specified plane, the problem of clipping through can be effectively solved.

[0032] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the target joint being attached to the specified plane.

[0033] In this application, by constraining the target joint to adhere to a specified plane, an animation effect can be effectively achieved in which the body parts of the character remain in contact with the specified plane.

[0034] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the distance between the target joint and the specified plane not exceeding a first preset value.

[0035] In this application, by constraining the distance between the target joint and the specified plane to not exceed a preset value, the animation effect of the character's body parts moving within a certain range of the specified plane can be effectively achieved.

[0036] In one possible implementation, the specified object includes a straight line, and the relative positional relationship is that the distance between the target joint and the specified straight line does not exceed a second preset value.

[0037] In this application, by constraining the distance between the target joint and the straight line to not exceed a preset value, it is possible to effectively achieve the animation effect of the character's body parts being distributed around the straight line.

[0038] In one possible implementation, the spatial properties include the motion trajectory of the target joint.

[0039] In this application, by constraining the motion trajectory of the target joint, it is possible to effectively control the movement of the character's body parts along a specific trajectory.

[0040] A third aspect of this application provides a motion capture animation optimization device, including a processor and a memory, wherein the processor is configured to execute instructions stored in the memory to cause the motion capture animation optimization device to perform the method described in the first aspect above.

[0041] The fourth aspect of this application also provides a computer program product containing instructions that, when executed by a computer, cause the computer to perform the method described in the first aspect above.

[0042] The fifth aspect of this application also provides a computer-readable storage medium including computer program instructions, which, when executed by a computer, cause the computer to perform the method described in the first aspect above. Attached Figure Description

[0043] Figure 1 This is a schematic diagram of the system architecture used in this application;

[0044] Figure 2 This is a flowchart illustrating the motion capture animation optimization method in this application;

[0045] Figure 3 A schematic diagram of the character's skeleton;

[0046] Figure 4 This is a schematic diagram of the user adding constraints to the target joint in this application.

[0047] Figure 5 This is a schematic diagram of the user adding constraints to the target joint in this application.

[0048] Figure 6 This is a schematic diagram of the user adding constraints to the target joint in this application.

[0049] Figure 7 This is a schematic diagram of the user adding constraints to the target joint in this application.

[0050] Figure 8 This is a schematic diagram of the motion capture animation optimization device in this application;

[0051] Figure 9 This is a schematic diagram of the motion capture optimization device in this application. Detailed Implementation

[0052] The embodiments of this application are described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. As those skilled in the art will understand, with the development of technology and the emergence of new scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.

[0053] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0054] In character animation, the main sources of character movement include keyframe animation created by animators and motion capture animation obtained through motion capture. Keyframe animation refers to selecting specific, critical states or time points in an animation sequence as "keyframes" and assigning relevant attribute values ​​to these keyframes. These attribute values ​​can be any property that can affect the animation effect, such as position, color, size, and transparency. A key characteristic of keyframe animation is that the position or rotation of joints is defined only at the keyframes, and the values ​​between keyframes are obtained by interpolation between adjacent keyframes. Common interpolation methods include constant interpolation, linear interpolation, and Bézier curve interpolation. Due to its powerful expressiveness and ease of use, Bézier curves are widely used for interpolation in keyframe animation. The advantage of keyframe animation lies in its ease of editing; setting keyframes allows animators to precisely control every detail of the animation. By setting the attribute values ​​of keyframes, such as position, color, and size, animators can precisely define the start, middle, and end states of the animation. Furthermore, different interpolation methods provide diverse options for the transitions between keyframes, allowing for precise control of the transition effects according to the animation requirements, resulting in smoother and more natural animation. In one existing method for optimizing keyframe animation, the animator first manually selects the problematic keyframes and then modifies them. For example, in a keyframe animation of a character doing a somersault, if the character's head passes through the ground, the animator manually selects the keyframe where the character's head passes through the ground, modifies it to adjust the position of the character's head, and then re-interpolates between the keyframes to obtain the corrected keyframe animation.

[0055] Motion capture, also known as motion capture, is a technology that records and processes the movements of people or other objects. Motion capture technology relies on specialized motion capture equipment, which can be categorized into mechanical, acoustic, optical, and electromagnetic types based on their working principles. Currently, the industry commonly uses optical motion capture. Optical motion capture involves attaching markers to the actor performing the action, having multiple cameras capture the positions of these markers, and then reconstructing and rendering these positions onto the corresponding virtual avatar, ultimately mapping the real actor's performance to the motion-captured animation. Because motion capture can only estimate human movement in discrete time, each frame of the motion-captured animation corresponds to data sampled by the motion capture equipment at that specific moment. Motion-captured animation can be understood as a high-dimensional discrete function with respect to time, its dimension determined by the number of joints and degrees of freedom. Therefore, manually adjusting the motion-captured animation involves modifying the value of this high-dimensional function variable by variable, which is extremely time-consuming.

[0056] This application can be applied to, for example Figure 1The system architecture shown includes a motion capture device and a motion capture animation optimization device. The motion capture animation optimization device can be any device that supports motion data correction, such as a smartphone, tablet, computer, or cloud server. The motion capture animation optimization device includes a disk, memory, a processor, and an I / O interface. The disk can be used to store the motion capture animation; the memory can be used to store the relevant program components for executing the methods of this application, user-input operation instructions, and the motion capture animation; the processor can read relevant data from memory, perform calculations, and return the calculation results to the user through memory and the I / O interface.

[0057] Please see Figure 2 The following describes the process of the motion capture animation optimization method in this application:

[0058] 201. Obtain motion capture animation, which includes multi-frame motion data of the character skeleton;

[0059] In this embodiment, motion capture animation can be obtained by sampling human movements using motion capture equipment, or it can be estimated from video using deep learning without relying on motion capture equipment. This embodiment does not limit the method of obtaining motion capture animation. The file format of the motion capture animation is also not limited; for example, the motion capture animation can be a BVH file. A BVH file is a file format used to store 3D human motion data. A BVH file contains skeleton information and data blocks. The skeleton information defines the skeletal structure of the human body, including the hierarchical relationship of bones, the names and positions of joints, and rotational offsets. Specifically, it describes the hierarchical connections from the root node (usually the hip or buttock joint) to various joints (such as the head, shoulder, elbow, wrist, knee, ankle, etc.). Each joint has an associated offset that defines its position relative to its parent joint. In addition, the skeleton information may also include additional information such as bone length and joint rotation range. Please refer to [link to relevant documentation]. Figure 3 , Figure 3This is a schematic diagram of the joint positions of the character skeleton in this embodiment. As shown in the figure, it is assumed that the character skeleton has 19 joints. Among them, the joint indicated by G19 is the root joint, located at the pelvis of the character skeleton, which is also the top-level parent node. The remaining 18 joints are: chest joint indicated by G1, neck joint indicated by G2, right leg joint indicated by G3, left leg joint indicated by G4, right knee joint indicated by G5, left knee joint indicated by G6, right ankle joint indicated by G7, left ankle joint indicated by G8, right foot joint indicated by G9, left foot joint indicated by G10, right elbow joint indicated by G11, left elbow joint indicated by G12, right hand joint indicated by G13, left hand joint indicated by G14, right shoulder joint indicated by G15, left shoulder joint indicated by G16, right hip joint indicated by G17, and left hip joint indicated by G18. It is understood that the character skeleton may include other numbers of joints; this is merely an illustration and should not be construed as a limitation of this application. The data block contains the actual human motion data, i.e., the position and orientation of each joint at different points in time. This data is organized in frames; for each frame, the data block records the rotation angle (or rotation matrix) of each joint, describing the rotation state of that joint relative to its parent joint. By continuously playing these frames, the animation effect of human motion can be presented. The motion capture animation is stored on the disk of the motion capture animation optimization device. If motion capture animation is obtained through motion capture equipment, the motion capture equipment sends the motion capture animation to the motion capture animation optimization device, which then saves it on the disk.

[0060] 202. Identify multiple keyframes in multi-frame motion data;

[0061] Users can operate the motion capture optimization device through its user interface, loading motion capture animations from disk into memory and displaying them on the interface. The memory also includes pre-installed outlier removal, keyframe extraction, and animation curve optimization components. Users can use the outlier removal component to remove outliers from the motion capture animation; outliers are frames where motion changes abruptly. For example, the outlier removal component can set one or more thresholds to detect whether motion changes exceed normal ranges to identify outliers. For instance, it can compare changes in position, velocity, or acceleration between consecutive frames to see if they exceed preset thresholds. Alternatively, by identifying the smoothness and continuity of the trajectory curve, sudden jumps or cliff-like drops can be identified, which typically indicate abrupt motion changes. Statistical methods (such as standard deviation, median absolute deviation, etc.) can also be applied to detect outliers, which may correspond to abrupt frame changes. After identifying outliers, interpolation methods (such as linear interpolation, spline interpolation, etc.) can be used to estimate and replace the data of these frames. If the number of outliers is small and does not affect the overall motion flow, they are directly deleted. After removing outliers, a smooth transition algorithm can be used to ensure the smoothness of the motion and avoid unnatural jumps caused by the removal of abrupt frames.

[0062] Afterwards, users can view the motion-captured animation again on the interface and manually select multiple frames as keyframes. Alternatively, users can use the keyframe extraction component to automatically extract multiple frames from the motion-captured animation as keyframes. Furthermore, users can select the keyframe density in the keyframe extraction component to control the number of keyframes.

[0063] 203. Create keyframe animations based on multiple keyframes;

[0064] After identifying multiple keyframes, the animation curve optimization component fits the interpolation curves between the keyframes to create keyframe animation. An interpolation curve is a mathematical curve describing the transition between two or more keyframes. In animation production, it's used to calculate the properties of intermediate frames between keyframes to make the transitions smoother and more natural. Keyframe interpolation algorithms are used to handle the generation of intermediate frames between keyframes. The most commonly used interpolation algorithms include linear interpolation, Bézier curve interpolation, and spline interpolation. These interpolation algorithms calculate the property values ​​of intermediate frames based on the differences between keyframes (such as changes in position, rotation, color, etc.) to achieve smooth animation transitions. Linear interpolation is the simplest interpolation method, assuming that the animated object changes at a constant speed between two keyframes. It is represented as a straight line on the interpolation curve. Bézier curve interpolation is a more complex interpolation method, allowing animators to control the speed and acceleration of the animated object at different points in time. Bézier curve interpolation can create more natural and fluid animation effects. Spline interpolation is used to smoothly fit values ​​between keyframes to achieve continuous and smooth animation effects. During keyframe animation production, an appropriate interpolation curve is selected based on the animation type and requirements. By adjusting the parameters of the interpolation curve (such as control point positions and curve shape), the transition effects of animated objects between keyframes can be precisely controlled.

[0065] 204. Receive user operation instructions. The operation instructions are to add constraints to the target joints of the character skeleton. The constraints are used to constrain the spatial properties of the target joints.

[0066] Users can view and edit the created keyframe animations in the user interface. In one method, users can manually adjust the interpolation curves in the keyframe animations. As mentioned earlier, interpolation curves describe the transitions between keyframes representing an object's position, rotation, and scaling on the timeline. Different interpolation methods produce different animation effects, such as constant speed, acceleration, and deceleration. Users can change the overall rhythm and speed of the animation by adding, moving, or deleting keyframes according to their animation needs. For scenes requiring acceleration or deceleration, parameters such as the slope and peak value of the curve can be adjusted. For scenes requiring special effects, such as vibration or looping, corresponding special effects can be added in the curve editor. Adding auxiliary interpolation points between two keyframes allows for further fine-tuning of the animation effects. The transition effects of the animation can be changed by dragging the position of the interpolation points and adjusting the speed values.

[0067] In another approach, users can add constraints to one or more target joints of the character's skeleton. These constraints define the spatial properties of the target joint, which refer to its characteristics and state in space. They describe the joint's position in three-dimensional space, such as its relative position to a specified object or its motion trajectory. The motion capture optimization device then edits the keyframe animation based on these user-added constraints, ensuring that each frame of the keyframe animation satisfies the constraints.

[0068] The following sections describe the process of adding constraints to a target joint:

[0069] I. Constraining the relative positional relationship between the target joint and the specified object

[0070] The specified object can be a plane or a line, which will be described below:

[0071] In some animation scenarios, it's necessary to constrain the relative positional relationship between certain joints of a character's skeleton and a specific plane. In the first step, the user selects the "Add Constraint" option on the interface and chooses "Plane Constraint" from three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the target joint on the character's skeleton and the plane. This plane can be an existing plane in the keyframe animation or a plane created and selected by the user; the specific choice is not limited. In the third step, the user further selects the relative positional relationship between the target joint and the plane. This relative positional relationship can be the target joint being on one side of the plane, the target joint being attached to the plane, or the distance between the target joint and the plane not exceeding a preset value. If the user selects the relative positional relationship as the target joint being on one side of the plane, the user also needs to select which specific side of the plane the target joint is on; if the user selects the relative positional relationship as the distance between the target joint and the plane not exceeding a preset value, the user also needs to enter the specific value of the preset value.

[0072] For example, suppose the left foot joint of a character's skeleton in a keyframe animation clips through the ground. To fix this defect, please refer to [link to relevant documentation]. Figure 4 In the first step, the user selects the option to add constraints on the interface, and chooses planar constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the left foot joint on the character's skeleton and the ground. In the third step, the user further selects the relative position between the left foot joint and the ground as one side of the left foot joint on the ground, and then selects the side where the character's skeleton is located.

[0073] For example, suppose we need to create an animation effect where a character's left hand is always resting on a wall, but in the keyframe animation, the character's left hand joint sometimes separates from and sometimes touches the plane of the wall. To fix this defect, in the first step, the user still selects the option to add constraints on the interface, and chooses planar constraint from the three constraint types: planar constraint, line constraint, and trajectory constraint. In the second step, the user selects the left hand joint on the character's skeleton and the plane of the wall on the interface. In the third step, the user further selects the relative positional relationship between the left hand joint and the plane of the wall on the interface, so that the left hand joint is attached to the plane of the wall.

[0074] For example, suppose we need to create an animation effect where a character jumps continuously with a jump height not exceeding a certain value. However, in the keyframe animation, the distance between the character's left and right ankle joints and the ground is always greater than this value. To fix this defect, in the first step, the user still selects the option to add constraints on the interface and chooses planar constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the left and right ankle joints on the character's skeleton and the ground in the interface. In the third step, the user further selects the relative positional relationship between the left and right ankle joints and the ground so that the distance between the left and right ankle joints and the ground does not exceed the aforementioned value.

[0075] 2. Specify the object as a straight line

[0076] In some animation scenarios, it's necessary to constrain the relative positional relationship between certain joints of a character's skeleton and a specific straight line. In the first step, the user selects the "Add Constraint" option on the interface and chooses "Straight Line Constraint" from the three constraint types: planar constraint, straight line constraint, and trajectory constraint. In the second step, the user selects the target joint and the straight line on the character's skeleton. This straight line can be an existing line in the keyframe animation or a line created and selected by the user; the specific choice is not limited. In the third step, the user further selects the relative positional relationship between the target joint and the straight line. This relative positional relationship ensures that the distance between the target joint and the straight line does not exceed a preset value. Furthermore, the user needs to input the specific value of the preset value.

[0077] For example, suppose you need to create an animation of a character walking while holding onto a railing with their left hand, but the position of the character's left hand joint relative to the railing is significantly off in the keyframe animation. To fix this defect, please refer to... Figure 5In the first step, the user selects the "Add Constraint" option on the interface and chooses "Linear Constraint" from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user creates a straight line along the railing and selects the left hand joint on the character's skeleton relative to this line in the interface. In the third step, the user further selects the relative position between the left hand joint and the line, ensuring the distance between them does not exceed a preset value, and enters the specific value of this preset value. This ensures that the left hand joint is always positioned around the line.

[0078] II. Constraining the movement trajectory of the target joint

[0079] In some animation scenarios, it's necessary to constrain the motion trajectories of certain joints in a character's skeleton. In the first step, the user selects the "Add Constraint" option on the interface and chooses "Trajectory Constraint" from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the target joint of the character's skeleton. The motion capture optimization device then automatically displays the complete motion trajectory of the target joint throughout the keyframe animation on the interface, with the position of the target joint in each frame represented by a marker point. In the third step, the user adjusts the positions of these marker points, thereby changing the motion trajectory of the target joint.

[0080] For example, suppose you need to create an animation effect of a character dancing, but the movement trajectory of the character's right leg joint in the keyframe animation deviates significantly from the ideal. To fix this defect, please refer to... Figure 6 In the first step, the user selects the "Add Constraint" option on the interface and chooses "Trajectory Constraint" from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the left leg joint of the character's skeleton. The motion capture optimization device then automatically displays the complete motion trajectory of the right leg joint throughout the keyframe animation on the interface, with the position of the right leg joint in each frame indicated by a marker point. Of course, Figure 6 This is just a simplified illustration; in actual implementation, adjacent marker points can be connected by line segments to more intuitively represent the movement trajectory of the right foot joint. In the third step, the user can adjust the positions of these marker points, thereby altering the movement trajectory of the right foot joint. The user can adjust the position of each marker point individually, or only a subset of them.

[0081] Alternatively, in another approach: In the first step, the user selects the option to add constraints on the interface and chooses trajectory constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects a starting frame in the keyframe animation and then selects the target joint of the character's skeleton. The motion capture animation optimization device automatically displays the motion trajectory of the target joint after that starting frame on the interface, with the position of the target joint in each frame indicated by a marker point. Similarly, in the third step, the user can adjust the positions of these marker points to change the motion trajectory of the target joint. This method optimizes the user experience. For example, if only the latter half of the keyframe animation has a problem, the user can use the problematic first frame as the starting frame and only need to constrain the motion trajectory of the target joint in the latter half of the animation.

[0082] Alternatively, in another approach: In the first step, the user selects the option to add constraints on the interface and chooses trajectory constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects a start frame and an end frame in the keyframe animation and selects the target joint of the character skeleton. The motion capture animation optimization device then automatically displays the motion trajectory of the target joint after the start frame and before the end frame on the interface, with the position of the target joint in each frame indicated by a marker point. Similarly, in the third step, the user can adjust the positions of these marker points to change the motion trajectory of the target joint. This method optimizes the user experience. For example, if only a section of the keyframe animation has a problem, the user can use the problematic first frame as the start frame and the problematic last frame as the end frame, only needing to constrain the motion trajectory of the target joint in that middle section of the animation.

[0083] Alternatively, in another approach: In the first step, the user selects the option to add constraints on the interface and chooses trajectory constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the target joint of the character skeleton; however, the motion capture optimization device does not display the complete motion trajectory of the target joint throughout the keyframe animation on the interface. Instead, the user manually creates a line segment as the motion trajectory of the target joint.

[0084] For example, please refer to Figure 7In the first step, the user selects the option to add constraints on the interface and chooses trajectory constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects the right foot joint of the character's skeleton, and then draws a line segment on the interface according to the desired animation effect as the complete motion trajectory of the right foot joint in the entire keyframe animation.

[0085] Alternatively, in another approach: In the first step, the user selects the option to add constraints on the interface and chooses trajectory constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects a starting frame in the keyframe animation and chooses the target joint of the character's skeleton. Then, the user draws a line segment on the interface as the motion trajectory of the target joint after the starting frame, according to the desired animation effect.

[0086] Alternatively, in another approach: In the first step, the user selects the option to add constraints on the interface, choosing trajectory constraint from the three constraint types: planar constraint, linear constraint, and trajectory constraint. In the second step, the user selects a start frame and an end frame in the keyframe animation, and then selects the target joint of the character's skeleton. The user then draws a line segment on the interface as the motion trajectory of the target joint after the start frame and before the end frame, according to the desired animation effect.

[0087] 205. Edit the keyframe animation according to the operation instructions so that the target joint meets the constraints.

[0088] After receiving the user's operation commands, the motion capture animation optimization device edits the keyframe animation according to these commands, ensuring that the target joints meet the constraints added by the user, and displays the edited keyframe animation on the operation interface. After reviewing the optimized keyframe animation, the user determines whether further optimization is needed; if so, step 204 is repeated. Alternatively, besides relying on user-added constraints to edit the keyframe animation, the motion capture animation optimization device can also automatically detect keyframe animations. For example, if it detects clipping between the character's left leg joint and the ground, it can automatically constrain the relative position of the left leg joint to one side of the ground, which is the side where the character's skeleton is located. After adding this constraint, the motion capture animation optimization device edits the keyframe animation according to it.

[0089] In this application, motion capture animation is converted into keyframe animation, and the keyframe animation is optimized by adding constraints to the target joints. Since the animation effect between keyframes is achieved through interpolation, that is, using the values ​​of keyframes and employing a specific algorithm to calculate the values ​​of intermediate frames, keyframe animation has the characteristics of high freedom and easy editing. Professionals only need to add constraints to automatically edit each frame without the need for manual frame-by-frame adjustments, thereby greatly improving optimization efficiency.

[0090] The method in this application has been described above. The motion capture animation optimization device in this application is described below:

[0091] Please see Figure 8 The motion capture animation optimization device 800 in this application includes a transceiver unit 801 and a processing unit 802. The motion capture animation optimization device 800 is used to perform the aforementioned... Figure 2 The operations performed by the motion capture animation optimization device in the illustrated embodiment.

[0092] The transceiver unit 801 is used to acquire motion capture animation, which includes multi-frame motion data of the character skeleton.

[0093] Processing unit 802 is used to determine multiple keyframes in multi-frame motion data.

[0094] The processing unit 802 is also used to create keyframe animations based on multiple keyframes.

[0095] The transceiver unit 801 is also used to receive user operation instructions, which are to add constraints to the target joints of the character skeleton. The constraints are used to constrain the spatial properties of the target joints in keyframe animation.

[0096] The processing unit 802 is also used to edit the keyframe animation according to the operation instructions so that the target joint meets the constraints.

[0097] In one possible implementation, spatial attributes include the relative positional relationship between the target joint and the specified object.

[0098] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the target joint being on one side of the specified plane.

[0099] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the target joint being attached to the specified plane.

[0100] In one possible implementation, the specified object includes a specified plane, and the relative positional relationship includes the distance between the target joint and the specified plane not exceeding a first preset value.

[0101] In one possible implementation, the specified object includes a straight line, and the relative positional relationship is that the distance between the target joint and the specified straight line does not exceed a second preset value.

[0102] In one possible implementation, the spatial properties include the motion trajectory of the target joint.

[0103] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computer, it causes at least one computer to perform the aforementioned... Figure 2 The method in the illustrated embodiment.

[0104] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any usable medium that a computing device can store, or a data storage device such as a data center containing one or more usable media. The usable medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct a computer to perform the aforementioned operations. Figure 2 The method in the illustrated embodiment.

[0105] Figure 9 This is a schematic diagram of the structure of a device provided in an embodiment of this application. The device 900 may include one or more central processing units (CPUs) 901 and a memory 905, in which one or more applications or data are stored.

[0106] The memory 805 can be volatile or persistent storage. The program stored in the memory 905 can include one or more modules, each module including a series of instruction operations. Furthermore, the central processing unit 901 can be configured to communicate with the memory 905 and execute the series of instruction operations stored in the memory 905 on the device 900.

[0107] Device 900 may also include one or more power supplies 902, one or more wired or wireless network interfaces 903, one or more input / output interfaces 904, and / or one or more operating systems. Central processing unit 901 can execute the aforementioned... Figure 2 The specific operation of the illustrated embodiment will not be described in detail here.

[0108] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0109] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.

[0110] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0111] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0112] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A method for optimizing motion capture animation, characterized in that, include: Acquire motion capture animation, which includes multi-frame motion data of the character skeleton; Multiple keyframes are identified from the multi-frame motion data; Create a keyframe animation based on the multiple keyframes; Receive user operation instructions, the operation instructions being to add constraints to the target joints of the character skeleton, the constraints being used to constrain the spatial properties of the target joints in the keyframe animation; The keyframe animation is edited according to the operation instructions so that the target joint satisfies the constraints.

2. The method according to claim 1, characterized in that, The spatial attributes include the relative positional relationship between the target joint and the specified object.

3. The method according to claim 2, characterized in that, The specified object includes a specified plane, and the relative positional relationship includes the target joint being on one side of the specified plane.

4. The method according to claim 2, characterized in that, The specified object includes a specified plane, and the relative positional relationship includes the target joint being attached to the specified plane.

5. The method according to claim 2, characterized in that, The specified object includes a specified plane, and the relative positional relationship includes the distance between the target joint and the specified plane not exceeding a first preset value.

6. The method according to claim 2, characterized in that, The designated object includes a straight line, and the relative positional relationship is that the distance between the target joint and the designated straight line does not exceed a second preset value.

7. The method according to claim 1, characterized in that, The spatial attributes include the motion trajectory of the target joint.

8. A motion capture animation optimization device, characterized in that, It includes a processor and a memory, the processor being configured to execute instructions stored in the memory to cause the motion capture optimization device to perform the method as described in any one of claims 1 to 7.

9. A computer program product comprising instructions that, when executed by a computer, cause the computer to perform the method as claimed in any one of claims 1 to 7.

10. A computer-readable storage medium comprising computer program instructions that, when executed by a computer, perform the method as claimed in any one of claims 1 to 7.