Model initial state adjusting method and system, medium and electronic equipment
By obtaining and calculating the spatial matrix information and local location of the model node, the animation effect abnormality problem of MotionBuilder when dealing with partial joint activities and non-zero default rotation angle models is solved, and the accurate adjustment of model state and the consistency and predictability of animation are achieved.
Patent Information
- Application Number
- CN202411580176.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-07
- Publication Date
- 2025-02-25
AI Technical Summary
During animation production and motion capture, MotionBuilder's native function is difficult to accurately restore the model node to its original state when dealing with partial joint activities and models with non-zero default rotation angles, resulting in abnormal animation effects.
By obtaining the spatial matrix information of all nodes of the model, calculate the local position and rotation angle of each node, and adjust the model to its original state. The method includes obtaining spatial matrix information, calculating local position and rotation angle, and adjusting the model state through the plug-in interface of MotionBuilder.
Improves the consistency and predictability of the model in the animation editing process, ensuring consistency of the results of each animation editing or motion capture, especially in complex character animation and binding systems, improving the efficiency and quality of animation production.
Smart Images

Figure CN119516057A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of computer animation production and motion capture, and in particular, to a method, system, medium and electronic device for adjusting the initial state of a model. Background Art
[0002] In the field of animation and motion capture technology, Autodesk MotionBuilder, as a professional animation editing and motion capture software, has become a widely used tool in the industry with its powerful functions and flexibility. MotionBuilder can not only efficiently handle complex animation sequences, but also serve as a transit hub for data transmission and streaming between multiple software, greatly improving the efficiency and quality of the animation production process. However, despite the powerful functions of MotionBuilder itself, users may still encounter some limitations and challenges in actual applications.
[0003] Specifically, MotionBuilder's native functions may be insufficient when handling certain specific scenarios. For example, during motion capture, when only some of the model's joints are active, directly positioning and rotating the model's nodes through global coordinates may cause the animation effect to differ from the actual one, because the change in global coordinates cannot accurately reflect the local motion characteristics of the joints. In addition, if the model's initial state contains a non-zero default rotation angle, then when assigning a new action and trying to restore it to the original state when the model was imported, the animation may behave abnormally. These problems limit the application effect of MotionBuilder in some complex animation scenes.
[0004] To overcome these limitations, developers often seek to extend the functionality of MotionBuilder through plugins. Plugins can be used in conjunction with built-in Python scripts to access and manipulate model information by calling MotionBuilder's software development kit (SDK). However, existing plugins still have deficiencies in processing local parameters of model nodes, especially when dealing with partial joint activities and the default local rotation angle of the original state is not 0, making it difficult to accurately restore joint points to their original state. Summary of the invention
[0005] The purpose of this application is to provide a method, system, medium and electronic device for adjusting the initial state of a model, which improves the consistency and predictability of the model during the animation editing process.
[0006] In order to achieve the above objectives, this application adopts the following technical solutions:
[0007] A method for adjusting the initial state of a model comprises: obtaining spatial matrix information of all nodes of the model in the original state; calculating the local position of each node of the model in the original state according to the spatial matrix information, wherein the local position comprises the local coordinates and local rotation angle of the root node and the child node; and adjusting the model to be adjusted to the original state according to the calculated local position of each node.
[0008] In some embodiments, obtaining the spatial matrix information of all nodes of the model includes: obtaining the root node of the model in the original state; traversing all child nodes of the model through tree nodes; obtaining the spatial matrix information of all nodes of the model during each node traversal; writing the spatial matrix information of all nodes and the parent-child relationship between nodes into a storage file for storage, wherein the storage format of the spatial matrix information is a string.
[0009] In some embodiments, reading and converting the spatial matrix information of all nodes stored includes: converting the spatial matrix information in string form into a two-dimensional array, converting the two-dimensional array into a 4×4 spatial matrix; the standard form of the spatial matrix is The 3×3 matrix in the upper left corner of the spatial matrix represents the rotation matrix part, (a 03 、a 13 、a 23 ) indicates the position part, [a 30 ,a 31 ,a 32 ,a 33 ] is used to maintain the form of homogeneous coordinates.
[0010] In some embodiments, the spatial matrix information calculates the local position of each node of the model, including: directly reading the local position of the root node from the spatial matrix, the local position of the root node being (a 03 ,a 13 ,a 23 ).
[0011] In some embodiments, the process of obtaining the local coordinates of all child nodes includes: obtaining the transposed matrix of the parent node corresponding to the child node; obtaining the product of the transposed matrix of the parent node and the node matrix of the child node corresponding to the parent node to obtain a product result matrix, and the local coordinates of the child node are the first three values of the fourth column in the product result matrix, corresponding to (a 03 ,a 13 ,a 23 ).
[0012] In some embodiments, the local rotation angle includes: obtaining a spatial matrix of the node local coordinates, by 20The values at the positions are calculated and classified, a 20 Indicates whether the local coordinates have a yaw rotation angle Yaw; whether all nodes contain a yaw rotation angle corresponding to a in the space matrix 20 The value of 20 When it is not equal to ±1, it indicates that the node has a rotation angle of the yaw angle Yaw, and the pitch angle of the local rotation of the node is -1*asin(a 20 )*180÷π; the local rotation angle of the node is atan2(a 21 ÷cos(-1*asin(a 20 )),a 22 ÷cos(-1*asin(a 20 )))*180÷π; the yaw angle Yaw of the local rotation of the node is atan2(a 10 ÷cos(-1*asin(a 20 )),a 00 ÷cos(-1*asin(a 20 )))*180÷π; The local rotation Euler angle of the node corresponds to (Roll, Pitch, Yaw).
[0013] In some embodiments, when a 20 When it is ±1, it indicates that the yaw angle Yaw of the local rotation of the node is 0; the pitch angle Pitch angle of the node is -a 20 *90; the rotation angle of the node is atan2(-a 20 *a 01 ,-a 20 *a 02 )*180÷π; the local rotation Euler angle of the node corresponds to (Roll, Pitch, 0).
[0014] The second aspect of the present application provides a model initial state adjustment system, including: a model node data acquisition module, which is used to obtain the spatial matrix information of all nodes of the model in the original state; a calculation module, which is used to calculate the local position of each node of the model in the original state according to the spatial matrix information, and the local position includes the local coordinates and local rotation angle of the root node and child node; an adjustment module, which is used to adjust the model to be adjusted to the original state according to the calculated local position of each node.
[0015] A third aspect of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program. When the computer program runs on a processor, the processor executes the method described in the first aspect.
[0016] The fourth aspect of the present application provides an electronic device, comprising: at least one memory for storing programs; and at least one processor for executing the programs stored in the memory. When the programs stored in the memory are executed, the processor is used to execute the method described in the first aspect.
[0017] Compared with the prior art, the present invention has the following advantages:
[0018] The present application provides a method, system, medium and electronic device for adjusting the initial state of a model, so that the model can start from a known state, ensuring the consistency of the results of each animation editing or motion capture. For multi-person collaborative projects, all participants can start working from the same state, improving the consistency and predictability of the animation editing process. By using a local coordinate system, the operator can more easily adjust and control the position and posture of each node without considering the global transformation of the entire model. The technical solution of the present application improves the efficiency and quality of animation production, especially in complex character animation and binding systems. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0020] Figure 1 A schematic diagram showing a flow chart of a method for adjusting the initial state of a model according to an embodiment of the present application is shown;
[0021] Figure 2 A schematic diagram showing the structure of a model initial state adjustment system according to an embodiment of the present application is shown;
[0022] Figure 3 A structural schematic diagram of a model initial state adjustment system according to another embodiment of the present application is shown. DETAILED DESCRIPTION
[0023] The technical solutions of the specific implementation methods of the present application are further described in detail below in conjunction with the accompanying drawings. These implementation methods are only used to illustrate the present application, but not to limit the present application.
[0024] The term "and / or" in this application is a description of the association relationship of associated objects, indicating that three relationships may exist, for example, A and / or B can represent the existence of A alone, the existence of A and B at the same time, and the existence of B alone. In the present invention, the symbol " / " indicates that the associated objects are in an "or" relationship, for example, "A / B" means "A or B".
[0025] The terms "first" and "second" in the specification and claims of this application are used to distinguish different objects rather than to describe a specific order of the objects. For example, "first response message" and "second response message" are used to distinguish different response messages rather than to describe a specific order of the response messages.
[0026] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be considered as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.
[0027] In the description of the embodiments of the present application, unless otherwise specified, "multiple" means two or more than two. For example, multiple processing units refer to two or more processing units, etc., and multiple elements refer to two or more elements, etc.
[0028] A method and system for adjusting the initial state of a model of the present application are described in detail below in conjunction with the accompanying drawings.
[0029] Figure 1 FIG. 1 is a flow chart showing a method for adjusting the initial state of a model according to an embodiment of the present application. Figure 1 As shown, the model initial state adjustment method of the embodiment of the present application includes the following steps:
[0030] S100, obtain the spatial matrix information of all nodes of the model in the original state. Specifically, obtain the root node of the model in the original state. In a specific embodiment, import the model in the original state into MotionBuilder, click to select the root node of the model in the original state, and reference import pyfbsdk in the header of the Python script compiled and run in MotionBuilder, and then call FBModelList() and FBGetSelectModels() methods to obtain the root node in the Python list data structure. All child nodes of the model in the original state are obtained by tree node traversal. In the process of traversing each node, create an empty FBMatrix() matrix, and call the GetMatrix() method on the model node in the original state, pass in the FBModelTransformationType.KModelTransformation enumeration parameter to obtain the spatial matrix information of the node, and the spatial matrix information is expressed in string form. The spatial matrix information of the node includes the position, rotation and scaling information of the node. The obtained information is stored in the local Json file in the Python script to ensure that the obtained matrix data is complete and can be used for subsequent calculations and processing.
[0031] In an application scenario, the original state model imported into MotionBuilder needs to be a recognized model initial state, that is, T-Pose or A-Pose, at the level that is conducive to application. Almost all human body models have already met this posture when the local rotation angles are all 0 when they were first made. If the developer's model is different from the ordinary Humanoid skeleton, or the application scenario is special, it can also be other postures. In other words, the problem solved by the technical solution of this application is: if the model imported into MotionBuilder is accidentally calibrated, the rotation angles of some joints are not null values when the posture meets the initial state requirements, then additional local rotation values need to be obtained; or if the imported model is clearly a special posture, then naturally most joints may have initial rotation values. These rotation values will be cleared by default after the plug-in data transmission is terminated. At this time, the posture of the model will be different from when it was just imported, or even a completely disordered posture. The technical solution of this application specifically implements that the model imported into the MotionBuilder plug-in can always be restored to the same posture as when it was imported. The method of this application ensures that the model can start from a known and consistent state during the animation editing process, thereby improving the consistency and predictability of the animation.
[0032] Furthermore, the spatial matrix information of all nodes and the parent-child relationship between nodes can be written into a storage file for storage. The spatial matrix information of the aforementioned nodes includes the name and spatial matrix of each node. Recursively traverse the child nodes and pass the index of the current node in the list as the parent node index of the child node. Write the node information into a Json file and format the information for data processing when it is read by the plug-in.
[0033] In one embodiment, the spatial matrix information of the nodes stored above can be read and converted. The MotionBuilder plug-in is used to read the spatial matrix information and other related information of each node stored in the Json file of the specified path, such as the parent node index of a child node. The read spatial matrix information is in the form of a string. Through the string traversal method of C++, the spatial matrix information in the form of a string is converted into a two-dimensional array double Matrix[4][4], and then the two-dimensional array data is transformed into FBMatrix, that is, a spatial matrix.
[0034] In a specific embodiment, taking a 4×4 matrix as an example, the standard form of the space matrix obtained in the above steps is
[0035] Among them, the upper left corner 3×3 matrix of the space matrix, that is, the first three columns (a 00 , a 01 , a 02 )、(a 10 , a 11 , a 12 )、(a 20 , a 21 , a 22 ) represents the rotation matrix part; (a 03 、a 13 、a 23 ) indicates the position part; [a 30 ,a 31 ,a 32 ,a 33 ] is used to maintain the form of homogeneous coordinates.
[0036] Step S200, calculate the local coordinates of each node of the model in the original state according to the aforementioned spatial matrix information, and the local coordinates include the local position and local rotation angle of the root node and the child node. In one embodiment, for the only root node of the model, the local coordinates of the root node can be directly read from the spatial matrix. Specifically, the coordinates of the root node are taken from the first three digits of the fourth column of the matrix, that is, the local coordinates of the root node are (a 03 ,a 13 ,a 23 ).
[0037] In one embodiment, for all child nodes, the transposed matrix of the parent node of the child node can be obtained by the FBMatrixInverse() method in the plug-in library, and then the FBMatrixMult() method is used to obtain the product of the parent node transposed matrix and the child node matrix. The local coordinates of the child node are the first three values of the fourth column in the product result matrix. The method for calculating the local position coordinates of the child nodes in the embodiment of the present application ensures that the position of each node is the local position coordinates relative to its parent node, rather than the global coordinates, and can accurately represent the relative position of each node under its parent node.
[0038] The process of obtaining the local rotation Euler angles of the root node and child nodes is as follows: the rotation matrix in the space matrix has only a 3×3 effective range, and at this time the matrix only needs to consider the first 3×3 part, that is, Through a 20 The analysis can be performed for preliminary classification, and the value of this bit can be used to determine whether the local coordinates have a yaw rotation angle.
[0039] In one embodiment, when a 20 When it is not equal to ±1, it means that the local coordinate has a yaw rotation angle. The pitch angle of the node local rotation is -1*asin(a 20 )*180÷π; the local rotation angle of the node is atan2(a 21 ÷cos(-1*asin(a 20 )),a 22 ÷cos(-1*asin(a 20 )))*180÷π; the yaw angle of the node local rotation is atan2(a 10 ÷cos(-1*asin(a 20 )),a 00 ÷cos(-1*asin(a 20 )))*180÷π; The local rotation Euler angle of the node corresponds to (Roll, Pitch, Yaw).
[0040] In another embodiment, when a 20 When it is ±1, the yaw angle of the node's local rotation is 0; the pitch angle of the node is -a 20 *90; the node's rotation angle Roll angle is atan2(-a 20 *a 01 ,-a 20 *a 02 )*180÷π; the local rotation Euler angle of the node corresponds to (Roll, Pitch, 0).
[0041] Step S300, adjust the model that needs to be adjusted to its original state according to the calculated local position of each node. The MotionBuilder plug-in contains a specific data structure to store various information of the bound model nodes, such as name, position, rotation, specifications, etc. In the FBModelTemplate class that controls the model binding, there is a DefaultRotation parameter of type FBPropertyVector3d, which is a parameter derived from the MotionBuilder native SDK, and also contains various information of the model nodes. Through the data structure DataChannel corresponding to the model node in the plug-in, the specified bound model node mModelTemplate can be obtained, and the DefaultRotation can be further set, that is, the default rotation angle that the control model can be restored to when it is released from Online can be realized. The value defaults to 0, so additional settings are required when the original posture contains non-zero rotation joints.
[0042] like Figure 2 , Figure 3 As shown, the second aspect of the present application provides a model initial state adjustment system, including a model node data acquisition module, a calculation module and an adjustment module. Among them, the model node data acquisition model is used to obtain the spatial matrix information of all nodes of the model. In one embodiment, the model in the original state can be imported into MotionBuilder, the root node of the model in the original state can be selected by clicking, and the FBModelList() and FBGetSelectModels() methods are called in the Python script to obtain the root node in the Python list data structure. All child nodes of the model in the original state are obtained by traversing the tree nodes. In the process of traversing each node, an empty FBMatrix() matrix is created, and the GetMatrix() method is called for the model node in the original state, and the spatial matrix information of the node is obtained by passing in the FBModelTransformationType.KModelTransformation enumeration parameter, and the spatial matrix information is expressed in string form.
[0043] The model imported into MotionBuilder needs to be in the recognized initial state of the model, that is, T-Pose or A-Pose, in order to be useful for the application. Almost all human models are initially made to conform to the initial pose when the local rotation angle is 0. If the developer's model is different from the common Humanoid skeleton, or the application scenario is special, other poses can also be used.
[0044] In one embodiment, the model initial state adjustment system of the embodiment of the present application also includes a conversion module, which is used to write the spatial matrix information of all nodes and the parent-child relationship between nodes into a storage file for storage. The spatial matrix information of the aforementioned nodes includes the name and spatial matrix of each node. The MotionBuilder plug-in is used to read the spatial matrix information and other related information of each node stored in the Json file, such as the parent node index of a child node. The read spatial matrix information is in the form of a string. The read information is further converted, and the spatial matrix information in the string form is converted into a two-dimensional array double Matrix[4][4] through the C++ string traversal method, and then the two-dimensional array data is transformed into FBMatrix, that is, a spatial matrix. In a specific embodiment, taking a 4×4 matrix as an example, the standard form of the spatial matrix obtained by the conversion module is
[0045] Among them, the upper left corner 3×3 matrix of the space matrix, that is, the first three columns (a 00 , a 01 , a 02 )、(a 10 , a 11 , a 12 )、(a 20 , a 21 , a 22 ) represents the rotating part; (a 03 、a 13 、a 23 ) indicates the position part; [a 30 ,a 31 ,a 32 ,a 33 ] is used to maintain the form of homogeneous coordinates.
[0046] The calculation module is used to calculate the local coordinates of each node of the model in the original state according to the spatial matrix information of all nodes obtained by the aforementioned model node data acquisition module. The local coordinates include the local position and local rotation angle of the root node and the child node. In one embodiment, for the only root node of the model, the local coordinates of the root node can be directly read from the spatial matrix. Specifically, the position of the root node is taken from the first three digits of the fourth column of the matrix, that is, the local position of the root node is (a 03 ,a 13 ,a 23 ).
[0047] In one embodiment, for all child nodes, the transposed matrix of the parent node of the child node can be obtained through the FBMatrixInverse() method in the plug-in library, and then the FBMatrixMult() method is used to obtain the product of the parent node transposed matrix and the child node matrix. The local coordinates of the child node are the first three values of the fourth column in the product matrix. 20 The specific calculation method is described in the first aspect of the present application and will not be described in detail here.
[0048] The adjustment module is used to adjust the model that needs to be adjusted to its original state according to the calculated local position of each node. The MotionBuilder plug-in contains a specific data structure to store various information about the bound model nodes, such as name, position, rotation, specifications, etc. In the FBModelTemplate class that controls model binding, there is a DefaultRotation parameter of type FBPropertyVector3d, which is a parameter derived from the MotionBuilder native SDK. In addition, it also contains various information about the model nodes. Through the data structure DataChannel corresponding to the model node in the plug-in, you can get the specified bound model node mModelTemplate, and then further set the DefaultRotation, which can realize the default rotation angle that the control model can be restored to when it is released from Online.
[0049] The technical solution of the present application only requires additional acquisition of the spatial matrix of each node of the model in the original state in MotionBuilder through a Python script, which can be completed in the plug-in using the Open Reality SDK for MotionBuilder and the native C++ math library. There is no need to introduce additional method libraries or dlls, and it is lightweight and easy to operate, so that models in different situations can perform normally in MotionBuilder.
[0050] The third aspect of the present application provides a computer-readable storage medium, on which a program of a method for adjusting the model initial state is stored, so that the method for adjusting the model initial state provided in the first aspect of the present application is executed. As for the aforementioned computer-readable storage medium, those skilled in the art can understand that the implementation example of the functions of the aforementioned system and each unit can be completed by hardware related to the computer program. The aforementioned computer program can be stored in a computer-readable storage medium. When the program is executed, it executes an implementation example including the functions of the aforementioned system and each unit. The aforementioned storage medium includes: various media that can store program codes, such as ROM, RAM or optical disk.
[0051] The fourth aspect of the present application provides an electronic device, comprising: at least one memory for storing programs; at least one processor for executing the programs stored in the memory. The electronic device may be a server. The electronic device comprises a processor, a memory, a network interface and a database connected via a system bus. Among them, the processor of the electronic device is used to provide computing and control capabilities. The memory of the electronic device comprises a non-volatile and / or volatile storage medium, an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the electronic device is used to communicate with an external client via a network connection. When the computer program is executed by the processor, the functions or steps of the initial state adjustment method of the model of the present application are implemented.
[0052] The above is only a preferred implementation of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and substitutions can be made without departing from the technical principles of the present application. These improvements and substitutions should also be regarded as the scope of protection of the present application.
Claims
1. A method for adjusting the initial state of a model, characterized in that: include: Get the spatial matrix information of all nodes of the model in its original state; Calculate the local position of each node of the model in the original state according to the spatial matrix information, wherein the local position includes the local coordinates and local rotation angle of the root node and the child node; Adjust the model that needs to be adjusted to its original state according to the calculated local position of each node.
2. The method for adjusting the initial state of a model according to claim 1, characterized in that: The obtaining of the spatial matrix information of all nodes of the model in the original state includes: Obtaining the root node of the model in the original state; Traverse all child nodes of the model through tree nodes; During each node traversal process, obtaining the spatial matrix information of all nodes of the model in the original state; The spatial matrix information of all nodes and the parent-child relationship between nodes are written into a storage file for storage, and the storage form of the spatial matrix information is a character string.
3. The method for adjusting the initial state of a model according to claim 2, characterized in that: Also includes: The obtained spatial matrix information of all nodes is read and converted and stored, and the process includes: Convert the spatial matrix information in the string form into a two-dimensional array, and convert the two-dimensional array into a 4×4 spatial matrix; The standard form of the space matrix is The 3×3 matrix in the upper left corner of the spatial matrix represents the rotation matrix part, (a 03 、a 13 、a 23 ) indicates the position part, [a 30 ,a 31 ,a 32 ,a 33 ] is used to maintain the form of homogeneous coordinates.
4. The method for adjusting the initial state of a model according to claim 3, characterized in that: The step of calculating the local position of each node of the model in the original state according to the empty matrix information comprises: The local position of the root node is directly read from the spatial matrix. The local position of the root node is (a 03 ,a 13 ,a 23 ).
5. The method for adjusting the initial state of a model according to claim 3, characterized in that: The process of obtaining the local coordinates of all child nodes includes: Obtain the transposed matrix of the parent node corresponding to the child node; Get the product of the transposed matrix of the parent node and the node matrix of the child node corresponding to the parent node to obtain a product result matrix. The local coordinates of the child node are the first three values of the fourth column in the product result matrix, corresponding to (a 03 ,a 13 ,a 23 ).
6. The method for adjusting the initial state of a model according to claim 5, characterized in that: The local rotation angle includes: obtaining the spatial matrix of the node local coordinates by a 20 The values at the positions are calculated and classified, a 20 Indicates whether the local coordinates have a yaw rotation angle Yaw; when a 20 When it is not equal to ±1, the pitch angle of the local rotation of the node is -1*asin(a 20 )*180÷π; The local rotation angle of the node is atan2(a 21 ÷cos(-1*asin(a 20 )),a 22 ÷cos(-1*asin(a 20 )))*180÷π; The yaw angle of the local rotation of the node is atan2(a 10 ÷cos(-1*asin(a 20 )),a 00 ÷cos(-1*asin(a 20 )))*180÷π; The local rotation Euler angles of the node are (Roll, Pitch, Yaw).
7. The method for adjusting the initial state of a model according to claim 6, characterized in that: when a 20 When it is ±1, the yaw angle Yaw of the local rotation of the node is 0; The pitch angle of the node is -a 20 *90; The rotation angle of the node is atan2(-a 20 *a 01 ,-a 20 *a 02 )*180÷π; The local rotation Euler angle of the node is (Roll, Pitch, 0).
8. A model initial state adjustment system, characterized in that: include: A model node data acquisition module, which is used to obtain the spatial matrix information of all nodes of the model in the original state; A calculation module, which is used to calculate the local position of each node of the model in the original state according to the spatial matrix information, wherein the local position includes the local coordinates and local rotation angle of the root node and the child node; The adjustment module is used to adjust the model that needs to be adjusted to the original state according to the calculated local position of each node.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed on a processor, the processor is caused to execute the method according to any one of claims 1 to 7.
10. An electronic device, characterized in that: include: at least one memory for storing a program; At least one processor is used to execute the program stored in the memory, and when the program stored in the memory is executed, the processor is used to execute the method according to any one of claims 1 to 7.