Trajectory information processing method and apparatus, computer device, and readable storage medium

By generating object geometry and adjusting the collision point positions, the problem of trajectory information not being able to adapt to character characteristics in animation retargeting was solved, achieving efficient reuse and quality improvement of animation resources.

WO2024230290A9PCT designated stage expired Publication Date: 2024-12-26TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/079894
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-05-06
Filing Date
2024-03-04
Publication Date
2024-12-26

AI Technical Summary

Technical Problem

Existing animation retargeting technology only considers the differences in the character's skeleton and cannot adapt to the differences in the character's height, weight, and body measurements. This results in the animation not being able to adapt to the character's characteristics after migration, causing clipping issues.

Method used

The object geometry is generated by acquiring the body shape features of the first object, the trajectory information of the second object is transferred, the collision point is determined and its position is adjusted, the trajectory information is corrected to avoid collision, and trajectory information adapted to the first object is generated.

Benefits of technology

It achieves accurate adaptation of trajectory information after animation migration, avoids clipping, and improves the reuse efficiency and quality of animation resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024079894_26122024_PF_FP_ABST
    Figure CN2024079894_26122024_PF_FP_ABST
Patent Text Reader

Abstract

A trajectory information processing method, comprising: generating an object geometry of a first object on the basis of somatotype features of the first object, the object geometry comprising a plurality of local geometries, and the local geometries surrounding at least one part of the first object (S202); acquiring object trajectory information of a second object, and migrating the object trajectory information of the second object to the object geometry to obtain object trajectory information of the object geometry (S204); determining a plurality of collision points of collision between the local geometries during interaction, and determining respective collision positions of the plurality of collision points (S206); performing position adjustment on the plurality of collision positions to obtain respective collision avoidance positions of the plurality of collision points, the collision avoidance positions being used for avoiding the collision of the local geometries during interaction (S208); and, according to the collision positions and the collision avoidance positions, correcting the object trajectory information of the object geometry to obtain object trajectory information of the first object (S210).
Need to check novelty before this filing date? Find Prior Art

Description

Trajectory information processing method, device, computer equipment and readable storage medium

[0001] Related applications

[0002] This application claims priority to Chinese patent application number 2023105018833, filed on May 6, 2023, entitled “Trajectory Information Processing Method, Device, Computer Device and Readable Storage Medium,” the entire text of which is hereby incorporated by reference. Technical Field

[0003] The present application relates to the field of computer technology, and in particular to a trajectory information processing method, apparatus, computer equipment, computer-readable storage medium, and computer program product. Background Art

[0004] With the development of computer technology, animation retargeting technology has emerged. Animation retargeting aims to improve animation production efficiency by migrating existing animation assets to new characters. For example, the animation sequence of character A can be migrated to character B, eliminating the need to create separate animations for each character.

[0005] Traditional animation retargeting technology mainly considers the differences between the character skeletons, such as the differences in bone topology and bone proportions between two characters, and then calculates the position and rotation information of each bone to obtain the target animation of the character.

[0006] However, different characters differ in height, weight, measurements, etc. The animation obtained by migrating only considering the differences between the character bones cannot adapt to the characteristics of the character itself.

[0007] Summary of the Invention

[0008] According to various embodiments provided in the present application, a trajectory information processing method, apparatus, computer device, computer-readable storage medium, and computer program product are provided.

[0009] In one aspect, the present application provides a trajectory information processing method, which is executed by a computer device, and the method includes:

[0010] Acquire a body feature of a first object, and generate an object geometry of the first object based on the body feature, wherein the object geometry includes a plurality of local geometries, and the local geometries surround at least one part of the first object;

[0011] Acquiring object trajectory information of a second object, migrating the object trajectory information of the second object to the object geometric body, and obtaining object trajectory information of the object geometric body;

[0012] determining a plurality of collision points where the local geometric bodies collide during the interaction, and determining collision locations of the respective collision points;

[0013] Adjusting the positions of the plurality of collision occurrence locations to obtain collision avoidance positions corresponding to the plurality of collision points, wherein each collision avoidance position is used to avoid collision between the plurality of local geometric bodies during interaction; and

[0014] According to each of the collision occurrence positions and each of the collision avoidance positions, the object trajectory information of the object geometric body is corrected to obtain the object trajectory information of the first object.

[0015] On the other hand, the present application also provides a trajectory information processing device, the device comprising:

[0016] a generating module, configured to obtain a body shape feature of a first object, and generate an object geometry of the first object based on the body shape feature, wherein the object geometry includes a plurality of local geometries, and the local geometries surround at least one part of the first object;

[0017] a migration module, configured to obtain object trajectory information of a second object, migrate the object trajectory information of the second object to the object geometric body, and obtain object trajectory information of the object geometric body;

[0018] a determination module, configured to determine a plurality of local geometric bodies with which each of the local geometric bodies collides during interaction, and to determine collision locations of each of the plurality of collision points;

[0019] an adjustment module, configured to adjust the positions of the plurality of collision occurrence locations to obtain collision avoidance positions corresponding to the plurality of collision points, wherein each collision avoidance position is used to avoid collision between the plurality of local geometric bodies during interaction; and

[0020] The correction module is used to correct the object trajectory information of the object geometric body according to each of the collision occurrence positions and each of the collision avoidance positions, and obtain the object trajectory information of the first object.

[0021] On the other hand, the present application also provides a computer device, which includes a memory and a processor, wherein the memory stores computer-readable instructions, and the processor executes the steps of each method embodiment of the present application when executing the computer-readable instructions.

[0022] On the other hand, the present application also provides a computer-readable storage medium, on which computer-readable instructions are stored. When the computer-readable instructions are executed by a processor, the steps of the various method embodiments of the present application are executed.

[0023] On the other hand, the present application also provides a computer program product, which includes computer-readable instructions. When the computer-readable instructions are executed by a processor, the steps of the various method embodiments of the present application are performed.

[0024] The details of one or more embodiments of the present application are set forth in the accompanying drawings and the description below. Other features and advantages of the present application will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the conventional technology, the following briefly introduces the drawings required for use in the embodiments or the conventional technology descriptions. Obviously, the drawings described below are merely embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the disclosed drawings without any creative work.

[0026] FIG1 is a diagram showing an application environment of a trajectory information processing method according to an embodiment;

[0027] FIG2 is a schematic flow chart of a trajectory information processing method according to an embodiment;

[0028] FIG3 is a schematic diagram of global geometry construction in one embodiment;

[0029] FIG4 is a schematic diagram of a mold penetration phenomenon in one embodiment;

[0030] FIG5 is a schematic diagram of collision of local geometric bodies during interaction in one embodiment;

[0031] FIG6 is a schematic diagram of a process of migrating object trajectory information of a second object to an object geometry to obtain object trajectory information of the object geometry in one embodiment;

[0032] FIG7 is a schematic diagram of a standard skeleton hierarchy relationship in one embodiment;

[0033] FIG8 is a schematic diagram of another embodiment of the collision of local geometric bodies during interaction;

[0034] FIG9 is a schematic diagram of a process for performing posture offset prediction based on each collision occurrence position and each collision avoidance position to obtain posture offset information between multiple local geometric bodies in one embodiment;

[0035] FIG10 is a schematic diagram of posture matching in one embodiment;

[0036] FIG11 is a flow chart of a trajectory information processing method according to another embodiment;

[0037] FIG12 is a schematic diagram of model information of a role in one embodiment;

[0038] FIG13 is a schematic diagram of matching of a portion of bones in one embodiment;

[0039] FIG14 is a block diagram of a trajectory information processing device according to an embodiment;

[0040] FIG15 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0041] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0042] The embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc. For example, it can be applied to the field of artificial intelligence (AI) technology, wherein artificial intelligence is the theory, method, technology and application system of using digital computers or machines controlled by digital computers to simulate, extend and expand human intelligence, perceive the environment, acquire knowledge and use knowledge to obtain the best results. In other words, artificial intelligence is a comprehensive technology of computer science that attempts to understand the essence of intelligence and produce a new intelligent machine that can respond in a similar way to human intelligence. Artificial intelligence is to study the design principles and implementation methods of various intelligent machines so that the machines have the functions of perception, reasoning and decision-making. The solution provided in the embodiments of the present application relates to a trajectory information processing method of artificial intelligence, which is specifically described through the following embodiments.

[0043] The trajectory information processing method provided in the embodiments of the present application can be applied in the application environment shown in Figure 1. In this embodiment, a terminal 102 communicates with a server 104 via a network. A data storage system can store data that the server 104 needs to process. The data storage system can be integrated with the server 104, or it can be located in the cloud or on another server. Either the terminal 102 or the server 104 can independently execute the trajectory information processing method provided in the embodiments of the present application. Alternatively, the terminal 102 and the server 104 can collaborate to execute the trajectory information processing method provided in the embodiments of the present application. When the terminal 102 and the server 104 collaborate to execute the trajectory information processing method provided in the embodiments of the present application, the terminal 102 obtains the body shape features of a first object and the object trajectory information of a second object, and sends them to the server 104. Based on the body shape features, the server 104 generates an object geometry of the first object. The object geometry includes multiple local geometries, each of which encloses the local geometry of at least one part of the first object. The server 104 transfers the object trajectory information of the second object to the object geometry, obtaining the object trajectory information of the object geometry. The server 104 determines multiple collision points where each local geometries collides during interaction, and determines the collision locations of each of the multiple collision points. The server 104 adjusts the positions of the multiple collision occurrence locations to obtain the collision avoidance positions of the multiple collision points. Each collision avoidance position is used to avoid collisions between multiple local geometric bodies during interaction. The server 104 corrects the object trajectory information of the object geometric body based on each collision occurrence location and each collision avoidance position, obtains the object trajectory information of the first object, and feeds back the object trajectory information of the first object to the terminal 102. The terminal 102 may be, but is not limited to, various desktop computers, laptops, smart phones, tablet computers, Internet of Things devices, and portable wearable devices. The Internet of Things devices may be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. Portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc. The server 104 may be implemented as an independent server or a server cluster consisting of multiple servers.

[0044] In one embodiment, as shown in FIG2 , a trajectory information processing method is provided. The method is described by applying the method to the computer device in FIG1 (the computer device may be the terminal or server in FIG1 ) as an example, and includes the following steps:

[0045] Step S202 : obtaining a body feature of the first object, and generating an object geometry of the first object based on the body feature. The object geometry includes a plurality of local geometries, and the local geometries surround at least one part of the first object.

[0046] The somatotype feature refers to feature information related to the somatotype of the first subject. Somatotype is an overall description and assessment of the body shape, for example, the proportions between various parts of the human body.

[0047] Body shape characteristics may include at least one of the following: characteristics of various body parts, longitudinal proportions of the body, and proportions of the trunk and limbs. Characteristics of various body parts may include, but are not limited to, head characteristics, shoulder characteristics, limb characteristics, and abdominal characteristics.

[0048] The first object includes multiple parts, which can form movable limbs. The multiple parts include various parts that form the first object, such as, but not limited to, the head, shoulders, torso, and limbs. The limbs of the first object include multiple first limb parts. The first limb parts can be, for example, upper limbs, lower limbs, forelimbs, hind limbs, etc.

[0049] A local geometric body refers to a geometric body that encloses a portion of a first object. A local portion of a first object refers to one or more parts of the first object. "Multiple" refers to at least two parts. For example, a local geometric body enclosing the head of the first object or a local geometric body enclosing the upper limbs of the first object, where the upper limbs include multiple parts such as the upper arm, forearm, wrist, and hand, can be used.

[0050] The object geometry refers to a global geometry formed by various local geometries. In other embodiments, the object geometry refers to a global geometry formed by local geometries surrounding each part of the first object, and the global geometry surrounds the first object.

[0051] The computer device may detect body shape information of a first object and extract body shape features of the first object from the body shape information. The first object has multiple parts, and based on the body shape features, the computer device generates multiple local geometric bodies on the first object, each of which encloses at least one part of the first object, thereby obtaining an object geometry of the first object.

[0052] In this embodiment, the body shape features include features of various parts of the first object. For each part, the computer device generates a local geometric body enclosing the targeted part of the first object based on the features of the targeted part, thereby obtaining local geometric bodies enclosing various parts of the first object. These local geometric bodies then form an object geometric body enclosing the first object. As shown in Figure 3, the left upper limb of the first object includes the left upper arm, left forearm, left wrist, and left hand. Local geometric bodies enclosing the left upper arm, the left forearm, the left wrist, and the left hand are generated. Similar processing is followed to generate a local geometric body for each part of the first object, thereby forming an object geometric body enclosing the first object.

[0053] In this embodiment, the computer device generates a local geometric body that surrounds multiple parts, for example, generates a local geometric body that surrounds the left upper limb, and the local geometric body simultaneously surrounds multiple parts such as the left upper arm, left forearm, left wrist and left hand.

[0054] In this embodiment, the computer device may generate a local geometric body including a specific part of the first object according to the body shape characteristics of the first object, and each local geometric body constitutes a local geometric body of the first object.

[0055] Step S204 : acquiring object trajectory information of the second object, migrating the object trajectory information of the second object to the object geometry, and obtaining object trajectory information of the object geometry.

[0056] The first object and the second object may be physical objects or virtual objects, specifically physical model objects or virtual objects in a virtual scene, but are not limited thereto. The first object and the second object may be human objects or animal objects.

[0057] The first object and the second object belong to the same category of objects. For example, if the first object is a person, then the second object is also a person. The number of parts of the first object can be the same as the number of parts of the second object. The parts of the first object correspond one-to-one with the parts of the second object.

[0058] The second object includes multiple parts, which can form a movable limb. The limb of the second object includes multiple second limbs. The second limbs can be, for example, upper limbs, lower limbs, forelimbs, hind limbs, etc. The number of first limbs of the first object can be the same as the number of second limbs of the second object.

[0059] The multiple first limbs of the first object correspond one-to-one with the multiple second limbs of the second object. For example, the left upper limb of the first object corresponds to the left upper limb of the second object, and the right upper limb of the first object corresponds to the right upper limb of the second object.

[0060] The object trajectory information of the second object refers to the trajectory information corresponding to the second object, and specifically may be the trajectory information formed by the position of the second object at different times. The object trajectory information of the object geometry refers to the rough trajectory information of the object geometry, and specifically may be the trajectory information formed by the rough position of the object geometry at different times. The position may be a two-dimensional coordinate or a three-dimensional coordinate.

[0061] The object trajectory information of the second object includes trajectory information for each part of the second object. The object trajectory information of the object geometry includes initial trajectory information for each local geometry of the object geometry. Each local geometry of the object geometry encloses at least one part of the first object. The initial trajectory information of the local geometry serves as the initial trajectory information for the enclosed part. The object trajectory information of the object geometry serves as the initial trajectory information for the first object.

[0062] The object trajectory information of the object geometric body is the rough trajectory information of the first object, and specifically may be initial trajectory information formed by the rough positions of the first object at different moments.

[0063] In this embodiment, if each local geometric body in the object geometric body surrounds at least one part of the first object, the object trajectory information of the second object is migrated to the object geometric body, that is, the object trajectory information of the second object is migrated to the first object to obtain the initial trajectory information of the first object.

[0064] The computer device may obtain object trajectory information of the second object, and transfer the object trajectory information of the second object to the first object, to indicate that the object trajectory information of the second object is transferred to the object geometry, thereby obtaining the object trajectory information of the object geometry.

[0065] In this embodiment, the object trajectory information of the second object includes trajectory information of each part of the second object, and the object trajectory information of the object geometric body includes initial trajectory information of each part of the first object. Each part of the second object corresponds to each part of the first object in a one-to-one correspondence. The computer device transfers the trajectory information of each part of the second object to the corresponding part of the first object, obtains the initial trajectory information of the corresponding part of the first object, and thus obtains the object trajectory information of the object geometric body.

[0066] Furthermore, each part of the second object corresponds one-to-one with each part of the first object, and each part of the second object corresponds one-to-one with each part of the object geometric body. For each part of the second object, the computer device replaces the trajectory information of the targeted part with the initial trajectory information of the corresponding part in the object geometric body, thereby obtaining the object trajectory information of the object geometric body.

[0067] In this embodiment, the computer device determines the matching relationship between each part of the first object and each part of the second object, and according to each matching relationship, migrates the trajectory information of each part of the second object to the corresponding part of the first object, obtains the initial trajectory information of the corresponding part of the first object, and obtains the object trajectory information of the object geometry.

[0068] In this embodiment, the object trajectory information of the second object includes the joint rotation information and limb trajectory information of the second object. The computer device transfers the joint rotation information and limb trajectory information of the second object to the object geometry, thereby obtaining the joint rotation information and limb trajectory information of the object geometry. The joint rotation information of the object geometry is the initial joint rotation information of the first object, and the limb trajectory information of the object geometry is the initial limb trajectory information of the first object.

[0069] In this embodiment, the second subject is smaller in size than the first subject. For example, the second subject is thinner than the first subject.

[0070] Step S206 : determining a plurality of collision points where the local geometric bodies collide during the interaction, and determining collision locations of the plurality of collision points.

[0071] The collision point is the point where the multiple local geometric bodies collide, and the location of the collision point during the collision is the collision location of the collision point. Each of the multiple local geometric bodies includes at least one collision point.

[0072] In this embodiment, the collision point is a point on the surface of each local geometric body when multiple local geometric bodies collide.

[0073] After migrating the second object's object trajectory information to the object geometry, due to the size difference between the first and second objects, when the parts of the first object interact according to the migrated object trajectory information of the second object, these parts may collide, resulting in a phenomenon called "cut-through." Cut-through occurs when a part of an object collides with another part of the object, causing one part to pass through the surface of another part or severely squeeze the surface of another part, which is inconsistent with the normal interaction between the parts of the object.

[0074] For example, subjects A and B have significantly different body shapes: subject A is thinner, while subject B is heavier. Subject A can place its hands on its waist. After transferring subject A's trajectory information to subject B, when subject B attempts to place its hands on its waist, the result is that subject B's hands are inserted into the waist, resulting in the clipping phenomenon shown in Figure 4.

[0075] The parts of the object geometric body, i.e., the parts of the first object. For the object geometric body having object trajectory information, the computer device controls the local geometric bodies of the object geometric body to interact according to the object trajectory information, thereby determining multiple local geometric bodies that collide during the interaction of the object geometric body. For the multiple local geometric bodies that collide, the computer device determines the collision point on each local geometric body when the multiple local geometric bodies collide, and determines the position of each collision point at the time of collision. The position of each collision point at the time of collision is used as the collision location of the corresponding collision point.

[0076] In this embodiment, the collision point can be the deepest point of collision when multiple local geometric bodies collide. As shown in Figure 5, parts i and j of a first object collide during interaction. That is, the local geometric body to which part i belongs collides with the local geometric body to which part j belongs. Both the local geometric bodies to which part i belongs and the local geometric bodies to which part j belongs have multiple collision points. The deepest collision point on the local geometric body to which part i belongs is p, and the deepest collision point on the local geometric body to which part j belongs is Q.

[0077] The computer device may determine the deepest collision point on each local geometric body when multiple local geometric bodies collide, and determine the collision occurrence position of each deepest collision point.

[0078] Step S208 : adjusting the positions of the multiple collision occurrence positions to obtain collision avoidance positions of the multiple collision points. Each collision avoidance position is used to avoid collision between the multiple local geometric bodies during interaction.

[0079] A collision avoidance position is a location where collisions can be avoided, meaning it's a location where collisions can be prevented. Each collision avoidance position is used to prevent collisions between multiple local geometric bodies during interaction. When each collision point is within its own collision avoidance position, the interaction between the multiple local geometric bodies will not result in collisions.

[0080] The computer device may adjust the collision locations of the multiple collision points so that the local geometric bodies to which the multiple collision points belong do not collide during the interaction, thereby obtaining the locations of the multiple collision points when the local geometric bodies do not collide with each other. The locations of the multiple collision points when the local geometric bodies do not collide with each other are used as the collision avoidance locations of the multiple collision points.

[0081] In this embodiment, the collision points can be the deepest points of the collision between the multiple local geometric bodies involved in the collision. Each collision avoidance position is the location of the deepest points of the collision between the local geometric bodies when no collision occurs. When the deepest points of the collision are at their respective collision avoidance positions, they no longer collide with each other, and other collision points on the local geometric bodies naturally do not collide, thus preventing collisions between the multiple local geometric bodies.

[0082] Step S210 : Correcting object trajectory information of the object geometric body according to each collision occurrence position and each collision avoidance position to obtain object trajectory information of the first object.

[0083] The object trajectory information of the first object refers to the final trajectory information corresponding to the first object, and specifically may be trajectory information formed by the final position of the first object at different times. The position may be a two-dimensional coordinate or a three-dimensional coordinate.

[0084] The computer device calculates the posture offset information when the multiple local geometric bodies do not collide based on the collision positions and the collision avoidance positions. The computer device corrects the object trajectory information of the object geometric body using the posture offset information to obtain the object trajectory information of the first object.

[0085] In this embodiment, the posture offset information includes joint rotation offset information for each of the parts enclosed by the multiple local geometric bodies, and the object trajectory information of the object geometric body includes joint rotation information for each of the parts enclosed by the multiple local geometric bodies. The joint rotation information of the parts enclosed by the local geometric bodies is corrected using the joint rotation offset information of the parts enclosed by the local geometric bodies to obtain corrected joint rotation information. The object trajectory information of the first object includes this corrected joint rotation information.

[0086] In the above-mentioned trajectory information processing method, a body feature of a first object is obtained, and an object geometry of the first object is generated based on the body feature. The object geometry includes multiple local geometric bodies, each of which surrounds the local geometric body of at least one portion of the first object, such that the local geometric bodies surrounding the portion fit the portion, thereby making the generated object geometry more closely fit the body shape of the first object. Object trajectory information of a second object is obtained, and the object trajectory information of the second object is transferred to the object geometry. The object trajectory information of the object geometry is obtained, and the object trajectory information of the second object is initially transferred to the first object before subsequent adjustments are performed. Multiple collision points where each local geometric body of the object geometry collides during interaction are determined, and the positions of each of the multiple collision points, i.e., collision occurrence locations, are determined to determine the locations at which each local geometric body will collide during interaction. Position adjustments are performed on the multiple collision occurrence locations to obtain multiple collision avoidance positions that prevent collision between the multiple local geometric bodies during interaction, so that when each collision point is at its respective collision avoidance position, the interaction between the multiple local geometric bodies does not result in collision. Based on each collision location and collision avoidance location, the object trajectory information of the object's geometry is corrected so that the corrected parts of the first object do not collide during interaction. This results in object trajectory information tailored to the first object's physical characteristics. Furthermore, by considering the influence of the object's physical shape on trajectory information transfer, trajectory information transfer becomes more flexible and accurate.

[0087] In one embodiment, the body shape feature is represented by a plurality of skin key points of the first object, and generating the object geometry of the first object based on the body shape feature includes:

[0088] Obtain skin weights of multiple skin key points; obtain preset weight constraints, and filter out skin key points that meet the weight constraints based on the skin weights; perform principal component analysis on the filtered skin key points to obtain geometric axes of multiple parts of the first object; for each of the multiple parts, generate a local geometric body surrounding the targeted part according to the geometric axis of the targeted part, and obtain an object geometry formed by each local geometric body.

[0089] The shape features of the first object are represented by the first object's skin keypoints. The technique of binding a model to a skeleton is called skinning. Skinning involves using the skeleton to control the model's morphological nodes, which represent the outer contour, to achieve a reasonable binding effect. Skinning is a 3D animation production technique that involves binding mesh points to specified bones. Based on the weights assigned during binding, the mesh points move with the movement of the bones. Skin keypoints refer to key mesh points, which can be mesh vertices. The weights assigned during binding are called skin weights.

[0090] Principal Component Analysis (PCA) is used to reduce the feature dimension while minimizing information loss.

[0091] The weight constraint is a preset constraint condition that filters skin key points based on weight. Specifically, the skin weight of the skin key point can be greater than the preset weight threshold, or a preset number of skin key points can be filtered out from high to low according to the skin weight.

[0092] The computer device may obtain a plurality of skin key points of the first object, and characterize the body shape characteristics of the first object through the plurality of skin key points.

[0093] The computer device obtains skin weights of each of the plurality of skin key points of the first object and obtains a preset weight constraint. The computer device matches the skin weight of each skin key point with the weight constraint to select skin key points that meet the weight constraint from the plurality of skin key points.

[0094] The computer device performs principal component analysis on the selected skin key points to obtain axes corresponding to the first principal components of the plurality of parts of the first object. For each part, the axis corresponding to the first principal component of the part is used as the geometric axis of the part.

[0095] For each of the plurality of parts, a local geometric body surrounding the part is generated according to the geometric axis corresponding to the part, so as to obtain local geometric bodies of the plurality of parts. The local geometric bodies of the plurality of parts form the object geometric body of the first object.

[0096] In this embodiment, the skin key points of the first object include multiple skin key points of multiple parts of the first object.

[0097] For each of the plurality of parts of the first object, the computer device obtains a plurality of skin keypoints for the targeted part and determines a skin weight corresponding to each skin keypoint. For each of the plurality of parts, based on the skin weights corresponding to the plurality of skin keypoints for the targeted part, the computer device selects skin keypoints in the targeted part that satisfy weight constraints. A principal component analysis is performed on the selected skin keypoints to obtain geometric axes for the targeted part. Local geometric bodies surrounding the targeted part are generated according to the geometric axes of the targeted part, and an object geometry formed by the local geometric bodies is obtained.

[0098] In this embodiment, the body shape characteristics of the first object are characterized by its skin key points. Skin weights are obtained for each of the first object's multiple skin key points. Skin key points that satisfy weight constraints are screened based on the skin weights. Principal component analysis is then performed on the screened skin key points to obtain geometric axes for each of the multiple parts of the first object. This method preserves features near the geometric axes, reduces feature dimensionality, reduces computational effort, and minimizes information loss. Furthermore, the geometric axes preserve as many features of the targeted part as possible. The retained features better reflect the morphology of the targeted part, allowing the local geometric body generated according to the geometric axis of the targeted part to fit the part, thereby ensuring that the object geometry formed by the obtained local geometric bodies better fits the body shape of the first object.

[0099] In one embodiment, generating the object geometry of the first object based on the body shape feature includes:

[0100] Obtain candidate geometric features for each iteration, and for each iteration, generate a candidate geometric body of the first object in the iteration based on the body shape features and the candidate geometric features of the iteration; determine the volume corresponding to the candidate geometric body of each iteration; obtain a preset volume constraint condition, filter out the volume that meets the volume constraint condition from each volume, and use the candidate geometric body corresponding to the filtered volume as the object geometry.

[0101] The candidate geometric features are one or more solid geometric figures used to generate the object geometry of the first object. For example, the object geometry may be formed by combining multiple capsules, or by combining a capsule and a sphere, but are not limited to these. Examples of candidate geometric features include, but are not limited to, cuboids, cubes, capsules, and spheres.

[0102] Volume constraints are preset conditions used to constrain the volume of an object's geometry. A volume constraint can select the smallest volume from multiple volumes, or select a volume smaller than a threshold.

[0103] The computer device may obtain a plurality of preset candidate geometric features, and iteratively generate a plurality of candidate geometric bodies corresponding to the first object through the plurality of candidate geometric features.

[0104] For each iteration, the computer device obtains the candidate geometric features used in the iteration and, based on the shape features of the first object and the candidate geometric features used in the iteration, constructs a local geometric body that encloses at least one portion of the first object, thereby obtaining a candidate geometric body formed by the local geometric bodies in the iteration. The candidate geometric bodies include multiple local geometric bodies, each of which encloses at least one portion of the first object. The computer device can obtain candidate geometric bodies for each iteration using similar processing.

[0105] The computer device determines the volume of each candidate geometric body and obtains a preset volume constraint. The computer device matches the volumes of the candidate geometric bodies obtained in each iteration with the volume constraint, selects the volumes that satisfy the volume constraint from each candidate geometric body, and determines the candidate geometric body corresponding to the selected volume. The candidate geometric body corresponding to the selected volume is used as the object geometric body of the first object.

[0106] In this embodiment, different candidate geometric features are used in each iteration. For example, a capsule is selected to construct the candidate geometric body in the first iteration, and a sphere is selected to construct the candidate geometric body in the second iteration.

[0107] In this embodiment, candidate geometric features are obtained for each iteration. For each iteration, candidate geometric bodies for the first object are generated based on the body shape features and the candidate geometric features of the iteration. This allows different geometric features to be used in different iterations to generate candidate geometric bodies for the first object, thereby determining which geometric bodies best fit the body shape of the first object. The volumes corresponding to the candidate geometric bodies for each iteration are determined, and the candidate geometric bodies corresponding to the volumes that satisfy the volume constraint are selected from each volume as the object geometry. Based on the volumes of the candidate geometric bodies, the geometric body that best fits the first object can be accurately selected. Furthermore, the volume constraint can be to select the candidate geometric body with the smallest volume, and the candidate geometric body with the smallest volume best fits the body shape of the first object, thereby obtaining a geometric body that accurately represents the body shape of the first object.

[0108] In one embodiment, the body shape feature is represented by a plurality of key points of the first object, and the volume corresponding to the candidate geometric body of each iteration is determined, including:

[0109] In each iteration, key points belonging to the first object in the candidate geometric bodies are determined; preset key point constraints are obtained, and based on the key points belonging to the first object in each candidate geometric body, candidate geometric bodies whose key points satisfy the key point constraints are screened out from the candidate geometric bodies obtained in each iteration; each candidate geometric body that satisfies the key point constraints is determined; and the volume corresponding to each screened candidate geometric body is determined.

[0110] The key point constraint condition refers to the condition for screening candidate geometric bodies by key points. The shape characteristics of the first object can be represented by multiple key points. The key point constraint condition can be that the candidate geometric body contains a preset number of key points, or that the candidate geometric body contains all key points.

[0111] The computer device obtains multiple key points of the first object to characterize the shape features of the first object using the multiple key points. In each iteration, the computer device determines the key points belonging to the first object in the candidate geometric bodies, that is, determines which key points of the first object are included in the candidate geometric bodies. The computer device obtains key point constraints and, based on the key points belonging to the first object in each candidate geometric body, selects candidate geometric bodies whose key points satisfy the key point constraints from the candidate geometric bodies obtained in each iteration.

[0112] The computer device determines the volume corresponding to each of the screened candidate geometric bodies and obtains the volume constraint. The computer device matches each of the screened volumes with the volume constraint, screens out a volume that satisfies the volume constraint from each of the volumes, and uses the candidate geometric bodies corresponding to the screened volumes as the object geometry of the first object.

[0113] For example, the computer device filters out the candidate geometric bodies that contain all key points from the candidate geometric bodies obtained in each iteration, and determines the volume of the filtered candidate geometric bodies, and uses the candidate geometric body with the smallest volume as the object geometry of the first object, so that the obtained object geometry contains all the key points of the first object and has the smallest volume, so that the object geometry best fits the shape of the first object.

[0114] In this embodiment, the key points may be skin key points, and the key point constraint condition may be that the candidate geometric body includes a preset number of skin key points of the first object, or includes all skin key points of the first object.

[0115] In this embodiment, in each iteration, key points belonging to the first object in the candidate geometric bodies are determined, and preset key point constraints are obtained. Based on the key points belonging to the first object in each candidate geometric body, candidate geometric bodies whose key points satisfy the key point constraints are screened from the candidate geometric bodies obtained in each iteration, thereby preliminarily screening candidate geometric bodies that meet the key point constraints. Next, the volume corresponding to each candidate geometric body that satisfies the key point constraints is determined, and then candidate geometric bodies corresponding to volumes that satisfy the volume constraints are further screened from each volume. This ensures that the selected candidate geometric bodies best fit the body shape of the first object, effectively avoiding clipping caused by body shape differences between the characters before and after migration.

[0116] In one embodiment, as shown in FIG6 , migrating the object trajectory information of the second object to the object geometry to obtain the object trajectory information of the object geometry includes:

[0117] Step S602: Acquire a first skeleton hierarchical relationship of the first object, where the first skeleton hierarchical relationship represents a hierarchical relationship between first bones of the first object.

[0118] Step S604: obtaining a second skeleton hierarchical relationship of the second object, where the second skeleton hierarchical relationship represents a hierarchical relationship between the second bones of the second object.

[0119] The first bone hierarchical relationship represents the hierarchical relationship between the first bones of the first object, and the second bone hierarchical relationship represents the hierarchical relationship between the second bones of the second object.

[0120] The first object includes a plurality of parts, each of which includes a respective first skeleton. The second object includes a plurality of parts, each of which includes a respective second skeleton.

[0121] The computer device obtains the hierarchical relationship between the first bones of the first object, that is, the first hierarchical relationship, and the computer device obtains the hierarchical relationship between the second bones of the second object, that is, the second hierarchical relationship.

[0122] Step S606: perform hierarchical matching on the hierarchical relationship of the first bones and the hierarchical relationship of the second bones to obtain a one-to-one matching relationship between each first bone and each second bone.

[0123] The computer device performs hierarchical matching on each first skeleton and each second skeleton according to the hierarchical relationship of the first skeleton and the hierarchical relationship of the second skeleton to establish a one-to-one matching relationship between each first skeleton and each second skeleton.

[0124] In this embodiment, the one-to-one matching relationship between each first skeleton and each second skeleton is used as the one-to-one matching relationship between the part to which each first skeleton belongs and the part to which each second skeleton belongs.

[0125] Step S608 : Migrating the object trajectory information of the second object to the object geometry according to the matching relationship to obtain the object trajectory information of the object geometry.

[0126] The computer device transfers the object trajectory information of the second object to the object geometric body according to the matching relationship, and obtains the object trajectory information of the object geometric body.

[0127] In this embodiment, the object trajectory information of the second object includes trajectory information for each part of the second object. The computer device migrates the trajectory information for each part of the second object to the corresponding part of the object geometric body according to the one-to-one matching relationship between each first skeleton and each second skeleton, thereby obtaining initial trajectory information for each part of the first object. The initial trajectory information for each part of the first object is the trajectory information for each part of the object geometric body, thereby obtaining the object trajectory information for the object geometric body.

[0128] In this embodiment, according to the matching relationship, under the preset posture of the first object and the preset posture of the second object, the object trajectory information of the second object is transferred to the first object in a static posture, so that the object trajectory information of the first object and the second object are transferred in the same posture. The preset posture can be the static posture of the object.

[0129] In this embodiment, the first bone hierarchical relationship represents the hierarchical relationship between the first bones of the first object, and the second bone hierarchical relationship represents the hierarchical relationship between the second bones of the second object. The first bone hierarchical relationship of the first object and the second bone hierarchical relationship of the second object are hierarchically matched to obtain a one-to-one matching relationship between the first bones and the second bones, so that each bone of the second object can be mapped to a bone of the first object respectively, so that the object trajectory information of the second object can be accurately migrated to the object geometry according to the matching relationship between the bones, and the object trajectory information of the object geometry is obtained.

[0130] In one embodiment, hierarchical matching is performed on the hierarchical relationship of the first skeleton and the hierarchical relationship of the second skeleton to obtain a one-to-one matching relationship between each first skeleton and each second skeleton, including:

[0131] Obtain the standard bone hierarchical relationship of the standard skeleton, which represents the hierarchical relationship between the standard bones of the standard skeleton; hierarchically map the first bone hierarchical relationship and the standard bone hierarchical relationship to obtain a one-to-one mapping relationship between each first bone and each standard bone; hierarchically map the second bone hierarchical relationship and the standard bone hierarchical relationship to obtain a one-to-one mapping relationship between each second bone and each standard bone; for each standard bone, establish a matching relationship between the first bone and the second bone that have a mapping relationship with the targeted standard bone.

[0132] The standard skeleton is generated from multiple standard bones. Each standard bone belongs to a corresponding part. The hierarchical relationship of the standard bones represents the hierarchical relationship between the standard bones of the standard skeleton, as shown in Figure 7.

[0133] The computer device obtains a hierarchical relationship between the standard skeleton and each standard bone of the standard skeleton. The computer device hierarchically maps the first bone hierarchical relationship to the standard bone hierarchical relationship to map each first bone of the first object to a standard bone of the standard skeleton, thereby obtaining a one-to-one mapping relationship between each first bone and each standard bone. The mapping relationship between a first bone and a standard bone can be referred to as a first mapping relationship.

[0134] The computer device hierarchically maps the second bone hierarchical relationship with the standard bone hierarchical relationship to map each second bone of the second object to a standard bone of the standard skeleton, thereby obtaining a one-to-one mapping relationship between each second bone and each standard bone. The mapping relationship between a second bone and a standard bone can be referred to as a second mapping relationship.

[0135] The computer device matches each first skeleton with each second skeleton based on the first mapping relationship and the first mapping relationship, so as to match the first skeleton and the second skeleton corresponding to the same standard skeleton, thereby obtaining a matching relationship between each first skeleton and each second skeleton. Furthermore, if a standard skeleton has a mapping relationship with a first skeleton, and a standard skeleton has a mapping relationship with a second skeleton, then for each standard skeleton, the computer device establishes a matching relationship for the first skeleton and the second skeleton that have a mapping relationship with the standard skeleton, thereby obtaining a one-to-one matching relationship between each first skeleton and each second skeleton.

[0136] In this embodiment, the standard skeleton is formed by the bones of various parts of the object, and the standard bone hierarchical relationship represents the hierarchical relationship between the standard bones of the standard skeleton. The standard skeleton and the standard bone hierarchical relationship are both preset and configured. The first bone hierarchical relationship and the standard bone hierarchical relationship are hierarchically mapped to obtain a one-to-one mapping relationship between each first bone and each standard bone. The second bone hierarchical relationship and the standard bone hierarchical relationship are hierarchically mapped to obtain a one-to-one mapping relationship between each second bone and each standard bone. The first bones of the first object and the second bones of the second object can be respectively mapped to the standard bones, so that the bones of the first object and the second object can be matched together through the standard bones, making the bone matching between the two more accurate, which is conducive to improving the accuracy of subsequent trajectory information migration.

[0137] In one embodiment, adjusting the positions of the multiple collision locations to obtain collision avoidance positions of the multiple collision points includes:

[0138] Collision detection is performed based on the collision positions of each of the multiple collision points to obtain the collision depths and collision normal vectors between the multiple collision points; position adjustment is performed based on the collision positions, collision depths and collision normal vectors to obtain the collision avoidance positions of each of the multiple collision points.

[0139] The collision depth refers to the depth between multiple collision points when a collision occurs. The collision depth can be represented by the distance between the collision points. The collision normal vector refers to the normal vector corresponding to the multiple collision points when a collision occurs.

[0140] The computer device determines multiple local geometric bodies that collide when parts of the object's geometric bodies interact, and determines multiple collision points where the multiple local geometric bodies collide. The computer device obtains collision locations of each of the multiple collision points, and performs collision detection on the collision locations of each of the multiple collision points to determine collision depths between the multiple collision points and collision normal vectors between the multiple collision points.

[0141] For each collision location, the computer device adjusts the position of the collision point at the targeted collision location based on the targeted collision location, collision depth, and collision normal vector to obtain a collision avoidance position corresponding to the collision point at the targeted collision location. A similar process can be used to obtain a collision avoidance position corresponding to each collision point.

[0142] In this embodiment, the computer device may obtain a preset position mapping function that represents the mapping relationship between the collision location and the collision avoidance position of the collision point. For each collision location, the computer device adjusts the position of the collision point at the targeted collision location based on the position mapping function, the targeted collision location, the collision depth, and the collision normal vector to obtain the collision avoidance position for that collision point.

[0143] Furthermore, for each collision occurrence position, the computer device substitutes the collision occurrence position, collision depth and collision normal vector into the position mapping function to obtain the collision avoidance position of the collision point.

[0144] In this embodiment, collision detection is performed based on the collision locations of each of the multiple collision points, accurately calculating the collision depth and collision normal vector between the multiple collision points. Thus, the collision depth accurately reflects the degree of collision between the collision points. Position adjustments are performed based on each collision location, collision depth, and collision normal vector to a position where no collision occurs. Thus, collision avoidance positions are determined for each of the multiple collision points. When the collision points are in the collision avoidance positions, collisions caused by the interaction of various parts of the first object can be effectively avoided.

[0145] In one embodiment, position adjustment is performed based on the collision location, collision depth, and collision normal vector of each collision point to obtain collision avoidance positions corresponding to each of the multiple collision points, including:

[0146] Obtain weight parameters of each of the multiple local geometric bodies; for each collision point, adjust the position according to the collision location of the collision point, the weight parameters corresponding to the local geometric body to which the collision point belongs, the collision depth, and the collision normal vector to obtain the collision avoidance position of the collision point.

[0147] The weight parameter represents the importance of each of the multiple local geometric bodies involved in the collision in the position adjustment. The larger the weight parameter corresponding to a local geometric body, the more likely it is to be moved to avoid the collision, that is, the more significant the position adjustment of the local geometric body will be.

[0148] For example, if the weight parameter of local geometry A is 0.7 and the weight parameter of local geometry B is 0.3, it means that the position adjustment is more inclined to move local geometry A to avoid collision between local geometry A and local geometry B. In other words, the position change of local geometry A is more obvious.

[0149] The weight parameter may depend on the types of the multiple local geometries that collide. When the multiple local geometries are of the same type, the weight parameters of the local geometries may be the same. When the multiple local geometries are of different types, the weight parameters of the local geometries may be different.

[0150] For example, if multiple local geometric bodies are all upper limb parts or all lower limb parts, the weight parameters of each local geometric body can be the same, such as 0.5. If one of the multiple local geometric bodies is an upper limb part and the other is a lower limb part, the weight parameter of the local geometric body of the upper limb part can be 1 or 0.8, and the weight parameter of the local geometric body of the lower limb part can be 0 or 0.1.

[0151] The computer device obtains weight parameters of each of the multiple local geometric bodies and adjusts the position of each collision point based on the collision location of the collision point, the weight parameters of the local geometric body to which the collision point belongs, the collision depth, and the collision normal vector to obtain a collision avoidance position for the collision point. A similar process can be used to obtain a collision avoidance position for each collision point.

[0152] In this embodiment, for each collision point, position adjustment is performed based on the position mapping function, the collision occurrence position of the collision point, the weight parameter corresponding to the local geometric body to which the collision point belongs, the collision depth and the collision normal vector to obtain the collision avoidance position of the collision point.

[0153] Furthermore, the computer device calculates the product of the weight parameter, collision depth, and collision normal vector of the local geometric body to which the targeted collision point belongs, and uses the sum of the collision occurrence position of the targeted collision point and the product as the collision avoidance position of the targeted collision point. Alternatively, the computer device uses the difference between the collision occurrence position of the targeted collision point and the product as the collision avoidance position of the targeted collision point.

[0154] In this embodiment, for any two collision points among multiple collision points, when the collision avoidance position of one collision point is the sum of the collision occurrence position of the collision point and the product, the collision avoidance position of the other collision point is the difference between the collision occurrence position of the collision point and the product.

[0155] For example, as shown in Figure 8, parts i and j of the first object collide during interaction. Parts i and j both have multiple collision points. The collision point on part i is p, and the collision point on part j is Q. The collision avoidance positions of the collision points P and Q can be calculated using the following formula:

[0156] Among them, the collision depth is d and the collision normal is α represents the adjustment weight of the joint, that is, the weight parameter of the local geometry. The higher the weight, the more inclined to move the local geometry to avoid collision. The upper limb joint weight defaults to 1, otherwise it is 0. When both joints are upper limb joints, α i =α j = 0.5. The distribution of weight parameters can be adjusted according to actual needs.

[0157] In this embodiment, weight parameters are obtained for each of the multiple local geometric bodies. The weight parameters are used to indicate which local geometric body is more likely to be moved. Thus, for each collision point, position adjustment is performed based on the collision location of the collision point, the weight parameters of the local geometric body to which the collision point belongs, the collision depth, and the collision normal vector. This adjustment is made to a position where no collision occurs. This results in collision avoidance positions for each of the multiple collision points. This positional avoidance position effectively avoids collisions between the various parts of the first object. Furthermore, the weight parameters can indicate which local geometric body has a larger position adjustment and which has a smaller position adjustment, enabling the optimal adjustment of each local geometric body.

[0158] In one embodiment, correcting object trajectory information of the object geometry according to each collision occurrence position and each collision avoidance position to obtain object trajectory information of the first object includes:

[0159] Attitude offset prediction is performed according to each collision occurrence position and each collision avoidance position to obtain attitude offset information between multiple local geometric bodies; based on the attitude offset information, object trajectory information of the object geometric body is corrected to obtain object trajectory information of the first object.

[0160] The pose offset information is a collection of joint rotation offset information for each part enclosed by multiple local geometric bodies. The joint rotation offset information represents the difference between two joint rotations at the collision point: one at the collision-occurring position, and the other at the collision-avoiding position.

[0161] When each collision point is at a collision occurrence position, the local geometric bodies to which each collision point belongs will collide; when each collision point is at a collision avoidance position, the local geometric bodies to which each collision point belongs will not collide. This means that the posture offset information is the offset information from the occurrence of a collision to the non-occurrence of a collision. This posture offset information can be used to avoid collisions between multiple local geometric bodies during interaction.

[0162] The computer device predicts the posture offset based on each collision location and each collision avoidance location to determine the difference information between each collision point from the collision location to the collision avoidance location, and thus obtains the posture offset information between multiple local geometric bodies, so that multiple local geometric bodies do not collide when interacting.

[0163] The computer device corrects the object trajectory information of the object geometric body based on the posture offset information to obtain the corrected object trajectory information, and uses the corrected object trajectory information as the object trajectory information of the first object.

[0164] In this embodiment, the posture offset information between multiple local geometric bodies includes the offset information of each local geometric body. For each collision point, the computer device predicts the posture offset of the local geometric body to which the collision point belongs based on the collision location and collision avoidance location of the collision point, and obtains the offset information corresponding to the local geometric body. The posture offset information is obtained by integrating the offset information corresponding to each local geometric body.

[0165] In this embodiment, the object trajectory information of the second object includes joint rotation information for each part of the second object, and the posture offset information includes joint rotation offset information for each part enclosed by multiple local geometric bodies. A posture offset prediction is performed based on each collision occurrence location and each collision avoidance location to obtain joint rotation offset information for each part enclosed by the multiple local geometric bodies, i.e., joint rotation offset information for a collision-free situation. Based on the joint rotation offset information for each part enclosed by the multiple local geometric bodies, the joint rotation information for the corresponding part of the object geometric body is corrected to obtain the corrected joint rotation information, thereby obtaining the object trajectory information for the first object.

[0166] In this embodiment, posture offset prediction is performed based on each collision location and each collision avoidance location to calculate the difference between the joint rotation of each collision point at the collision location and the joint rotation at the collision avoidance location, thereby accurately obtaining posture offset information between multiple local geometric bodies. Based on this posture offset information, the object trajectory information of the object geometric body is corrected, thereby adjusting the trajectory information of each part that may cause collision during the interaction, and obtaining trajectory information that does not cause collision during the interaction. This allows for accurate transfer of trajectory information for objects of different sizes, ensuring that the transferred trajectory information fully conforms to the object itself, thereby improving the accuracy of trajectory transfer.

[0167] In one embodiment, as shown in FIG9 , posture offset prediction is performed based on each collision occurrence position and each collision avoidance position to obtain posture offset information between multiple local geometric bodies, including:

[0168] Step S902 : obtaining initial offset information, and pre-correcting the object trajectory information of the object geometric body according to the initial offset information to obtain pre-corrected trajectory information, wherein the pre-corrected trajectory information includes predicted avoidance positions corresponding to each of the plurality of collision points.

[0169] Among them, the initial offset information represents the initial difference between two joint rotation amounts representing the collision point, one of which refers to the joint rotation amount when the collision point is at the collision occurrence position, and the other refers to the joint rotation amount when the collision point is at the collision avoidance position.

[0170] Pre-corrected trajectory information is obtained by correcting the object's trajectory information using initial offset information. It predicts the trajectory of each local geometric body so that collisions do not occur during interaction. This pre-corrected trajectory information includes predicted avoidance positions for each of the multiple collision points. Predicted avoidance positions are locations where collisions are predicted to occur, meaning they are predicted to be avoidable.

[0171] The computer device obtains preset initial offset information, and pre-corrects the object trajectory information of the object geometric body according to the initial offset information to obtain pre-corrected trajectory information of the object geometric body. The pre-corrected trajectory information includes predicted avoidance positions corresponding to each of the plurality of collision points.

[0172] Step S904 : for each collision point, determining the distance between the predicted avoidance position of the collision point and the collision avoidance position, and adjusting the initial offset information based on the distance to obtain updated offset information.

[0173] The computer device calculates the distance between the predicted avoidance position of each collision point and the corresponding collision avoidance position, adjusts the initial offset information based on the distance, and obtains updated offset information.

[0174] Furthermore, the predicted avoidance position and the collision avoidance position of the same collision point correspond to each other.

[0175] For each collision point, a predicted avoidance position for the collision point is determined, and a collision avoidance position for the collision point is determined, thereby determining a distance between the predicted avoidance position for the collision point and the collision avoidance position.

[0176] Step S906, enter the next iteration, use the updated offset information as the initial offset information in the next iteration, return to the step of pre-correcting the object trajectory information of the object geometry based on the initial offset information and continue executing until the iteration stop condition is met to obtain the posture offset information.

[0177] After obtaining the updated offset information, enter the next iteration, use the updated offset information as the initial offset information in the next iteration, and return to the step of pre-correcting the object trajectory information of the object geometry according to the initial offset information and continue executing until the posture offset information is obtained when the iteration stop condition is met.

[0178] In this embodiment, the iteration stopping condition may be when a preset number of iterations is reached, or when the distance between the predicted avoidance position and the collision avoidance position of the same collision point in an iteration is less than or equal to a distance threshold. For example, if the number of iterations is 20, the updated offset information obtained in the 20th iteration is used as the posture offset information.

[0179] Alternatively, when the distance between the predicted avoidance position obtained in the iteration and the corresponding collision avoidance position is less than or equal to the distance threshold, the initial offset information in the iteration is used as the posture offset information.

[0180] In this embodiment, the initial offset information includes the predicted joint rotation amount of each part during the interaction; the object trajectory information of the object geometry includes the joint rotation amount of each part; and the posture offset information includes the joint rotation offset amount of each part when the parts do not collide during the interaction.

[0181] The computer device obtains the predicted joint rotation amount of each part, pre-corrects the joint rotation amount of the corresponding part of the object geometric body based on the predicted joint rotation amount of each part, and obtains the pre-corrected joint rotation amount of the corresponding part of the object geometric body. The computer device adjusts the collision occurrence position of the corresponding part using the pre-corrected joint rotation amount of each part of the object geometric body, and obtains the predicted avoidance position corresponding to each of the multiple collision points. The computer device determines the distance between each predicted avoidance position and the corresponding collision avoidance position, and adjusts the predicted joint rotation amount of each part in the current iteration based on the distance to obtain an updated predicted joint rotation amount. The next iteration is entered, and the updated predicted joint rotation amount is used as the predicted joint rotation amount in the next iteration. The computer device returns to the step of pre-correcting the joint rotation amount of the corresponding part of the object geometric body based on the predicted joint rotation amount of each part and continues to execute until an iteration stop condition is met, obtains the joint rotation offset of each part, and corrects the joint rotation amount of the corresponding part based on the joint rotation offset of each part to obtain object trajectory information of the first object.

[0182] In this embodiment, the computer device can construct a Jacobian matrix based on the predicted avoidance position of each collision point, the collision avoidance position, and the distance between the predicted avoidance position and the collision avoidance position; and calculate the updated joint predicted rotation amount based on the Jacobian matrix, the distance between each predicted avoidance position and the corresponding collision avoidance position, and the joint predicted rotation amount.

[0183] In this embodiment, initial offset information is obtained, and object trajectory information of the object geometry is pre-corrected based on the initial offset information to predict predicted avoidance positions for multiple collision points. The distance difference between the predicted avoidance position and the collision avoidance position of each collision point is determined, so that the distance between the avoidance position predicted based on the initial offset information and the actual collision avoidance position can be used to reflect the difference between the corrected avoidance position and the collision avoidance position. The initial offset information is adjusted based on the distance difference so that the avoidance position obtained by the updated offset information in each iterative adjustment is closer to the actual collision avoidance position. The next iteration is entered, and the updated offset information is used as the initial offset information in the next iteration. The process returns to the step of pre-correcting the object trajectory information of the object geometry based on the initial offset information and continues until the iteration stop condition is met, and the posture offset information is obtained. This allows the predicted avoidance position to continuously approach the actual collision avoidance position over multiple iterations, thereby making the migration of trajectory information more accurate.

[0184] In one embodiment, the object trajectory information of the object geometry includes limb trajectory information of at least two first limbs of the first object and joint rotation information of at least two parts of the first object. The object trajectory information of the second object includes limb trajectory information of at least two second limbs of the second object and joint rotation information of at least two parts of the second object, and the at least two first limbs of the first object correspond to the at least two second limbs of the second object in a one-to-one manner. The method further includes:

[0185] Determining first interaction information between the at least two first limbs of the first object based on limb trajectory information of each of the at least two first limbs; determining second interaction information between the at least two second limbs of the second object based on limb trajectory information of each of the at least two second limbs; and determining limb interaction constraint information between the first object and the second object based on the first interaction information and the second interaction information;

[0186] Correcting object trajectory information of the object geometry according to each collision occurrence position and each collision avoidance position to obtain object trajectory information of the first object includes:

[0187] Based on the limb interaction constraint information, the limb trajectory information of each of the multiple first limbs is corrected, and according to each collision occurrence position and each collision avoidance position, the joint rotation information of at least two parts of the first object is corrected to obtain the object trajectory information of the first object.

[0188] The limb trajectory information refers to the trajectory information corresponding to the first limb, and specifically may be the trajectory information formed by the position of the first limb at different times.

[0189] The limb trajectory information refers to the trajectory information corresponding to the second limb, and specifically may be the trajectory information formed by the position of the second limb at different times.

[0190] If each part of the first object includes a respective joint, then each first limb includes a respective joint. If each part of the second object includes a respective joint, then each second limb includes a respective joint. Each joint includes respective joint rotation information, representing the amount of rotation of the joint. Furthermore, the joint rotation information includes the rotational components of the joint in various directions, for example, the respective rotational components on the x, y, and z axes.

[0191] The object trajectory information of the object geometry includes limb trajectory information of each of the multiple first limbs of the first object and joint rotation information of each of the multiple first limbs.

[0192] The object trajectory information of the second object includes limb trajectory information of each of the multiple second limbs of the second object and joint rotation information of each of the multiple second limbs.

[0193] The first interaction information refers to information representing the interaction relationship between multiple first limbs. The interaction relationship between multiple first limbs is called the first interaction relationship.

[0194] The second interaction information refers to information representing the interaction relationship between multiple second limbs. The interaction relationship between multiple second limbs is called the second interaction relationship.

[0195] Limb interaction constraints are constraints on the interactions between multiple limbs during trajectory migration. Limb interaction constraints are constraints on the interactions between multiple first limbs and between multiple second limbs during the process of migrating limb trajectory information from multiple first limbs to multiple second limbs.

[0196] The interaction relationship between multiple first limbs is called a first interaction relationship. The information about the interaction relationship between multiple second limbs is called a second interaction relationship. The limb interaction constraint information between the first object and the second object is the constraint between the first interaction relationship and the second interaction relationship.

[0197] The limb interaction constraint information may be joint chain constraint information.

[0198] The computer device obtains limb trajectory information of at least two first limbs of a first object, and determines first interaction information between the at least two first limbs based on the limb trajectory information of the at least two first limbs. The computer device obtains limb trajectory information of at least two second limbs of a second object, and determines second interaction information between the at least two second limbs based on the limb trajectory information of the at least two second limbs. The computer device determines limb interaction constraint information between the first object and the second object based on the first interaction information and the second interaction information.

[0199] The computer device corrects the limb trajectory information of each of the plurality of first limbs based on the limb interaction constraint information to obtain corrected limb trajectory information of each of the plurality of first limbs. The computer device corrects the joint rotation information of each of the plurality of first limbs based on each collision occurrence location and each collision avoidance location to obtain corrected joint rotation information of each of the plurality of first limbs. The corrected limb trajectory information and the corrected joint rotation information of each of the plurality of first limbs form object trajectory information of the first object.

[0200] In this embodiment, the first interaction information between at least two first limbs is determined, and the second interaction information between the second limbs is determined. Based on the first interaction information and the second interaction information, limb interaction constraint information between the first object and the second object is generated. The generated limb interaction constraint information enables the multiple first limbs to obtain the interaction relationship between the multiple second limbs. Based on the limb interaction constraint information, the limb trajectory information of each of the multiple first limbs is corrected, so that the limb trajectory information after migration not only retains the interaction relationship between the multiple second limbs, but also conforms to the characteristics of each limb of the first object itself. According to each collision occurrence position and each collision avoidance position, the joint rotation information of each of the multiple first limbs is corrected, so that the joint rotation information in the object trajectory information migrated to the first object is more consistent with the body shape of the first object, avoiding the large difference in body shape between the second object and the first object, which causes the mold penetration phenomenon after migration.

[0201] In one embodiment, determining second interaction information between at least two second limbs of the second object based on limb trajectory information of each of the at least two second limbs includes:

[0202] Pre-correct the limb trajectory information of at least two second limbs of the second object to obtain pre-corrected limb trajectory information of at least two second limbs; based on the pre-corrected limb trajectory information of at least two second limbs, determine the second interaction information between the at least two second limbs.

[0203] The pre-corrected limb trajectory information refers to the limb trajectory information obtained after pre-correcting the limb trajectory information of the second limb. Pre-correction refers to a correction process that pre-estimates the initial trajectory information of the second limb.

[0204] For each of the at least two second limbs, the computer device pre-corrects the limb trajectory information for the second limb to obtain pre-corrected limb trajectory information for the second limb, thereby obtaining pre-corrected limb trajectory information for each second limb. The pre-corrected limb trajectory information refers to the trajectory information of the second limb after pre-correction, and specifically can be trajectory information formed by the position of the second limb at different times.

[0205] The computer device filters out the interactive trajectory information of at least two second limbs based on the pre-corrected limb trajectory information of at least two second limbs, and uses the interactive trajectory information of at least two second limbs as the second interactive information between the at least two second limbs.

[0206] In this embodiment, the limb trajectory information of at least two second limbs of the second object is pre-corrected to obtain the pre-corrected limb trajectory information of at least two second limbs. Based on the pre-corrected limb trajectory information of at least two second limbs, the second interaction information between the at least two second limbs is determined, and the interaction relationship between each second limb after pre-correction can be estimated.

[0207] In one embodiment, the method further comprises:

[0208] Determining first posture information of each of the at least two first limbs of the first object based on limb trajectory information of each of the at least two first limbs; determining second posture information of each of the at least two second limbs of the second object based on limb trajectory information of each of the at least two second limbs; and generating, for each first limb, single limb constraint information between the first limb and the corresponding second limb based on the first posture information of the first limb and the second posture information of the corresponding second limb;

[0209] Correcting limb trajectory information of each of the plurality of first limbs based on the limb interaction constraint information includes:

[0210] For each first limb, the limb trajectory information of the first limb is corrected based on the limb interaction constraint information and the single limb constraint information between the first limb and the corresponding second limb.

[0211] The first posture information refers to information representing the posture of the first limb, and the second posture information refers to information representing the posture of the second limb.

[0212] Single-limb constraint information refers to the constraint information between a first limb of a first object and the corresponding second limb of a second object. Single-limb constraint information applies to a single first limb during trajectory migration. Specifically, it specifies the constraints on the first limb itself that must be considered when migrating its trajectory information to the corresponding second limb.

[0213] Single-limb constraint information can be single-joint chain constraint information. Single-joint chain constraint information refers to the constraint information between a second limb of a second object and its corresponding first limb. Single-joint chain constraint information is a constraint condition placed on a single second limb during trajectory migration. Specifically, it is a constraint condition placed on the second limb itself that must be considered when migrating its trajectory information to the corresponding first limb.

[0214] The computer device obtains limb trajectory information of at least two first limbs of a first object, and for each first limb, the computer device determines limb posture information of the first limb based on the limb trajectory information of the first limb. The computer device obtains limb trajectory information of at least two second limbs of a second object, and for each second limb, the computer device determines second posture information of the second limb based on the limb trajectory information of the second limb. For each first limb, the computer device determines the difference between the first posture information of the first limb and the second posture information of the corresponding second limb, and uses the difference as single limb constraint information between the first limb and the corresponding second limb.

[0215] In this embodiment, the first posture information of each of the multiple first limbs of the first object and the second posture information of each of the multiple second limbs of the second object are obtained. For each first limb, the single limb constraint information between the first limb and the corresponding second limb is generated based on the first posture information of the first limb and the second posture information of the corresponding second limb. The generated single limb constraint information enables the first limb to obtain the posture information of the second limb. For each first limb, based on the joint chain interaction constraint information and the single limb constraint information between the first limb and the corresponding second limb, the limb trajectory information of the first limb is corrected, so that each first limb of the first object can obtain a posture consistent with the corresponding second limb of the second object, and the interaction between the limbs of the second object is also consistent with the interaction between the limbs of the first object, thereby making the migration of trajectory information more accurate.

[0216] In one embodiment, the first limb includes a first joint chain, which is formed by connecting multiple joints of the first object and parts between the multiple joints. The second limb includes a second joint chain, which is formed by connecting multiple joints of the second object and parts between the multiple joints. The single limb constraint information is the constraint information between the first joint chain and the second joint chain. The limb interaction constraint information is the constraint information between the first interaction relationship and the second interaction relationship. The first interaction relationship is the interaction relationship between at least two first joint chains, and the second interaction relationship is the interaction relationship between at least two second joint chains.

[0217] The first object has a plurality of first limbs. Each first limb has a plurality of joints and at least one part connecting the plurality of joints. The plurality of joints of the first limb and the parts between the plurality of joints are connected to form a first joint chain.

[0218] The second object has multiple second limbs. Each second limb has multiple joints and at least one part connecting the multiple joints. The multiple joints of the second limb and the parts between the multiple joints are connected to form a second joint chain. The multiple first joint chains of the first object correspond one-to-one to the multiple second joint chains of the second object.

[0219] Single-limb constraint information refers to single-joint chain constraints. Single-joint chain constraints control the pose of a single joint chain. Object geometry encloses a first object, and the object trajectory information of a second object is transferred to the object geometry. This transfers the pose of the first joint chain to the second joint chain, giving the second joint chain the same pose as the first. This single-joint chain constraint constrains the transferred pose, ensuring that the transferred pose matches the second joint chain.

[0220] Limb interaction constraint information refers to joint chain interaction constraint information. Joint chain interaction constraint information constrains the interaction relationships between joint chains. Migrating the object trajectory information of the second object to the object geometry migrates the first interaction relationship between the two first joint chains to the two second joint chains, resulting in a second interaction relationship between the two second joint chains. This multi-joint chain interaction constraint information is used to constrain the migrated interaction relationships, ensuring that the coordination between the two joint chains is taken into account during the migration, resulting in more accurate migration of the limb trajectory.

[0221] In one embodiment, a trajectory information processing method is provided, which is applied to a computer device and includes:

[0222] A body feature of the first object is obtained, where the body feature is represented by a plurality of key points of the first object.

[0223] The candidate geometric features of each iteration are obtained. For each iteration, based on the body shape features and the candidate geometric features of the iteration, a candidate geometric body of the first object is generated in the iteration. The object geometry includes multiple local geometric bodies, and the local geometric bodies surround at least one part of the first object.

[0224] In each iteration, keypoints belonging to the first object in the candidate geometry are determined.

[0225] A preset key point constraint condition is obtained, and based on the key points belonging to the first object in each candidate geometric body, candidate geometric bodies whose key points satisfy the key point constraint condition are screened out from the candidate geometric bodies obtained in each iteration.

[0226] The volume corresponding to each of the filtered candidate geometric bodies is determined, volumes that meet the volume constraint conditions are filtered out from the volumes, and the candidate geometric bodies corresponding to the filtered volumes are used as the object geometric bodies.

[0227] A first bone hierarchical relationship of the first object is obtained, where the first bone hierarchical relationship represents a hierarchical relationship between first bones of the first object.

[0228] A second bone hierarchical relationship of the second object is obtained, where the second bone hierarchical relationship represents a hierarchical relationship between the second bones of the second object.

[0229] Obtain a standard bone hierarchical relationship of a standard skeleton, where the standard bone hierarchical relationship represents a hierarchical relationship between standard bones of the standard skeleton.

[0230] The first bone hierarchical relationship and the standard bone hierarchical relationship are hierarchically mapped to obtain a one-to-one mapping relationship between each first bone and each standard bone.

[0231] The second bone hierarchical relationship and the standard bone hierarchical relationship are hierarchically mapped to obtain a one-to-one mapping relationship between each second bone and each standard bone.

[0232] For each standard bone, a matching relationship is established between the first bone and the second bone that have a mapping relationship with the standard bone.

[0233] According to the matching relationship, the object trajectory information of the second object is transferred to the object geometric body to obtain the object trajectory information of the object geometric body.

[0234] The object trajectory information of the second object includes limb trajectory information of each of at least two second limbs of the second object, and joint rotation information of each of at least two parts of the second object.

[0235] The object trajectory information of the object geometry includes limb trajectory information of at least two first limbs of the first object and joint rotation information of at least two parts of the first object. The at least two first limbs of the first object correspond one-to-one to the at least two second limbs of the second object.

[0236] Acquire first posture information of each of at least two first limbs and second posture information of each of at least two second limbs.

[0237] For each first limb, single joint chain constraint information between the first limb and the corresponding second limb is generated based on the first posture information of the first limb and the second posture information of the corresponding second limb.

[0238] First interaction information between at least two first limbs and second interaction information between at least two second limbs are determined, and joint chain interaction constraint information between the first object and the second object is generated based on the first interaction information and the second interaction information.

[0239] For each first limb, based on the joint chain interaction constraint information and the single joint chain constraint information between the first limb and the corresponding second limb, the limb trajectory information of the first limb is corrected to obtain the corrected limb trajectory information of each first limb.

[0240] Determine multiple collision points where each local geometric body collides during the interaction, determine the collision positions of each of the multiple collision points, perform collision detection based on the collision positions of each of the multiple collision points, and obtain collision depths and collision normal vectors between the multiple collision points.

[0241] Obtain the weight parameters of each of the multiple local geometric bodies. For each collision point, adjust the position according to the collision location of the collision point, the weight parameters of the local geometric body to which the collision point belongs, the collision depth and the collision normal vector to obtain the collision avoidance position of the collision point. Each collision avoidance position is used to avoid collision between multiple local geometric bodies during interaction.

[0242] The predicted joint rotations of each part of the object geometry being interacted with are obtained, and the joint rotations of each part of the object geometry are pre-corrected based on the predicted joint rotations of each part to obtain the pre-corrected joint rotations of each part of the object geometry. The computer device adjusts the collision location of each part based on the pre-corrected joint rotations of each part of the object geometry to obtain predicted avoidance locations for each of the multiple collision points.

[0243] For each collision point, determine the distance between the predicted avoidance position of the collision point and the collision avoidance position, adjust the joint predicted rotation of each part in this iteration based on the distance, obtain the updated joint predicted rotation, enter the next iteration, use the updated joint predicted rotation as the joint predicted rotation in the next iteration, return to the step of pre-correcting the joint rotation of the corresponding part of the object geometry according to the joint predicted rotation of each part, and continue to execute until the iteration stop condition is met to obtain the joint rotation offset of each part.

[0244] For each part, the joint rotation of the part in the object geometry is corrected based on the joint rotation offset of the part, thereby obtaining corrected joint rotation information for each joint. The corrected joint rotation information for each joint and the corrected limb trajectory information for each first limb form object trajectory information for the first object.

[0245] In one embodiment, an application scenario of a trajectory information processing method is provided, namely, it is applied to the redirection scenario of real-time animation. Animation redirection aims to migrate existing animation resources to new objects. Based on this technology, when a new animation object is completed, there is no need to make additional animations for the new animation object, but the existing animation can be reused at zero cost. Animation redirection is an essential part of the mainstream animation production process. The trajectory information processing method of this embodiment can replace the footstep trajectory optimization technology of traditional animation redirection and be directly combined with the existing animation production process. In terms of specific applications, the trajectory information processing method of this embodiment can be applied to any scene that requires reuse of animations, such as three-dimensional games, metaverse products, virtual live broadcasts, film and television media, etc., but is not limited to this. The footstep trajectories of an animation sequence can be migrated between any objects without the need for animators to make corresponding animations for each object separately, thereby achieving zero-cost reuse of animation materials.

[0246] Real-time animation streaming: This refers to real-time animation capture methods that instantly generate animation data at every moment, such as inertial motion capture, optical motion capture, and vision-based motion capture solutions, or real-time character movements in games. Unlike processing offline animation data, processing real-time animation streams requires a streaming animation processing approach.

[0247] Animation sequences refer to the logic and data behind driving object motion and achieving dynamic effects. They are widely used in games, film, and television, and can be seen in the movements of objects in 3D games. In this embodiment, an "animation sequence" can be the physical animation of an object in a 3D scene.

[0248] In this example, "body animation" refers to the physical animation of human objects in a 3D scene. Body animation is widely used in games, live broadcasts, and film and television. Every object in a 3D game is driven by body animation, creating dynamic effects that match the plot and the object's characteristics.

[0249] Animation retargeting refers to the transfer of animation sequences between different objects. For example, if you have an animation sequence for object A and a model for object B, retargeting involves transferring the animation sequence from object A to object B, preserving object A's motion characteristics, such as joint bending and movement trends, while adapting to object B's object characteristics, such as skeleton topology and model shape.

[0250] The footstep trajectory, i.e., the limb trajectory information, refers to the trajectory composed of the footstep positions of the object in each frame under a given animation sequence. Taking a humanoid object as an example, the first and second limbs, i.e., the lower limbs of the humanoid object, the footstep positions are the position sequence of the ankle joints. The second object, i.e., the second object, refers to the character whose animation is to be migrated, i.e., object A in the animation redirection definition. The source animation, i.e., the object trajectory information of the second object, refers to the animation sequence to be migrated, i.e., the animation sequence of object A in the animation redirection definition. The first object or the first object model refers to the animation object to be migrated, i.e., object B in the animation redirection definition.

[0251] The binding pose is the preset pose. When a modeler creates a 3D model, the default pose used for binding bones is usually A-pose or T-pose, as shown in Figure 10.

[0252] The trajectory information processing method of this application can be applied to any application that requires the reuse and re-use of animations in real-time scenarios, such as games and digital human live broadcasts. Based on the trajectory information processing method, the real-time generated animation resources can be reused on the first object, driving the target human object to perform the same movement, thereby achieving real-time object dynamic effects in games and live broadcasts.

[0253] In addition, real-time redirection also covers all application scenarios of offline redirection solutions. For example, it can read animation resources in file format and generate the animation file of the first object.

[0254] Directions:

[0255] The trajectory information processing method of this application is provided in the form of an independent tool library, supports mainstream Windows and Linux operating systems, can be called through languages ​​​​such as C++ and Python, and can also be integrated into the game engine (UE) as a plug-in for use.

[0256] The inputs to the live redirection tool include:

[0257] The real-time animation stream of the second object, that is, the action information of the second object at the current time, is represented by the joint rotation transformation of each part of the object.

[0258] The rest pose of the second skeleton, that is, a standard posture under the second skeleton, usually uses Tpose or Apose.

[0259] Model file, which can be in fbx format. The model file contains model skeleton and model mesh.

[0260] The rest pose of the first skeleton, that is, a standard posture under the first skeleton, usually uses Tpose or Apose.

[0261] At the same time, users are also required to provide some necessary configurations, mainly including:

[0262] The bone mapping table of the second skeleton is used to match the second skeleton with the built-in standard skeleton.

[0263] The bone mapping table of the first bone is used to match the first bone with the built-in standard bones.

[0264] The system will output an animation stream based on the first object. The output result can be used to drive the movement of the first object in real time. The result can also be saved as an offline file as an offline animation resource.

[0265] The overall process of the trajectory information processing method in this embodiment is shown in Figure 11, wherein the main input is the real-time animation stream of the second object and the model of the first object. The "model definition" part can determine the basic information of the second object and the first object model, including the topological structure of the skeleton, the semantics of the joints (that is, which joint is the head and which joint is the hand), the collision body information of the model (used to approximate the shape of the model), etc. The "animation migration" part will migrate the rotation information and global position information of the source animation, that is, the object trajectory information. The "lower limb correction" part is used to optimize the footstep trajectory to adapt to different lower limb proportions, such as leg length, hip width, etc., and migrate the footstep dynamic information of the source animation stream to avoid animation quality problems such as sliding. The "upper limb correction" part will further adjust the posture of the upper limb joints, taking into account the body shape of the first object to avoid penetration, so that the migrated animation can adapt to the body shape of the first object. The specific processing of each part is as follows:

[0266] The model definition includes defining model information of the second object and the first object, topology definition, joint matching, posture matching and collision body definition.

[0267] Define the model information of the second object and the first object: The model definition module will define the model information of the second object and the first object according to the user's settings. The information includes topology, joint matching relationship, rest pose and collision body, as shown in Figure 12.

[0268] Topology definition: The system will automatically obtain the model skeleton name and hierarchical relationship from the animation or model file, as shown in Figure 7 above.

[0269] Joint Matching: This step determines the correspondence between the model skeleton and the internal skeleton. This requires manual user configuration. Figure 13 illustrates partial skeleton matching. The internal skeleton refers to a standard set of skeletons defined within the retargeting system, including the primary joints necessary to drive the object, such as the limbs, spine, and head. The system's algorithms are based on the internal skeleton, so the matching relationship between the model and the internal skeleton—that is, the matching relationship between the object skeleton and the standard skeleton—must be defined in advance. The object skeleton can be the skeleton of the first object or the skeleton of the second object.

[0270] Pose matching, also known as rest pose matching, determines the rest pose of the second object relative to the first. The rest poses of the two objects must be consistent, such as having their hands parallel to the ground, as shown in Figure 10 above.

[0271] Collision body definition, or local geometry generation: This part automatically calculates the minimum enclosing geometry for each joint of the first object, known as the local geometry. These local geometries form candidate geometries. Each iteration generates a candidate geometry, and the object geometry is determined from these candidate geometries. This object geometry is used for subsequent collision detection and motion optimization.

[0272] S. Object geometry generation process: Each joint of the first object will be traversed to screen out vertices whose skin weight is greater than 0.3. These vertices are the skin key points. Principal component analysis is performed on the set of these vertices. The axis corresponding to the first principal component is selected as the direction of the collision body. An optimization problem is constructed to adjust the size of the collision body. The optimization variables are the geometric features of the collision body. For example, the geometric features of the capsule body are length and radius, and the geometric features of the sphere are radius. The goal of the optimization problem is to solve the candidate geometry with the smallest volume, and all the vertices of the first object are contained in the candidate geometry. That is, the candidate geometry with the smallest volume and containing all the vertices of the first object is used as the object geometry. An example of the object geometry construction result can be seen in Figure 3.

[0273] Animation migration, or object trajectory migration, migrates the joint rotation and global translation information from the source animation stream. Global translation information includes limb trajectory information. After migration, a preliminary animation stream for the first object is obtained. The rotations of each joint remain consistent with the source animation stream, but some quality issues, such as clipping, may exist. This will be addressed through upper limb correction. The animation stream is the object trajectory information.

[0274] Upper limb correction: This part will take into account the body shape characteristics of the first object, that is, the object geometry constructed in the model definition module, to further optimize the quality of the first object's animation flow and avoid problems such as clipping.

[0275] This part avoids collisions between the first object's limbs by constructing the Jacobian IK problem. The Jacobian matrix is ​​a matrix that arranges the first-order partial derivatives of a function according to a certain rule. Let a function be f:R n →R m , then the Jacobian matrix of the function is:

[0276] Among them, f in the Jacobian matrix is ​​the distance, that is, the distance between the collision location of the collision point and the corresponding collision avoidance location.n It is a plurality of joint rotation components, such as the joint rotation component corresponding to the x-axis, the joint rotation component corresponding to the y-axis, and the joint rotation component corresponding to the z-axis.

[0277] For example, P in Figure 8 (i.e., corresponding to local geometric body i) corresponds to a row of data in the Jacobian matrix, and Q (i.e., corresponding to local geometric body j) corresponds to a row in the Jacobian matrix. In a similar way, the data of all local geometric bodies that collide are constructed as elements in the Jacobian matrix. By solving the Jacobian matrix, the joint rotation components corresponding to the x, y, and z axes of each joint can be obtained, and the rotation amount corresponding to each joint can be obtained.

[0278] Construct a Jacobian matrix and adjust the joint offsets of each part based on it so that the collision point on each pair of joint collision bodies reaches the collision avoidance position specified by the system, which can ensure that the corresponding parts do not collide. The joint offset of each part is the rotation change or increment of the upper limb joint (such as clavicle, shoulder, elbow, wrist, spine). The specific rotation is expressed as the rotation in the parent joint coordinate system, using the Euler angle representation method. The independent variable of the objective function is the joint offset of each part, and the dependent variable is the distance between the collision position and the collision avoidance position of the collision point.

[0279] The following will introduce the calculation of the collision avoidance position of the joint collision point and the Jacobi IK solution process, including the calculation of the collision avoidance position of the collision point and the Jacobi IK solution.

[0280] Collision avoidance position calculation: Obtain the collision positions corresponding to the multiple collision points of each local geometric body joint collision body, and calculate the collision avoidance position of each collision point based on the collision positions. The specific calculation method is shown in Figure 8 and the corresponding embodiment above.

[0281] Jacobi IK solution: By solving Jacobi IK, the joint offsets of each part are calculated to make the collision point closest to the collision avoidance position. After correcting the animation flow of the first object output in the animation migration part by the joint offsets of each part, the output of the first object animation flow without collision can be obtained. This optimization process is an iterative optimization, and the default maximum number of iterations is 20. Let N be the number of joints, M is the number of collision avoidance positions, and the update of the optimization variable X at each iteration is shown as follows: X=X0-(J T J+Damp*I) -1 *(J T *D+Damp*X0)

[0282] Among them, X is the set of updated joint offsets of each part. J is the Jacobian matrix of size M*N. The element in the i-th row and j-th column represents the partial derivative of the i-th collision avoidance position with respect to the j-th joint rotation component. Damp is the damping parameter. The larger the value, the more stable the optimization process, but more iterations are required for convergence. The default value of the damping parameter is 1000, and the user can also adjust it according to needs. D is the loss function value arranged into an M*1 matrix, that is, the matrix formed by the distance between the collision position of each collision point and the corresponding collision avoidance position. X0 represents the optimization variable result of the last iteration, that is, the set of joint offsets of each part after update in the last iteration. I is the unit matrix.

[0283] This embodiment takes into account the body shape characteristics of the object to be transferred limb animation, enabling smooth, clipping-free limb animation transfer within a real-time animation stream. This approach is applicable to humanoid objects of any skeletal topology and shape, adapting to objects of varying body shapes. Furthermore, by constructing geometric bodies for the first object and solving the Jacobian IK, collisions between these bodies are avoided, effectively addressing quality issues such as clipping.

[0284] In this embodiment, a complete and independent redirection process is established, which does not rely on any large-scale game engine or 3D software. It can be easily integrated into various processes of real-time driving different objects, and has a wider application coverage.

[0285] It should be understood that, although the steps in the flowcharts of the above embodiments are shown in sequence as indicated by the arrows, these steps are not necessarily performed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the flowcharts of the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily performed at the same time, but can be performed at different times. The execution order of these steps or stages is not necessarily to be performed in sequence, but can be performed in turn or alternately with other steps or at least a portion of steps or stages in other steps.

[0286] Based on the same inventive concept, the present application also provides a trajectory information processing device for implementing the aforementioned trajectory information processing method. The solution provided by this device is similar to the solution described in the aforementioned method. Therefore, the specific limitations of one or more trajectory information processing device embodiments provided below can be found in the above-mentioned limitations of the trajectory information processing method and will not be repeated here.

[0287] In one embodiment, as shown in FIG14 , a trajectory information processing device is provided, including:

[0288] The generating module 1402 is configured to obtain a body shape feature of the first object and generate an object geometry of the first object based on the body shape feature. The object geometry includes a plurality of local geometries, and the local geometries surround at least one part of the first object.

[0289] The migration module 1404 is configured to obtain object trajectory information of the second object, and migrate the object trajectory information of the second object to the object geometry to obtain the object trajectory information of the object geometry.

[0290] The determination module 1406 is configured to determine a plurality of collision points where the local geometric bodies collide during the interaction, and to determine collision locations of the plurality of collision points.

[0291] The adjustment module 1408 is used to adjust the positions of the multiple collision occurrence locations to obtain collision avoidance positions of the multiple collision points; each collision avoidance position is used to avoid collision between multiple local geometric bodies during interaction.

[0292] The correction module 1410 is configured to correct the object trajectory information of the object geometric body according to each collision occurrence position and each collision avoidance position, and obtain the object trajectory information of the first object.

[0293] In this embodiment, a body feature of a first object is obtained, and an object geometry of the first object is generated based on the body feature. The object geometry includes multiple local geometric bodies. The local geometric bodies surround the local geometric body of at least one portion of the first object, so that the local geometric bodies surrounding the portion fit the portion, thereby making the generated object geometry more closely fit the body shape of the first object. Object trajectory information of a second object is obtained, and the object trajectory information of the second object is transferred to the object geometry. The object trajectory information of the object geometry is obtained to initially transfer the object trajectory information of the second object to the first object before subsequent adjustments are made. Multiple collision points where each local geometric body of the object geometry collides during interaction are determined, and the positions of each of the multiple collision points, i.e., collision occurrence locations, are determined to determine the locations at which each local geometric body will collide during interaction. The multiple collision occurrence locations are adjusted to obtain multiple collision avoidance positions to avoid collision between the multiple local geometric bodies during interaction, so that when each collision point is at its respective collision avoidance position, the interaction of the multiple local geometric bodies does not result in collision. Based on each collision location and collision avoidance location, the object trajectory information of the object's geometry is corrected so that the corrected parts of the first object do not collide during interaction. This results in object trajectory information tailored to the first object's physical characteristics. Furthermore, by considering the influence of the object's physical shape on trajectory information transfer, trajectory information transfer becomes more flexible and accurate.

[0294] In one embodiment, the generation module 1402 is also used to obtain the skin weights of multiple skin key points; obtain preset weight constraints, and filter out skin key points that meet the weight constraints based on the skin weights; perform principal component analysis on the filtered skin key points to obtain the geometric axes of multiple parts of the first object; for each of the multiple parts, generate a local geometric body surrounding the targeted part according to the geometric axis of the targeted part, and obtain the object geometry formed by each local geometric body.

[0295] In this embodiment, the body shape characteristics of the first object are characterized by its skin key points. Skin weights are obtained for each of the first object's multiple skin key points. Skin key points that satisfy weight constraints are screened based on the skin weights. Principal component analysis is then performed on the screened skin key points to obtain geometric axes for each of the multiple parts of the first object. This method preserves features near the geometric axes, reduces feature dimensionality, reduces computational effort, and minimizes information loss. Furthermore, the geometric axes preserve as many features of the targeted part as possible. The retained features better reflect the morphology of the targeted part, ensuring that the local geometric body generated according to the geometric axis of the targeted part fits the targeted part perfectly. This ensures that the object geometry formed by the obtained local geometric bodies better fits the body shape of the first object.

[0296] In one embodiment, the generation module 1402 is further used to obtain candidate geometric features for each iteration, and for each iteration, generate a candidate geometric body of the first object in the iteration based on the body shape features and the candidate geometric features for the iteration; determine the volume corresponding to the candidate geometric body for each iteration; obtain a preset volume constraint condition, filter out the volume that meets the volume constraint condition from each volume, and use the candidate geometric body corresponding to the filtered volume as the object geometry.

[0297] In this embodiment, candidate geometric features are obtained for each iteration. For each iteration, candidate geometric bodies for the first object are generated based on the body shape features and the candidate geometric features of the iteration. This allows different geometric features to be used in different iterations to generate candidate geometric bodies for the first object, thereby determining which geometric bodies best fit the body shape of the first object. The volumes corresponding to the candidate geometric bodies for each iteration are determined, and the candidate geometric bodies corresponding to the volumes that satisfy the volume constraint are selected from the volumes as the object geometric bodies. Based on the volumes of the candidate geometric bodies, the geometric body that best fits the first object can be accurately selected. Furthermore, the volume constraint can be to select the candidate geometric body with the smallest volume, and the candidate geometric body with the smallest volume best fits the body shape of the first object, thereby obtaining a geometric body that accurately represents the body shape of the first object.

[0298] In one embodiment, the generation module 1402 is further used to determine the key points belonging to the first object in the candidate geometric bodies in each iteration; obtain preset key point constraints, and based on the key points belonging to the first object in each candidate geometric body, screen out candidate geometric bodies whose key points meet the key point constraints from the candidate geometric bodies obtained in each iteration; and determine the volume corresponding to each of the screened candidate geometric bodies.

[0299] In this embodiment, in each iteration, key points belonging to the first object in the candidate geometric bodies are determined, and preset key point constraints are obtained. Based on the key points belonging to the first object in each candidate geometric body, candidate geometric bodies whose key points satisfy the key point constraints are screened from the candidate geometric bodies obtained in each iteration, thereby preliminarily screening candidate geometric bodies that meet the key point constraints. Next, the volume corresponding to each candidate geometric body that satisfies the key point constraints is determined, and then candidate geometric bodies corresponding to volumes that satisfy the volume constraints are further screened from each volume. This ensures that the selected candidate geometric bodies best fit the body shape of the first object, effectively avoiding clipping caused by body shape differences between the characters before and after migration.

[0300] In one embodiment, the migration module 1404 is also used to obtain the first bone hierarchical relationship of the first object, where the first bone hierarchical relationship represents the hierarchical relationship between the first bones of the first object; obtain the second bone hierarchical relationship of the second object, where the second bone hierarchical relationship represents the hierarchical relationship between the second bones of the second object; perform hierarchical matching on the first bone hierarchical relationship and the second bone hierarchical relationship to obtain a one-to-one matching relationship between each first bone and each second bone; and according to the matching relationship, migrate the object trajectory information of the second object to the object geometry to obtain the object trajectory information of the object geometry.

[0301] In this embodiment, the first bone hierarchical relationship represents the hierarchical relationship between the first bones of the first object, and the second bone hierarchical relationship represents the hierarchical relationship between the second bones of the second object. The first bone hierarchical relationship of the first object and the second bone hierarchical relationship of the second object are hierarchically matched to obtain the same matching relationship between the first bones and the second bones, so that the bones of the second object can be mapped to the bones of the first object, thereby accurately migrating the object trajectory information of the second object to the object geometry according to the matching relationship between the bones, and obtaining the object trajectory information of the object geometry.

[0302] In one embodiment, the migration module 1404 is also used to obtain the standard bone hierarchical relationship of the standard skeleton, which represents the hierarchical relationship between the standard bones of the standard skeleton; hierarchically map the first bone hierarchical relationship and the standard bone hierarchical relationship to obtain a one-to-one mapping relationship between each first bone and each standard bone; hierarchically map the second bone hierarchical relationship and the standard bone hierarchical relationship to obtain a one-to-one mapping relationship between each second bone and each standard bone; for each standard bone, establish a matching relationship between the first bone and the second bone that have a mapping relationship with the targeted standard bone.

[0303] In this embodiment, the standard skeleton is formed by the bones of various parts of the object, and the standard bone hierarchical relationship represents the hierarchical relationship between the standard bones of the standard skeleton. The standard skeleton and the standard bone hierarchical relationship are both preset and configured. Based on the first bone hierarchical relationship and the standard bone hierarchical relationship, a one-to-one mapping relationship is constructed between each first bone and each standard bone. Based on the second bone hierarchical relationship and the standard bone hierarchical relationship, a one-to-one mapping relationship is constructed between each second bone and each standard bone. The first bones of the first object and the second bones of the second object can be respectively mapped to the standard bones, so that the bones of the first object and the second object can be matched together through the standard bones, making the bone matching between the two more accurate, which is conducive to improving the accuracy of subsequent trajectory information migration.

[0304] In one embodiment, the adjustment module 1408 is further used to perform collision detection based on the collision positions of the multiple collision points to obtain the collision depths and collision normal vectors between the multiple collision points; and perform position adjustment based on the collision positions, collision depths and collision normal vectors to obtain the collision avoidance positions of the multiple collision points.

[0305] In this embodiment, collision detection is performed based on the collision locations of each of the multiple collision points, accurately calculating the collision depth and collision normal vector between the multiple collision points. Thus, the collision depth accurately reflects the degree of collision between the collision points. Position adjustment is performed based on each collision location, collision depth, and collision normal vector to a position where no collision occurs. Thus, collision avoidance positions are determined for each of the multiple collision points. When the collision points are in the collision avoidance positions, collisions caused by the interaction of various parts of the first object can be effectively avoided.

[0306] In one embodiment, the adjustment module 1408 is also used to obtain the weight parameters of each of the multiple local geometric bodies; for each collision point, the position is adjusted according to the collision location of the collision point, the weight parameters of the local geometric body to which the collision point belongs, the collision depth and the collision normal vector to obtain the collision avoidance position of the collision point.

[0307] In this embodiment, weight parameters are obtained for each of the multiple local geometric bodies. The weight parameters are used to indicate which local geometric body is more likely to be moved. Thus, for each collision point, position adjustment is performed based on the collision location of the collision point, the weight parameters of the local geometric body to which the collision point belongs, the collision depth, and the collision normal vector. This adjustment is made to a position where no collision occurs. This results in collision avoidance positions for each of the multiple collision points. This positional avoidance position effectively avoids collisions between the various parts of the first object. Furthermore, the weight parameters can indicate which local geometric body has a larger position adjustment and which has a smaller position adjustment, enabling the optimal adjustment of each local geometric body.

[0308] In one embodiment, the correction module 1410 is further used to predict the posture offset based on each collision occurrence position and each collision avoidance position to obtain posture offset information between multiple local geometric bodies; based on the posture offset information, correct the object trajectory information of the object geometric body to obtain the object trajectory information of the first object.

[0309] In this embodiment, posture offset prediction is performed based on each collision location and each collision avoidance location to calculate the difference in posture between the local geometric body to which each collision point belongs at the collision location and the corresponding collision avoidance location, thereby accurately obtaining posture offset information between multiple local geometric bodies. The object trajectory information of the object's geometric body is corrected based on this posture offset information, thereby adjusting the trajectory information of each part that may cause collision during interaction to obtain trajectory information that does not cause collision during interaction. This allows for accurate migration of trajectory information between objects of different sizes, ensuring that the migrated trajectory information fully conforms to the object itself, thereby improving the accuracy of trajectory migration.

[0310] In one embodiment, the correction module 1410 is further used to obtain initial offset information, and pre-correct the object trajectory information of the object geometry according to the initial offset information to obtain pre-corrected trajectory information; the pre-corrected trajectory information includes predicted avoidance positions corresponding to multiple collision points; for each collision point, determining the distance between the predicted avoidance position of the collision point and the collision avoidance position; adjusting the initial offset information based on the distance to obtain updated offset information; entering the next iteration, using the updated offset information as the initial offset information in the next iteration, returning to the step of pre-correcting the object trajectory information of the object geometry according to the initial offset information and continuing to execute until the posture offset information is obtained when the iteration stop condition is met.

[0311] In this embodiment, initial offset information is obtained, and object trajectory information of the object geometry is pre-corrected based on the initial offset information to predict predicted avoidance positions corresponding to multiple collision points. The distance difference between the predicted avoidance position and the collision avoidance position of each collision point is determined, so that the distance between the avoidance position predicted based on the initial offset information and the actual collision avoidance position can be used to reflect the difference between the corrected avoidance position and the collision avoidance position. The initial offset information is adjusted based on the distance difference so that the avoidance position obtained by the updated offset information in each iterative adjustment is closer to the actual collision avoidance position. The next iteration is entered, and the updated offset information is used as the initial offset information in the next iteration. The step of pre-correcting the object trajectory information of the object geometry based on the initial offset information is returned and continued until the iteration stop condition is met to obtain the posture offset information. In this way, the predicted avoidance position can be continuously brought closer to the actual collision avoidance position in multiple iterations, thereby making the migration of trajectory information more accurate.

[0312] In one embodiment, the object trajectory information of the object geometric body includes limb trajectory information of each of at least two first limbs of the first object and joint rotation information of each of at least two parts of the first object; the object trajectory information of the second object includes limb trajectory information of each of at least two second limbs of the second object and joint rotation information of each of at least two parts of the second object, and the at least two first limbs of the first object correspond one-to-one to the at least two second limbs of the second object;

[0313] The apparatus further includes a constraint information determination module; the constraint information determination module is configured to determine first interaction information between at least two first limbs of a first object based on limb trajectory information of each of at least two first limbs; determine second interaction information between at least two second limbs of a second object based on limb trajectory information of each of at least two second limbs; and determine joint chain interaction constraint information between the first object and the second object based on the first interaction information and the second interaction information;

[0314] The correction module 1410 is also used to correct the limb trajectory information of multiple first limbs based on the joint chain interaction constraint information, and to correct the joint rotation information of at least two parts of the first object according to each collision occurrence position and each collision avoidance position to obtain the object trajectory information of the first object.

[0315] In this embodiment, the first interaction information between at least two first limbs is determined, and the second interaction information between the second limbs is determined. Based on the first interaction information and the second interaction information, limb interaction constraint information between the first object and the second object is generated. The generated limb interaction constraint information enables the multiple first limbs to obtain the interaction relationship between the multiple second limbs. Based on the limb interaction constraint information, the limb trajectory information of each of the multiple first limbs is corrected, so that the limb trajectory information after migration not only retains the interaction relationship between the multiple second limbs, but also conforms to the characteristics of each limb of the first object itself. According to each collision occurrence position and each collision avoidance position, the joint rotation information of each of the multiple first limbs is corrected, so that the joint rotation information in the object trajectory information migrated to the first object is more consistent with the body shape of the first object, avoiding the large difference in body shape between the second object and the first object, which causes the mold penetration phenomenon after migration.

[0316] In one embodiment, the constraint information determination module is also used to pre-correct the limb trajectory information of at least two second limbs of the second object to obtain pre-corrected limb trajectory information of at least two second limbs; and determine the second interaction information between at least two second limbs based on the pre-corrected limb trajectory information of at least two second limbs.

[0317] In this embodiment, the limb trajectory information of at least two second limbs of the second object is pre-corrected to obtain the pre-corrected limb trajectory information of at least two second limbs. Based on the pre-corrected limb trajectory information of at least two second limbs, the second interaction information between the at least two second limbs is determined, and the interaction relationship between each second limb after pre-correction can be estimated.

[0318] In one embodiment, the constraint information determination module is further configured to determine first posture information of at least two first limbs of the first object based on limb trajectory information of at least two first limbs; determine second posture information of at least two second limbs of the second object based on limb trajectory information of at least two second limbs; and determine, for each first limb, single-joint chain constraint information between the first limb and the corresponding second limb based on the first posture information of the first limb and the second posture information of the corresponding second limb.

[0319] The correction module 1410 is further used to correct the limb trajectory information of each first limb based on the limb interaction constraint information and the single limb constraint information between the first limb and the corresponding second limb.

[0320] In this embodiment, the first posture information of each of the multiple first limbs of the first object and the second posture information of each of the multiple second limbs of the second object are obtained. For each first limb, the single limb constraint information between the first limb and the corresponding second limb is generated based on the first posture information of the first limb and the second posture information of the corresponding second limb. The generated single limb constraint information enables the first limb to obtain the posture information of the second limb. For each first limb, based on the joint chain interaction constraint information and the single limb constraint information between the first limb and the corresponding second limb, the limb trajectory information of the first limb is corrected, so that each first limb of the first object can obtain a posture consistent with the corresponding second limb of the second object, and the interaction between the limbs of the second object is also consistent with the interaction between the limbs of the first object, thereby making the migration of trajectory information more accurate.

[0321] In one embodiment, the first limb includes a first joint chain, which is formed by connecting multiple joints of the first object and parts between the multiple joints. The second limb includes a second joint chain, which is formed by connecting multiple joints of the second object and parts between the multiple joints. The single limb constraint information is the constraint information between the first joint chain and the second joint chain. The limb interaction constraint information is the constraint information between the first interaction relationship and the second interaction relationship. The first interaction relationship is the interaction relationship between at least two first joint chains, and the second interaction relationship is the interaction relationship between at least two second joint chains.

[0322] In this embodiment, the first posture information of each of the multiple first limbs of the first object and the second posture information of each of the multiple second limbs of the second object are obtained. For each first limb, the single limb constraint information between the first limb and the corresponding second limb is generated based on the first posture information of the first limb and the second posture information of the corresponding second limb. The generated single limb constraint information enables the first limb to obtain the posture information of the second limb. For each first limb, based on the joint chain interaction constraint information and the single limb constraint information between the first limb and the corresponding second limb, the limb trajectory information of the first limb is corrected, so that each first limb of the first object can obtain a posture consistent with the corresponding second limb of the second object, and the interaction between the limbs of the second object is also consistent with the interaction between the limbs of the first object, thereby making the migration of trajectory information more accurate.

[0323] Each module in the trajectory information processing device described above can be implemented in whole or in part through software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in the computer device in the form of software, so that the processor can call and execute the corresponding operations of each module.

[0324] In one embodiment, a computer device is provided, which may be a terminal or a server. Taking a terminal as an example, its internal structure diagram may be shown in Figure 15 . The computer device includes a processor, memory, an input / output interface, a communication interface, a display unit, and an input device. The processor, memory, and input / output interface are connected via a system bus, while the communication interface, display unit, and input device are connected to the system bus via the input / output interface. The processor of the computer device provides computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores an operating system and computer-readable instructions. The internal memory provides an environment for the operation of the operating system and computer-readable instructions in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals via wired or wireless communication. The wireless communication may be achieved via Wi-Fi, a mobile cellular network, NFC (near-field communication), or other technologies. When executed by the processor, the computer-readable instructions implement a trajectory information processing method. The display unit of the computer device is used to form a visually visible image, and can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the computer device casing, or an external keyboard, touchpad or mouse, etc.

[0325] Those skilled in the art will understand that the structure shown in FIG15 is merely a block diagram of a portion of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.

[0326] In one embodiment, a computer device is further provided, including a memory and a processor, wherein the memory stores computer-readable instructions, and the processor implements the steps in the above-mentioned method embodiments when executing the computer-readable instructions.

[0327] In one embodiment, a computer-readable storage medium is provided, on which computer-readable instructions are stored. When the computer-readable instructions are executed by a processor, the steps in the above-mentioned method embodiments are implemented.

[0328] In one embodiment, a computer program product is provided, comprising computer-readable instructions, which implement the steps in the above-mentioned method embodiments when executed by a processor.

[0329] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions.

[0330] Those skilled in the art will understand that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through computer-readable instructions. The computer-readable instructions can be stored in a non-volatile computer-readable storage medium. When the computer-readable instructions are executed, they can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, database or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in the various embodiments provided herein may include at least one of a relational database and a non-relational database. Non-relational databases may include, but are not limited to, distributed databases based on blockchains. The processor involved in the various embodiments provided herein may be, but are not limited to, a general-purpose processor, a central processing unit, a graphics processing unit, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, and the like.

[0331] The technical features of the above embodiments can be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0332] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art could make various modifications and improvements without departing from the spirit of the present application, all of which fall within the scope of protection of the present application. Therefore, the scope of protection of the present patent application shall be determined by the appended claims.

Claims

1. A trajectory information processing method, executed by a computer device, the method comprising: Acquire a body shape feature of a first object, and generate an object geometry of the first object based on the body shape feature, wherein the object geometry includes a plurality of local geometries, and the local geometries surround at least one part of the first object; Acquire object trajectory information of a second object, migrate the object trajectory information of the second object to the object geometric body, and obtain object trajectory information of the object geometric body; Determine a plurality of collision points where the local geometric bodies collide during the interaction, and determine collision occurrence positions of the plurality of collision points; Adjusting the positions of the plurality of collision occurrence positions to obtain collision avoidance positions of the plurality of collision points, wherein each of the collision avoidance positions is used to avoid collision between the plurality of local geometric bodies during interaction; and According to each of the collision occurrence positions and each of the collision avoidance positions, the object trajectory information of the object geometric body is corrected to obtain the object trajectory information of the first object.

2. The method according to claim 1, wherein the body shape feature is represented by a plurality of skin key points of the first object, and the step of generating the object geometry of the first object based on the body shape feature comprises: Obtaining skin weights of each of the plurality of skin key points; Obtaining a preset weight constraint condition, and filtering out skin key points that meet the weight constraint condition based on the skin weight; Performing principal component analysis on the selected skin key points to obtain respective geometric axes of the plurality of parts of the first object; and For each of the plurality of parts, a local geometric body surrounding the targeted part is generated according to the geometric axis of the targeted part, and an object geometric body formed by the local geometric bodies is obtained.

3. The method according to claim 1, wherein generating the object geometry of the first object based on the body shape feature comprises: Acquire candidate geometric features of each iteration, and for each iteration, generate a candidate geometric body of the first object in the iteration based on the body shape features and the candidate geometric features of the iteration; Determine the volume corresponding to the candidate geometry for each iteration; and A preset volume constraint condition is obtained, a volume satisfying the volume constraint condition is screened out from the volumes, and a candidate geometric body corresponding to the screened out volume is used as an object geometric body.

4. The method according to claim 3, wherein the body shape feature is represented by a plurality of key points of the first object, and the determining the volume corresponding to the candidate geometric body of each iteration comprises: In each iteration, determining key points in the candidate geometric body belonging to the first object; Obtaining preset key point constraints, and based on the key points belonging to the first object in each of the candidate geometric bodies, screening out candidate geometric bodies whose key points satisfy the key point constraints from the candidate geometric bodies obtained in each iteration; The volume corresponding to each of the screened candidate geometric bodies is determined.

5. The method according to any one of claims 1 to 4, wherein the step of transferring the object trajectory information of the second object to the object geometric body to obtain the object trajectory information of the object geometric body comprises: Acquire a first bone hierarchical relationship of the first object, where the first bone hierarchical relationship represents a hierarchical relationship between first bones of the first object; Acquire a second bone hierarchical relationship of the second object, where the second bone hierarchical relationship represents a hierarchical relationship between second bones of the second object; Performing hierarchical matching on the first skeleton hierarchical relationship and the second skeleton hierarchical relationship to obtain a one-to-one matching relationship between each first skeleton and each second skeleton; and According to the matching relationship, the object trajectory information of the second object is migrated to the object geometric body to obtain the object trajectory information of the object geometric body.

6. The method according to claim 5, wherein the hierarchical matching of the first skeleton hierarchical relationship and the second skeleton hierarchical relationship is performed to obtain a one-to-one matching relationship between each first skeleton and each second skeleton, comprising: Acquire a standard bone hierarchical relationship of a standard skeleton, wherein the standard bone hierarchical relationship represents a hierarchical relationship between standard bones of the standard skeleton; Performing hierarchical mapping between the first skeleton hierarchical relationship and the standard skeleton hierarchical relationship to obtain a one-to-one mapping relationship between each first skeleton and each standard skeleton; Performing hierarchical mapping between the second skeleton hierarchical relationship and the standard skeleton hierarchical relationship to obtain a one-to-one mapping relationship between each second skeleton and each standard skeleton; and For each of the standard bones, a matching relationship is established between the first bone and the second bone that have a mapping relationship with the standard bone.

7. The method according to any one of claims 1 to 6, wherein the step of adjusting the positions of the plurality of collision occurrence positions to obtain the collision avoidance positions of the plurality of collision points comprises: Perform collision detection according to the collision occurrence positions of the multiple collision points to obtain the collision depth and collision normal vector between the multiple collision points; and Position adjustment is performed according to each of the collision occurrence positions, the collision depth and the collision normal vector to obtain collision avoidance positions of each of the multiple collision points.

8. The method according to claim 7, wherein the position adjustment is performed according to each of the collision occurrence positions, the collision depth and the collision normal vector to obtain the collision avoidance positions of each of the plurality of collision points, comprising: Obtaining weight parameters of each of the multiple local geometric bodies; and For each of the collision points, position adjustment is performed according to the collision occurrence position of the collision point, the weight parameter of the local geometric body to which the collision point belongs, the collision depth and the collision normal vector to obtain a collision avoidance position for the collision point.

9. The method according to any one of claims 1 to 8, wherein the step of correcting the object trajectory information of the object geometric body according to each of the collision occurrence positions and each of the collision avoidance positions to obtain the object trajectory information of the first object comprises: Performing attitude offset prediction according to each of the collision occurrence positions and each of the collision avoidance positions to obtain attitude offset information between the multiple local geometric bodies; and Based on the posture offset information, the object trajectory information of the object geometric body is corrected to obtain the object trajectory information of the first object.

10. The method according to claim 9, wherein the step of performing posture offset prediction according to each of the collision occurrence positions and each of the collision avoidance positions to obtain posture offset information between the plurality of local geometric bodies comprises: Acquire initial offset information, and pre-correct object trajectory information of the object geometric body according to the initial offset information to obtain pre-corrected trajectory information, wherein the pre-corrected trajectory information includes predicted avoidance positions of the plurality of collision points; For each of the collision points, determining a distance between a predicted avoidance position for the collision point and a collision avoidance position; Adjust the initial offset information based on the distance to obtain updated offset information; and Entering the next iteration, using the updated offset information as the initial offset information in the next iteration, returning to the step of pre-correcting the object trajectory information of the object geometry according to the initial offset information and continuing to execute until the posture offset information is obtained when the iteration stop condition is met.

11. According to the method of any one of claims 1 to 8, the object trajectory information of the object geometric body includes limb trajectory information of each of at least two first limbs of the first object and joint rotation information of each of at least two parts of the first object, and the object trajectory information of the second object includes limb trajectory information of each of at least two second limbs of the second object and joint rotation information of each of at least two parts of the second object, and the at least two first limbs of the first object correspond to the at least two second limbs of the second object in a one-to-one manner; the method further comprises: Determining first interaction information between the at least two first limbs of the first object based on limb trajectory information of each of the at least two first limbs; Based on the limb trajectory information of the at least two second limbs of the second object, determine the at least two second limbs The second interactive information between the departments; Determining limb interaction constraint information between the first object and the second object according to the first interaction information and the second interaction information; The step of correcting the object trajectory information of the object geometric body according to each of the collision occurrence positions and each of the collision avoidance positions to obtain the object trajectory information of the first object includes: Based on the limb interaction constraint information, the limb trajectory information of each of the multiple first limbs is corrected, and, according to each of the collision occurrence positions and each of the collision avoidance positions, the joint rotation information of at least two parts of the first object is corrected to obtain the object trajectory information of the first object.

12. The method according to claim 11, wherein determining the second interaction information between the at least two second limbs of the second object based on the limb trajectory information of each of the at least two second limbs comprises: Pre-correcting the limb trajectory information of each of the at least two second limbs of the second object to obtain pre-corrected limb trajectory information of each of the at least two second limbs; and Based on the pre-corrected limb trajectory information of each of the at least two second limbs, second interaction information between the at least two second limbs is determined.

13. The method according to claim 11, further comprising: Determine first posture information of each of the at least two first limbs of the first object based on limb trajectory information of each of the at least two first limbs; Determining second posture information of each of the at least two second limbs of the second object based on limb trajectory information of each of the at least two second limbs; For each of the first limbs, determining single limb constraint information between the first limb and the corresponding second limb according to the first posture information of the first limb and the second posture information of the corresponding second limb; and The correcting the limb trajectory information of each of the plurality of first limbs based on the limb interaction constraint information includes: For each of the first limbs, the limb trajectory information of the first limb is corrected based on the limb interaction constraint information and the single limb constraint information between the first limb and the corresponding second limb.

14. According to the method according to claim 13, the first limb includes a first joint chain, the first joint chain is formed by connecting multiple joints of the first object and parts between the multiple joints, the second limb includes a second joint chain, the second joint chain is formed by connecting multiple joints of the second object and parts between the multiple joints, the single limb constraint information is the constraint information between the first joint chain and the second joint chain, the limb interaction constraint information is the constraint information between the first interaction relationship and the second interaction relationship, the first interaction relationship is the interaction relationship between at least two of the first joint chains, and the second interaction relationship is the interaction relationship between at least two of the second joint chains.

15. A trajectory information processing device, the device comprising: A generating module, configured to obtain a body shape feature of a first object, and generate an object geometry of the first object based on the body shape feature, wherein the object geometry includes a plurality of local geometries, and the local geometries surround at least one part of the first object; a migration module, configured to obtain object trajectory information of a second object, migrate the object trajectory information of the second object to the object geometric body, and obtain the object trajectory information of the object geometric body; A determination module, used to determine a plurality of collision points where the local geometric bodies collide during the interaction, and to determine collision occurrence positions of the plurality of collision points; An adjustment module, used for adjusting the positions of the plurality of collision occurrence positions to obtain collision avoidance positions corresponding to the plurality of collision points; each of the collision avoidance positions is used to avoid collision between the plurality of local geometric bodies during interaction; and The correction module is used to correct the object trajectory information of the object geometric body according to each of the collision occurrence positions and each of the collision avoidance positions, so as to obtain the object trajectory information of the first object.

16. A computer device, comprising a memory and a processor, wherein the memory stores computer-readable instructions, and the processor implements the steps of the method according to any one of claims 1 to 14 when executing the computer-readable instructions.

17. A computer-readable storage medium having computer-readable instructions stored thereon, wherein the computer-readable instructions, when executed by a processor, implement the steps of the method according to any one of claims 1 to 14.

18. A computer program product comprising computer readable instructions, which when executed by a processor perform the steps of the method according to any one of claims 1 to 14.