Animation character modeling methods, electronic devices, storage media

By adding shaping control components and candidate control lists to the skeletal system of the character model, and using pose distance matrix and radial basis function interpolation calculation, the gimbal lock problem under Euler angle drive was solved, achieving efficient character shaping and improving the visual expressiveness and smoothness of the animation.

CN121600138BActive Publication Date: 2026-04-21GUANGZHOU CULUO TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GUANGZHOU CULUO TECH CO LTD
Filing Date
2026-01-28
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing skeletal systems based on Euler angles are prone to gimbal lock issues during rotation calculations, which affects the naturalness and motion stability of character animations and limits the improvement of visual expressiveness.

Method used

By identifying the target driving skeleton from the skeleton of the target character model and adding a shaping control component to it, the target shaping controlled object is determined from a preset candidate control list, the skeleton pose transformation command is captured, and the shaping weight is determined by using the pose distance matrix and radial basis function interpolation to achieve character shaping.

Benefits of technology

While ensuring animation production efficiency, it enhanced the visual expressiveness of the animation, solved the gimbal lock problem, and improved the smoothness and realism of the character animation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121600138B_ABST
    Figure CN121600138B_ABST
Patent Text Reader

Abstract

This application relates to the field of game and animation production technology, and in particular to a method for modifying the appearance of animated characters, an electronic device, and a storage medium. This application first identifies the target driving bone from the skeletons of the target character model and adds a modification control component to the target driving bone; it then identifies the target modification controlled object associated with the target driving bone from a pre-set candidate control list; it captures bone pose transformation commands through the modification control component and determines the initial pose data, target pose data, and process pose data of the target character model based on the bone pose transformation commands, and then performs pose distance analysis to obtain a pose distance matrix; it performs radial basis function interpolation calculation based on the pose distance matrix to determine the corresponding modification weights for the process pose data; and finally, it performs character modification on the target modification controlled object to obtain the target animation of the modified character model. This method improves visual expressiveness while ensuring animation production efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of game and animation production technology, and in particular to a method for modifying the appearance of animated characters, electronic devices, and storage media. Background Technology

[0002] In the fields of game and animation production, character modeling is an indispensable and crucial step in achieving high-quality visual effects. Currently, the industry's commonly used technical solutions are primarily based on Euler angle-driven skeletal systems or Euler angle-driven Blend Shapes technology. Euler angles, as a method of describing object orientation, express spatial location through three angles of rotation around an axis. Meanwhile, Blend Shapes technology achieves precise shape control by blending multiple preset deformation models. These two technical approaches have long dominated game development projects, forming the basic framework for character modeling.

[0003] However, traditional Euler angle-based solutions suffer from a fundamental technical limitation: gimbal lock. When using Euler angles for rotation calculations, if two rotation axes unexpectedly coincide in a specific orientation, the embodiment in this application will lose a rotational degree of freedom in one direction, causing the object's orientation to suddenly lock in a certain state, preventing it from rotating normally as expected. This problem directly triggers a series of chain reactions, such as abnormal skeletal rotation and insufficient smoothness in animation interpolation, significantly affecting the naturalness and motion stability of character animation, ultimately limiting further improvements in visual expressiveness. In game development practice, this technical bottleneck directly affects the smoothness and realism of character movements, becoming an obstacle to the efficiency of high-quality animation production. Summary of the Invention

[0004] This application aims to address at least one of the technical problems existing in the prior art. To this end, this application proposes an animation character modeling method, electronic device, and storage medium that can enhance the visual expressiveness of animation while ensuring animation production efficiency.

[0005] An animated character reshaping method according to a first aspect of this application includes:

[0006] Determine the target driving bone from the skeletons of each character in the target character model, and add a shaping control component to the target driving bone;

[0007] The target shaping controlled object associated with the target driven skeleton is determined from a preset candidate control list;

[0008] The shaping control component captures skeletal pose transformation commands and determines the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation commands.

[0009] Based on the initial attitude data, the process attitude data, and the target attitude data, attitude distance analysis is performed to obtain the attitude distance matrix;

[0010] Based on the radial basis function interpolation calculation performed by expanding the attitude distance matrix, the corresponding shaping weights are determined for the process attitude data.

[0011] Based on the initial posture data, the target posture data, the process posture data, and the shaping weights corresponding to the process posture data, the target shaping controlled object is shaped to obtain the shaped character model target animation.

[0012] According to some embodiments of this application, determining the target modification controlled object of the target character model and adding a modification control component to the target modification controlled object includes:

[0013] In response to the bone selection command, a target driving bone is selected from the character bones of the target character model, and the shaping control component is added to the target driving bone;

[0014] The target shaping controlled object associated with the target driven skeleton is determined from a preset candidate control list.

[0015] According to some embodiments of this application, the step of capturing skeletal pose transformation instructions through the shaping control component and determining the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation instructions includes:

[0016] The shaping control component obtains the bone posture transformation command and the local transformation matrix of the target driven bone.

[0017] The target character model is controlled to perform posture changes based on the skeletal posture transformation instructions;

[0018] During the pose transformation of the target character model, the process pose of the target character model from the initial pose to the target pose is recorded;

[0019] The initial attitude data, the process attitude data, and the target attitude data are determined based on the local transformation matrices corresponding to the initial attitude, the process attitude, and the target attitude, respectively.

[0020] According to some embodiments of this application, the step of performing attitude distance analysis based on the initial attitude data, the process attitude data, and the target attitude data to obtain the attitude distance matrix includes:

[0021] Based on the initial attitude data, the process attitude data, and the target attitude data, a temporal sequence is obtained by arranging them together to obtain an attitude transformation data sequence.

[0022] The attitude distance matrix is ​​obtained by calculating the attitude distance between every two data sequences in the attitude transformation data sequence.

[0023] According to some embodiments of this application, the step of calculating the attitude distance for every two data sequences in the attitude transformation data sequence to obtain the attitude distance matrix includes:

[0024] The posture transformation mode is determined based on the bone posture transformation command;

[0025] When the attitude transformation mode is a rotation transformation mode, quaternion arc distance is calculated for every two sequence data in the attitude transformation data sequence to obtain multiple attitude distance matrices.

[0026] When the attitude transformation mode is the displacement transformation mode, the straight-line distance is calculated for every two sequence data in the attitude transformation data sequence to obtain the attitude distance matrix.

[0027] According to some embodiments of this application, the process attitude data includes a process attitude matrix corresponding to each process attitude, and the step of determining the corresponding shaping weights for the process attitude data by expanding the radial basis function interpolation based on the attitude distance matrix includes:

[0028] Obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix;

[0029] For each frame of the basic animation of the character model, read the current local matrix of the target character model and the posture distance vector between each of the process posture matrices;

[0030] The attitude distance vectors are input into the Gaussian kernel function for weight calculation to obtain the initial weight vector corresponding to each frame of the basic image.

[0031] The shaping weights corresponding to the process pose data are obtained by performing calculations on the initial weight vector and the Gaussian kernel inverse matrix corresponding to each frame of the basic image.

[0032] According to some embodiments of this application, before obtaining the Gaussian kernel inverse matrix corresponding to the attitude distance matrix, the method further includes performing offline calculations on the Gaussian kernel inverse matrix, specifically including:

[0033] The attitude distance matrix is ​​input into a Gaussian kernel function for weight inversion and offline parsing to obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix.

[0034] The step of obtaining the Gaussian kernel inverse matrix corresponding to the attitude distance matrix includes:

[0035] The Gaussian kernel inverse matrix is ​​obtained by offline parsing of the attitude distance matrix using weighted inversion.

[0036] According to some embodiments of this application, the step of inputting the attitude distance matrix into a Gaussian kernel function for weight inversion and offline parsing to obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix includes:

[0037] Each element of the attitude distance matrix is ​​input into a Gaussian kernel function to determine multiple Gaussian weight values;

[0038] An upper triangular matrix is ​​constructed based on multiple Gaussian weight values ​​to obtain an upper triangular Gaussian kernel matrix;

[0039] Symmetric completion processing is performed on the upper triangular Gaussian kernel matrix to obtain the attitude Gaussian kernel matrix;

[0040] The Gaussian-Jordanian elimination method is applied to the attitude Gaussian kernel matrix, and a regularization parameter is added to the diagonal of the attitude Gaussian kernel matrix for inversion processing to obtain the Gaussian kernel inverse matrix.

[0041] According to some embodiments of this application, the candidate control list stores multiple candidate control objects that have a state mapping relationship with each other for the target character model. The step of determining the target shaping controlled object associated with the target driven skeleton from the preset candidate control list includes:

[0042] From the candidate control list, extract a number of candidate control objects that have the state mapping relationship with the target driven skeleton as the target modification controlled objects;

[0043] The step of capturing skeletal pose transformation commands through the shaping control component and determining the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation commands includes:

[0044] The shaping control component captures bone posture transformation commands and determines the drive bone change data of the target drive bone from the initial posture to the target posture based on the bone posture transformation commands.

[0045] Based on the driven skeletal change data and the state mapping relationship, determine the skeletal change data of each target shaping controlled object from the initial posture to the target posture;

[0046] Based on the driving skeleton change data and the shaping skeleton change data, the starting posture data, the target posture data, and the process posture data of the target character model from the starting posture to the target posture are generated.

[0047] Secondly, embodiments of this application provide an electronic device, including: a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the animation character shaping method as described in any one of the embodiments of the first aspect of this application.

[0048] Thirdly, embodiments of this application provide a computer-readable storage medium storing a program that is executed by a processor to implement the animation character shaping method as described in any one of the embodiments of the first aspect of this application.

[0049] The animation character shaping method, electronic device, and storage medium according to the embodiments of this application have at least the following beneficial effects:

[0050] According to the animation character shaping method of this application, firstly, the target driving bone is determined from each character skeleton of the target character model, and shaping control components are added to the target driving bone; the target shaping controlled object associated with the target driving bone is determined from a preset candidate control list; the bone posture transformation command is captured through the shaping control component, and the initial posture data, target posture data, and process posture data of the target character model from the initial posture to the target posture are determined based on the bone posture transformation command; posture distance analysis is performed based on the initial posture data, process posture data, and target posture data to obtain the posture distance matrix; radial basis function interpolation calculation is performed based on the posture distance matrix to determine the corresponding shaping weights for the process posture data; based on the initial posture data, target posture data, process posture data, and the shaping weights corresponding to the process posture data, the target shaping controlled object is shaped to obtain the target animation of the shaped character model. In this way, the visual expressiveness of the animation can be improved while ensuring the efficiency of animation production.

[0051] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description

[0052] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the description of the embodiments taken in conjunction with the following drawings, in which:

[0053] Figure 1 A schematic flowchart of an animation character reshaping method provided in an embodiment of this application;

[0054] Figure 2 Another flowchart illustrating the animation character reshaping method provided in this application embodiment;

[0055] Figure 3 Another flowchart illustrating the animation character reshaping method provided in this application embodiment;

[0056] Figure 4 Another flowchart illustrating the animation character reshaping method provided in this application embodiment;

[0057] Figure 5 Another flowchart illustrating the animation character reshaping method provided in this application embodiment;

[0058] Figure 6 Another flowchart illustrating the animation character reshaping method provided in this application embodiment;

[0059] Figure 7 Another flowchart illustrating the animation character reshaping method provided in this application embodiment;

[0060] Figure 8 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation

[0061] The embodiments of this application are described in detail below. Examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain this application, and should not be construed as limiting this application.

[0062] In the description of this application, "several" means one or more, "more than" means two or more, "greater than," "less than," and "exceeding" are understood to exclude the stated number, while "above," "below," and "within" are understood to include the stated number. The use of "first" and "second" in the description is merely for distinguishing technical features and should not be construed as indicating or implying relative importance, or implicitly indicating the number of indicated technical features, or implicitly indicating the order of the indicated technical features.

[0063] In the description of this application, it should be understood that the orientation descriptions, such as up, down, left, right, front, and back, are based on the orientation or positional relationship shown in the accompanying drawings. They are only for the convenience of describing this application and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this application.

[0064] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "illustrative embodiment," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.

[0065] In the description of this application, it should be noted that, unless otherwise explicitly defined, terms such as "setting," "installation," and "connection" should be interpreted broadly. Those skilled in the art can reasonably determine the specific meaning of the above terms in this application based on the specific content of the technical solution. Furthermore, the identification of specific steps in the following text does not imply a limitation on the order of steps or execution logic. The execution order and logic between each step should be understood and inferred from the content described in the embodiments.

[0066] In the fields of game and animation production, character modeling is an indispensable and crucial step in achieving high-quality visual effects. Currently, the industry's commonly used technical solutions are primarily based on Euler angle-driven skeletal systems or Euler angle-driven Blend Shapes technology. Euler angles, as a method of describing object orientation, express spatial location through three angles of rotation around an axis. Meanwhile, Blend Shapes technology achieves precise shape control by blending multiple preset deformation models. These two technical approaches have long dominated game development projects, forming the basic framework for character modeling.

[0067] Blend Shapes is a 3D model deformation technique that creates new deformation effects by blending multiple pre-made target shape models. These preset models typically include different facial expressions or shape changes, such as a smiling face or a frowning face. In practice, Blend Shapes can directly control every vertex of the 3D model mesh, achieving fine-grained shape adjustments down to the vertex level. In contrast, skeletal-based shaping techniques can only control vertices within the area affected by the skeleton, resulting in a relatively coarser shaping effect. Therefore, Blend Shapes is considered a more precise shaping method than skeletal shaping, producing higher-quality visual effects. However, this fine-grained control comes at the cost of higher performance, placing greater demands on computational resources when processing complex character models. In practical applications, a trade-off must be made between the high precision of Blend Shapes and the high efficiency of skeletal shaping, depending on the project's performance budget and visual quality requirements.

[0068] However, traditional Euler angle-based solutions suffer from a fundamental technical limitation: gimbal lock. When using Euler angles for rotation calculations, if two rotation axes unexpectedly coincide in a specific orientation, the embodiment in this application will lose a rotational degree of freedom in one direction, causing the object's orientation to suddenly lock in a certain state, preventing it from rotating normally as expected. This problem directly triggers a series of chain reactions, such as abnormal skeletal rotation and insufficient smoothness in animation interpolation, significantly affecting the naturalness and motion stability of character animation, ultimately limiting further improvements in visual expressiveness. In game development practice, this technical bottleneck directly affects the smoothness and realism of character movements, becoming an obstacle to the efficiency of high-quality animation production.

[0069] This application aims to address at least one of the technical problems existing in the prior art. To this end, this application proposes an animation character modeling method, electronic device, and storage medium that can enhance the visual expressiveness of animation while ensuring animation production efficiency.

[0070] The following explanation is based on the accompanying drawings.

[0071] Reference Figure 1 The animation character reshaping method according to the embodiments of this application may include:

[0072] Step S101: Determine the target driving bone from the skeletons of each character in the target character model, and add a shaping control component to the target driving bone;

[0073] Step S102: Determine the target shaping controlled object associated with the target driven skeleton from a preset candidate control list;

[0074] Step S103: Capture the skeletal pose transformation command through the shaping control component, and determine the initial pose data, target pose data and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation command.

[0075] Step S104: Based on the initial attitude data, process attitude data, and target attitude data, perform attitude distance analysis to obtain the attitude distance matrix;

[0076] Step S105: Perform radial basis function interpolation calculation based on the attitude distance matrix to determine the corresponding shaping weights for the process attitude data;

[0077] Step S106: Based on the initial posture data, target posture data, process posture data, and the shaping weights corresponding to the process posture data, perform character shaping on the target shaping controlled object to obtain the target animation of the character model after character shaping.

[0078] In some embodiments, step S101 involves determining the target driving bone from the skeletons of each character in the target character model and adding a shaping control component to the target driving bone.

[0079] It should be noted that, in response to the bone selection command, a target driving bone is selected from the character skeleton of the target character model, and a shaping control component is added to the target driving bone. This operation translates the user's interactive intent into a concrete technical implementation: in this embodiment, after selecting a bone as the shaping driving source in the visual interface, this embodiment receives the command and marks the bone as the target driving bone. Subsequently, the shaping control component is added to the bone, serving as the data carrier and execution environment for all subsequent shaping calculations. The component addition operation simultaneously initializes the data storage structure and mounts the calculation logic, enabling the bone to capture pose changes, store preset poses, and perform radial basis function interpolation calculations. This design directly binds the shaping control component to the driving bone, ensuring the continuity and stability of the calculation process and avoiding the problem that external scripts may fail due to scene resets or file transfers.

[0080] It should be understood that step S101 involves determining the target driving bone from the skeletons of each character in the target character model and adding a shaping control component to the bone. Its core task is to clarify the control source of the shaping system and deploy the computing carrier.

[0081] It should be noted that the skeletons of the target character model constitute a complete hierarchical structure of the character's skeleton, including primary control skeletons (such as the spine and limb skeletons) and auxiliary skeletons (such as facial skeletons and muscle correction skeletons). These skeletons are organized through a parent-child hierarchical relationship, jointly supporting the character's movement and deformation. In this skeletal system, the target-driven skeleton is a single control source manually specified by the user according to the shaping requirements. The selection criteria are usually the skeletons that play a dominant role in the character's movement, such as the upper arm skeleton driving the overall movement of the upper limbs, and the thigh skeleton driving the overall movement of the lower limbs. The process of determining the target-driven skeleton is essentially establishing the main input terminal for shaping control, and all subsequent shaping effects are triggered by the posture changes of this skeleton. Unlike traditional methods that directly add controllers to the object being shaped, this solution separates the control source from the controlled object, making the shaping logic clearer and the control relationship more centralized.

[0082] In some specific embodiments, adding a shaping control component to the target driven skeleton is key to the technical implementation. The shaping control component in this application can be mounted on the target driven skeleton as a 3ds Max modifier, serving as the computational core and data storage center of the entire shaping method. The component encapsulates all the logic for radial basis function interpolation calculation, including the storage of a preset pose sample library, maintenance of the pose distance matrix, persistence of the Gaussian kernel inverse matrix, and weight calculation and normalization for each frame. In some embodiments, adding the component accomplishes three tasks: first, it creates a user interface, allowing animators to adjust parameters, record poses, and view weights through the component panel; second, it initializes the data storage structure, providing serialized storage space for subsequently captured pose data; and third, it mounts a computational execution engine, enabling the component to continuously monitor changes in the driven skeleton in the background and calculate shaping weights in real time. This component-based design tightly integrates the shaping function with the skeleton model, avoiding the problem of external scripts failing due to scene resets or file transfers, significantly improving the system's stability and portability.

[0083] In some embodiments, step S102 involves determining a target shaping controlled object associated with the target driven skeleton from a preset candidate control list;

[0084] It should be noted that the target shaping controlled object associated with the target driving bone is determined from a pre-defined candidate control list. The candidate control list is a data structure pre-built by the user and stored within the shaping control component. This list records all shaping target objects that can be called by the driving bone, and may include auxiliary shaping bones and BlendShapes deformation targets. Auxiliary shaping bones are bone nodes specifically added to correct details such as muscle deformation and skin stretching, and are typically bound to specific areas of the character model, such as shoulder muscle correction bones or armpit skin stretching bones. BlendShapes deformation targets are vertex-level deformation models pre-created by the modeler, achieving fine deformation control by blending multiple target shapes, such as the muscle bulge shape corresponding to an arm raised, or the facial wrinkle shape corresponding to a frowning expression. These objects collectively constitute the execution end of character shaping, and their shape changes directly determine the visual quality of the final animation.

[0085] The process of determining associated objects from a pre-set candidate control list is essentially establishing a mapping relationship from a single driving skeleton to multiple driven shaping objects. In this embodiment, based on the identification information of the target driving skeleton, entries logically related to it are searched in the candidate control list, and the selected shaping skeletons or blend shapes are marked as target shaping controlled objects. This association is established based on the character's anatomical structure and movement patterns. For example, the lifting action of the upper arm skeleton may simultaneously be associated with multiple objects such as shoulder muscle correction skeletons, axillary skin stretching blend shapes, and upper arm muscle bulging blend shapes. After determining the association, the data structure within the shaping control component stores node references to these objects, ensuring that the calculated shaping weights can be accurately transmitted to the correct execution objects during the subsequent real-time driving phase, avoiding data failure issues caused by node renaming or hierarchical changes.

[0086] This step plays a crucial role in the entire technical logic chain, connecting the preceding and following steps. Step S101 identifies the control source and deploys the shaping control components, while step S102 clarifies the final executor of the control link, completing the top-level design of the driving relationship. From a technical implementation perspective, the pre-set mechanism of the candidate control list allows users to flexibly configure shaping objects according to specific role requirements. The same set of driving skeletons can be associated with different combinations of controlled objects, adapting to diverse project needs. Simultaneously, centralized management of the list facilitates batch modifications and version iterations, improving collaboration efficiency in large projects. The completion of step S102 signifies that the control architecture of the shaping system has been established, laying a clear foundation of control relationships for step S103 to capture posture data and build a preset posture sample library. This ensures that all subsequent calculations and driving operations have clear execution objectives, a crucial prerequisite for achieving automated, high-quality character shaping.

[0087] It's important to note that the specific form of the shaping control component can be a Pose Driver modifier. When used as a shaping control component, the Pose Driver modifier serves as the computational hub and data carrier of the entire shaping method. It is integrated into the character's skeletal system as a 3ds Max modifier, encapsulating all the logic for radial basis function interpolation calculations. The Pose Driver modifier is bound to the driving skeleton, continuously monitoring its transformation state, internally storing key data such as process pose samples and Gaussian kernel inverse matrices, and performing weight calculations and normalization for each frame. Its functions encompass data capture, mathematical operations, weight output, and parameter association. It acts as the hub connecting the driving skeleton and the driven object, replacing the external scripts or plugins that rely on Euler angle calculations in traditional shaping methods.

[0088] Reference Figure 2 According to some embodiments of this application, the candidate control list stores multiple candidate control objects that have a state mapping relationship with each other for the target role model.

[0089] In step S102, the target shaping controlled object associated with the target driven skeleton is determined from a preset candidate control list, including:

[0090] Step S201: Extract several candidate control objects from the candidate control list that have a state mapping relationship with the target driven skeleton as target modification controlled objects;

[0091] In step S103, the skeletal pose transformation command is captured by the shaping control component, and the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose are determined based on the skeletal pose transformation command, including:

[0092] Step S202: Capture the bone posture transformation command through the shaping control component, and determine the driving bone change data from the initial posture to the target posture based on the bone posture transformation command.

[0093] Step S203: Based on the driving skeleton change data and state mapping relationship, determine the skeleton change data of each target shaping controlled object from the initial posture to the target posture.

[0094] Step S204: Based on the driving skeleton change data and the shaping skeleton change data, generate the initial pose data, target pose data and process pose data of the target character model from the initial pose to the target pose.

[0095] According to an embodiment of this application, the candidate control list stores multiple candidate control objects with mutual state mapping relationships for the target character model. The state mapping relationship is the core organizational principle of this list, defining the posture correspondence rules between each candidate control object and the target drive skeleton. For example, when the target drive skeleton is the upper arm skeleton in a 90-degree raised posture, the shoulder muscle correction skeleton should exhibit a specific bulge angle, and the axillary blend shapes should reach a preset stretch deformation amount. These correction objects and the posture of the upper arm skeleton constitute a one-to-many state mapping relationship. The candidate control list stores these mapping relationships in the form of a data structure, enabling the system to quickly retrieve all associated correction objects based on the identifier of the drive skeleton, providing a relationship graph for subsequent automated driving. This pre-defined mapping relationship digitizes the character's anatomical structure and motion patterns, avoiding the tedious operation of manually specifying associated objects each time a correction is performed, and improving the collaboration efficiency and configuration flexibility in large projects.

[0096] In some embodiments, step S201 involves extracting several candidate control objects that have a state mapping relationship with the target driven skeleton from the candidate control list as target modification controlled objects.

[0097] It should be noted that from the candidate control list, several candidate control objects with a state mapping relationship with the target driving skeleton are extracted as target shaping controlled objects. This extraction operation is a process of object screening based on the state mapping relationship. After the target driving skeleton is determined, this embodiment of the application traverses the candidate control list, retrieves all entries with a state mapping relationship with the skeleton, and marks the selected shaping skeletons or Blend Shapes as target shaping controlled objects. This screening ensures that only shaping objects directly related to the current driving action are activated, avoiding performance waste caused by irrelevant objects participating in the calculation. The extraction process may involve shaping objects at multiple levels, including auxiliary shaping skeletons at the skeleton level and Blend Shapes deformation targets at the vertex level. This embodiment of the application extracts these objects together to form a complete shaping execution set, clarifying the terminal target for subsequent data capture and driving calculation. This sub-step and step S101, which adds shaping control components to the target driving skeleton, form a connection. The former deploys the computing carrier, and the latter clarifies the execution terminal, jointly completing the architecture construction of the shaping system.

[0098] In some embodiments, step S202 involves capturing bone pose transformation instructions through a shaping control component and determining the change data of the target driven bone from the initial pose to the target pose based on the bone pose transformation instructions.

[0099] It should be noted that the shaping control component captures bone pose transformation commands and determines the driving bone change data from the initial pose to the target pose based on these commands. The bone pose transformation commands can originate from manual user adjustments or existing animation data. After capturing these commands, the component records the local transformation matrix of the driving bone at each keyframe, forming the driving bone change data. This data only describes the motion trajectory of the driving bone itself and does not involve any deformation information of the shaping object; it serves as the basic input for subsequent derivation of the shaping object's changes.

[0100] In some embodiments, step S203 involves determining the shaping skeleton change data of each target shaping controlled object from the initial posture to the target posture based on the driven skeleton change data and the state mapping relationship.

[0101] It should be noted that, based on the driven skeleton change data and state mapping relationship, the skeleton change data of each target shaping controlled object from the initial posture to the target posture is determined. The state mapping relationship plays a core transformation role here: according to the local matrix of the driven skeleton in the initial, target, and process postures, combined with the preset mapping rules, the correct posture of each target shaping controlled object in the corresponding state is automatically calculated. For example, when the driven skeleton matrix shows that the arm is raised 30 degrees, this embodiment of the application derives, based on the mapping relationship, that the shoulder shaping skeleton should rotate 15 degrees and the armpit blend shapes should activate a deformation amount of 0.3. These derived data constitute the skeleton change data. This process converts the motion information of the driven end into the deformation information of the controlled end, realizing the logical mapping from a single control source to multiple execution objects.

[0102] In some embodiments, step S204 generates initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose, based on the driving skeleton change data and the shaping skeleton change data.

[0103] It should be noted that, based on the driving skeleton change data and the shaping skeleton change data, the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose are generated. This step integrates and encapsulates the data at the aforementioned two levels, merging the local matrix of the driving skeleton with the local matrix or deformation of each shaping object in the corresponding state to form a complete pose dataset. The initial pose data can include the initial state of the driving skeleton and all shaping objects at the start frame, the target pose data can include the final state at the end frame, and the process pose data can include the paired state of the two at intermediate keyframes.

[0104] In step S103 of some embodiments, the skeletal pose transformation command is captured by the shaping control component, and the initial pose data, target pose data and process pose data of the target character model from the initial pose to the target pose are determined based on the skeletal pose transformation command.

[0105] It should be noted that the skeletal pose transformation command is captured by the shaping control component, and the initial pose data, target pose data, and process pose data are determined based on the command. During the command capture process, the real-time transformation of the driving skeleton is continuously monitored, and its motion trajectory is recorded. When determining the pose data, this embodiment uses a local transformation matrix to describe the spatial state of the driving skeleton, completely abandoning the Euler angle representation. The initial pose data corresponds to the initial state of the character's movement, the target pose data corresponds to the final state, and the process pose data covers the key intermediate poses within the movement range. These data together constitute a preset pose sample library. Unlike the traditional manual setting of shaping keyframes frame by frame, this embodiment captures key poses in the natural motion flow to form sparse but effective data anchors. The use of local matrices eliminates interference from world coordinate system motion, ensuring that each pose sample is independent and stable, solving the defect of Euler angles being prone to distortion in complex hierarchical structures, and providing a reliable data foundation for subsequent distance calculations.

[0106] Reference Figure 3 According to some embodiments of this application, step S103 captures skeletal pose transformation instructions through the shaping control component, and determines the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation instructions, which may include:

[0107] Step S301: Obtain the bone pose transformation command and the local transformation matrix of the target driven bone through the shaping control component;

[0108] Step S302: Control the target character model to perform posture transformation based on the skeleton posture transformation command;

[0109] Step S303: During the pose transformation of the target character model, record the process pose of the target character model from the initial pose to the target pose.

[0110] Step S304: Determine the initial attitude data, process attitude data, and target attitude data based on the local transformation matrices corresponding to the initial attitude, process attitude, and target attitude, respectively.

[0111] According to some embodiments of this application, step S103 completes the capture of skeletal pose transformation commands and the collection of pose data through four sub-steps, which constitute the core operation link for establishing the modeling sample library.

[0112] In step S301 of some embodiments, the skeleton pose transformation command and the local transformation matrix of the target driven skeleton are obtained through the shaping control component;

[0113] It's important to note that the shaping control component acquires the bone pose transformation command and the local transformation matrix of the target driving bone. The bone pose transformation command is generated by the user manually adjusting the driving bone or originates from existing animation keyframe data, serving as the starting point for triggering the entire shaping data recording process. Simultaneously, the shaping control component captures this command and reads the local transformation matrix of the target driving bone. This local transformation matrix is ​​represented using quaternions or displacement vectors, completely avoiding Euler angles and fundamentally eliminating gimbal lock issues. This matrix records the bone's rotation and displacement states in its own coordinate system, eliminating interference from world coordinate system movements such as the character's overall movement and rotation. This ensures that each subsequently recorded pose sample is an independent and stable data point, laying the foundation for accurate interpolation calculations.

[0114] In some embodiments, step S302 involves controlling the target character model to perform posture transformation based on skeletal posture transformation instructions.

[0115] It's important to note that the target character model undergoes pose transformations based on skeletal pose transformation commands. After acquiring the commands and initial matrix, the shaping control component transmits these commands to the target character model's skeletal system, driving the model to complete continuous movement from the initial pose to the target pose according to the commands. This process is visually presented, allowing users to intuitively observe the range of motion and deformation effects, thus accurately determining which poses need to be recorded as preset samples. Unlike traditional manual frame-by-frame adjustments to shaping keyframes, this step integrates pose transformation and data capture within the same component, automating the workflow and reducing the tedious switching between multiple tools.

[0116] In step S303 of some embodiments, during the pose transformation of the target character model, the process pose of the target character model from the initial pose to the target pose is recorded.

[0117] It should be noted that during the pose transformation of the target character model, the process pose of the target character model from the initial pose to the target pose is recorded. The process pose does not refer to recording all intermediate states frame by frame, but rather to representative key intermediate points actively marked by the user. For example, during the process of raising an arm from a hanging position to a horizontal position, the user can pause and trigger recording at characteristic angles such as 30 degrees and 60 degrees; this embodiment captures the pose data at that moment. This sparse sampling strategy meets the requirements of radial basis function interpolation for the number of anchor points, ensuring effective coverage of the action range while avoiding data redundancy. Simultaneously with recording the process pose, this embodiment also captures the corresponding local transformation matrix under that pose, forming a pairing of pose and matrix data, providing structured information for subsequent pose library construction in some embodiments.

[0118] In step S304 of some embodiments, the initial attitude data, the process attitude data, and the target attitude data are determined based on the local transformation matrices corresponding to the initial attitude, the process attitude, and the target attitude, respectively.

[0119] It should be noted that the initial posture data, process posture data, and target posture data are determined based on the local transformation matrices corresponding to the initial posture, process posture, and target posture, respectively. This step serializes and organizes the captured local transformation matrices, converting the matrix data into a posture data format that can be recognized and stored by a computer. The initial posture data corresponds to the initial state of the character's movement, the target posture data corresponds to the final state, and the process posture data constitutes the set of key anchor points within the action range. These three types of data together constitute a preset posture library, fully covering the possible range of movement of the character. Since all data is based on local transformation matrices, this embodiment does not require Euler angle to matrix conversion, avoiding numerical distortion caused by inconsistent rotation order. These data will be used for posture distance analysis in step S104 to form a posture distance matrix, providing standardized input samples for radial basis function interpolation calculation, ensuring the data accuracy and computational stability of the entire shaping process.

[0120] It should be understood that the process involves first acquiring instructions and transformation information, then executing attitude transformations, actively marking key process attitudes and recording matrices during the transformation, and finally organizing the matrix data from all attitudes into standardized attitude data. This process tightly integrates user interaction, data capture, and sample construction, ensuring the effectiveness of the sample library while avoiding the inherent defects of the Euler angle system by using local transformation matrices throughout the process, thus providing a high-quality data foundation for subsequent automated modeling.

[0121] Reference Figure 4According to some embodiments of this application, step S103 captures skeletal pose transformation instructions through the shaping control component, and determines the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation instructions, which may include:

[0122] Step S401: Obtain the bone pose transformation command and the local transformation matrix of the target driven bone through the shaping control component;

[0123] Step S402: Control the target character model to perform posture transformation based on the skeletal posture transformation command;

[0124] Step S403: During the pose transformation of the target character model, record the process pose of the target character model from the initial pose to the target pose.

[0125] Step S404: Determine the initial attitude data, process attitude data, and target attitude data based on the local transformation matrices corresponding to the initial attitude, process attitude, and target attitude, respectively.

[0126] According to some embodiments of this application, step S103 completes the capture of skeletal pose transformation commands and the collection of pose data through four sub-steps, which constitute the core operation link for establishing the modeling sample library.

[0127] In step S401 of some embodiments, the skeleton pose transformation command and the local transformation matrix of the target driven skeleton are obtained through the shaping control component;

[0128] It's important to note that the shaping control component acquires the bone pose transformation command and the local transformation matrix of the target driving bone. The bone pose transformation command is generated by the user manually adjusting the driving bone or originates from existing animation keyframe data, serving as the starting point for triggering the entire shaping data recording process. Simultaneously, the shaping control component captures this command and reads the local transformation matrix of the target driving bone. This local transformation matrix is ​​represented using quaternions or displacement vectors, completely avoiding Euler angles and fundamentally eliminating gimbal lock issues. This matrix records the bone's rotation and displacement states in its own coordinate system, eliminating interference from world coordinate system movements such as the character's overall movement and rotation. This ensures that each subsequently recorded pose sample is an independent and stable data point, laying the foundation for accurate interpolation calculations.

[0129] In some embodiments, step S402 involves controlling the target character model to perform posture transformation based on skeletal posture transformation instructions.

[0130] It's important to note that the target character model undergoes pose transformations based on skeletal pose transformation commands. After acquiring the commands and initial matrix, the shaping control component transmits these commands to the target character model's skeletal system, driving the model to complete continuous movement from the initial pose to the target pose according to the commands. This process is visually presented, allowing users to intuitively observe the range of motion and deformation effects, thus accurately determining which poses need to be recorded as preset samples. Unlike traditional manual frame-by-frame adjustments to shaping keyframes, this step integrates pose transformation and data capture within the same component, automating the workflow and reducing the tedious switching between multiple tools.

[0131] In step S403 of some embodiments, during the pose transformation of the target character model, the process pose of the target character model from the initial pose to the target pose is recorded.

[0132] It should be noted that during the pose transformation of the target character model, the process pose of the target character model from the initial pose to the target pose is recorded. The process pose does not refer to recording all intermediate states frame by frame, but rather to representative key intermediate points actively marked by the user. For example, during the process of raising an arm from a hanging position to a horizontal position, the user can pause and trigger recording at characteristic angles such as 30 degrees and 60 degrees; this embodiment captures the pose data at that moment. This sparse sampling strategy meets the requirements of radial basis function interpolation for the number of anchor points, ensuring effective coverage of the action range while avoiding data redundancy. Simultaneously with recording the process pose, this embodiment also captures the corresponding local transformation matrix under that pose, forming a pairing of pose and matrix data, providing structured information for subsequent pose library construction in some embodiments.

[0133] In some embodiments, step S404 involves determining the initial attitude data, the process attitude data, and the target attitude data based on the local transformation matrices corresponding to the initial attitude, the process attitude, and the target attitude, respectively.

[0134] It should be noted that the initial posture data, process posture data, and target posture data are determined based on the local transformation matrices corresponding to the initial posture, process posture, and target posture, respectively. This step serializes and organizes the captured local transformation matrices, converting the matrix data into a posture data format that can be recognized and stored by a computer. The initial posture data corresponds to the initial state of the character's movement, the target posture data corresponds to the final state, and the process posture data constitutes the set of key anchor points within the action range. These three types of data can together form a posture library, fully covering the possible range of movement of the character. Since all data is based on local transformation matrices, this embodiment does not require Euler angle to matrix conversion, avoiding numerical distortion caused by inconsistent rotation order. These data will be directly used for posture distance analysis in step S104 to form a posture distance matrix, providing standardized input samples for radial basis function interpolation calculation, ensuring the data accuracy and computational stability of the entire shaping process.

[0135] It should be understood that the process involves first acquiring instructions and initial transformation information, then executing attitude transformations, actively marking key process attitudes and recording matrices during the transformation, and finally organizing the matrix data from all attitudes into standardized attitude data. This process tightly integrates user interaction, data capture, and sample construction, ensuring the effectiveness of the sample library while mitigating the inherent limitations of the Euler angle system by using local transformation matrices throughout the process, thus providing a high-quality data foundation for subsequent automated modeling.

[0136] In some embodiments, step S104 involves performing attitude distance analysis based on the initial attitude data, process attitude data, and target attitude data to obtain an attitude distance matrix.

[0137] It should be noted that attitude distance analysis is performed based on the initial attitude data, process attitude data, and target attitude data to obtain the attitude distance matrix. Distance analysis uses quaternion arc length distance or displacement distance calculations to avoid the Euler angle gimbal lock problem. Quaternions describe rotation through four-dimensional vectors, eliminating the loss of degrees of freedom caused by coincident rotation axes. This embodiment calculates the pairwise distances between all attitudes, constructing a complete matrix that describes the topological structure within the preset attitude library. This matrix transforms attitude similarity into quantifiable values, allowing the allocation of shaping weights to be based on objective mathematics, avoiding the animation unsmoothness problem caused by relying on manual judgment of shaping intensity in traditional schemes. The attitude distance matrix is ​​a necessary input for radial basis function interpolation calculations, providing geometric relationship data for weight generation.

[0138] Reference Figure 5 According to some embodiments of this application, step S104 involves performing attitude distance analysis based on the initial attitude data, process attitude data, and target attitude data to obtain an attitude distance matrix, including:

[0139] Step S501: Arrange the initial attitude data, process attitude data and target attitude data in a time sequence to obtain the attitude transformation data sequence;

[0140] Step S502: Calculate the attitude distance for every two data sequences in the attitude transformation data sequence to obtain the attitude distance matrix.

[0141] According to some embodiments of this application, step S104 completes attitude distance analysis through two sub-steps, converting the collected attitude data into an attitude distance matrix, providing basic geometric relationship data for radial basis function interpolation calculation.

[0142] In some embodiments, step S501 involves arranging the initial attitude data, process attitude data, and target attitude data in a temporal sequence to obtain an attitude transformation data sequence.

[0143] It should be noted that the posture transformation data sequence is obtained by chronologically arranging the initial posture data, intermediate posture data, and target posture data. This operation organizes static, discrete posture samples into a linear sequence according to the chronological order of the actions, ensuring the continuity and logic of the data in the time dimension. The essence of chronological arrangement is to structurally store the complete motion trajectory of the character from the initial posture through various intermediate postures to the final target posture in the form of an array or list. For example, in an arm-raising movement, the initial posture (drooping) is placed first, the intermediate postures (e.g., 30 degrees, 60 degrees) are arranged sequentially in time, and the target posture (horizontal) is placed last. This arrangement not only conforms to the intuitive habits of animators observing the motion flow but also provides a clear reference for adjacency relationships for subsequent distance calculations, enabling the distance matrix to reflect the gradual change of posture in time. Unlike the random storage of preset postures in traditional methods, chronological arrangement ensures the causal relationship between posture samples, laying a kinematically logical foundation for interpolation calculations.

[0144] In step S502 of some embodiments, the attitude distance is calculated for every two sequence data in the attitude transformation data sequence to obtain the attitude distance matrix.

[0145] It should be noted that the attitude distance is calculated for every two data pairs in the attitude transformation data sequence to obtain an attitude distance matrix. From the mathematical principle of radial basis functions, interpolation calculation requires a complete attitude distance matrix, i.e., the distance between any two attitudes. Therefore, the core task of this sub-step is to mathematically compare the transformation matrices of any two attitudes in the sequence, quantifying their spatial differences. Specifically, in this embodiment, quaternion arc length distance calculation or displacement distance calculation is performed on any two local transformation matrices to obtain a scalar distance value. The entire sequence is traversed, and the distance to each pair of attitudes is calculated sequentially, ultimately organizing these distance values ​​into a matrix form.

[0146] Reference Figure 6 According to some embodiments of this application, step S502, which calculates the attitude distance for every two sequences of attitude transformation data to obtain an attitude distance matrix, may include:

[0147] Step S601: Determine the posture transformation mode according to the skeleton posture transformation command;

[0148] Step S602: When the attitude transformation mode is rotation transformation mode, quaternion arc distance is calculated for every two sequence data in the attitude transformation data sequence to obtain multiple attitude distance matrices.

[0149] Step S603: When the attitude transformation mode is the displacement transformation mode, calculate the straight-line distance between every two sequence data in the attitude transformation data sequence to obtain the attitude distance matrix.

[0150] According to some embodiments of this application, step S502 clarifies the calculation strategy of the attitude distance matrix through three sub-steps. The core feature is that the distance is calculated for every two sequence data in the attitude transformation data sequence, rather than being limited to adjacent data, and the corresponding mathematical method is selected according to the transformation mode.

[0151] In some embodiments, step S601 involves determining the posture transformation mode based on the skeletal posture transformation command.

[0152] It should be noted that the posture transformation mode is determined based on the skeletal posture transformation command. This command is set by the user in the preceding steps, explicitly specifying whether the current shaping operation is based on rotation or displacement. This mode determination is the logical bifurcation point of the entire distance calculation process, determining the execution path of subsequent steps S602 or S603. Making the mode determination a separate sub-step allows for compatibility between two drastically different distance measurement methods within the same framework, improving the versatility of this embodiment. Determining the transformation mode requires analyzing the control parameters in the skeletal posture transformation command. If the command involves a rotation component, it is determined to be a rotation transformation mode; if it involves a displacement component, it is determined to be a displacement transformation mode. The output of this sub-step is a mode identifier, serving as a switch signal for subsequent calculation processes.

[0153] In step S602 of some embodiments, when the attitude transformation mode is a rotation transformation mode, quaternion arc length distance is calculated for every two sequence data in the attitude transformation data sequence to obtain multiple attitude distance matrices.

[0154] It should be noted that when the attitude transformation mode is rotation transformation mode, quaternion arc distance calculation is performed for every two data sequences in the attitude transformation data sequence to obtain multiple attitude distance matrices. The key technology of this sub-step lies in quaternion arc distance calculation. Quaternions are mathematical tools for describing 3D rotation, representing spatial directions through four components, and do not have the gimbal lock defect of Euler angle representation. Arc distance calculation is not simply calculating the Euclidean distance between two rotational states, but rather calculating the shortest path length between two points on a unit sphere using the quaternion dot product and the inverse cosine function. This measurement method is more in line with the essential characteristics of rotational motion. Calculating for "every two data sequences" in the sequence means that the system performs a complete pairwise combination traversal. If the sequence contains n attitude data, then n×n distance values ​​are calculated to construct a complete square matrix. The description mentions "obtaining multiple attitude distance matrices," which may be an imprecise statement. In a modeling system with a single driven skeleton, only one attitude distance matrix should be generated in rotation transformation mode. If multiple driven skeletons are involved, and the rotation data of each skeleton is calculated independently, multiple matrices may be generated. A more reasonable understanding is that the calculation process involves multiple quaternion components or intermediate results, but they are ultimately integrated into a unified attitude distance matrix for subsequent radial basis function interpolation calculations.

[0155] In step S603 of some embodiments, when the attitude transformation mode is the displacement transformation mode, the straight-line distance is calculated for every two sequence data in the attitude transformation data sequence to obtain the attitude distance matrix.

[0156] It should be noted that when the attitude transformation mode is the displacement transformation mode, the straight-line distance is calculated for every two data sequences in the attitude transformation data sequence to obtain the attitude distance matrix. Unlike rotation transformation, displacement transformation describes position change, therefore straight-line distance calculation is used, which is the shortest distance between two points in Euclidean space. The calculation method is relatively straightforward: extract the displacement vectors contained in the two data sequences, and obtain the distance value through vector subtraction and modulus operation. Similarly, every pair of data sequences is traversed pairwise to construct the complete distance matrix. Since the computational complexity of displacement distance is lower than that of quaternion arc distance, this mode is more computationally efficient and suitable for position-driven shaping scenarios, such as following deformation when the character moves as a whole.

[0157] It should be understood that steps S602 and S603 respectively employ distance measurement methods that best suit the geometric characteristics of two fundamentally different transformation types: rotation and translation, ensuring that the distance matrix accurately reflects the true differences between the posture data. This classification processing mechanism enables the system to flexibly handle the complex hybrid transformation requirements in character animation.

[0158] It is important to emphasize that the embodiments of this application determine the calculation path through pattern determination, perform quaternion arc length calculation for rotation transformation, and perform straight-line distance calculation for displacement transformation, ultimately generating a complete attitude distance matrix. This matrix is ​​then converted into a weight matrix using a Gaussian kernel function in subsequent steps, and a kernel matrix for radial basis function interpolation is further constructed, providing the necessary geometric relationship data for automated shaping. By explicitly defining the calculation object as "every two sequence data," the embodiments of this application ensure the integrity of the distance matrix, satisfying the requirements of the radial basis function for global distance information, which is a key technical guarantee for improving the smoothness and accuracy of the shaping effect.

[0159] In some embodiments, the temporal arrangement can be combined with adjacent distance calculation, reflecting an optimization consideration for computational efficiency. Temporal relationships provide priority for distance calculations; adjacent poses typically have the highest similarity and are closest, so prioritizing the calculation of these distances reduces the overall computational load. When constructing the complete distance matrix, the continuity of temporal information can be utilized to quickly estimate or derive non-adjacent distances incrementally, avoiding exhaustive calculations of all pairwise combinations. For example, given the distance from pose A to B and the distance from B to C, the distance range from A to C can be estimated using the triangle inequality, accelerating the matrix filling process.

[0160] However, it must be emphasized that regardless of how the timing sequence is optimized, the attitude distance matrix must contain the pairwise distances between all preset attitudes in order to correctly construct the kernel matrix and invert it. These two sub-steps perform the function of data quantization in the entire logic chain, transforming the abstract attitude transformation into a computable numerical matrix, providing the necessary geometric relationship input for radial basis function interpolation calculation, and ensuring that the subsequent weight generation can reflect the actual structure of the attitude space.

[0161] In some embodiments, step S105 involves expanding the radial basis function interpolation calculation based on the attitude distance matrix to determine the corresponding shaping weights for the process attitude data.

[0162] It should be noted that radial basis function interpolation is performed based on the pose distance matrix to determine the corresponding shaping weights for the process pose data. The radial basis function interpolation calculation converts distance values ​​into initial weight values ​​using a Gaussian kernel function, and then quickly solves for the final weights using the inverse matrix obtained in the preprocessing stage. This calculation process is based on distance-driven nonlinear interpolation, independent of the Euler angle rotation order, completely eliminating the possibility of gimbal lock. The interpolation results ensure that the weights of each preset pose transition smoothly when the driven skeleton is in any intermediate state, resulting in a continuous and natural deformation effect for the driven object. Compared to traditional manual frame-by-frame shaping, the automatic calculation of weights using radial basis functions significantly reduces manual workload, shortens the production cycle, and improves animation stability and visual expressiveness. The determination of the shaping weights provides precise control coefficients for the final shaping effect.

[0163] Reference Figure 7 According to some embodiments of this application, the process attitude data includes a process attitude matrix corresponding to each process attitude. Step S105, which involves expanding the radial basis function interpolation based on the attitude distance matrix to determine the corresponding shaping weights for the process attitude data, may include:

[0164] Step S701: Obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix;

[0165] Step S702: For each frame of the basic animation of the character model, read the current local matrix of the target character model and the pose distance vector between each process pose matrix.

[0166] Step S703: Input each attitude distance vector into the Gaussian kernel function to calculate the weights, and obtain the initial weight vector corresponding to each basic frame.

[0167] Step S704: Based on the initial weight vector and Gaussian kernel inverse matrix corresponding to each basic frame, perform calculations to obtain the shaping weights corresponding to the process pose data.

[0168] According to some embodiments of this application, step S105 clarifies the specific execution process of radial basis function interpolation calculation through four sub-steps. The core is to quickly convert the distance vector into shaping weights through the Gaussian kernel inverse matrix, so as to realize the automatic shaping of each frame of basic image.

[0169] According to some embodiments of this application, the process of obtaining the Gaussian kernel inverse matrix can be clearly divided into two stages: offline computation and invocation. The two stages are connected through a data persistence mechanism and together constitute the core strategy for performance optimization.

[0170] Some embodiments may include performing offline calculations on the Gaussian kernel inverse matrix before obtaining the Gaussian kernel inverse matrix corresponding to the attitude distance matrix in step S701. Specifically, this may include:

[0171] The attitude distance matrix is ​​input into the Gaussian kernel function for weight inversion and offline analysis to obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix.

[0172] It should be noted that matrix inversion has a computational complexity that increases cubically, resulting in an extremely large amount of computation. Performing this process in real-time on every frame would slow down the animation playback frame rate, making it difficult to meet the real-time feedback requirements of certain production workflows. Therefore, some embodiments use offline parsing to separate this calculation from the real-time stage, completing it all at once during the preprocessing phase, significantly reducing the computational burden per frame. After inversion, the resulting Gaussian kernel inverse matrix is ​​persistently stored as constant data within the model modification control component, awaiting subsequent access. This storage mechanism ensures that the inverse matrix is ​​saved along with the character model file, eliminating the need for recalculation during scene loading or file transfer, thus guaranteeing data reusability and system stability.

[0173] Therefore, in some embodiments, the attitude distance matrix is ​​constructed in step S104 but has not yet entered the frame loop calculation. In this embodiment, the entire matrix is ​​input into the Gaussian kernel function for processing. The Gaussian kernel function uses the distance value represented by each element of the matrix as the independent variable and generates initial weight values ​​through exponential decay to form a complete kernel matrix. This kernel matrix describes the strength of the relationship between the interactions of all process attitudes, but it cannot be directly used to solve for the shaping weights and must be inverted. Offline weight inversion analysis uses a matrix inversion algorithm (such as Gauss-Jordan elimination) to invert the kernel matrix and obtain its inverse matrix.

[0174] According to some embodiments of this application, the attitude distance matrix is ​​input into a Gaussian kernel function for weight inversion and offline parsing to obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix, which may include:

[0175] Each element of the attitude distance matrix is ​​input into a Gaussian kernel function to determine multiple Gaussian weight values;

[0176] An upper triangular matrix is ​​constructed based on multiple Gaussian weight values ​​to obtain an upper triangular Gaussian kernel matrix;

[0177] Symmetric completion is performed based on the upper triangular Gaussian kernel matrix to obtain the attitude Gaussian kernel matrix;

[0178] Gaussian-Jordan elimination is applied to the attitude Gaussian kernel matrix, and a regularization parameter is added to the diagonal of the attitude Gaussian kernel matrix for inversion processing to obtain the Gaussian kernel inverse matrix.

[0179] According to some embodiments of this application, the offline parsing process of the Gaussian kernel inverse matrix realizes the complete construction from distance data to an invertible matrix through four sub-steps. Each sub-step is optimized for computational efficiency and numerical stability, ultimately generating an inverse matrix that can be called in real time. Specifically:

[0180] Each element of the attitude distance matrix is ​​input into a Gaussian kernel function to determine multiple Gaussian weight values. The attitude distance matrix records the pairwise distances between all process attitudes, with each element representing a specific distance value. In this embodiment, these values ​​are input one by one into the Gaussian kernel function, which uses an exponential decay form and outputs weight values ​​inversely proportional to the distance. The closer the distance, the larger the Gaussian weight value; the farther the distance, the smaller the weight value. This transformation maps geometric distance to the intensity of mutual influence, generating a set of weight values ​​with the same dimension as the attitude distance matrix. The choice of the Gaussian kernel function ensures the smoothness of the weight distribution, providing nonlinear but continuous basic data for subsequent interpolation calculations.

[0181] An upper triangular Gaussian kernel matrix is ​​constructed based on multiple Gaussian weight values. An upper triangular matrix is ​​a matrix structure where the main diagonal and elements above it are retained, while the elements below are set to zero. Because the Gaussian kernel matrix is ​​symmetric—meaning the influence weight of pose A on pose B is equal to the influence weight of pose B on pose A—calculating the lower triangular portion would result in completely redundant repetitive calculations. By calculating only the upper triangular portion, the computational load in this embodiment is reduced by approximately half, significantly reducing the time overhead of the preprocessing stage. During construction, this embodiment fills the upper triangular region according to the matrix index order. Each element is directly assigned its corresponding Gaussian weight value, and the diagonal elements are weighted to 1 based on the special case where the distance is zero, forming a complete upper triangular structure. This structure retains all the independent information of the kernel matrix, providing a data foundation for subsequent completion.

[0182] The attitude Gaussian kernel matrix is ​​obtained by performing symmetric completion on the upper triangular Gaussian kernel matrix. Since the upper triangular matrix lacks data in the lower triangular portion, it cannot be directly used to solve linear equations and must be symmetrically completed. This embodiment utilizes the symmetry property of the kernel matrix, copying each element of the upper triangular portion to its corresponding lower triangular position; that is, the element in the i-th row and j-th column is equal to the element in the j-th row and i-th column. This operation quickly restores the integrity of the matrix, resulting in the complete attitude Gaussian kernel matrix. The completed matrix is ​​a strictly symmetric positive definite matrix, satisfying the mathematical prerequisites for inversion. Symmetric completion strikes a balance between computational efficiency and data integrity, reducing preprocessing time through upper triangular calculations while ensuring matrix usability through rapid copying.

[0183] This paper applies the Gaussian-Jordan elimination method to the attitude Gaussian kernel matrix and adds a regularization parameter to the diagonal of the matrix for inversion, resulting in the Gaussian kernel inverse matrix. The Gaussian-Jordan elimination method is an algorithm that transforms a matrix into an identity matrix through elementary row operations, simultaneously generating the inverse matrix during the transformation. This method has high computational accuracy and is suitable for inverting matrices of medium size. Since the attitude Gaussian kernel matrix may exhibit near-singular ill-conditioned conditions, direct inversion may lead to numerical instability or computational failure. Therefore, this embodiment adds a very small regularization parameter to each element on the diagonal, typically on the order of 1e-6. The regularization parameter shifts the eigenvalues ​​of the matrix as a whole, ensuring that the matrix is ​​strictly positive definite and invertible, significantly improving numerical stability. After adding regularization, the algorithm performs elimination operations, ultimately outputting the Gaussian kernel inverse matrix. This inverse matrix is ​​used as a constant coefficient in subsequent real-time calculations, simplifying the solution of complex linear equations to a single matrix multiplication, significantly reducing the computational burden per frame.

[0184] It should be understood that distance elements are converted into weight values ​​via a kernel function. These weight values ​​are used to construct an upper triangular matrix to reduce redundant computation. Symmetric completion restores matrix integrity, and regularization and Gaussian-Jordan elimination generate a stable and usable inverse matrix. This chain decouples the computationally intensive matrix inversion from the real-time stage. Simultaneously, upper triangular computation and symmetric completion optimize preprocessing performance, and regularization ensures numerical stability. Ultimately, it provides an efficient solution tool for radial basis function interpolation, resolving the animation production efficiency bottleneck mentioned in the background.

[0185] In some more specific embodiments, based on a simplified scenario with three poses, it is assumed that the pose distance matrix has been constructed, and its element values ​​are as follows:

[0186] Attitude distance matrix = [[0.0,0.5,1.2],[0.5,0.0,0.8],[1.2,0.8,0.0]];

[0187] The matrix is ​​a third-order square matrix. The diagonal elements represent the distances within the same pose, with a value of zero. The off-diagonal elements represent the distances between different poses, such as the distance between pose 1 and pose 2 being 0.5, and the distance between pose 1 and pose 3 being 1.2.

[0188] The first step in offline analysis of weight inversion by inputting each element of the attitude distance matrix into a Gaussian kernel function is to determine the form and parameters of the Gaussian kernel function. A standard Gaussian kernel function is used: w = exp(-d² / σ²), where d is the distance value and σ is the kernel width parameter.

[0189] In this example, σ is set to 1.0. The Gaussian weights for each element are calculated sequentially: when d = 0.0, w = exp(0) = 1.0; when d = 0.5, w = exp(-0.25) ≈ 0.779; when d = 1.2, w = exp(-1.44) ≈ 0.237; when d = 0.8, w = exp(-0.64) ≈ 0.527. After calculating all elements, a set of Gaussian weights is obtained, which quantifies the strength of the influence between poses.

[0190] When constructing an upper triangular matrix based on multiple Gaussian weight values, this embodiment only fills the main diagonal and the elements above it, setting the elements below to zero. Using the weight values ​​calculated in the previous step, the upper triangular Gaussian kernel matrix is ​​obtained, represented as:

[0191] [[1.0,0.779,0.237],[0.0,1.0,0.527],[0.0,0.0,1.0]];

[0192] This matrix retains the independent information of the kernel matrix, reducing the computational cost to half that of the complete matrix, and providing a data foundation for subsequent symmetric completion.

[0193] Symmetric completion is performed based on the upper triangular Gaussian kernel matrix. This embodiment utilizes the symmetry property of the kernel matrix to copy each element of the upper triangular portion to the corresponding lower triangular position. For example, 0.779 in row 1, column 2 is copied to row 2, column 1; 0.237 in row 1, column 3 is copied to row 3, column 1; and 0.527 in row 2, column 3 is copied to row 3, column 2. The completed attitude Gaussian kernel matrix is ​​then represented as follows:

[0194] [[1.0,0.779,0.237],[0.779,1.0,0.527],[0.237,0.527,1.0]];

[0195] The matrix is ​​strictly symmetric and positive definite, satisfying the mathematical premise for inversion, thus preparing for the generation of the final inverse matrix.

[0196] Gaussian-Jordan elimination is applied to the attitude Gaussian kernel matrix, and a regularization parameter is added to the diagonal for inversion. To avoid numerical singularities, a regularization parameter λ = 1e-6 is added to each element on the diagonal, resulting in a regularized matrix, expressed as:

[0197] [[1.000001,0.779,0.237],[0.779,1.000001,0.527],[0.237,0.527,1.000001]];

[0198] Applying Gaussian-Jordan elimination to the matrix, we transform it into an identity matrix through elementary row operations. Simultaneously performing the same transformation on the identity matrix yields the Gaussian kernel inverse matrix. Since the calculation involves complex row and column transformations, the inverse result is given directly; the Gaussian kernel inverse matrix can be expressed as:

[0199] [[2.234,-1.456,-0.123],[-1.456,2.012,-0.678],[-0.123,-0.678,1.456]];

[0200] The Gaussian kernel inverse matrix is ​​persistently stored during the real-time driving phase. In each basic frame, this embodiment reads the attitude distance vectors of the current local matrix and each process attitude matrix to generate an initial weight vector, which is then multiplied by the inverse matrix to quickly solve for the shaping weights, completing the mapping from distance to weight. The combination of offline computation and real-time invocation removes the computationally intensive matrix inversion from the frame loop, ensuring smooth animation production and solving the production efficiency bottleneck problem described in the background art.

[0201] In some embodiments, step S701 involves obtaining the Gaussian kernel inverse matrix corresponding to the attitude distance matrix;

[0202] It should be noted that the Gaussian kernel inverse matrix corresponding to the attitude distance matrix is ​​obtained. The attitude distance matrix is ​​constructed in step S104, recording the pairwise distances between all attitude matrices throughout the process.

[0203] In some embodiments, each element of the attitude distance matrix is ​​input into a Gaussian kernel function to convert it into initial weight values, forming a complete kernel matrix. Unlike directly calculating the weights, the kernel matrix needs to be inverted to obtain its inverse matrix. This inverse matrix is ​​calculated once during the preprocessing stage and persistently stored for subsequent real-time calls. The retrieval operation involves reading the pre-calculated Gaussian kernel inverse matrix as the constant coefficient matrix for solving the linear equation system. The existence of the inverse matrix simplifies real-time computation from solving complex equations to a single matrix multiplication, significantly reducing the computational load per frame.

[0204] It should be understood that if the Gaussian kernel inverse matrix is ​​obtained through offline parsing by weight inversion in the preliminary steps, the acquisition of the Gaussian kernel inverse matrix corresponding to the attitude distance matrix in step S701 may specifically include: calling the Gaussian kernel inverse matrix obtained by offline parsing by weight inversion on the attitude distance matrix.

[0205] It should be noted that the invocation phase occurs during the real-time driving process. When the basic animation of the character model enters the frame loop, this embodiment of the application needs to calculate the shaping weights for each basic frame, and directly invokes the Gaussian kernel inverse matrix completed in the preprocessing phase. The invocation operation is essentially data reading, loading the pre-calculated inverse matrix from the storage structure of the shaping control component as the constant coefficient for subsequent matrix multiplications. This invocation mechanism avoids redundant calculations, requiring only one lightweight vector and matrix multiplication operation per frame, reducing the computational complexity to quadratic order, and significantly improving real-time computing efficiency. The two-stage design of offline computation and invocation decouples computationally intensive tasks from real-time response requirements. The offline phase sacrifices one-time preprocessing time in exchange for smooth computation in the real-time phase; the invocation phase reuses the pre-calculated results to ensure efficient frame loop operation.

[0206] It is worth noting that the offline computation mechanism, to some extent, solves the "obstacles to high-quality animation production efficiency" in traditional technologies. Traditional Euler angle reshaping relies on manual frame-by-frame adjustments, which is inefficient; while this solution completes complex calculations in advance through offline preprocessing, and only performs simple matrix operations in the real-time stage, making automated reshaping feasible in terms of performance and significantly shortening the production cycle. At the same time, the entire process is based on local transformation matrices and quaternion calculations, completely avoiding Euler angle representation, eliminating the gimbal lock problem at its root, and solving the defects of "abnormal bone rotation and insufficient smoothness of animation interpolation". Radial basis function interpolation calculation ensures the smoothness of weight transitions, and combined with the efficiency improvement brought by offline optimization, the goal of high-quality and high-efficiency character reshaping is finally achieved.

[0207] In step S702 of some embodiments, for each frame of the basic animation of the character model, the pose distance vector between the current local matrix of the target character model and each process pose matrix is ​​read.

[0208] It should be noted that, for each frame of the character model's basic animation, the pose distance vector between the current local matrix and each process pose matrix of the target character model is read. The character model's basic animation is the input source for model modification, and each frame represents the character's state at a time sampling point. In this embodiment, the current local matrix of the target character model is read in this frame, which describes the transformation state of the driving skeleton in the current frame. Subsequently, the distance between the current local matrix and each process pose matrix is ​​calculated to form a pose distance vector. The vector length is equal to the number of process poses, and each element represents the similarity between the current pose and a certain process pose. This calculation is performed every frame, dynamically reflecting the relationship between the character's movement and the preset pose library, providing real-time input for weight generation.

[0209] In step S703 of some embodiments, each attitude distance vector is input into a Gaussian kernel function for weight calculation to obtain an initial weight vector corresponding to each basic frame.

[0210] It should be noted that the distance vectors of each pose are input into a Gaussian kernel function for weight calculation, resulting in an initial weight vector corresponding to each frame of the base image. The Gaussian kernel function uses distance as the independent variable and outputs a non-linearly decaying weight value; the closer the distance, the greater the weight. The initial weight vector is calculated for each element of the pose distance vector. This vector is not solved through linear equations; it only reflects the similarity decay relationship between the current pose and poses from various processes, serving as intermediate data for solving the final shaping weights. Because the Gaussian kernel function is simple to calculate, this step is highly efficient and meets real-time requirements.

[0211] In some embodiments, step S704 involves performing calculations based on the initial weight vector and the Gaussian kernel inverse matrix corresponding to each basic frame to obtain the shaping weights corresponding to the process pose data.

[0212] It should be noted that the shaping weights corresponding to the process pose data are obtained by calculating the initial weight vector and the Gaussian kernel inverse matrix corresponding to each basic frame. This step performs matrix multiplication: Shaping weight = Gaussian kernel inverse matrix × Initial weight vector. The role of the inverse matrix is ​​to map the initial weights to the final weights that satisfy the constraints of the linear equation system, ensuring that when the current pose is exactly within the space formed by the process poses, the weight corresponding to the process pose is 1, and otherwise 0; when in an intermediate state, the weights are smoothly distributed. The calculation result yields the shaping weights corresponding to each basic frame. This weight vector is summed and normalized, and can be directly used to drive the target shaping controlled object.

[0213] It should be understood that the inverse matrix provides the constant for solving the problem. Each frame reads the distance vector, the kernel function generates the initial weights, and matrix multiplication solves for the final weights. Preprocessing the Gaussian kernel inverse matrix decouples the computationally intensive matrix inversion from the real-time process, ensuring that only lightweight vector distance calculations and matrix multiplications are performed per frame. While processing the basic image for each frame is essential for real-time operation, performance bottlenecks are optimized through inverse matrix reuse. This workflow achieves a rapid mapping from distance to weights, providing an efficient mathematical solution path for automated character shaping and significantly improving the smoothness and quality of character animation production.

[0214] In some embodiments, step S106 involves performing character shaping on the target shaping controlled object based on the initial posture data, target posture data, process posture data, and the shaping weights corresponding to the process posture data, to obtain the target animation of the character model after character shaping.

[0215] It should be noted that, based on the initial pose data, target pose data, process pose data, and the corresponding shaping weights for the process pose data, the target shaping controlled object is reshaped to obtain the target animation of the reshaped character model. This step passes the calculated weights to the List Controller or Blend Shapes of the target shaping controlled object through parameter association, achieving a smooth blend of skeletal deformation or vertex-level deformation. Since the total weight is normalized to 1 and has no negative values, the deformation result strictly matches the amplitude of the motion driving the bones, producing the expected shaping effect. The entire process requires no manual intervention from the animator, achieving an automated conversion from basic animation to shaping animation. This not only solves the rotational anomalies caused by Euler angle gimbal lock but also significantly improves production efficiency through automated interpolation, ultimately outputting a high-quality target animation of the character model.

[0216] It's important to note that the List Controller is the core controller in 3ds Max used for hierarchical management of animation data. It allows multiple sub-controllers to be stacked on the same property, and the blending ratio of each layer is controlled by weights. In character reshaping applications, the List Controller is typically attached to the transformation properties of auxiliary reshaping bones. Each sub-controller stores a preset reshaping pose (such as the muscle shape corresponding to different angles of the shoulder). The reshaping weights calculated by the Pose Driver modifier are passed to each sub-controller of the List Controller through parameter association, controlling the blending degree of these poses, thereby driving the reshaping bones to produce corresponding rotations or displacements. Compared to the vertex-level control of Blend Shapes, the List Controller operates at the bone level, resulting in higher computational efficiency, but the reshaping precision is relatively coarser.

[0217] It's important to emphasize that Blend Shapes is a vertex-level deformation technique that achieves fine-grained shape control by blending multiple predefined deformation target models. Specifically, modelers create a series of corrective shapes for a character model, such as the muscle bulge when the shoulder is raised, or the skin wrinkles when the elbow is bent; each shape is stored as an independent deformation target. Blend Shapes directly manipulates every vertex of the model mesh by weighting these targets, achieving more precise deformation effects than skeletal skinning. In the shaping workflow, Blend Shapes, as one of the controlled objects for target shaping, receives shaping weights output by the Pose Driver modifier, driving the various deformation targets to blend according to weight ratios, producing detailed deformations that conform to anatomical structure and visual realism. Its advantage lies in high precision, but the corresponding performance overhead is also relatively large.

[0218] It should be understood that in some embodiments, the Pose Driver modifier acts as the core of the calculation, generating shaping weights each frame. Depending on the shaping requirements, these weights are passed to Blend Shapes for vertex-level refinement, or to the List Controller for bone-level shaping. Ultimately, the vertex deformations of Blend Shapes and the transformations of the shaped bones are superimposed on the base animation to output the target animation of the shaped character. This architecture decouples the calculation logic, deformation execution, and layered control, ensuring both the flexibility of the shaping effect and maintaining the system's operational efficiency.

[0219] Reference Figure 8 , Figure 8 This illustration shows the hardware structure of an electronic device according to another embodiment. The electronic device may include:

[0220] The processor 801 can be implemented using a general-purpose CPU (Central Processing Unit), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application.

[0221] The memory 802 can be implemented as a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 802 can store the operating system and other applications. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 802 and is called and executed by the processor 801 using the animation character modification method of the embodiments of this application.

[0222] The 803 input / output interface is used to implement information input and output.

[0223] The communication interface 804 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, Ethernet cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).

[0224] Bus 805 transmits information between various components of the device (e.g., processor 801, memory 802, input / output interface 803, and communication interface 804);

[0225] The processor 801, memory 802, input / output interface 803, and communication interface 804 are connected to each other within the device via bus 805.

[0226] This application also provides a computer program product, which includes a computer program. A processor of a computer device reads and executes the computer program, causing the computer device to perform the above-described animation character modeling method.

[0227] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in this disclosure and the foregoing drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this disclosure described herein can be implemented, for example, in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “including,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that includes a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatuses.

[0228] It should be understood that in this disclosure, "at least one item" means one or more, and "more than one" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0229] It should be understood that in the description of the embodiments of this application, "multiple" means two or more, "greater than", "less than", "exceeding" etc. are understood to exclude the number itself, and "above", "below", "within" etc. are understood to include the number itself.

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

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

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

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

[0234] It should also be understood that the various implementation methods provided in this application can be combined arbitrarily to achieve different technical effects.

[0235] The above is a detailed description of the embodiments of this disclosure. However, this disclosure is not limited to the above embodiments. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of this disclosure. All such equivalent modifications or substitutions are included within the scope defined by the claims of this disclosure.

Claims

1. A method for modifying the appearance of an animated character, characterized in that, include: Determine the target driving bone from the skeletons of each character in the target character model, and add a shaping control component to the target driving bone; The target shaping controlled object associated with the target driven skeleton is determined from a preset candidate control list; The shaping control component captures skeletal pose transformation commands and determines the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation commands; wherein, the process pose data includes the process pose matrix corresponding to each process pose; Based on the initial attitude data, the process attitude data, and the target attitude data, attitude distance analysis is performed to obtain the attitude distance matrix; Obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix; For each frame of the basic animation of the character model, read the current local matrix of the target character model and the attitude distance vector between each of the process attitude matrices; The attitude distance vectors are input into the Gaussian kernel function for weight calculation to obtain the initial weight vector corresponding to each frame of the basic image. The shaping weights corresponding to the process pose data are obtained by performing calculations based on the initial weight vector and the Gaussian kernel inverse matrix corresponding to each frame of the basic image. Based on the initial posture data, the target posture data, the process posture data, and the shaping weights corresponding to the process posture data, the target shaping controlled object is shaped to obtain the shaped character model target animation.

2. The method according to claim 1, characterized in that, The step of capturing skeletal pose transformation commands through the shaping control component and determining the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation commands includes: The shaping control component obtains the bone posture transformation command and the local transformation matrix of the target driven bone. The target character model is controlled to perform posture changes based on the skeletal posture transformation instructions; During the pose transformation of the target character model, the process pose of the target character model from the initial pose to the target pose is recorded; The initial attitude data, the process attitude data, and the target attitude data are determined based on the local transformation matrices corresponding to the initial attitude, the process attitude, and the target attitude, respectively.

3. The method according to claim 1, characterized in that, The process of parsing the initial attitude data, the intermediate attitude data, and the target attitude data to obtain the attitude distance matrix includes: Based on the initial attitude data, the process attitude data, and the target attitude data, a temporal sequence is obtained by arranging them together to obtain an attitude transformation data sequence. The attitude distance matrix is ​​obtained by calculating the attitude distance between every two data sequences in the attitude transformation data sequence.

4. The method according to claim 3, characterized in that, The step of calculating the attitude distance for every two data sequences in the attitude transformation data sequence to obtain the attitude distance matrix includes: The posture transformation mode is determined based on the bone posture transformation command; When the attitude transformation mode is a rotation transformation mode, quaternion arc distance is calculated for every two sequence data in the attitude transformation data sequence to obtain multiple attitude distance matrices. When the attitude transformation mode is the displacement transformation mode, the straight-line distance is calculated for every two sequence data in the attitude transformation data sequence to obtain the attitude distance matrix.

5. The method according to claim 1, characterized in that, Before obtaining the Gaussian kernel inverse matrix corresponding to the attitude distance matrix, the method further includes offline computation of the Gaussian kernel inverse matrix, specifically including: The attitude distance matrix is ​​input into a Gaussian kernel function for weight inversion and offline parsing to obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix. The step of obtaining the Gaussian kernel inverse matrix corresponding to the attitude distance matrix includes: The Gaussian kernel inverse matrix is ​​obtained by offline parsing of the attitude distance matrix using weighted inversion.

6. The method according to claim 5, characterized in that, The step of inputting the attitude distance matrix into a Gaussian kernel function for weight inversion and offline parsing to obtain the Gaussian kernel inverse matrix corresponding to the attitude distance matrix includes: Each element of the attitude distance matrix is ​​input into a Gaussian kernel function to determine multiple Gaussian weight values; An upper triangular matrix is ​​constructed based on multiple Gaussian weight values ​​to obtain an upper triangular Gaussian kernel matrix; Symmetric completion processing is performed on the upper triangular Gaussian kernel matrix to obtain the attitude Gaussian kernel matrix; The Gaussian-Jordanian elimination method is applied to the attitude Gaussian kernel matrix, and a regularization parameter is added to the diagonal of the attitude Gaussian kernel matrix for inversion processing to obtain the Gaussian kernel inverse matrix.

7. The method according to claim 1, characterized in that, The candidate control list stores multiple candidate control objects with state mapping relationships between them for the target character model. The step of determining the target shaping controlled object associated with the target driven skeleton from the preset candidate control list includes: From the candidate control list, extract a number of candidate control objects that have the state mapping relationship with the target driven skeleton as the target modification controlled objects; The step of capturing skeletal pose transformation commands through the shaping control component and determining the initial pose data, target pose data, and process pose data of the target character model from the initial pose to the target pose based on the skeletal pose transformation commands includes: The shaping control component captures bone posture transformation commands and determines the drive bone change data of the target drive bone from the initial posture to the target posture based on the bone posture transformation commands. Based on the driven skeletal change data and the state mapping relationship, determine the skeletal change data of each target shaping controlled object from the initial posture to the target posture; Based on the driving skeleton change data and the shaping skeleton change data, the starting posture data, the target posture data, and the process posture data of the target character model from the starting posture to the target posture are generated.

8. An electronic device, characterized in that, include: The device includes a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the animation character modeling method as described in any one of claims 1 to 7.

9. A computer-readable storage medium, characterized in that, The storage medium stores a program that is executed by a processor to implement the animation character shaping method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Animation making method and device and storage medium

    CN111260764A

  • Expression animation production method and device, storage medium and computer equipment

    CN114299205A