Model assembly animation generation method and device, storage medium and electronic device
By sampling and processing the target component identifiers and texture data, and using the target motion curves to generate mecha assembly animations, the problem of cumbersome mecha assembly and splicing animation generation process is solved, animation generation efficiency is improved and game engine performance is saved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- NETEASE (HANGZHOU) NETWORK CO LTD
- Filing Date
- 2023-02-14
- Publication Date
- 2026-07-24
AI Technical Summary
The existing technology for generating mecha assembly and splicing animations is cumbersome, resulting in low animation generation efficiency, and the skeletal mesh consumes a lot of game engine performance.
By acquiring the target component identifiers and texture data, sampling processing is performed to generate the target assembly animation. The target motion curve is used to control the motion displacement and scaling values of the components, simplifying the operation process and saving game engine performance consumption.
It simplifies the generation of model assembly animations, improves animation generation efficiency, and reduces the performance consumption of the game engine.
Smart Images

Figure CN116245983B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and more specifically, to a method, apparatus, storage medium, and electronic device for generating model assembly animation. Background Technology
[0002] In mecha-themed games, creating animation effects for assembling and splicing mecha is an important task in expressing the mecha theme. The visual characteristics of mecha assembly and splicing animation lie in the reasonable control of the movement changes and rhythm of mecha parts.
[0003] In related technologies, to obtain mecha assembly and splicing animations, it is usually necessary to use a skeleton mesh to bind and skin multiple mecha parts. Animators then manipulate the bones to drive the mesh movement, creating each keyframe in the skeletal animation. Specifically, during bone binding and skinning, a dedicated set of animation bones needs to be created for standard poses. Each bone corresponds to a vertex on one of the mecha parts' meshes, making each bone the smallest unit of animation movement for driving operations. This process directly impacts the quality of the skeletal animation. Furthermore, artists need to create keyframe animations for each mecha part. Since a typical mecha body often has dozens or even hundreds of parts, the animation production workload is extremely complex. Finally, the skeleton mesh needs to be imported into the game engine, which consumes significant resources and impacts animation generation efficiency.
[0004] There is currently no effective solution to the above problems. Summary of the Invention
[0005] At least some embodiments of this application provide a method, apparatus, storage medium, and electronic device for generating model assembly animation, so as to at least solve the technical problem of low animation generation efficiency caused by the cumbersome operation process of generating model assembly animation using animation skeletons in related technologies.
[0006] According to one embodiment of this application, a method for generating a model assembly animation is provided. The method includes: acquiring target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components constituting a target model, and the texture data are used to represent the motion parameters of the multiple target components; sampling the texture data based on the target component identifiers to obtain a first sampling result, wherein the first sampling result includes a first center position, a sequence identifier, and a motion direction for each target component, wherein the first center position is used to represent the center point position of the target component, and the sequence identifier is used to represent the motion sequence of the target components; generating a target assembly animation using a target motion curve and the first sampling result, wherein the target motion curve is used to control the motion displacement value and motion scaling value of the multiple target components, and the target assembly animation is used to represent the component motion animation during the process of assembling multiple target components into a target model.
[0007] According to one embodiment of this application, a device for generating model assembly animation is also provided. The device includes: an acquisition module for acquiring target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components constituting a target model, and the texture data are used to represent the motion parameters of the multiple target components; a sampling module for sampling the texture data based on the target component identifiers to obtain a first sampling result, wherein the first sampling result includes a first center position, a sequence identifier, and a motion direction for each target component, wherein the first center position is used to represent the center point position of the target component, and the sequence identifier is used to represent the motion sequence of the target components; and a generation module for generating a target assembly animation using a target motion curve and the first sampling result, wherein the target motion curve is used to control the motion displacement value and motion scaling value of the multiple target components, and the target assembly animation is used to represent the component motion animation during the process of assembling multiple target components into a target model.
[0008] According to one embodiment of this application, a computer-readable storage medium is also provided, which stores a computer program, wherein the computer program is configured to execute the method for generating model assembly animation as described above when running.
[0009] According to one embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the method for generating model assembly animation as described above.
[0010] In at least some embodiments of this application, by acquiring target component identifiers and texture data, and then sampling the texture data based on the target component identifiers to obtain a first sampling result, and finally using the target motion curve and the first sampling result to generate a target assembly animation, the operation process of generating model assembly animation is simplified and the performance consumption of the game engine is saved. This achieves the technical effect of improving the efficiency of model assembly animation generation, and solves the technical problem of low animation generation efficiency caused by the cumbersome operation process of generating model assembly animation using animation skeletons in related technologies. Attached Figure Description
[0011] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0012] Figure 1 This is a hardware structure block diagram of a mobile terminal for a method of generating model assembly animation according to an embodiment of this application.
[0013] Figure 2 This is a flowchart of a method for generating model assembly animation according to one embodiment of this application;
[0014] Figure 3 This is a schematic diagram of a target component according to an embodiment of this application;
[0015] Figure 4 This is a schematic diagram of a target model according to an embodiment of this application;
[0016] Figure 5 This is a schematic diagram of a texture mapping space according to an embodiment of this application;
[0017] Figure 6 This is a schematic diagram of a sorting result according to an embodiment of this application;
[0018] Figure 7 This is a schematic diagram of texture data according to an embodiment of this application;
[0019] Figure 8 This is a schematic diagram of a target motion curve according to an embodiment of this application;
[0020] Figure 9 This is a schematic diagram of a model assembly animation according to an embodiment of this application;
[0021] Figure 10 This is a schematic diagram illustrating the scaling process of a target component according to an embodiment of this application;
[0022] Figure 11This is a schematic diagram illustrating a target component offset process according to an embodiment of this application;
[0023] Figure 12 This is a structural block diagram of a model assembly animation generation device according to an embodiment of this application;
[0024] Figure 13 This is a schematic diagram of an electronic device according to an embodiment of this application. Detailed Implementation
[0025] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.
[0026] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0027] This application proposes a method for generating model assembly animation. By acquiring target component identifiers and texture data, and then sampling the texture data based on the target component identifiers to obtain a first sampling result, the target assembly animation is generated using the target motion curve and the first sampling result. This method simplifies the process of generating model assembly animation and saves game engine performance, thereby improving the efficiency of model assembly animation generation. It also solves the technical problem of low animation generation efficiency caused by the cumbersome process of generating model assembly animation using animation skeletons in related technologies.
[0028] The methods described in this application can be executed on a mobile terminal, a computer terminal, or a similar computing device. For example, when running on a mobile terminal, the mobile terminal can be a smartphone, tablet computer, PDA, mobile internet device, PAD, game console, or other terminal device. Figure 1This is a hardware structure block diagram of a mobile terminal for a method of generating model assembly animation according to an embodiment of this application. Figure 1 As shown, a mobile terminal may include one or more ( Figure 1 Only one is shown in the image. Processor 102 (processor 102 may include, but is not limited to, a central processing unit (CPU), graphics processing unit (GPU), digital signal processing (DSP) chip, microprocessor (MCU), programmable logic device (FPGA), neural network processor (NPU), tensor processor (TPU), artificial intelligence (AI) type processor, etc.) and memory 104 for storing data. In one embodiment of this application, it may also include: input / output device 108 and display device 110.
[0029] In some optional embodiments primarily focused on gaming scenarios, the aforementioned device may also provide a human-computer interaction interface with a touch-sensitive surface. This interface can sense finger contact and / or gestures to interact with a graphical user interface (GUI). The human-computer interaction functions may include the following: creating web pages, drawing, word processing, creating electronic documents, playing games, video conferencing, instant messaging, sending and receiving emails, call interfaces, playing digital videos, playing digital music, and / or web browsing, etc. Executable instructions for performing the aforementioned human-computer interaction functions are configured / stored in one or more processor-executable computer program products or readable storage media.
[0030] Those skilled in the art will understand that Figure 1 The structure shown is for illustrative purposes only and does not limit the structure of the mobile terminal described above. For example, the mobile terminal may also include components that are more... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown.
[0031] According to one embodiment of this application, an embodiment of a method for generating model assembly animation is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Also, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0032] In one possible implementation, this application provides a method for generating model assembly animations, which can be executed in a terminal device. Figure 2 This is a flowchart of a method for generating model assembly animation according to one embodiment of this application, such as... Figure 2 As shown, the method includes the following steps:
[0033] Step S20: Obtain target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components constituting the target model, and the texture data are used to represent the motion parameters of multiple target components;
[0034] The aforementioned target model is a static mesh model obtained by assembling multiple target components. The connectivity of the static mesh model distinguishes these multiple target components, and each target component is assigned a unique identifier (ID). Specifically, in a static mesh model, if a mesh block is not connected to other meshes, it can be determined that the mesh corresponds to an independent target component, meaning it has no connectivity with other mesh blocks. For example, the target model can be a mecha model, which can be obtained by assembling multiple mecha components, including: Mecha Component 1, Mecha Component 2, Mecha Component 3, and Mecha Component 4. Figure 3 This is a schematic diagram of a target component according to an embodiment of this application, such as... Figure 3 The various target components shown can be used to assemble the head of a mecha model. Figure 4 This is a schematic diagram of a target model according to an embodiment of this application. Figure 4 The target model shown can be derived from Figure 3 It is obtained by assembling and splicing multiple target components as shown.
[0035] The texture data mentioned above can be High Dynamic Range (HDR) textures. While regular textures can only store values from 0 to 1, HDR textures can store values greater than 1. HDR textures can be obtained from 3D computer graphics software. The motion parameters stored in HDR textures are used to control the movement of target components, thereby assembling multiple target components into a target model.
[0036] Step S22: Sample the texture data based on the target component identifier to obtain a first sampling result. The first sampling result includes the first center position, sequence identifier and movement direction of each target component. The first center position is used to indicate the center point position of the target component, and the sequence identifier is used to indicate the movement sequence of the target component.
[0037] Specifically, each target part includes multiple vertices, and each vertex has a corresponding coordinate mapped in the texture map (UV) space. Multiple vertices contained in the same target part have the same part ID, and vertices with the same part ID also have the same UV space coordinate value. Therefore, the part ID can be obtained from the UV space, and the texture data can be sampled using the part ID to obtain the first sampling result.
[0038] The first sampling result mentioned above includes the center point position, sequence identifier, and direction of motion for each target component. The center point position of each target component can be obtained using a function node in 3D computer graphics software. Specifically, the bounding box size of the target component is determined by subtracting the maximum and minimum values of its vertices in the X, Y, and Z axes. The bounding box of the target component can be defined as follows: Figure 3 As shown in the white outline, the center point of the bounding box is determined as the center point of the corresponding target component.
[0039] The above sequence identifiers are used to indicate the movement sequence of each target component. For example, the sequence identifier of mecha component 1 is 2, the sequence identifier of mecha component 2 is 4, the sequence identifier of mecha component 3 is 1, and the sequence identifier of mecha component 4 is 3. When controlling the movement of multiple mecha components, the movement of mecha component 3 is controlled first, then the movement of mecha component 1 is controlled, then the movement of mecha component 4 is controlled, and finally the movement of mecha component 2 is controlled, ultimately obtaining the animation effect of assembling into a mecha model.
[0040] The aforementioned direction of motion represents the assembly direction of each target component starting from the first center position. This direction of motion is determined by the target line connecting the center point of the target component and the center point of the target model. Specifically, the direction away from the center point of the target model along the target line from the first center position is considered positive, and the direction closer to the center point of the target model along the target line is considered negative.
[0041] In one optional embodiment, the model file corresponding to the target model can be named and stored according to the total number of parts and the part number, so that it can be retrieved flexibly. For example, the model file can be named: [Static Mesh]_[Model Name]_[Total Number of Parts]_[Part Number].
[0042] Step S24: Generate target assembly animation using target motion curve and first sampling result. Target motion curve is used to control the motion displacement and motion scaling values of multiple target components. Target assembly animation is used to represent the component motion animation during the process of assembling multiple target components into a target model.
[0043] Specifically, the target assembly animation can be generated by rendering the static mesh of the target component through the material node in the game engine. The material node generally includes a vertex shader and a fragment shader. In this embodiment, the vertex shader is mainly used to manipulate and offset each vertex of the target component, thereby rendering the component motion animation of each target component.
[0044] Based on the above steps S22 to S24, by acquiring the target component identifier and texture data, and then sampling the texture data based on the target component identifier to obtain the first sampling result, the target motion curve and the first sampling result are used to generate the target assembly animation. This simplifies the operation process of generating model assembly animation and saves the performance consumption of the game engine, thereby achieving the technical effect of improving the efficiency of model assembly animation generation. This solves the technical problem of low animation generation efficiency caused by the cumbersome operation process of generating model assembly animation using animation skeletons in related technologies.
[0045] The method for generating model assembly animations in the above embodiments will be further described below.
[0046] Optionally, in step S20, obtaining the target component identifier includes: identifying the vertex coordinates corresponding to multiple target components in the texture mapping space to obtain the target component identifier.
[0047] Specifically, each target component includes multiple vertices, and each vertex is mapped to a corresponding coordinate in UV space. Figure 5 This is a schematic diagram of a texture mapping space according to an embodiment of this application. Multiple vertices contained in the same target component have the same component ID, and vertices with the same component ID also have the same vertex coordinate values in their corresponding UV space. This is achieved by... Figure 5 The component ID can be obtained by identifying the vertex coordinates in the UV space shown.
[0048] Based on the above optional embodiments, by identifying the vertex coordinates corresponding to multiple target components in the texture mapping space, the target component identifiers corresponding to multiple target components can be quickly obtained for efficient sampling of texture data.
[0049] Optionally, in step S20, obtaining texture data includes:
[0050] Step S201: Calculate the first center position of multiple target components and the second center position of the target model, wherein the second center position is used to represent the center point position of the target model;
[0051] Step S202: Determine the target motion vector corresponding to the target component based on the first center position and the second center position, wherein the magnitude of the target motion vector is used to represent the initial distance between the first center position and the second center position, and the direction of the target motion vector is used to determine the motion direction of the target component;
[0052] Step S203: Sort multiple target components using target motion vectors to obtain sorting results, wherein the sorting results are used to represent the motion order of multiple target components;
[0053] Step S204: Store the first center position, sorting result and motion direction in the target texture to obtain texture data.
[0054] Specifically, the bounding box size of the target component is determined by subtracting the maximum and minimum values of its vertices in the X, Y, and Z axes. The bounding box of the target component can be defined as follows: Figure 3 As shown by the white wireframe, the center point of the bounding box is determined as the first center position corresponding to the target component. The size of the bounding box of the target model is determined by subtracting the maximum and minimum values of the target model's vertices in each dimension (X, Y, and Z). The bounding box of the target model can be defined as follows: Figure 4 As shown in the white wireframe, the center point of the bounding box is determined as the second center position of the target model.
[0055] Furthermore, Figure 6 This is a schematic diagram of a sorting result according to an embodiment of this application. The target motion vector corresponding to the target component is obtained by subtracting the coordinates of the second center position from the coordinates of the first center position. The target motion vector is then used to sort multiple target components to obtain the following result: Figure 6 The sorting results shown are then used to determine the movement sequence of the target components. Figure 7 This is a schematic diagram of texture data according to an embodiment of this application, such as... Figure 7 As shown, the first center position, sorting result, and motion direction can be stored in two HDR textures in 3D computer graphics software to obtain texture data. When generating the model assembly animation in the game engine, the HDR textures can be imported.
[0056] Based on the above optional embodiments, by calculating the first center position of multiple target components and the second center position of the target model, the target motion vector corresponding to the target component is determined based on the first center position and the second center position. Then, the multiple target components are sorted using the target motion vector to obtain the sorting result. Finally, the first center position, the sorting result and the motion direction are stored in the target texture map, which can quickly obtain texture data, thereby improving sampling efficiency and further improving animation generation efficiency.
[0057] Optionally, in step S204, the multiple target components are sorted using the target motion vectors, and the sorting result includes:
[0058] Step S2041: Based on preset values, classify multiple target components to obtain multiple first components and multiple second components, wherein the volume of the first component is greater than the preset value, the volume of the second component is less than or equal to the preset value, and the movement sequence of the first component precedes the movement sequence of the second component.
[0059] Step S2042: Sort the multiple first components using the initial distances of the multiple first components to obtain a first movement order; and sort the multiple second components using the initial distances of the multiple second components to obtain a second movement order.
[0060] Step S2043: Based on the first motion sequence and the second motion sequence, obtain the sorting result.
[0061] Specifically, during the sorting of multiple target components, preset values are used to classify the components according to their volume, resulting in multiple first components and multiple second components. The volume of the first component is greater than the preset value, and the volume of the second component is less than or equal to the preset value. When assembling the target components, according to animation art theory, the movement of the first component needs to be controlled first, followed by the movement of the second component; that is, the movement of the larger component is controlled first, followed by the movement of the smaller component. This makes the model assembly animation more aesthetically pleasing and has a better sense of rhythm.
[0062] In one optional embodiment, a target random number is generated based on the first center position of the target component. This target random number is then used to process the first motion sequence to obtain a third motion sequence, and the target random number is used to process the second motion sequence to obtain a fourth motion sequence. Specifically, a two-dimensional random function is used as input to the two-dimensional vector corresponding to the first center position, i.e., the x and y coordinates of the first center position. A one-dimensional random number between 0 and 1 is output. This number is then used to process the first motion sequence to obtain the third motion sequence, and the target random number is used to process the second motion sequence to obtain the fourth motion sequence, thereby further enhancing the vividness of the model assembly animation.
[0063] Based on the above optional embodiments, multiple target components are classified according to preset values to obtain multiple first components and multiple second components. Then, the multiple first components are sorted using the initial distance of the multiple first components to obtain a first motion order, and the multiple second components are sorted using the initial distance of the multiple second components to obtain a second motion order. Based on the first motion order and the second motion order, a sorting result is obtained, which can quickly determine the motion order of each target component, thereby controlling multiple target components to move in an orderly manner and further enhancing the animation effect.
[0064] Optionally, in step S24, generating the target assembly animation using the target motion curve and the first sampling result includes:
[0065] Step S241: Sample the target motion curve to obtain a second sampling result, wherein the second sampling result includes the first scaling value and the first displacement value corresponding to the first component, and the second scaling value and the second displacement value corresponding to the second component.
[0066] Step S242: Generate a first animation and a second animation using the first center position, the direction of motion, and the second sampling result, wherein the first animation is the motion animation of the first component and the second animation is the motion animation of the second component;
[0067] Step S243: Based on the sequence identifier, the first animation and the second animation are composited to obtain the target assembly animation.
[0068] The aforementioned target motion curves include a first motion curve and a second motion curve. The first motion curve can be used to generate model assembly animation, and the second motion curve can be used to generate model rupture animation. The target motion curves are sampled for the first component to obtain a first scaling value and a first displacement value corresponding to the first component. Similarly, the target motion curves are sampled for the second component to obtain a second scaling value and a second displacement value corresponding to the second component.
[0069] Specifically, Figure 8 This is a schematic diagram of a target motion curve according to an embodiment of this application. The target motion curve can be a color motion curve, such as... Figure 8 As shown, the horizontal axis of the color motion curve represents the motion process parameters, which can change over time. The vertical axis RGBA of the color motion curve represents: R: the first displacement value of the first component; G: the first scaling value of the first component; B: the second displacement value of the second component; A: the second scaling value of the second component. Figure 8 In the color motion curve shown, as the horizontal axis moves from left to right, the first displacement of the first component will decrease, and the first scaling value will change from 0 to 1. That is, the final result is that the first component gradually scales down from the outside and is assembled to the original position of the target model. Then comes the displacement scaling of the second component, which is similar to the assembly process of the first component and will not be described in detail. Figure 9 This is a schematic diagram of a model assembly animation according to an embodiment of this application, such as... Figure 9 As shown, after multiple first components in the target model are gradually scaled down from the outside and assembled to their original positions, multiple second components in the target model are gradually scaled down from the outside and assembled to their original positions.
[0070] The process of assembling the target model described above mainly utilizes the target motion curve to perform positive scaling and offset of the target components. In an optional embodiment, to achieve positive and negative scaling and offset using the target motion curve, a preset relationship can be used to map the motion displacement values and scaling values in the target motion curve. Specifically, using the preset relationship y = 2*x - 1, calculations can be performed to... Figure 9The vertical coordinate range of 0 to 1 is mapped to -1 to 1. That is, 0.5 on the vertical coordinate of the curve will be converted to 0, and values above 0.5 will be converted to values above 0. Similarly, values below 0.5 will be converted to values below 0. Between -1 and 0, the negative movement of the target part can be controlled to obtain the animation effect of the model breaking; between 0 and 1, the positive movement of the target part can be controlled to obtain the animation effect of the model assembling.
[0071] Based on the above optional embodiments, by sampling the target motion curve to obtain a second sampling result, and then using the first center position, motion direction and second sampling result to generate a first animation and a second animation, and finally compositing the first animation and the second animation based on the sequence identifier, the target assembly animation can be generated efficiently and the performance consumption of the game engine can be reduced.
[0072] Optionally, in step S242, generating the first animation using the first center position, the direction of motion, and the second sampling result includes: scaling the first component using the first scaling value and the first center position, and offsetting the first component along the direction of motion using the first displacement value to generate the first animation.
[0073] Specifically, Figure 10 This is a schematic diagram illustrating a target component scaling process according to an embodiment of this application, such as... Figure 10 As shown, the center point of the first component is the first center position P. When the first component is scaled using the first scaling value and the first center position, the vertices of the first component collapse to the first center position P, visually presenting a shrinking effect. Taking vertex A as an example, the calculation process of scaling to the first center position P can be implemented according to the following formula 1:
[0074] A' = P = AP × G Formula 1
[0075] Where A' is the scaled coordinate value of vertex A, P is the coordinate value of the first center position, A is the coordinate value of vertex A, AP is the vector starting from vertex A and ending at the first center position P, and G is the first scaling value.
[0076] Figure 11 This is a schematic diagram illustrating a target component offset process according to an embodiment of this application, such as... Figure 11 As shown, the process of offsetting the first component along the direction of motion using the first displacement value, and the offsetting of vertex A on the first component along the direction of motion, can be achieved according to the following formula 2:
[0077] A” = A + direction of motion × B (Formula 2)
[0078] Where A” is the coordinate value of vertex A after offset, A is the coordinate value of vertex A, and B is the first offset value.
[0079] Based on the above optional embodiments, the first component is scaled using a first scaling value and a first center position, and the first component is offset along the motion direction using a first displacement value, thereby enabling the rapid generation of motion animations of large components in the target component, further improving the animation generation efficiency.
[0080] Optionally, in step S242, generating the second animation using the first center position, the direction of motion, and the second sampling result includes: scaling the second component using the second scaling value and the first center position, and offsetting the second component along the direction of motion using the second displacement value to generate the second animation.
[0081] It should be noted that the scaling and offset process of the second component is similar to that of the first component, and will not be described in detail.
[0082] Based on the above optional embodiments, the second component is scaled using the second scaling value and the first center position, and the second component is offset along the motion direction using the second displacement value, thereby enabling the rapid generation of motion animations of small and medium-sized components of the target component, further improving the animation generation efficiency.
[0083] In this embodiment, by acquiring target component identifiers and texture data, and then sampling the texture data based on the target component identifiers to obtain a first sampling result, the target assembly animation is generated using the target motion curve and the first sampling result. This increases productivity while ensuring animation production quality. Furthermore, in game engines, compared to animation generation methods using skeletal meshes, this application's use of a Static Mesh model saves significant performance overhead, further improving animation generation efficiency.
[0084] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0085] This embodiment also provides a model assembly animation generation apparatus, which is used to implement the above embodiments and preferred embodiments, and will not be repeated as already described. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the apparatus described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0086] Figure 12 This is a structural block diagram of a model assembly animation generation device according to an embodiment of this application, such as... Figure 12 As shown, the model assembly animation generation device 1200 includes:
[0087] The acquisition module 1201 is used to acquire target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components that constitute the target model, and the texture data are used to represent the motion parameters of multiple target components;
[0088] The sampling module 1202 is used to sample the texture data based on the target component identifier to obtain a first sampling result. The first sampling result includes the first center position, sequence identifier and movement direction of each target component. The first center position is used to indicate the center point position of the target component, and the sequence identifier is used to indicate the movement sequence of the target component.
[0089] The generation module 1203 is used to generate a target assembly animation using the target motion curve and the first sampling result. The target motion curve is used to control the motion displacement and motion scaling values of multiple target parts, and the target assembly animation is used to represent the motion animation of the parts during the process of assembling multiple target parts into a target model.
[0090] Optionally, the acquisition module 1201 is further configured to: identify the vertex coordinates corresponding to multiple target parts in the texture mapping space to obtain the target part identifier.
[0091] Optionally, the acquisition module 1201 is further configured to: calculate the first center position of multiple target components and the second center position of the target model, wherein the second center position is used to represent the center point position of the target model; determine the target motion vector corresponding to the target component based on the first center position and the second center position, wherein the magnitude of the target motion vector is used to represent the initial distance between the first center position and the second center position, and the direction of the target motion vector is used to determine the motion direction of the target component; sort the multiple target components using the target motion vector to obtain a sorting result, wherein the sorting result is used to represent the motion order of the multiple target components; and store the first center position, the sorting result, and the motion direction in the target texture to obtain texture data.
[0092] Optionally, the acquisition module 1201 is further configured to: classify multiple target components based on preset values to obtain multiple first components and multiple second components, wherein the volume of the first components is greater than the preset value, the volume of the second components is less than or equal to the preset value, and the movement order of the first components precedes the movement order of the second components; sort the multiple first components using the initial distance of the multiple first components to obtain a first movement order, and sort the multiple second components using the initial distance of the multiple second components to obtain a second movement order; and obtain a sorting result based on the first movement order and the second movement order.
[0093] Optionally, the generation module 1203 is further configured to: sample the target motion curve to obtain a second sampling result, wherein the second sampling result includes a first scaling value and a first displacement value corresponding to the first component, and a second scaling value and a second displacement value corresponding to the second component; generate a first animation and a second animation using the first center position, the motion direction, and the second sampling result, wherein the first animation is the motion animation of the first component, and the second animation is the motion animation of the second component; and synthesize the first animation and the second animation based on the sequence identifier to obtain a target assembly animation.
[0094] Optionally, the generation module 1203 is further configured to: scale the first component using a first scaling value and a first center position, and offset the first component along the direction of motion using a first displacement value, thereby generating a first animation.
[0095] Optionally, the generation module 1203 is further configured to: scale the second component using a second scaling value and a first center position, and offset the second component along the direction of motion using a second displacement value, thereby generating a second animation.
[0096] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.
[0097] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when run.
[0098] Optionally, in this embodiment, the computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0099] Optionally, in this embodiment, the computer-readable storage medium may be located in any computer terminal in a group of computer terminals in a computer network, or in any mobile terminal in a group of mobile terminals.
[0100] Optionally, in this embodiment, the computer-readable storage medium may be configured to store a computer program for performing the following steps:
[0101] S1, Obtain target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components that constitute the target model, and the texture data are used to represent the motion parameters of multiple target components;
[0102] S2, the texture data is sampled based on the target component identifier to obtain the first sampling result, wherein the first sampling result includes the first center position, sequence identifier and movement direction of each target component, the first center position is used to indicate the center point position of the target component, and the sequence identifier is used to indicate the movement sequence of the target component;
[0103] S3, using the target motion curve and the first sampling result to generate the target assembly animation, wherein the target motion curve is used to control the motion displacement value and motion scaling value of multiple target parts, and the target assembly animation is used to represent the component motion animation in the process of assembling multiple target parts into a target model.
[0104] Optionally, the aforementioned computer-readable storage medium is further configured to store program code for performing the following steps: identifying the vertex coordinates corresponding to multiple target parts in the texture mapping space to obtain target part identifiers.
[0105] Optionally, the aforementioned computer-readable storage medium is further configured to store program code for performing the following steps: calculating a first center position of a plurality of target components and a second center position of a target model, wherein the second center position is used to represent the center point position of the target model; determining a target motion vector corresponding to a target component based on the first center position and the second center position, wherein the magnitude of the target motion vector is used to represent the initial distance between the first center position and the second center position, and the direction of the target motion vector is used to determine the motion direction of the target component; sorting the plurality of target components using the target motion vector to obtain a sorting result, wherein the sorting result is used to represent the motion order of the plurality of target components; and storing the first center position, the sorting result, and the motion direction in a target texture to obtain texture data.
[0106] Optionally, the aforementioned computer-readable storage medium is further configured to store program code for performing the following steps: classifying multiple target components based on preset values to obtain multiple first components and multiple second components, wherein the volume of the first components is greater than the preset value, the volume of the second components is less than or equal to the preset value, and the movement order of the first components precedes the movement order of the second components; sorting the multiple first components using the initial distances of the multiple first components to obtain a first movement order, and sorting the multiple second components using the initial distances of the multiple second components to obtain a second movement order; and obtaining a sorting result based on the first movement order and the second movement order.
[0107] Optionally, the aforementioned computer-readable storage medium is further configured to store program code for performing the following steps: sampling the target motion curve to obtain a second sampling result, wherein the second sampling result includes a first scaling value and a first displacement value corresponding to the first component, and a second scaling value and a second displacement value corresponding to the second component; generating a first animation and a second animation using the first center position, motion direction, and second sampling result, wherein the first animation is the motion animation of the first component, and the second animation is the motion animation of the second component; and compositing the first animation and the second animation based on a sequence identifier to obtain a target assembly animation.
[0108] Optionally, the aforementioned computer-readable storage medium is further configured to store program code for performing the following steps: scaling the first component using a first scaling value and a first center position, and offsetting the first component along the direction of motion using a first displacement value to generate a first animation.
[0109] Optionally, the aforementioned computer-readable storage medium is further configured to store program code for performing the following steps: scaling the second component using a second scaling value and a first center position, and offsetting the second component along the direction of motion using a second displacement value to generate a second animation.
[0110] In the computer-readable storage medium of this embodiment, by acquiring the target component identifier and texture data, and then sampling the texture data based on the target component identifier to obtain the first sampling result, the target motion curve and the first sampling result are used to generate the target assembly animation. This achieves the purpose of simplifying the operation process of generating model assembly animation and saving game engine performance consumption, thereby realizing the technical effect of improving the generation efficiency of model assembly animation. This solves the technical problem of low animation generation efficiency caused by the cumbersome operation process of generating model assembly animation using animation skeleton in related technologies.
[0111] Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a computer-readable storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the methods according to the embodiments of this application.
[0112] In exemplary embodiments of this application, a computer-readable storage medium stores a program product capable of implementing the methods described above in this embodiment. In some possible implementations, various aspects of the embodiments of this application may also be implemented as a program product including program code, which, when the program product is run on a terminal device, causes the terminal device to perform the steps described in the "Exemplary Methods" section of this embodiment according to various exemplary embodiments of this application.
[0113] The program product for implementing the above-described method according to embodiments of this application may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the embodiments of this application is not limited thereto. In the embodiments of this application, the computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.
[0114] The aforementioned program product may take the form of any combination of one or more computer-readable media. Such computer-readable storage media may be, for example, but not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any combination thereof. More specific examples (not exhaustive) of computer-readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0115] It should be noted that the program code contained on the computer-readable storage medium can be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.
[0116] Embodiments of this application also provide an electronic device including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0117] Optionally, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0118] Optionally, in this embodiment, the processor can be configured to perform the following steps via a computer program:
[0119] S1, Obtain target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components that constitute the target model, and the texture data are used to represent the motion parameters of multiple target components;
[0120] S2, the texture data is sampled based on the target component identifier to obtain the first sampling result, wherein the first sampling result includes the first center position, sequence identifier and movement direction of each target component, the first center position is used to indicate the center point position of the target component, and the sequence identifier is used to indicate the movement sequence of the target component;
[0121] S3, using the target motion curve and the first sampling result to generate the target assembly animation, wherein the target motion curve is used to control the motion displacement value and motion scaling value of multiple target parts, and the target assembly animation is used to represent the component motion animation in the process of assembling multiple target parts into a target model.
[0122] Optionally, the processor described above can also be configured to perform the following steps via a computer program: identify the vertex coordinates corresponding to multiple target components in the texture mapping space to obtain target component identifiers.
[0123] Optionally, the processor described above can also be configured to perform the following steps via a computer program: calculating a first center position of multiple target components and a second center position of the target model, wherein the second center position is used to represent the center point position of the target model; determining the target motion vector corresponding to the target component based on the first center position and the second center position, wherein the magnitude of the target motion vector is used to represent the initial distance between the first center position and the second center position, and the direction of the target motion vector is used to determine the motion direction of the target component; sorting the multiple target components using the target motion vector to obtain a sorting result, wherein the sorting result is used to represent the motion order of the multiple target components; and storing the first center position, the sorting result, and the motion direction in the target texture to obtain texture data.
[0124] Optionally, the processor may also be configured to perform the following steps via a computer program: classifying multiple target components based on preset values to obtain multiple first components and multiple second components, wherein the volume of the first components is greater than the preset value, the volume of the second components is less than or equal to the preset value, and the movement order of the first components precedes the movement order of the second components; sorting the multiple first components using the initial distances between them to obtain a first movement order, and sorting the multiple second components using the initial distances between them to obtain a second movement order; and obtaining a sorting result based on the first movement order and the second movement order.
[0125] Optionally, the processor may also be configured to perform the following steps via a computer program: sampling the target motion curve to obtain a second sampling result, wherein the second sampling result includes a first scaling value and a first displacement value corresponding to the first component, and a second scaling value and a second displacement value corresponding to the second component; generating a first animation and a second animation using the first center position, motion direction, and second sampling result, wherein the first animation is the motion animation of the first component, and the second animation is the motion animation of the second component; and compositing the first animation and the second animation based on a sequence identifier to obtain a target assembly animation.
[0126] Optionally, the processor may also be configured to perform the following steps via a computer program: scaling the first component using a first scaling value and a first center position, and offsetting the first component along the direction of motion using a first displacement value, thereby generating a first animation.
[0127] Optionally, the processor may also be configured to perform the following steps via a computer program: scaling the second component using a second scaling value and a first center position, and offsetting the second component along the direction of motion using a second displacement value, thereby generating a second animation.
[0128] In the electronic device of this embodiment, a method for generating model assembly animation is provided. By acquiring target component identifiers and texture data, and then sampling the texture data based on the target component identifiers to obtain a first sampling result, the target assembly animation is generated using the target motion curve and the first sampling result. This method simplifies the operation process of generating model assembly animation and saves game engine performance consumption, thereby improving the technical effect of generating model assembly animation. It also solves the technical problem of low animation generation efficiency caused by the cumbersome operation process of generating model assembly animation using animation skeletons in related technologies.
[0129] Figure 13 This is a schematic diagram of an electronic device according to an embodiment of this application. Figure 13As shown, the electronic device 1300 is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.
[0130] like Figure 13 As shown, the electronic device 1300 is presented in the form of a general-purpose computing device. The components of the electronic device 1300 may include, but are not limited to: at least one processor 1310, at least one memory 1320, a bus 1330 connecting different system components (including memory 1320 and processor 1310), and a display 1340.
[0131] The memory 1320 stores program code that can be executed by the processor 1310, causing the processor 1310 to perform the steps described in the method section of the embodiments of this application according to various exemplary implementations of this application.
[0132] The memory 1320 may include a readable medium in the form of volatile memory cells, such as random access memory (RAM) 13201 and / or cache memory 13202, and may further include read-only memory (ROM) 13203, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory.
[0133] In some instances, memory 1320 may also include programs / utilities 13204 having a set (at least one) of program modules 13205, including but not limited to: an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include an implementation of a network environment. Memory 1320 may further include memory remotely located relative to processor 1310, which can be connected to electronic device 1300 via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0134] Bus 1330 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, peripheral bus, graphics acceleration port, processor 1310, or a local bus using any of the various bus structures.
[0135] The display 1340 may be, for example, a touch screen liquid crystal display (LCD) that allows a user to interact with the user interface of the electronic device 1300.
[0136] Optionally, the electronic device 1300 can also communicate with one or more external devices 1400 (e.g., keyboard, pointing device, Bluetooth device, etc.), one or more devices that enable a user to interact with the electronic device 1300, and / or any device that enables the electronic device 1300 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via the input / output (I / O) interface 1350. Furthermore, the electronic device 1300 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via the network adapter 1360. Figure 13 As shown, network adapter 1360 communicates with other modules of electronic device 1300 via bus 1330. It should be understood that, although... Figure 13 As not shown, other hardware and / or software modules may be used in conjunction with electronic device 1300, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0137] The aforementioned electronic device 1300 may further include: a keyboard, a cursor control device (such as a mouse), an input / output interface (I / O interface), a network interface, a power supply, and / or a camera.
[0138] Those skilled in the art will understand that Figure 13 The structure shown is for illustrative purposes only and does not limit the structure of the electronic device described above. For example, the electronic device 1300 may also include components that are more... Figure 13 The more or fewer components shown, or having the same Figure 1 Different configurations are shown. The memory 1320 can be used to store computer programs and corresponding data, such as the computer program and corresponding data corresponding to the model assembly animation generation method in this embodiment. The processor 1310 executes various functional applications and data processing by running the computer program stored in the memory 1320, thereby realizing the aforementioned model assembly animation generation method.
[0139] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0140] In the above embodiments of this application, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0141] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units can be a logical functional division, and in actual implementation, there may be other division methods. For instance, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual coupling, direct coupling, or communication connection may be through some interfaces; the indirect coupling or communication connection between units or modules may be electrical or other forms.
[0142] 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 units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0143] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0144] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard drive, magnetic disk, or optical disk.
[0145] The above description is only a preferred embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A method for generating model assembly animation, characterized in that, The method includes: Obtain target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components constituting the target model, and the texture data are used to represent the motion parameters of the multiple target components; Based on the target component identifier, the texture data is sampled to obtain a first sampling result, wherein the first sampling result includes a first center position, a sequence identifier, and a movement direction for each target component. The first center position is used to indicate the center point position of the target component, and the sequence identifier is used to indicate the movement sequence of the target component. A target assembly animation is generated using the target motion curve and the first sampling result, wherein the target motion curve is used to control the motion displacement and motion scaling values of the plurality of target components, and the target assembly animation is used to represent the component motion animation during the process of assembling the plurality of target components into the target model; The process of obtaining the texture data includes: calculating the first center position of the plurality of target components and the second center position of the target model, wherein the second center position is used to represent the center point position of the target model; determining the target motion vector corresponding to the target component based on the first center position and the second center position, wherein the magnitude of the target motion vector is used to represent the initial distance between the first center position and the second center position, and the direction of the target motion vector is used to determine the motion direction of the target component; sorting the plurality of target components using the target motion vector to obtain a sorting result, wherein the sorting result is used to represent the motion order of the plurality of target components; and storing the first center position, the sorting result, and the motion direction in the target texture to obtain the texture data.
2. The method for generating model assembly animation according to claim 1, characterized in that, Obtaining the target component identifier includes: The vertex coordinates corresponding to the multiple target components are identified in the texture mapping space to obtain the target component identifier.
3. The method for generating model assembly animation according to claim 1, characterized in that, The sorting of the plurality of target components using the target motion vector yields the following sorting results: The multiple target components are classified based on preset values to obtain multiple first components and multiple second components. The volume of the first component is greater than the preset value, the volume of the second component is less than or equal to the preset value, and the movement sequence of the first component precedes the movement sequence of the second component. The plurality of first components are sorted using the initial distances between them to obtain a first movement order, and the plurality of second components are sorted using the initial distances between them to obtain a second movement order; The sorting result is obtained based on the first movement order and the second movement order.
4. The method for generating model assembly animation according to claim 3, characterized in that, Generating the target assembly animation using the target motion curve and the first sampling result includes: The target motion curve is sampled to obtain a second sampling result, wherein the second sampling result includes a first scaling value and a first displacement value corresponding to the first component, and a second scaling value and a second displacement value corresponding to the second component; A first animation and a second animation are generated using the first center position, the direction of movement, and the second sampling result, wherein the first animation is the motion animation of the first component, and the second animation is the motion animation of the second component; The first animation and the second animation are synthesized based on the sequence identifier to obtain the target assembly animation.
5. The method for generating model assembly animation according to claim 4, characterized in that, Generating the first animation using the first center position, the direction of motion, and the second sampling result includes: The first animation is generated by scaling the first component using the first scaling value and the first center position, and offsetting the first component along the direction of motion using the first displacement value.
6. The method for generating model assembly animation according to claim 4, characterized in that, Generating the second animation using the first center position, the direction of motion, and the second sampling result includes: The second animation is generated by scaling the second component using the second scaling value and the first center position, and offsetting the second component along the motion direction using the second displacement value.
7. A device for generating animation of model assembly, characterized in that, The device includes: The acquisition module is used to acquire target component identifiers and texture data, wherein the target component identifiers are used to distinguish multiple target components constituting the target model, and the texture data are used to represent the motion parameters of the multiple target components; A sampling module is used to sample the texture data based on the target component identifier to obtain a first sampling result, wherein the first sampling result includes a first center position, a sequence identifier, and a movement direction for each target component, the first center position being used to indicate the center point position of the target component, and the sequence identifier being used to indicate the movement sequence of the target component; A generation module is used to generate a target assembly animation using the target motion curve and the first sampling result, wherein the target motion curve is used to control the motion displacement value and motion scaling value of the plurality of target components, and the target assembly animation is used to represent the component motion animation in the process of assembling the plurality of target components into the target model; The acquisition module is further configured to: calculate the first center position of the plurality of target components and the second center position of the target model, wherein the second center position is used to represent the center point position of the target model; determine the target motion vector corresponding to the target component based on the first center position and the second center position, wherein the magnitude of the target motion vector is used to represent the initial distance between the first center position and the second center position, and the direction of the target motion vector is used to determine the motion direction of the target component; sort the plurality of target components using the target motion vector to obtain a sorting result, wherein the sorting result is used to represent the motion order of the plurality of target components; and store the first center position, the sorting result, and the motion direction in the target texture to obtain the texture data.
8. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program is configured to execute, when run by a processor, the method for generating model assembly animation as described in any one of claims 1 to 6.
9. An electronic device comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to run the computer program to perform the method for generating model assembly animation as described in any one of claims 1 to 6.