Animation data repairing method and device, equipment, storage medium and program product

CN117011498BActive Publication Date: 2026-10-09TENCENT TECH SHANGHAI
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202210454407.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-27
Publication Date
2026-10-09
Estimated Expiration
2042-04-27

AI Technical Summary

Technical Problem

但此过程通常需要耗费大量的人力和时间,且往往需要等待数小时甚至数天才能得到几十秒到几分钟的动画数据,动画数据的修复效率不高

Benefits of technology

[0021] By creating colliders for each object in the animation data to be repaired, and then performing collision detection on the multi-frame animation data corresponding to the animation data to be repaired based on the created colliders, key frame data groups are obtained, thus realizing the automatic acquisition of the interlacing process. Compared with the related technologies that obtain the interlacing process by manually detecting frame by frame, the technical solution provided by this application embodiment can improve the acquisition efficiency of the interlacing process, thereby improving the repair efficiency of the animation data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117011498B_ABST
    Figure CN117011498B_ABST
Patent Text Reader

Abstract

The application discloses an animation data repairing method and device, equipment, a storage medium and a program product, and relates to the technical field of data processing. The method comprises the following steps: acquiring to-be-repaired animation data obtained by means of motion capture data redirection; creating a collision body for each object in the to-be-repaired animation data, so as to obtain a collision body set corresponding to each object; performing collision detection on the objects in a plurality of frames of animation data based on the collision body set corresponding to each object, so as to obtain at least one key frame data group, each key frame data group corresponding to an interpenetration process; obtaining at least one repaired data segment based on the at least one key frame data group; and superimposing the at least one repaired data segment and the to-be-repaired animation data, so as to obtain repaired animation data. According to the application, collision detection is performed on each object in to-be-repaired animation data, so that automatic acquisition of key frame data groups (i.e., interpenetration processes) is realized, and the repairing efficiency of animation data is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to an animation data repair method, apparatus, device, storage medium, and program product. Background Technology

[0002] Currently, animation can be created based on motion capture data. However, because the height ratio of the motion capture object is inconsistent with the height ratio of the animated character, there are often overlapping phenomena in the animation data obtained by retargeting, such as overlapping of limbs between animated characters, or overlapping of limbs between animated characters and objects in the animation.

[0003] In related technologies, animators manually inspect frame by frame based on reference videos (such as the video corresponding to motion capture data) or the needs of the motion director to identify animation data segments with interlacing. These segments are then repaired to obtain the repaired animation data. However, this process typically requires a significant amount of manpower and time, often taking hours or even days to obtain only tens of seconds to several minutes of animation data, resulting in low efficiency in animation data repair. Summary of the Invention

[0004] This application provides an animation data repair method, apparatus, device, storage medium, and program product, which can improve the efficiency of animation data repair. The technical solution may include the following.

[0005] According to one aspect of the embodiments of this application, an animation data restoration method is provided, the method comprising:

[0006] Acquire the animation data to be repaired, which includes multi-frame animation data obtained by redirecting motion capture data;

[0007] Colliders are created for each object in the animation data to be repaired, resulting in a collider set for each object, wherein the collider set includes at least one collider.

[0008] Based on the collider set corresponding to each object, collision detection is performed on the objects in the multi-frame animation data to obtain at least one keyframe data group, and each keyframe data group corresponds to an interleaving process.

[0009] Based on the at least one keyframe data group, at least one repaired data segment is obtained, wherein the repaired data segment refers to the data segment after the interleaving process has been repaired.

[0010] According to the time periods corresponding to the at least one repaired data segment, the at least one repaired data segment is superimposed on the animation data to be repaired to obtain the repaired animation data.

[0011] According to one aspect of the embodiments of this application, an animation data restoration apparatus is provided, the apparatus comprising:

[0012] An animation data acquisition module is used to acquire animation data to be repaired, the animation data to be repaired including multi-frame animation data obtained by redirecting motion capture data;

[0013] The collision body creation module is used to create collision bodies for each object in the animation data to be repaired, and to obtain a collision body set corresponding to each object, wherein the collision body set includes at least one collision body.

[0014] The keyframe acquisition module is used to perform collision detection on the objects in the multi-frame animation data based on the collider sets corresponding to each object, and obtain at least one keyframe data group, with each keyframe data group corresponding to an interleaving process.

[0015] The repair fragment acquisition module is used to obtain at least one repair data fragment based on the at least one keyframe data group, wherein the repair data fragment refers to the data fragment after the interleaving process has been repaired.

[0016] An animation data repair module is used to overlay the at least one repaired data segment with the animation data to be repaired according to the time period corresponding to the at least one repaired data segment, so as to obtain repaired animation data.

[0017] According to one aspect of the embodiments of this application, a computer device is provided, the computer device including a processor and a memory, the memory storing a computer program, the computer program being loaded and executed by the processor to implement the above-described animation data repair method.

[0018] According to one aspect of the embodiments of this application, a computer-readable storage medium is provided, wherein a computer program is stored in the storage medium, the computer program being loaded and executed by a processor to implement the above-described animation data repair method.

[0019] According to one aspect of the embodiments of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the aforementioned animation data restoration method.

[0020] The technical solutions provided in this application embodiment may have the following beneficial effects:

[0021] By creating colliders for each object in the animation data to be repaired, and then performing collision detection on the multi-frame animation data corresponding to the animation data to be repaired based on the created colliders, key frame data groups are obtained, thus realizing the automatic acquisition of the interlacing process. Compared with the related technologies that obtain the interlacing process by manually detecting frame by frame, the technical solution provided by this application embodiment can improve the acquisition efficiency of the interlacing process, thereby improving the repair efficiency of the animation data. Attached Figure Description

[0022] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0023] Figure 1 This is a schematic diagram of the implementation environment of a solution provided in one embodiment of this application;

[0024] Figure 2 This is a flowchart of an animation data repair method provided in one embodiment of this application;

[0025] Figure 3 This is a schematic diagram of a collider creation method provided in one embodiment of this application;

[0026] Figure 4 This is a flowchart of a method for obtaining keyframe data groups according to an embodiment of this application;

[0027] Figure 5 This is a schematic diagram illustrating the interlacing repair of an animated character interacting with the ground, provided in one embodiment of this application;

[0028] Figure 6 This is a schematic diagram illustrating the interlacing repair of interactions between animated characters according to one embodiment of this application;

[0029] Figure 7 This is a schematic diagram illustrating the creation of colliders during interactions between animated characters, provided in one embodiment of this application.

[0030] Figure 8 This is a schematic diagram illustrating the creation of colliders during the interaction between an animated character and a prop, provided in one embodiment of this application.

[0031] Figure 9 This is a schematic diagram of collision detection under a bounding sphere provided in one embodiment of this application;

[0032] Figure 10 This is a block diagram of an animation data repair apparatus provided in one embodiment of this application;

[0033] Figure 11 This is a block diagram of an animation data repair apparatus provided in another embodiment of this application;

[0034] Figure 12 This is a block diagram of a computer device provided in one embodiment of this application. Detailed Implementation

[0035] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0036] Before describing the embodiments of this application, some terms involved in this application will be defined and explained.

[0037] 1. Motion Capture (Mocap): The process of recording motion data of a motion capture object (such as a human body, animal, or other moving object) using a camera or inertial device.

[0038] 2. Retargeting: A computer graphics term that specifically refers to the process of mapping motion capture data obtained from motion capture objects onto animated characters (or robots, game characters, etc.).

[0039] 3. Collision Detection: A computer graphics term that specifically refers to the process in a computer to determine whether two objects intersect.

[0040] 4. Polygonal Mesh: A computer graphics term that specifically refers to a geometric model (such as a human body, animal, or object) composed of a series of polygons, which contains geometric information such as mesh points, mesh edges, and mesh faces.

[0041] 5. Skeleton: A computer graphics term. If an object in a geometric model affects a series of mesh points in a polygonal mesh, and can cause that series of mesh points to move or deform with the object, then the object is called a skeleton. A series of skeletons can form a skeleton hierarchy.

[0042] 6. Bounding Ball: A computer graphics term, defined as a sphere with the smallest radius such that all grid points of a given mesh are inside the sphere.

[0043] 7. FK (Forward Kinematic): Based on the bone hierarchy, first calculate the rotational position of the parent bone, then calculate the position and rotation of the next level bone, and so on down the hierarchy until the final child bone is calculated.

[0044] 8. IK (Inverse Kinematic): The process of solving the position and rotation of the parent bone in reverse order based on the rotation and position of the child bone.

[0045] Please refer to Figure 1 This diagram illustrates an implementation environment for a solution provided in one embodiment of this application. This implementation environment can be implemented as an architecture for an animation data restoration system. The implementation environment may include: a terminal 10 and a server 20.

[0046] Terminal 10 can be an electronic device such as a mobile phone, tablet computer, PC (Personal Computer), wearable device, intelligent robot, camera, inertial device, etc. Terminal 10 can be used to acquire motion capture data and provide it to server 20, whereby server 20 performs conversion, repair, and other processing on the motion capture data to obtain animation data. In some embodiments, a client running a target application can be installed on terminal 10. This target application client can be used to perform conversion, repair, and other processing on the motion capture data to obtain animation data. The aforementioned target application can be such as an animation production application, animation repair application, video production application, game production application, entertainment and interactive application, simulation application, or simulated learning application, etc., and this application embodiment does not limit this.

[0047] Server 20 can be used to convert, repair, and perform other processing on motion capture data to obtain animation data. Optionally, server 20 can also be used to provide background services for the client of the target application in terminal 10. For example, server 20 can be a background server for the client of the target application. Server 20 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services.

[0048] Terminal 10 and server 20 can communicate via network 30.

[0049] The technical solutions provided in this application are applicable to any scenario requiring animation data repair, such as virtual object fitting scenarios (e.g., virtual humans, virtual animals), game production scenarios (e.g., game character motion settings), video production scenarios, and animation data repair scenarios. The technical solutions provided in this application can improve the efficiency of animation data repair.

[0050] For example, refer to Figure 1 Terminal 10 sends the collected motion capture data to server 20. Server 20 redirects the motion capture data to obtain the animation data to be repaired. Server 20 creates colliders for each object in the animation data to be repaired, performs collision detection based on the created colliders, automatically obtains keyframe data (used to characterize the interlacing process), and then automatically obtains repair data segments (i.e., data segments repaired during the interlacing process) based on the keyframe data. Finally, based on the repair data segments, it automatically repairs the animation data to be repaired to obtain the repaired animation data.

[0051] The animation data repair method provided in the embodiments of this application will be described in detail below.

[0052] Please refer to Figure 2 The diagram illustrates a flowchart of an animation data repair method provided in one embodiment of this application. The execution entity for each step of the method can be... Figure 1 The terminal 10 or server 20 in the implementation environment of the scheme shown may include the following steps (201-205).

[0053] Step 201: Obtain the animation data to be repaired, which includes multi-frame animation data obtained by redirecting motion capture data.

[0054] Motion capture data refers to the data obtained by capturing the movements of a motion-captured object. For example, motion capture devices (such as cameras, inertial devices, etc.) can be used to capture the motion data (such as standing, walking, running, interacting, etc.) of a motion-captured object to obtain motion capture data. Optionally, the frame rate of the motion capture data can be set according to actual usage requirements, such as 25Hz, 30Hz, etc.

[0055] In this embodiment, animation data refers to data obtained by redirecting the motion of a motion-captured object in the motion capture data to a redirected object in the animation data. Different frames of animation data correspond to actions at different times. The motion-captured object can include people, animals, plants, objects, etc., while the redirected object refers to the object in the animation data whose motion needs to be fitted to the motion-captured object, such as a virtual person, virtual animal, animated character, game character, object model, etc. This embodiment does not limit the specific objects in this regard. Optionally, the motion capture data can correspond to multiple motion-captured objects, meaning the animation data includes redirected objects corresponding to these multiple motion-captured objects.

[0056] For example, animation data can be interaction data between animated characters, interaction data between animated characters and object models, or interaction data between object models. This application embodiment does not limit this.

[0057] Optionally, the animation data to be repaired refers to the animation data where the motion data of the redirected object needs to be repaired. For example, due to differences between the skeletal data (such as height ratio) of the motion capture object (such as a motion capture actor) and the skeletal data (such as height ratio) of the redirected object (such as an animated character), there may be interlacing phenomena in the animation data (such as interlacing between limbs, interlacing between limbs and object models, etc.). The animation data with interlacing phenomena can be identified as the animation data to be repaired.

[0058] The animation data to be repaired can be skeletal animation data, which refers to animation data that displays movements using the bones of the redirected object. This skeletal animation data can include the position, turning, and movement information of the redirected object's bones in each frame.

[0059] In one example, the process of obtaining the animation data to be repaired can be as follows: Obtain the motion capture data corresponding to the motion capture object; transform the motion capture data to obtain skeletal motion capture data, which corresponds to the skeletal data of the motion capture object; redirect the skeletal motion capture data to obtain the animation data to be repaired. Here, skeletal motion capture data refers to animation data that displays movements using the skeleton of the motion capture object. Skeletal data can include bone size, number of bones, bone hierarchy information, etc.

[0060] For example, based on the skeletal data of the motion capture object, the motion capture data corresponding to the motion capture object is converted into skeletal motion capture data. Then, based on the skeletal data of the redirection object and the skeletal data of the motion capture object, the skeletal motion capture data is redirected into the animation data to be repaired. Optionally, forward and inverse dynamics can be used to acquire the animation data to be repaired.

[0061] Step 202: Create colliders for each object in the animation data to be repaired, and obtain a set of colliders corresponding to each object. The set of colliders includes at least one collider.

[0062] The objects in the animation data to be repaired are the aforementioned redirected objects. A collider is used for collision detection of the redirected objects; this collider can refer to a bounding sphere, capsule, bounding box, etc., and this embodiment does not limit this. In this embodiment, since the redirected object can correspond to multiple bones, a collider can be created for each bone to ensure the accuracy of collision detection.

[0063] In one example, the process of creating a collider can be as follows: For the first object among the objects, obtain the polygon mesh of the first object, which is used to represent the shape of the object; for the target part corresponding to the first object, obtain the target local polygon mesh corresponding to the target part, which is affected by the target part; based on the grid points corresponding to the target local polygon mesh, construct the collider of the target part, and the collider of the target part surrounds the grid points corresponding to the target local polygon mesh; construct colliders for each part corresponding to the first object to obtain the set of colliders corresponding to the first object.

[0064] Here, the first object can refer to any object among various objects. The target part can refer to any part of the first object, which can be represented by a skeleton. The target local polygon mesh can be a local polygon mesh affected by the target skeleton. Optionally, the smallest collider that can surround all the mesh points corresponding to the target local polygon mesh can be determined as the collider of the target part. Optionally, the target part can be adaptively set according to actual usage requirements. For example, colliders can be created only for a part of the redirected object, or colliders can be created for all parts of the redirected object.

[0065] For example, refer to Figure 3 For the animated character 300, a collider 302 corresponding to the head bone 301 can be constructed based on all the mesh points corresponding to the head bone 301. At the same time, a collider corresponding to the hand bones of the animated character 300 can be constructed based on all the mesh points corresponding to the hand bones, and a collider corresponding to the foot bones of the animated character 300 can be constructed based on all the mesh points corresponding to the foot bones.

[0066] Optionally, the collider corresponding to the target part moves with the target part. For example, the target part and its corresponding collider can be set as parent and child, with the target part as the parent and the collider as the child. The collider will then move with the target part, avoiding the need to calculate and create colliders frame by frame, thus significantly reducing computational load and time, and improving the efficiency of animation data restoration. For example, see reference... Figure 3 If the head skeleton 301 and the collider 302 are set to a parent-child relationship, the collider 302 will move with the head skeleton 301.

[0067] Step 203: Based on the collider set corresponding to each object, perform collision detection on the objects in the multi-frame animation data to obtain at least one keyframe data group, and each keyframe data group corresponds to an interleaving process.

[0068] Each keyframe data group may include multiple keyframe data frames, and each keyframe data frame corresponds to one frame of animation data. This frame of animation data includes key interlacing actions in the interlacing process. A complete interlacing process can be represented by multiple key interlacing actions.

[0069] Optionally, the aforementioned keyframe data set includes start keyframe data, peak keyframe data, and end keyframe data; wherein, start keyframe data refers to the animation data corresponding to the start time of the interlacing action, peak keyframe data refers to the animation data corresponding to the interlacing action reaching its maximum extent, and end keyframe data refers to the animation data corresponding to the end time of the interlacing action. One interlacing action corresponds to one interlacing process. For example, if there is an interlacing between the limbs of animated character A and the limbs of animated character B, then the period from the start of the interlacing to the end of the interlacing constitutes one interlacing process.

[0070] In one example, refer to Figure 4 Step 203 may also include the following sub-steps:

[0071] Step 203a: For the target frame animation data in the multi-frame animation data, perform collision detection on the objects in the target frame animation data to obtain at least one interpenetration degree quantization value corresponding to the target frame animation data. The interpenetration degree quantization value is used to characterize the interpenetration degree between object pairs.

[0072] The target frame animation data can refer to any frame of animation data from a multi-frame animation dataset. The interlacing degree quantization value is positively correlated with the degree of interlacing between the object pairs. For example, suppose there is interlacing between the limbs of animated character A and the limbs of animated character B. When the two limbs just begin to touch, the interlacing degree quantization value can be set to 0. As the degree of interlacing gradually increases (e.g., the portion of the limb from its end to the intersection point becomes larger relative to the intersection point), the interlacing degree quantization value gradually increases. When the two limbs reach their maximum interlacing degree, the interlacing degree quantization value can be set to 1. Then, when the two limbs gradually separate, the interlacing degree quantization value gradually decreases. When the two limbs separate (i.e., the interlacing ends), the interlacing degree quantization value can be set to 0. Optionally, if no contact is detected between the two limbs, the interlacing degree quantization value can be directly set to 0.

[0073] Each object pair can obtain at least one time-based quantization value sequence of interlacing degree, which can then generate at least one quantization value curve of interlacing degree. Each peak segment in the quantization value curve of interlacing degree can correspond to an interlacing process. Optionally, an object pair can correspond to multiple interlacing processes within the same time period. In this case, the quantization value sequence of interlacing degree corresponding to each action can be obtained on an action-by-action basis, thereby determining whether a certain action is an interlacing behavior and the keyframe data group corresponding to a certain action.

[0074] Since the target frame animation data can correspond to multiple actions or multiple object pairs, the target frame animation data can correspond to multiple interlacing quantization values.

[0075] Step 203b: Based on at least one interlacing degree quantization value corresponding to each of the multi-frame animation data, determine at least one keyframe data group from the multi-frame animation data.

[0076] Optionally, for a first object and a second object that have interleaving behavior, based on the interleaving degree quantization value corresponding to the first object and the second object, at least one candidate frame data sequence corresponding to the first object and the second object is obtained from the multi-frame animation data; wherein, each candidate frame data sequence corresponds to an interleaving behavior between the first object and the second object; for a target candidate frame data sequence in the at least one candidate frame data sequence, keyframes are selected from the target candidate frame data sequence to obtain a keyframe data group corresponding to the target candidate frame data sequence; based on the at least one candidate frame data sequence, at least one keyframe data group corresponding to the first object and the second object is determined.

[0077] The second object can refer to any object other than the first object. The candidate frame data sequence can include multiple candidate frame data, each candidate frame data corresponding to an interleaving action at a certain moment. Optionally, the candidate frame data sequence can correspond to the interleaving behavior of a pair of objects in different time periods, or the candidate frame data sequence can correspond to different interleaving behaviors of a pair of objects in the same time period. This application embodiment does not limit this.

[0078] For example, at least one candidate frame data sequence corresponding to the first object and the second object can be obtained based on at least one interlacing degree quantization value sequence between the first object and the second object. For instance, the multi-frame animation data corresponding to the peak segment in the interlacing degree quantization value curve can be determined as the candidate frame data sequence.

[0079] The target candidate frame data sequence can refer to any candidate frame data sequence from at least one candidate frame data sequence. In one example, taking a keyframe data group including start keyframe data, peak keyframe data, and end keyframe data, the method for selecting keyframes corresponding to the target candidate frame data sequence is described as follows: For the target interlacing behavior corresponding to the target candidate frame data sequence, the animation data preceding the first non-zero interlacing degree quantization value of the animation data corresponding to the target interlacing behavior is determined as the start keyframe data corresponding to the target candidate frame data sequence; the animation data with the largest interlacing degree quantization value corresponding to the target interlacing behavior is determined as the peak keyframe data corresponding to the target candidate frame data sequence; and the first zero interlacing degree quantization value after the peak keyframe data is determined as the end keyframe data corresponding to the target candidate frame data sequence.

[0080] Optionally, the timing of determining the start keyframe data, peak keyframe data, and end keyframe data is not limited in the embodiments of this application.

[0081] Step 204: Based on at least one keyframe data group, obtain at least one repaired data segment, where the repaired data segment refers to the data segment that has been repaired during the interleaving process.

[0082] In this context, a repaired data segment refers to a data segment that does not overlap with the redirected objects. This repaired data segment can correspond to a complete action, meaning that in addition to the keyframe data corresponding to the action, it also includes transition frame data between the keyframe data. The transition frame data is used to achieve a smooth transition of the action.

[0083] Optionally, at least one keyframe data group can be repaired to obtain at least one repaired keyframe data group; wherein the interlacing behavior in the repaired keyframe data group is repaired; and then transition frame interpolation is performed on at least one repaired keyframe data group to obtain at least one repaired data segment.

[0084] Specifically, for each frame of animation data in the keyframe data set, the objects are redirected again to prevent overlapping between them. For example, based on the skeletal data corresponding to each object and guided by the actions corresponding to the keyframe data set, the actions of each object are recalculated and corrected to make the actions of each object as close as possible to the actions corresponding to the keyframe data set without overlapping, thus obtaining the repaired keyframe data set.

[0085] A restored data segment with complete motion can be obtained by interpolating transition frames between the animation data frames in the restored keyframe data group. This transition frame can be constructed according to a set motion interpolation algorithm.

[0086] When the animation curve composed of keyframe data sets jumps at a very high frequency (i.e., frequently switching between interlacing and non-interlacing), the animation curve of the repaired animation data also jumps at a high frequency, becoming very unstable. Therefore, embodiments of this application can introduce filters to filter high-frequency signals, thereby obtaining repaired animation data with stable animation curves. Furthermore, since the completion process of an action is related to the skeletal data—for example, for the same distance, a longer stride can be completed with fewer steps, while a shorter stride requires more steps—the time periods corresponding to the keyframe data can be further adjusted based on the differences between the skeletal data of the redirected object and the motion capture object.

[0087] In one example, the above optimization process may include the following: for each object pair, filtering at least one keyframe data group corresponding to the first object pair to obtain at least one filtered keyframe data group corresponding to the first object pair; wherein the time period length corresponding to the filtered keyframe data group is greater than a first duration threshold; post-processing at least one filtered keyframe data group corresponding to the first object pair to obtain at least one adjusted keyframe data group corresponding to the first object pair; wherein the motion span of the adjusted keyframe data group conforms to the skeletal data of the object pair; and obtaining the adjusted keyframe data group corresponding to at least one keyframe data group.

[0088] The first duration threshold is used for high-frequency filtering to filter out excessively short interludes (i.e., those that do not affect the animation effect) and data noise (such as jitter). For example, the first duration threshold can be set according to actual usage requirements, such as 0.05s, 0.07s, 0.1s, etc., and this application embodiment does not limit this.

[0089] Optionally, the above post-processing can be as follows: based on the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair, a first adjustment parameter is determined; if the first adjustment parameter is greater than a first threshold, the time periods corresponding to at least one filtered keyframe data group are extended backward to obtain at least one adjusted keyframe data group; if the first adjustment parameter is less than the first threshold, the time periods corresponding to at least one filtered keyframe data group are compressed forward to obtain at least one adjusted keyframe data group.

[0090] The first adjustment parameter is used to adjust the timestamps of the keyframe data to make the motion process corresponding to the keyframe data smoother and more reasonable. Optionally, the difference between the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair can be determined as the first adjustment parameter, or the ratio between the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair can be determined as the first adjustment parameter. This application embodiment does not limit this.

[0091] For example, based on the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair, the heights of the two redirected objects in the first object pair and the heights of the two motion capture objects can be determined. Then, based on the ratio between the heights of the two redirected objects (e.g., average) and the heights of the two motion capture objects (e.g., average), the first adjustment parameter is determined.

[0092] Optionally, if multiple object pairs exist in a keyframe, the keyframe can be compressed forward or expanded backward based on the weighted sum of the first adjustment parameters corresponding to each object pair. The specific offset (i.e., the degree of compression or expansion) of the keyframe data is related to the height of the redirected object; the taller the redirected object, the larger the offset.

[0093] The first threshold corresponds to the first adjustment parameter, which can be set and adjusted based on empirical values.

[0094] For example, when the height ratio is determined as the first adjustment parameter, the first threshold can be set to 1. This 1 indicates that the height of the first object pair and the height of the corresponding motion capture object are generally the same, and in this case, no adjustment to the keyframe data time period is needed. If the first adjustment parameter is greater than 1, it indicates that the height of the first object pair is generally greater than the height of the corresponding motion capture object, and the keyframe data time period can be extended later (e.g., by delaying the peak and end keyframe data). If the first adjustment parameter is less than 1, it indicates that the height of the first object pair is generally less than the height of the corresponding motion capture object, and the keyframe data time period can be compressed earlier (e.g., by moving the peak and end keyframe data forward).

[0095] Using the above method, at least one repaired data segment can be obtained based on the adjusted keyframe data groups corresponding to at least one keyframe data group.

[0096] Step 205: According to the time period corresponding to at least one repaired data segment, overlay at least one repaired data segment with the animation data to be repaired to obtain repaired animation data.

[0097] Optionally, for a target repair data segment in at least one repair data segment, the original data segment corresponding to the target time period can be obtained from the animation data to be repaired based on the target time period corresponding to the target repair data segment; the original data segment and the target repair data segment are superimposed based on the skeletal motion parameters corresponding to the original data segment and the redirect repair parameters corresponding to the target repair data segment to obtain the repair animation data corresponding to the target time period.

[0098] The target repair data fragment can be any one of at least one repair data fragment. Skeletal motion parameters indicate the motion of the redirected object, such as the rotation angle, movement distance, and rotation direction of each bone. Redirect repair parameters indicate the state of the redirected object, such as its position and orientation.

[0099] Skeletal motion parameters can be used to make the motion of the redirected object fit the motion of the motion capture object as closely as possible, while redirection repair parameters can be used to repair the state of the redirected object so that there is no overlap between redirected objects.

[0100] Optionally, the remaining original animation data in the animation data to be repaired (i.e., the original data fragments excluding the data fragments corresponding to the data fragments to be repaired) are retained in this embodiment of the application and not processed.

[0101] For example, refer to Figure 5 During the interaction between the animated character and the animated environment (such as objects, the ground, walls, etc.), there is an overlap between the animated character's hand and the ground. Animation data 501 is a frame of animation data from the animation data to be repaired, in which the animated character's hand overlaps with the ground. After repairing the animation data to be repaired, the corresponding repaired animation data 502 is obtained. In repaired animation data 502, the overlap between the animated character's hand and the ground has been corrected; that is, the overlap between the animated character's hand and the ground is no longer present.

[0102] For example, refer to Figure 6 During the interaction between the animated characters, there was an overlap between the hands of animated character 603 and those of animated character 604. Animation data 601 is a frame of animation data from the animation data to be repaired, in which the overlap between the hands of animated character 603 and those of animated character 604 is observed. After repairing the animation data to be repaired, the corresponding repaired animation data 602 is obtained. In this repaired animation data 602, the overlap between the hands of animated character 603 and those of animated character 604 has been corrected; that is, the overlap between the hands of animated character 603 and those of animated character 604 is no longer observed.

[0103] In summary, the technical solution provided in this application creates colliders for each object in the animation data to be repaired, and then performs collision detection on the multi-frame animation data corresponding to the animation data to be repaired based on the created colliders to obtain key frame data groups. This achieves automatic acquisition of the interlacing process. Compared with the related technologies that obtain the interlacing process by manually detecting frame by frame, the technical solution provided in this application can improve the efficiency of obtaining the interlacing process, thereby improving the efficiency of animation data repair.

[0104] Furthermore, filtering and post-processing keyframe data groups can improve their quality, thereby enhancing the quality of animation data restoration. Simultaneously, filtering and post-processing can also improve the distribution rationality of keyframe data groups, thus improving the overall rationality of animation data restoration.

[0105] In addition, by quantizing the collision detection results, the degree of interlacing of the interlacing behavior at different stages can be obtained quickly and conveniently, which helps to improve the extraction efficiency of key frame data, thereby further improving the restoration efficiency of animation data.

[0106] In an exemplary embodiment, taking the collider as an enclosing sphere as an example, the animation data repair method provided in this application embodiment will be described, and its specific content can be as follows:

[0107] Obtain the animation data to be repaired. In this embodiment, the animation data to be repaired contains interleaving elements. For example, refer to... Figure 6 Animation data 601 is a frame in the animation data to be repaired. In animation data 601, there is overlap between the hands of the animated character.

[0108] Bounding spheres are created for each object in the animation data to be repaired, resulting in a set of bounding spheres for each object. For example, refer to... Figure 7 During the interaction between animated characters 701 and 702, based on the skeletal distribution of animated character 701, the polygonal mesh corresponding to animated character 701 is divided to obtain the local polygonal mesh corresponding to each bone of animated character 701. Then, based on the local polygonal mesh corresponding to each bone, a bounding sphere corresponding to each bone is constructed, resulting in a set of bounding spheres corresponding to animated character 701. Here, the bounding sphere is a sphere with the smallest diameter that can enclose the local polygonal mesh. Using the same method, based on the skeletal distribution of animated character 702, a set of bounding spheres corresponding to animated character 702 is obtained. The bounding spheres and bones can be set as parent and child, then the bounding spheres move with the bones.

[0109] For example, refer to Figure 8During the interaction between the animated character 801 and the prop 802, since only the hand of the animated character 801 is in contact with the prop 802, the sphere can be created only around the hand of the animated character 801.

[0110] Based on the bounding sphere set corresponding to each object, collision detection is performed on each frame of animation data corresponding to the animation data to be repaired, and the collision detection results corresponding to each frame of animation data are obtained.

[0111] For example, if the distance between the centers of two enclosing spheres is greater than the sum of the radii of the two enclosing spheres, then it is determined that the corresponding parts of the two enclosing spheres do not intersect; or, if the distance between the centers of two enclosing spheres is equal to the sum of the radii of the two enclosing spheres, then it is determined that the corresponding parts of the two enclosing spheres begin to intersect or end to intersect; or, if the distance between the centers of two enclosing spheres is less than the sum of the radii of the two enclosing spheres, then it is determined that the corresponding parts of the two enclosing spheres are in an intersecting state.

[0112] For example, refer to Figure 9 If the distance between the centers of enclosing sphere 901 and enclosing sphere 902 (hereinafter referred to as the center distance) is greater than the sum of the radii of enclosing spheres 901 and 902, then the corresponding parts of enclosing sphere 901 (e.g., hands) and enclosing sphere 902 (e.g., hands) are determined not to intersect. During the movement of enclosing spheres 901 and 902, if the center distance between enclosing spheres 901 and 902 becomes equal to the sum of their radii, then the corresponding parts of enclosing sphere 901 (e.g., hands) and enclosing sphere 902 (e.g., hands) begin to intersect. If the center distance between enclosing spheres 901 and 902 becomes less than the sum of their radii, then the corresponding parts of enclosing sphere 901 (e.g., hands) and enclosing sphere 902 (e.g., hands) are determined to be in an intersecting state.

[0113] The collision detection results for each frame of animation data are processed to obtain at least one quantized value for the interlacing degree for each frame. The quantized value for interlacing degree is positively correlated with the interlacing degree. For example, refer to... Figure 7 Based on the collision detection result 703, an interpenetration degree quantification value can be obtained, and based on the collision detection result 704, another interpenetration degree quantification value can be obtained.

[0114] Based on at least one quantization value for the interlacing degree corresponding to each frame of animation data, at least one keyframe data group is determined from multi-frame animation data. For example, refer to Figure 7For the hand interlacing phenomenon, obtain all interlacing degree quantization values ​​corresponding to the hand interlacing phenomenon, generate an interlacing degree quantization value curve, and determine the start keyframe data, peak keyframe data and end keyframe data corresponding to the hand interlacing phenomenon based on the interlacing degree quantization value curve, and obtain the keyframe data group corresponding to the hand interlacing phenomenon.

[0115] At least one keyframe data group is filtered and post-processed to obtain at least one adjusted keyframe data group. At least one adjusted keyframe data group is then repaired to obtain at least one repaired keyframe data group. Finally, at least one repaired keyframe data group is interpolated with transition frames to obtain at least one repaired data segment.

[0116] Based on the time periods corresponding to at least one repaired data segment, the at least one repaired data segment is superimposed on the animation data to be repaired to obtain the repaired animation data.

[0117] In summary, the technical solution provided in this application creates colliders for each object in the animation data to be repaired, and then performs collision detection on the multi-frame animation data corresponding to the animation data to be repaired based on the created colliders to obtain key frame data groups. This achieves automatic acquisition of the interlacing process. Compared with the related technologies that obtain the interlacing process by manually detecting frame by frame, the technical solution provided in this application can improve the efficiency of obtaining the interlacing process, thereby improving the efficiency of animation data repair.

[0118] The following are embodiments of the apparatus described in this application, which can be used to execute the embodiments of the method described in this application. For details not disclosed in the apparatus embodiments of this application, please refer to the embodiments of the method described in this application.

[0119] refer to Figure 10 This diagram illustrates a block diagram of an animation data repair apparatus according to an embodiment of this application. The apparatus has the functionality to implement the method example described above; this functionality can be implemented in hardware or by hardware executing corresponding software. The apparatus can be the computer device described above, or it can be installed within a computer device. Figure 10 As shown, the device 1000 includes: an animation data acquisition module 1001, a collider creation module 1002, a keyframe acquisition module 1003, a repair segment acquisition module 1004, and an animation data repair module 1005.

[0120] Animation data acquisition module 1001 is used to acquire animation data to be repaired, which includes multi-frame animation data obtained by redirecting motion capture data.

[0121] The collider creation module 1002 is used to create colliders for each object in the animation data to be repaired, and to obtain a collider set corresponding to each object, wherein the collider set includes at least one collider.

[0122] The keyframe acquisition module 1003 is used to perform collision detection on the objects in the multi-frame animation data based on the collider sets corresponding to each object, and obtain at least one keyframe data group, with each keyframe data group corresponding to an interleaving process.

[0123] The repair fragment acquisition module 1004 is used to obtain at least one repair data fragment based on the at least one keyframe data group, wherein the repair data fragment refers to the data fragment after being repaired by the interleaving process.

[0124] Animation data repair module 1005 is used to overlay the at least one repaired data segment with the animation data to be repaired according to the time period corresponding to the at least one repaired data segment, so as to obtain repaired animation data.

[0125] In one exemplary embodiment, the keyframe acquisition module 1003 is configured to:

[0126] For the target frame animation data in the multi-frame animation data, collision detection is performed on the objects in the target frame animation data to obtain at least one interpenetration degree quantization value corresponding to the target frame animation data. The interpenetration degree quantization value is used to characterize the interpenetration degree between object pairs.

[0127] Based on at least one interlacing degree quantization value corresponding to each of the multi-frame animation data, the at least one keyframe data group is determined from the multi-frame animation data.

[0128] In one exemplary embodiment, the keyframe acquisition module 1003 is further configured to:

[0129] For a first object and a second object that have interleaving behavior, based on the interleaving degree quantization value corresponding to the first object and the second object, at least one candidate frame data sequence corresponding to the first object and the second object is obtained from the multi-frame animation data; wherein, each candidate frame data sequence corresponds to an interleaving behavior between the first object and the second object;

[0130] For a target candidate frame data sequence in the at least one candidate frame data sequence, key frames are selected from the target candidate frame data sequence to obtain a key frame data group corresponding to the target candidate frame data sequence;

[0131] Based on the at least one candidate frame data sequence, at least one key frame data group corresponding to the first object and the second object is determined.

[0132] In an exemplary embodiment, the keyframe data group includes start keyframe data, peak keyframe data, and end keyframe data; wherein, the start keyframe data refers to the animation data corresponding to the start time of the interlacing behavior, the peak keyframe data refers to the animation data corresponding to the interlacing behavior reaching its maximum extent, and the end keyframe data refers to the animation data corresponding to the end time of the interlacing behavior; the keyframe acquisition module 1003 is further configured to:

[0133] For the target interlacing behavior corresponding to the target candidate frame data sequence, the animation data of the frame preceding the first interlacing degree quantization value of the animation data corresponding to the target interlacing behavior that is not zero is determined as the starting keyframe data corresponding to the target candidate frame data sequence.

[0134] The animation data with the largest quantization value of the interpenetration degree corresponding to the target interpenetration behavior is determined as the peak keyframe data corresponding to the target candidate frame data sequence.

[0135] The first animation data with an interlacing quantization value of zero after the peak keyframe data is determined as the end keyframe data corresponding to the target candidate frame data sequence.

[0136] In one exemplary embodiment, the repair fragment acquisition module 1004 is configured to:

[0137] The at least one keyframe data group is repaired to obtain at least one repaired keyframe data group; wherein the interleaving behavior in the repaired keyframe data group is repaired.

[0138] Transition frame interpolation is performed on each of the at least one repaired keyframe data group to obtain the at least one repaired data segment.

[0139] In one exemplary embodiment, such as Figure 11 As shown, the device 1000 further includes a keyframe filtering module 1006 and a keyframe adjustment module 1007.

[0140] The keyframe filtering module 1006 is used to filter at least one keyframe data group corresponding to the first object pair corresponding to each of the objects, to obtain at least one filtered keyframe data group corresponding to the first object pair; wherein the time period length corresponding to the filtered keyframe data group is greater than a first duration threshold.

[0141] The keyframe adjustment module 1007 is used to post-process at least one filtered keyframe data group corresponding to the first object pair to obtain at least one adjusted keyframe data group corresponding to the first object pair; wherein the motion span of the adjusted keyframe data group conforms to the skeletal data of the object pair.

[0142] The keyframe adjustment module 1007 is further configured to obtain the adjusted keyframe data groups corresponding to the at least one keyframe data group.

[0143] The repair fragment acquisition module 1004 is further configured to obtain the at least one repair data fragment based on the adjusted keyframe data groups corresponding to the at least one keyframe data group.

[0144] In an exemplary embodiment, the keyframe adjustment module 1007 is configured to:

[0145] Based on the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair, the first adjustment parameter is determined;

[0146] When the first adjustment parameter is greater than the first threshold, the time periods corresponding to the at least one filtered keyframe data group are extended backward to obtain the at least one adjusted keyframe data group.

[0147] When the first adjustment parameter is less than the first threshold, the time periods corresponding to the at least one filtered keyframe data group are compressed forward to obtain the at least one adjusted keyframe data group.

[0148] In one exemplary embodiment, the collider creation module 1002 is configured to:

[0149] For the first object among the various objects, obtain the polygonal mesh of the first object, the polygonal mesh being used to characterize the shape of the object;

[0150] For the target part corresponding to the first object, obtain the target local polygon mesh corresponding to the target part, and the target local polygon mesh is affected by the target part;

[0151] Based on the grid points corresponding to the target local polygonal mesh, a collider is constructed for the target part, and the collider of the target part surrounds the grid points corresponding to the target local polygonal mesh;

[0152] Collision bodies are constructed for each part corresponding to the first object to obtain a set of collision bodies corresponding to the first object.

[0153] In one exemplary embodiment, the collider corresponding to the target part moves along with the target part.

[0154] In one exemplary embodiment, such as Figure 11 As shown, the device 1000 further includes an interlacing state determination module 1008.

[0155] The colliding body is an enclosing sphere, and the interpenetration state determination module 1008 is used for:

[0156] If the distance between the centers of two enclosing spheres is greater than the sum of the radii of the two enclosing spheres, then it is determined that the corresponding parts of the two enclosing spheres do not intersect.

[0157] Alternatively, if the distance between the centers of two enclosing spheres is equal to the sum of the radii of the two enclosing spheres, then the corresponding parts of the two enclosing spheres are determined to begin or end the interweaving.

[0158] Alternatively, if the distance between the centers of the two enclosing spheres is less than the sum of the radii of the two enclosing spheres, then the corresponding parts of the two enclosing spheres are determined to be in an intersecting state.

[0159] In one exemplary embodiment, the animation data repair module 1005 is used for:

[0160] For the target repair data segment in the at least one repair data segment, the original data segment corresponding to the target time segment is obtained from the animation data to be repaired according to the target time segment;

[0161] Based on the skeletal motion parameters corresponding to the original data segment and the redirection repair parameters corresponding to the target repair data segment, the original data segment and the target repair data segment are superimposed to obtain the repair animation data corresponding to the target time period.

[0162] In one exemplary embodiment, the animation data acquisition module 1001 is configured to:

[0163] Obtain the motion capture data corresponding to the motion capture object;

[0164] The motion capture data is converted to obtain skeletal motion capture data, which corresponds to the skeletal data of the motion capture object.

[0165] The skeletal motion capture data is redirected to obtain the animation data to be repaired.

[0166] In summary, the technical solution provided in this application creates colliders for each object in the animation data to be repaired, and then performs collision detection on the multi-frame animation data corresponding to the animation data to be repaired based on the created colliders to obtain key frame data groups. This achieves automatic acquisition of the interlacing process. Compared with the related technologies that obtain the interlacing process by manually detecting frame by frame, the technical solution provided in this application can improve the efficiency of obtaining the interlacing process, thereby improving the efficiency of animation data repair.

[0167] It should be noted that the apparatus provided in the above embodiments is only illustrated by the division of the above functional modules when implementing its functions. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0168] Please refer to Figure 12 This diagram illustrates the structural block diagram of a computer device according to an embodiment of this application. This computer device can be used to implement the animation data repair method provided in the above embodiments. Specifically, it may include the following:

[0169] The computer device 1200 includes a central processing unit (such as a CPU, GPU, or FPGA) 1201, a system memory 1204 including RAM (Random-Access Memory) 1202 and ROM (Read-Only Memory) 1203, and a system bus 1205 connecting the system memory 1204 and the central processing unit 1201. The computer device 1200 also includes a basic input / output system (I / O system) 1206 to facilitate information transfer between various devices within the server, and a mass storage device 1207 for storing the operating system 1213, application programs 1214, and other program modules 1215.

[0170] The basic input / output system 1206 includes a display 1208 for displaying information and an input device 1209 for user input, such as a mouse or keyboard. Both the display 1208 and the input device 1209 are connected to the central processing unit 1201 via an input / output controller 1210 connected to the system bus 1205. The basic input / output system 1206 may also include the input / output controller 1210 for receiving and processing input from multiple other devices such as a keyboard, mouse, or electronic stylus. Similarly, the input / output controller 1210 also provides output to a display screen, printer, or other types of output devices.

[0171] The mass storage device 1207 is connected to the central processing unit 1201 via a mass storage controller (not shown) connected to the system bus 1205. The mass storage device 1207 and its associated computer-readable media provide non-volatile storage for the computer device 1200. That is, the mass storage device 1207 may include computer-readable media (not shown) such as a hard disk or a CD-ROM (Compact Disc Read-Only Memory) drive.

[0172] Without loss of generality, the computer-readable medium may include computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable media implemented using any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include RAM, ROM, EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory or other solid-state storage technologies, CD-ROM, DVD (Digital Video Disc) or other optical storage, magnetic tape cassettes, magnetic tape, disk storage, or other magnetic storage devices. Of course, those skilled in the art will recognize that the computer storage medium is not limited to the above-mentioned types. The system memory 1204 and mass storage device 1207 described above can be collectively referred to as memory.

[0173] According to an embodiment of this application, the computer device 1200 can also be connected to a remote computer on a network, such as the Internet. That is, the computer device 1200 can be connected to the network 1212 via the network interface unit 1211 connected to the system bus 1205, or the network interface unit 1211 can be used to connect to other types of networks or remote computer systems (not shown).

[0174] The memory also includes a computer program, which is stored in the memory and configured to be executed by one or more processors to implement the above-described animation data restoration method.

[0175] In one exemplary embodiment, a computer-readable storage medium is also provided, wherein a computer program is stored therein, which, when executed by a processor, implements the above-described animation data restoration method.

[0176] Optionally, the computer-readable storage medium may include: ROM (Read-Only Memory), RAM (Random-Access Memory), SSD (Solid State Drives), or optical disc, etc. The random access memory may include ReRAM (Resistance Random Access Memory) and DRAM (Dynamic Random Access Memory).

[0177] In one exemplary embodiment, a computer program product or computer program is also provided, the computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, causing the computer device to perform the above-described animation data restoration method.

[0178] It should be noted that all information (including but not limited to object device information, object personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application have been authorized by the object or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the motion capture data, animation data, and skeletal data involved in this application were all obtained with full authorization.

[0179] It should be understood that "multiple" as used herein refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. Furthermore, the step numbers described herein are merely illustrative of one possible execution order. In some other embodiments, the steps may not be executed in numerical order, such as two steps with different numbers being executed simultaneously, or two steps with different numbers being executed in the reverse order of the illustration. This application does not limit this.

[0180] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for restoring animation data, characterized in that, The method includes: Acquire the animation data to be repaired, which includes multi-frame animation data obtained by redirecting motion capture data; Colliders are created for each object in the animation data to be repaired, resulting in a collider set for each object, wherein the collider set includes at least one collider. Based on the collider set corresponding to each object, collision detection is performed on the objects in the multi-frame animation data to obtain at least one keyframe data group, and each keyframe data group corresponds to an interleaving process. For each object corresponding to the first object pair, at least one key frame data group corresponding to the first object pair is filtered to obtain at least one filtered key frame data group corresponding to the first object pair. The time period length corresponding to the filtered key frame data group is greater than the first time length threshold. Based on the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair, the first adjustment parameter is determined; When the first adjustment parameter is greater than the first threshold, the time periods corresponding to the at least one filtered keyframe data group are extended backward to obtain at least one adjusted keyframe data group corresponding to the first object pair. The action span of the adjusted keyframe data group conforms to the skeletal data of the object pair. Based on the adjusted keyframe data groups corresponding to the at least one keyframe data group, at least one repaired data segment is obtained, wherein the repaired data segment refers to the data segment after the interleaving process is repaired. According to the time periods corresponding to the at least one repaired data segment, the at least one repaired data segment is superimposed on the animation data to be repaired to obtain the repaired animation data.

2. The method according to claim 1, characterized in that, Based on the collider sets corresponding to each object, collision detection is performed on the objects in the multi-frame animation data to obtain at least one keyframe data set, including: For the target frame animation data in the multi-frame animation data, collision detection is performed on the objects in the target frame animation data to obtain at least one interpenetration degree quantization value corresponding to the target frame animation data. The interpenetration degree quantization value is used to characterize the interpenetration degree between object pairs. Based on at least one interlacing degree quantization value corresponding to each of the multi-frame animation data, the at least one keyframe data group is determined from the multi-frame animation data.

3. The method according to claim 2, characterized in that, The step of determining the at least one keyframe data group from the multi-frame animation data based on at least one interlacing degree quantization value corresponding to each of the multi-frame animation data includes: For a first object and a second object that have interleaving behavior, based on the interleaving degree quantization value corresponding to the first object and the second object, at least one candidate frame data sequence corresponding to the first object and the second object is obtained from the multi-frame animation data; wherein, each candidate frame data sequence corresponds to an interleaving behavior between the first object and the second object; For a target candidate frame data sequence in the at least one candidate frame data sequence, key frames are selected from the target candidate frame data sequence to obtain a key frame data group corresponding to the target candidate frame data sequence; Based on the at least one candidate frame data sequence, at least one key frame data group corresponding to the first object and the second object is determined.

4. The method according to claim 3, characterized in that, The keyframe data group includes start keyframe data, peak keyframe data, and end keyframe data; wherein, the start keyframe data refers to the animation data corresponding to the start time of the interlacing behavior, the peak keyframe data refers to the animation data corresponding to the interlacing behavior reaching its maximum extent, and the end keyframe data refers to the animation data corresponding to the end time of the interlacing behavior. The step of selecting keyframes from the target candidate frame data sequence to obtain the keyframe data group corresponding to the target candidate frame data sequence includes: For the target interlacing behavior corresponding to the target candidate frame data sequence, the animation data of the frame preceding the first interlacing degree quantization value of the animation data corresponding to the target interlacing behavior that is not zero is determined as the starting keyframe data corresponding to the target candidate frame data sequence. The animation data with the largest quantization value of the interpenetration degree corresponding to the target interpenetration behavior is determined as the peak keyframe data corresponding to the target candidate frame data sequence. The animation data with the first interlacing degree quantization value of zero after the peak keyframe data is determined as the end keyframe data corresponding to the target candidate frame data sequence.

5. The method according to claim 1, characterized in that, The process of obtaining at least one repaired data segment based on the adjusted keyframe data groups corresponding to the at least one keyframe data group includes: The adjusted keyframe data groups corresponding to the at least one keyframe data group are repaired respectively to obtain at least one repaired keyframe data group; wherein, the interlacing behavior in the repaired keyframe data group is repaired. Transition frame interpolation is performed on each of the at least one repaired keyframe data group to obtain the at least one repaired data segment.

6. The method according to claim 1, characterized in that, The method further includes: When the first adjustment parameter is less than the first threshold, the time periods corresponding to the at least one filtered keyframe data group are compressed forward to obtain at least one adjusted keyframe data group corresponding to the first object pair.

7. The method according to claim 1, characterized in that, The process of creating colliders for each object in the animation data to be repaired, resulting in a set of colliders for each object, includes: For the first object among the objects, obtain the polygonal mesh of the first object, the polygonal mesh being used to characterize the shape of the object; For the target part corresponding to the first object, obtain the target local polygon mesh corresponding to the target part, and the target local polygon mesh is affected by the target part; Based on the grid points corresponding to the target local polygonal mesh, a collider is constructed for the target part, and the collider of the target part surrounds the grid points corresponding to the target local polygonal mesh; Collision bodies are constructed for each part corresponding to the first object to obtain a set of collision bodies corresponding to the first object.

8. The method according to claim 7, characterized in that, The collider corresponding to the target location moves along with the target location.

9. The method according to claim 1, characterized in that, The collider is an enclosing sphere, and the method further includes: If the distance between the centers of two enclosing spheres is greater than the sum of the radii of the two enclosing spheres, then it is determined that the corresponding parts of the two enclosing spheres do not intersect. or, If the distance between the centers of two enclosing spheres is equal to the sum of the radii of the two enclosing spheres, then the corresponding parts of the two enclosing spheres are determined to begin or end the interweaving. or, If the distance between the centers of two enclosing spheres is less than the sum of the radii of the two enclosing spheres, then the corresponding parts of the two enclosing spheres are determined to be in an intersecting state.

10. The method according to claim 1, characterized in that, The step of overlaying the at least one repaired data segment with the animation data to be repaired according to the time period corresponding to each of the at least one repaired data segment to obtain the repaired animation data includes: For the target repair data segment in the at least one repair data segment, the original data segment corresponding to the target time segment is obtained from the animation data to be repaired according to the target time segment; Based on the skeletal motion parameters corresponding to the original data segment and the redirection repair parameters corresponding to the target repair data segment, the original data segment and the target repair data segment are superimposed to obtain the repair animation data corresponding to the target time period.

11. The method according to claim 1, characterized in that, The process of acquiring the animation data to be repaired includes: Obtain the motion capture data corresponding to the motion capture object; The motion capture data is converted to obtain skeletal motion capture data, which corresponds to the skeletal data of the motion capture object. The skeletal motion capture data is redirected to obtain the animation data to be repaired.

12. An animation data restoration device, characterized in that, The device includes: An animation data acquisition module is used to acquire animation data to be repaired, the animation data to be repaired including multi-frame animation data obtained by redirecting motion capture data; The collision body creation module is used to create collision bodies for each object in the animation data to be repaired, and to obtain a collision body set corresponding to each object, wherein the collision body set includes at least one collision body. The keyframe acquisition module is used to perform collision detection on the objects in the multi-frame animation data based on the collider sets corresponding to each object, and obtain at least one keyframe data group, with each keyframe data group corresponding to an interleaving process. The keyframe filtering module is used to filter at least one keyframe data group corresponding to the first object pair for each object pair, so as to obtain at least one filtered keyframe data group corresponding to the first object pair, wherein the time period length corresponding to the filtered keyframe data group is greater than a first time duration threshold. The keyframe adjustment module is used to determine a first adjustment parameter based on the skeletal data of the first object pair and the skeletal data of the motion capture object corresponding to the first object pair; when the first adjustment parameter is greater than a first threshold, the time periods corresponding to the at least one filtered keyframe data group are extended backward to obtain at least one adjusted keyframe data group corresponding to the first object pair, wherein the motion span of the adjusted keyframe data group conforms to the skeletal data of the object pair. The repair fragment acquisition module is used to obtain at least one repair data fragment based on the adjusted keyframe data groups corresponding to the at least one keyframe data group, wherein the repair data fragment refers to the data fragment repaired by the interlacing process. An animation data repair module is used to overlay the at least one repaired data segment with the animation data to be repaired according to the time period corresponding to the at least one repaired data segment, so as to obtain repaired animation data.

13. A computer device, characterized in that, The computer device includes a processor and a memory, the memory storing a computer program that is loaded and executed by the processor to implement the animation data restoration method as described in any one of claims 1 to 11.

14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, which is loaded and executed by a processor to implement the animation data restoration method as described in any one of claims 1 to 11.

15. A computer program product, characterized in that, The computer program product includes computer instructions stored in a computer-readable storage medium, and a processor reads from and executes the computer instructions to implement the animation data restoration method as described in any one of claims 1 to 11.

Citation Information

Patent Citations

  • Animation model interpenetration detection method and device

    CN113658301A

  • Method, device and equipment for alternately repairing three-dimensional model

    CN113888680A

  • Wagering game object animation

    US20110281628A1