Animation generation method and device, electronic equipment and readable storage medium
By creating tracks and keyframes in Unity tools and binding tracks with unique identifiers of animation instances to generate animation sequence files, the problem of designers not being able to directly participate in code-driven animation creation is solved, improving animation generation efficiency and reusability, and simplifying animation management.
Patent Information
- Application Number
- CN202511200028.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-26
- Publication Date
- 2025-12-19
AI Technical Summary
In existing technologies, when designers use Unity tools to create visual object animations, they cannot directly participate in code-driven animation creation. This results in high-quality animation effects relying on programmers, high communication costs, animation logic scattered throughout the code, making it difficult to find, understand, reuse, and modify, version control prone to conflicts, and chaotic management of animation sequence files.
By responding to the operation of dragging an animation instance to the timeline, tracks are created and keyframes and events are added to the tracks to generate animation sequence files. Tracks are bound using the unique identifier of the animation instance to avoid path dependencies, support multi-event segmented triggering, and all data is serialized into the same file for easy storage and version control.
It improves the efficiency of animation sequence generation, reduces the editing error rate, reduces the risk of lost references, enhances the reusability of animations and the convenience of version control, reduces dependence on external resources, and simplifies the management of animation logic.
Smart Images

Figure CN121170084A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of computer, and particularly relates to an animation generation method and device, electronic equipment and readable storage medium. BACKGROUND
[0002] Unity is a multi-platform integrated game development tool. By introducing visual object animation, the visual effect and user experience of a project are improved, and the increasing data visualization needs of enterprise users are met. In related technologies, a designer creates an animation while creating a visual object using a modeling tool, and imports the visual object and the animation into Unity. However, the designer is usually not good at coding and cannot directly participate in code-driven animation creation, which has certain limitations in handling dynamic interaction and real-time adjustment. High-quality dynamic effects depend on programmers, which has high communication costs. Animation logic is scattered in various codes, and it is difficult to find, understand, reuse and modify. Version control is prone to conflicts. SUMMARY
[0003] The embodiments of the present application provide an animation generation method and device, electronic equipment and readable storage medium, which can improve the generation efficiency of an animation sequence.
[0004] The technical solution of the embodiments of the present application is as follows:
[0005] The embodiments of the present application provide an animation generation method, which comprises the following steps:
[0006] In response to a first operation of dragging any one animation instance to a timeline, a track corresponding to the animation instance is created;
[0007] A key frame corresponding to the animation instance is created in the track;
[0008] In response to an event configuration operation for the key frame, an event corresponding to the key frame is obtained;
[0009] Based on the track corresponding to the animation instance, the key frame corresponding to the animation instance and the event, an animation sequence file of the animation instance is generated;
[0010] In response to a reading operation for the animation sequence file, an animation corresponding to the animation sequence file is generated.
[0011] The embodiments of the present application provide an animation generation device, which comprises the following steps:
[0012] The animation sequence file creating module is configured to: in response to a first operation of dragging any one animation instance to a timeline, create a track corresponding to the animation instance; create a key frame corresponding to the animation instance in the track; in response to an event configuration operation for the key frame, obtain an event corresponding to the key frame; and generate an animation sequence file of the animation instance based on the track corresponding to the animation instance, the key frame corresponding to the animation instance, and the event.
[0013] The animation generating module is configured to generate an animation corresponding to the animation sequence file in response to a reading operation for the animation sequence file.
[0014] The electronic device provided in the embodiments of the present application comprises:
[0015] The memory is configured to store computer executable instructions or computer programs.
[0016] The processor is configured to execute the computer executable instructions or computer programs stored in the memory to implement the animation generating method provided in the embodiments of the present application.
[0017] The computer readable storage medium provided in the embodiments of the present application stores computer programs or computer executable instructions, and is configured to be executed by the processor to implement the animation generating method provided in the embodiments of the present application.
[0018] The computer program product provided in the embodiments of the present application comprises computer programs or computer executable instructions, and the computer programs or computer executable instructions are executed by the processor to implement the animation generating method provided in the embodiments of the present application.
[0019] The embodiments of the present application have the following beneficial effects:
[0020] In response to a first operation of dragging any one animation instance to a timeline, a track corresponding to one animation instance is directly created, so that the time data is not interlaced with other animation instances, the error rate of editing is reduced, and one interaction is reduced. A key frame corresponding to the animation instance is created in the track, and an event corresponding to the key frame is obtained in response to an event configuration operation for the key frame. Different key frames can correspond to different events, so that multi-event segmented triggering in the same track is implemented, and the events do not cover each other. Based on the track corresponding to the animation instance, the key frame corresponding to the animation instance, and the event, an animation sequence file of the animation instance is generated. All necessary data is serialized into the same animation sequence file, so that the storage, transmission, and version control are facilitated. When the subsequent engineering is imported, no additional external directory or resource path is required, the risk of reference loss is reduced, and the reusability is increased. In response to a reading operation for the animation sequence file, the event is automatically triggered at the specified key frame, no additional script is required, an animation corresponding to the animation sequence file is generated, and the generation efficiency of the animation sequence is improved. BRIEF DESCRIPTION OF DRAWINGS
[0021] Figure 1 is an application mode schematic diagram of an animation generation method provided by an embodiment of the present application;
[0022] Figure 2 is a structural schematic diagram of an electronic device provided by an embodiment of the present application;
[0023] Figure 3A is a first flow schematic diagram of an animation generation method provided by an embodiment of the present application;
[0024] Figure 3B is a second flow schematic diagram of an animation generation method provided by an embodiment of the present application.
[0025] It should be noted that the above-mentioned "first", "second" are only used to distinguish different schemes, and do not represent the advantages or disadvantages of the schemes or the priority in the implementation process. DETAILED DESCRIPTION
[0026] In order to make the purpose, technical scheme and advantages of the present application more clear, the present application will be described in more detail below with reference to the drawings, and the described embodiments should not be regarded as limiting the present application, and all other embodiments obtained by those skilled in the art without creative labor are within the scope of protection of the present application.
[0027] In the following description, "some embodiments" are related to a subset of all possible embodiments, but it can be understood that "some embodiments" can be the same subset or different subset of all possible embodiments, and can be combined with each other without conflict.
[0028] In the following description, the terms "first\second\third" are only used to distinguish similar objects, and do not represent a specific order of the objects. It can be understood that "first\second\third" can interchange the specific order or sequence as allowed, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
[0029] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works with other related parts to achieve a predetermined target, and can be implemented entirely or partially by using software, hardware (such as processing circuit or memory) or combination thereof. Similarly, one processor (or multiple processors or memory) can be used to implement one or more modules or units. In addition, each module or unit can be a part of an overall module or unit that includes the functions of the module or unit.
[0030] Unless otherwise defined, all technical and scientific terms used in the embodiments of the application have the same meanings as those commonly understood by one of ordinary skill in the art. The terms used in the embodiments of the application are merely used to describe the embodiments of the application, and are not intended to limit the application.
[0031] The collection and processing of relevant data (for example, animation instance data) in the embodiments of the application should strictly comply with the requirements of relevant laws and regulations, obtain the informed consent or separate consent of the subject of personal information, and carry out subsequent data use and processing within the scope of authorization of laws and regulations and the subject of personal information.
[0032] Before the embodiments of the application are further described in detail, the terms and phrases involved in the embodiments of the application are explained, and the terms and phrases involved in the embodiments of the application are applicable to the following explanations.
[0033] 1) Unity: Unity is a powerful real-time 3D development platform that provides developers with a complete set of game development tools, including physics engines, rendering engines, animation systems, etc. Developers can use Unity to create 2D and 3D games, and its physics engine can simulate real physical effects such as object collisions, gravity, etc., making the movement of objects in the game more natural. The rendering engine can handle complex scene rendering, from simple cartoon style to highly realistic realistic style.
[0034] 2) DOTween: DOTween is a plugin in Unity engine, which is used to handle animation effects, providing a simple and powerful application programming interface, making it easier to create and manage animations in games. DoTween supports many types of animations, including displacement, rotation, scaling, etc., and can be integrated into Unity's editor.
[0035] In the field of animation generation, Unity improves the visual effects and user experience of projects by introducing visual object animation, meeting the growing data visualization needs of enterprise users. In related technologies, Unity tools rely on the absolute path of game instances to record animation targets. Once the visual hierarchy structure is adjusted (including node movement, renaming, deleting parent nodes, etc.), the preset structure changes, causing the stored path to be invalid, and the animation also loses the binding target. To fix this problem, you need to manually rebind all affected properties, which not only requires a huge amount of work, but also is prone to errors and has high maintenance costs.
[0036] The built-in easing curve control in the Unity animation editor is difficult and lacks presets, making it inefficient to create high-quality easing effects. The built-in curve editor is not intuitive, and manually creating and adjusting complex easing effects (such as elasticity and bounce) is time-consuming and laborious. There is a lack of a ready-to-use library of common easing curve presets, making it difficult for animators to quickly apply and ensure consistency, hindering the creation of high-quality animations. Using code (such as DOTween) to implement animations makes it difficult for animators to participate, and the iteration process is inefficient and difficult to maintain code. Animators are usually not good at coding and cannot directly participate in code-driven animation creation, which often requires the help of programmers, increasing communication costs. When adjusting animation parameters (such as duration, easing, and order), a series of steps such as modifying code, compiling, and running to view must be taken, making the iteration process lengthy and complicated. Animation logic is scattered throughout the code, making it difficult to find, understand, reuse, and modify, and version control can also be prone to conflicts. Combining multiple animation segments into a sequence requires the use of animation controller state machines or code to manage playback order and transitions, increasing the complexity of operations. It is extremely inconvenient to dynamically insert steps, modify parameters, or easing effects based on existing segments. At the same time, a large number of scattered animation sequence files can lead to chaotic resource management, with each independent animation typically corresponding to a sequence file, making management even more difficult when the number of files is large. For some simple interactive animations, using animation controllers and animation components can introduce unnecessary overhead and complexity.
[0037] The embodiments of the present application provide an animation generation method, an animation generation device, an electronic device, a computer readable storage medium and a computer program product, which can improve the generation efficiency of animation sequences.
[0038] The following describes an exemplary application of the electronic device provided by the embodiments of the present application. The device provided by the embodiments of the present application can be implemented as a notebook computer, a tablet computer, a desktop computer, a set-top box, a smart phone, a smart speaker, a smart watch, a smart television, a vehicle-mounted terminal, and various types of terminals, or as a server. The following describes an exemplary application when the device is implemented as a terminal or a server.
[0039] Referring to Figure 1 , Figure 1 is an application mode schematic diagram of the animation generation method provided by the embodiments of the present application, to realize the support of an animation generation method application, an example of Figure 1 Involving a server 200, a network 300, a terminal device 400, and a database 500, the terminal device 400 has an application program capable of displaying animations, the terminal device 400 is connected to the server 200 through the network 300, and the network 300 can be a wide area network or a local area network, or a combination of the two.
[0040] In some embodiments, the present application embodiments can be implemented collaboratively by a server and a terminal device. For example, the user can be someone skilled in the art, such as a motion graphics artist. The server 200 is a server for generating animation sequences, and the terminal device 400 is a terminal operated by the user. The database 500 stores preset curves for configuring the timing of animation instances. The terminal device 400 sends an animation sequence generation request to the server 200. The server 200 receives the animation sequence generation request, creates the track, keyframes, and events of the animation instance using the animation generation method provided in the present application embodiments, generates the corresponding animation sequence file, generates the animation corresponding to the animation sequence file by reading the animation sequence file, and sends the animation corresponding to the animation sequence file to the terminal device 400.
[0041] See Figure 2 , Figure 2 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application. Figure 2 The terminal device 400 shown includes at least one processor 410, a memory 450, at least one network interface 420, and a user interface 430. The various components in the terminal device 400 are coupled together via a bus system 440. It is understood that the bus system 440 is used to implement communication between these components. In addition to a data bus, the bus system 440 also includes a power bus, a control bus, and a status signal bus. However, for clarity, ... Figure 2 The general labeled all buses as Bus System 440.
[0042] The processor 410 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc.
[0043] User interface 430 includes one or more output devices 431 that enable the presentation of media content, including one or more speakers and / or one or more visual displays. User interface 430 also includes one or more input devices 432, including user interface components that facilitate user input, such as a keyboard, mouse, microphone, touch screen display, camera, other input buttons and controls.
[0044] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state storage, hard disk drives, optical disk drives, etc. The memory 450 may optionally include one or more storage devices physically located away from the processor 410.
[0045] The memory 450 includes volatile memory or nonvolatile memory, and can include both volatile and nonvolatile memory. The nonvolatile memory can be read only memory (ROM), and the volatile memory can be random access memory (RAM). The memory 450 described in the embodiments of the present application is intended to include any suitable type of memory.
[0046] In some embodiments, the memory 450 is capable of storing data to support various operations, examples of which include programs, modules, and data structures or subsets or superset thereof, which are exemplarily illustrated below.
[0047] The operating system 451 includes system programs for processing various basic system services and performing hardware-related tasks, such as a framework layer, a core library layer, a driver layer, and the like, for implementing various basic services and processing hardware-based tasks;
[0048] The network communication module 452 is used to communicate with other electronic devices via one or more (wired or wireless) network interfaces 420, exemplary network interfaces 420 including Bluetooth, wireless compatibility certification (WiFi), and universal serial bus (USB), and the like;
[0049] The presentation module 453 is used to enable the presentation of information via one or more output devices 431 associated with the user interface 430 (e.g., a display screen, a speaker, and the like) (e.g., a user interface for operating peripheral devices and displaying content and information);
[0050] The input processing module 454 is used to detect and interpret one or more user inputs or interactions from one or more input devices 432.
[0051] In some embodiments, the device provided by the embodiments of the present application can be implemented in software, Figure 2 An animation generation device 455 stored in the memory 450 is shown, which can be software in the form of programs and plug-ins, including the following software modules: animation sequence file creation module 4551 and animation generation module 4552, which are logical, and thus can be combined or further split according to the implemented functions. The functions of each module will be described below.
[0052] In some embodiments, the terminal or the server can implement the animation generation method provided by the embodiments of the present application by running various computer-executable instructions or computer programs. For example, the computer-executable instructions can be microprogram-level commands, machine instructions or software instructions. The computer program can be a native program or a software module in an operating system; can be a native (Native) application (APPlication, APP); or can be a small program that can be embedded into any APP, i.e., a program that only needs to be downloaded into a browser environment to run. In summary, the above computer-executable instructions can be any form of instructions, and the above computer program can be any form of application program, module or plug-in.
[0053] The animation generation method provided by the embodiments of the present application will be described in conjunction with exemplary applications and implementations of the terminal provided by the embodiments of the present application.
[0054] In the following, the animation generation method provided by the embodiments of the present application will be described. As described above, the electronic device implementing the animation generation method of the embodiments of the present application can be a terminal, a server, or a combination of the two. Therefore, the execution subject of each step will not be repeated in the following description.
[0055] Referring to Figure 3A , Figure 3A is a first flowchart of the animation generation method provided by the embodiments of the present application, which will be described in conjunction with the steps shown in Figure 3A .
[0056] In step 101, in response to a first operation of dragging any one animation instance to a timeline, a track corresponding to the animation instance is created.
[0057] In some embodiments, referring to Figure 3B , Figure 3B is a second flowchart of the animation generation method provided by the embodiments of the present application; Figure 3A Step 101 in the above embodiment can be implemented by performing steps 1011 to 1013 in Figure 3B .
[0058] In step 1011, the animation instance corresponding to the first operation is parsed to obtain an identifier of the animation instance.
[0059] In some embodiments, the animation instance identifier in step 1011 can be obtained by the following method: querying the mapping relationship table; reading the identifier in the case that the mapping relationship table contains the identifier of the animation instance; and generating an identifier for the animation instance if the identifier of the animation instance is not queried in the mapping relationship table.
[0060] As an example, an animation instance is a specific object or object collection that can be animated in an animation production environment, and is a carrier of animation content. For example, in a game development scenario, a button named Login Button contains components for controlling position, size, and rendering, and the button is an animation instance that can be set with an animation effect of "moving to the center of the screen after being clicked". The identifier of the animation instance is a string used to uniquely identify the animation instance, and is a universally unique identifier in the format of a 32-bit hexadecimal number, which has uniqueness across scenes and across prefabs and is not affected by object path changes.
[0061] For example, the identifier generated for the animation instance Login Button can be "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv", which is bound to the animation instance Login Button. Even if the button is moved or renamed in the visual hierarchy, the identifier remains unchanged.
[0062] The mapping relationship table is a data structure that stores the correspondence between animation instances and corresponding identifiers, and its main function is to quickly query the identifier of an animation instance or find the corresponding animation instance according to the identifier. The mapping relationship table usually contains two columns of key information, one column is related to the identifier of the animation instance (such as the path, name, and other clue information of the animation instance in the scene), and the other column is the corresponding identifier. The mapping relationship of the mapping relationship table replaces the traditional binding method based on the absolute path, solves the problem of losing animation targets caused by adjusting the visual hierarchy or changing the preset structure, and ensures that the animation instance can be accurately located by the identifier at runtime.
[0063] When the first operation of dragging the animation instance to the timeline is performed, the animation instance is parsed by querying the mapping relationship table. In the case where the identifier of the animation instance is found in the mapping relationship table, it indicates that the animation instance has been added to other animation sequences before the first operation, and the associated identifier is directly read from the mapping relationship table. In the case where the identifier is not found, it indicates that the animation instance has not been added to the animation sequence, at which time a new identifier is generated for the animation instance by an identifier generation algorithm, and the mapping relationship between the animation instance and the newly generated identifier is stored in the mapping relationship. The identifier generation algorithm can be a hash algorithm based on a timestamp and device information, which is not limited by the present application.
[0064] For example, for an animation instance of "character running", check if there is a corresponding identifier record in the mapping table. If there is, read it directly. Assuming that the corresponding identifier record exists and is "ID_Run_001", the identifier is obtained directly. If not, a new identifier such as "ID_Run_002" is generated and recorded in the mapping table.
[0065] In step 1012, based on the identifier of the animation instance, the data structure of the track corresponding to the animation instance is created.
[0066] As an example, a track is a basic unit on the time axis for carrying and organizing the animation steps of a specific animation instance, providing an independent and ordered arrangement space for the animation data of the animation instance, so that the steps of the animation can be organized and presented in chronological order. The track isolates and organizes the animation data of different animation instances in order, making it easy to independently edit, adjust, and play control the animation of each animation instance on the time axis. Through the track, the animation content of each animation instance can be clearly managed in a complex animation sequence, avoiding confusion and interference between different animation data. The identifier is the unique identity of the animation instance, and the track determines the corresponding animation instance according to the identifier of the animation instance. During the management and playback of the entire animation sequence, the animation data on the track is accurately associated with the correct animation instance through the identifier, realizing the precise binding and operation of animation data and animation instances.
[0067] Each track is bound to a unique animation instance through the identifier of the animation instance, focusing on controlling a certain property of the instance. One animation instance can correspond to multiple tracks (such as multiple tracks controlling position, rotation, and transparency), but one track is associated with only one animation instance. By configuring the property information of the animation instance in the track, the data structure of the track is created. The data structure of the track is a structured data collection that stores all configuration information of the track, including: the identifier of the animation instance, the identification information for uniquely identifying a track, the initial time position of the track, the initial value of the animation property, and the default easing curve type.
[0068] The initial time position of the track represents the starting time point of the track on the time axis, usually in seconds or milliseconds. The initial time position determines the time starting point of the animation on the track relative to the entire animation sequence, providing a time reference for subsequent added animation steps. For example, setting the initial time position of the track to 0 seconds means that the animation on the track will start playing from the beginning of the entire animation sequence.
[0069] The animation property initial value contains a series of initial animation property values related to the animation instance, defining the state of the animation instance at the beginning of the animation. For example, for a position animation, the initial animation property value can include the initial coordinate position of the animation instance in the scene (such as X, Y, Z coordinate values), for a rotation animation, it can be the initial rotation angle, etc. For a prop rotation animation instance, the initial animation property value can be a rotation angle of 0 degrees.
[0070] The default easing type specifies the default easing type used by the animation on the track, which is used to control the rate and manner of change of the animation property value over time. Different easing types can produce different animation motion effects, such as linear motion, acceleration motion, deceleration motion, elastic motion, etc. The easing type is selected from the built-in DOTween easing library, and can be modified later as needed. For example, the default easing type can be set to linear, and the animation steps added on the track will use linear variation to transition the animation property value. An empty keyframe list (such as an array or linked list structure) is created to store user-added keyframe data later, and the initial length of the list is 0. The data structure of the track is stored in memory and associated with the global configuration of the timeline, providing a data basis for subsequent rendering to the editable interface and animation editing.
[0071] For example, a newly added character jump animation instance with identifier ID_Jump_001, the track unique identifier in the created track data structure is Track_ID_Jump_001, the initial time position is set to 0 seconds, the animation property initial value is set to the coordinate position of the character at the start of the jump (such as X=0, Y=0, Z=0), the default easing type is set to linear, and the animation instance identifier associated with the track is stored as ID_Jump_001.
[0072] In step 1013, the data structure of the track is rendered to the editable interface of the timeline, and the track corresponding to the animation instance is displayed on the editable interface.
[0073] As an example, the timeline is a unified timeline of the visual editing area, showing the time elapse horizontally, containing a track list and global parameters for arranging animation steps, delays and callback events of all tracks. The editable interface of the timeline refers to a customized Unity editor window for visualizing editing animation sequences, with the time axis (unit: seconds) horizontally and the track area vertically, supporting users to edit animations through dragging, clicking and other operations. The rendering interface of the Unity editor is called to convert the data structure of the track into a visual element, generating a visual track in the editable interface of the timeline. A row of space is allocated in the vertical track area of the timeline as the display position of the track, and the position of the track is allocated in an independent row in the vertical area of the timeline, which is distinguished from other tracks. The name of the animation instance and the associated identifier are displayed beside the track, and the track is horizontally aligned with the time scale of the timeline. The initial length is set to match the current total duration of the timeline (for example, 10 seconds) by default, supporting users to expand the time range by dragging the edge and add keyframes at specific time points. After rendering, the editable interface is refreshed in real time, and subsequent operations (such as adding keyframes, adjusting properties, etc.) can be performed on the track.
[0074] For example, the track data structure corresponding to Btn_Start is rendered to the timeline interface, displaying a row of track in the interface, with Btn_Start (f47ac10b) labeled on the left side. The track is horizontally aligned with the 0-10 second scale of the timeline, and users can add keyframes at the 2 second position on the track to set the position attribute of the button.
[0075] In some embodiments, a lightweight anchor component can also be implanted on the animation instance, and the animation sequence only records the identifier of the anchor. When the hierarchy changes, the anchor automatically follows the movement, and the path is completely decoupled. Alternatively, a combined signature of the parent node feature code and the name of the anchor is generated. Even if the node is renamed, as long as the parent-child relationship does not change, it can still be located, and the application does not limit this.
[0076] Through the embodiments of the application, the process of parsing the animation instance to obtain the unique identifier, creating the track data structure and further rendering the visual track, realizes the binding of the animation instance and the timeline through the identifier instead of the absolute path, solves the path dependence problem of the traditional animation, and provides an intuitive editing entry through visual rendering, laying a foundation for subsequent operations such as adding keyframes and setting the easing curve.
[0077] Continuing to refer to Figure 3A In step 102, keyframes corresponding to the animation instance are created in the track.
[0078] In some embodiments, step 102 can be implemented by the following method: in response to a second operation of creating a keyframe in the track, selecting an insertion position of the keyframe on the timeline; configuring parameters of the keyframe at the insertion position, generating a data structure of the keyframe of the animation instance; writing the data structure of the keyframe into a keyframe list of the track, and rendering to an editable interface of the timeline, displaying all keyframes in the keyframe list on the editable interface.
[0079] As an example, the second operation is an interactive operation of creating a keyframe in the track, which can be triggered by clicking the Add Keyframe button at the cursor position on the timeline, double-clicking the blank area in the track row, or by a shortcut key, which is not limited in the present application. For example, clicking the 2-second scale position on the timeline of the Login Button track triggers the operation of inserting a keyframe. When the second operation is performed, the screen coordinates of the mouse click are converted into seconds on the timeline by the coordinate mapping algorithm of the timeline, to determine the insertion position of the keyframe.
[0080] A keyframe is a node that records the state of an animation on a track, which contains the attribute value, change rule (easing curve) and associated event of the animation instance at a specific time point, and is the basic unit of an animation sequence. By defining the attribute state at different time points, the transition process between adjacent keyframes is calculated to achieve smooth changes of the animation. A track can contain multiple keyframes that collectively define the complete change trajectory of the property (such as position, transparency) controlled by the track over time, and the insertion position of the keyframe is the specific time point of the keyframe on the timeline, which is in seconds, and determines the time when the animation state corresponding to the keyframe takes effect. For example, inserting a keyframe at the 2-second position on the timeline means that the attribute value defined by the keyframe will take effect when the animation plays to the 2nd second.
[0081] After selecting the insertion position of the keyframe on the timeline, the keyframe parameters are configured through the input box, slider or drop-down menu. The parameters of the keyframe are configuration items that describe the attribute state and change rule of the keyframe, including attribute value, easing curve, event list, etc. The configured parameters are encapsulated into a data structure of the keyframe, which is a structured data set that stores all parameters of the keyframe, including time, attribute value, attribute state of the animation instance, easing curve type, event list, and adding events can be achieved by dragging the script method of the interface in the scene to the event list and setting parameters. The generated keyframe data structure is added to the keyframe list of the current track (which is one of the attributes of the track data structure in step 1012), and the list is sorted in chronological order to ensure that the keyframes are arranged in chronological order on the timeline.
[0082] Call the rendering interface of the Unity editor, draw the keyframe icon at the insertion position of the timeline, display the transition curve between keyframes on the track (generated based on the easing curve type), and display all keyframes in the keyframe list on the editable interface. The position and transition effect of the keyframe can be directly observed on the editable interface, and the time position can be adjusted by dragging the keyframe or the parameter can be reedited by double-clicking the keyframe.
[0083] Through the embodiments of the present application, the insertion position of the keyframe is selected and the parameters are configured, the data structure of the keyframe is generated, and the writing and rendering process is implemented, so that the creation of the keyframe is realized. As a time node of the animation state, the keyframe is combined with the attribute control of the track to provide specific change basis for the animation sequence, and the visual editing method can directly define the animation details, which is combined with the easing curve preset to improve the efficiency and quality of the animation production.
[0084] In some embodiments, the easing curve of the keyframe can be configured based on a preset curve database, and the preset curve database includes a basic library and an extended library. The basic library includes pre-stored curve methods, and the extended library includes new curves automatically generated according to the effect description input by the user.
[0085] As an example, the preset curve database is used to store the combination of the easing curves, which is the data source for the keyframe easing curve configuration, includes two sub-databases of the basic library and the extended library, and is used as the basis for selecting or generating the easing curve meeting the requirements. The preset curve database provides standardized and reusable easing curve resources to avoid repeated creation by the user, while supporting personalized curve generation, and balances efficiency and flexibility.
[0086] The basic library is a set of commonly used easing curves pre-stored in the preset curve database based on mature algorithms, integrates classic easing types of the animation library, includes basic transitions (such as uniform speed, acceleration, and deceleration), physical simulation (such as elasticity and rebound), and the like, and each curve corresponds to a clear mathematical formula (such as a quadratic curve and an elastic mechanics model). For example, Ease.InOutQuad, quadratic easing, first acceleration and then deceleration, suitable for smooth transition effect; Ease.OutElastic, elastic rebound easing, simulates the slight bounce of an elastic object at the end of the animation, suitable for button pop-up effect; Ease.InBack, acceleration easing with a back-pull effect, slightly moves backward before the animation starts and then accelerates, suitable for emphasis pop-up effect.
[0087] The extension library is a sub-library in the preset curve database for storing new motion curves that are customized or automatically generated according to effect descriptions, and supports personalized and specific effect motion requirements. The sliding curve can be generated manually or automatically according to a text description, and is persistently stored after being generated and can be reused. According to an input effect description text, the text is parsed according to preset effect-to-curve mapping rules (for example, acceleration is mapped to an increasing slope curve, and rebound is mapped to an elastic mechanics formula), keywords are extracted, curve parameters such as stage division, slope change rate, and rebound amplitude are determined according to the keywords, corresponding motion curve data is generated based on the analysis result by combining a basic mathematical model, and the motion curve data is stored as a new custom curve.
[0088] For example, the input effect description text can be like a football falling to the ground, quickly falling to the bottom and rebounding twice, gradually decreasing in amplitude, moving extremely slowly first, and then suddenly accelerating to the target position within 0.5 seconds.
[0089] In some embodiments, the motion curve can also integrate a simple action description language (for example, a button bounces three times and then fades away), which is automatically converted into sequence parameters, or a mobile phone gyroscope is connected to record a physical swing trajectory to directly generate a motion curve.
[0090] Through the embodiments of the present application, the basic library provides standardized and ready-to-use motion curves, meets most conventional animation requirements, supports automatic generation and custom adjustment based on effect descriptions through the extension library, meets personalized and specific effect requirements, improves the efficiency of motion curve configuration, guarantees the diversity and accuracy of animation effects, and realizes flexible and efficient configuration of keyframe motion curves.
[0091] In step 103, in response to the event configuration operation for the keyframe, the event corresponding to the keyframe is obtained.
[0092] In some embodiments, the event corresponding to the keyframe in step 103 can be obtained by the following method: selecting a target event method in a preconfigured script method; configuring the execution parameters of the target event method; and writing the target event method and the execution parameters into the data structure of the keyframe to obtain the event corresponding to the keyframe.
[0093] As an example, the event configuration operation for the key frame is an interactive operation of adding, modifying or deleting a callback event in the editing interface of the key frame, including: selecting an event method, setting a parameter and the like, which is used to associate the animation progress with specific logic (such as sound playing, data updating). For example, in the event panel of the Login Button key frame (time = 2 seconds), the Sound Manager.PlayClick() method in the scene is dragged to the event list, and the sound file parameter is set. The preconfigured script method is a pre-written script method that implements an interface, conforms to a unified parameter specification, can be recognized by the animation system and used as an event callback function, for example, UI Manager.ShowTip(string message) is used to display a prompt text, and the parameter is of the string type.
[0094] The target event method is a specific method selected from the preconfigured script methods and to be executed at the key frame time point, and is a core logic carrier of the event. After the target event method is bound to the key frame, the target event method is automatically called at the time point when the animation plays to the key frame, so as to realize the synchronization of the animation and the business logic. The execution parameter of the target event method is input data required for the operation of the target event method, needs to be matched with the parameter type of the method, and the execution logic of the event can be dynamically adjusted through the parameter. The event data structure of the key frame stores the structured data of the event bound to the key frame, including: the identification of the target event method, the execution parameter and the triggering time (bound to the key frame time).
[0095] The event configuration operation is triggered in the editing interface of the key frame, all preconfigured script methods are displayed in a list form, the target time method to be bound is selected from the method list, and the corresponding parameter input box is provided in the editing interface, which is used to configure the execution parameter. The specific parameter value is filled in or selected in the parameter input box, the parameter type and the parameter range are verified to be matched, after the verification is passed, the parameter value and the type are recorded, the path of the selected target event method, the parameter list and the parameter type list are encapsulated into the event data structure, and are added to the event list field of the key frame data structure. The adaptive layer code is automatically generated based on the event data structure, which is used to verify the legality of the parameter and call the target method, and the event corresponding to the key frame is obtained.
[0096] Through the embodiments of the present application, the binding of the key frame event is realized, the automatic parameter verification and the adaptive layer code generation are combined, the safety and flexibility of the event calling are ensured, the association of the animation and the business logic can be completed without writing code, and the collaboration efficiency and the system stability are significantly improved.
[0097] In step 104, based on the track corresponding to the animation instance, the key frame corresponding to the animation instance and the event, an animation sequence file of the animation instance is generated.
[0098] As an example, the animation sequence file is an independent resource file (with.asset suffix in Unity) generated by serializing all animation data of an animation instance, such as tracks, keyframes, and events, and is a persistent carrier of animation sequences, containing all configuration information required for animation playback, realizing centralized storage and reuse of animation data, and existing independently from code, which can be loaded and parsed by an animation generation component to drive animation playback. All associated tracks of the target animation instance are traversed to collect complete data of each track, including: track basic information, keyframes, and events. The track, as an attribute control unit of the animation instance, contains keyframes (including events) that together constitute the complete logic of the animation. Global parameters set by the user in the visual editor, such as playback speed and loop mode, are read and added as independent fields to the animation data, and the integrated animation data is serialized. An.asset file named after the animation instance name or a custom name is generated in the specified project resource directory, and the serialized data is written into the animation sequence file. The mapping relationship table generated in the preprocessing stage is updated to record the correspondence between the animation sequence file and the associated animation instance identifier, ensuring that the file can automatically update the mapping relationship when subsequent modifications (such as changes to the animation instance component) are made.
[0099] In some embodiments, the animation sequence file can also be generated by inserting a new track in the timeline, with the new track corresponding to a new animation sequence file; determining the inheritance relationship between the new track and the original track in the timeline, and writing the animation instructions of the original track into the new animation sequence file according to the inheritance relationship.
[0100] As an example, the new track is a track that is added to the existing timeline, binds a new animation instance or subsequence, and has the same data structure as the original track (including identifier, attribute path, easing preset, keyframe list, etc.), but is associated with a newly created independent file. The new animation sequence file integrates the keyframes, events, and global parameters corresponding to the new track to obtain a subsequence file. In the original timeline, a new animation instance that needs to be bound is selected by adding a new track, and a unique identifier is assigned to the new track. The identifier of the new animation instance is obtained, and the attribute path, easing curve, and keyframe list are initialized. The new animation sequence file is associated with the new animation sequence file, and the generation principle of the new animation sequence file is the same as that of the original animation sequence file, which will not be described here.
[0101] The inheritance relationship is a parameter transmission rule between a new animation sequence file (sub-sequence) corresponding to a new track and an animation sequence file (main sequence) to which an original track belongs, and involves reuse and coverage of global parameters (play speed, loop mode, etc.). The new animation sequence file inherits the global parameters of the main sequence to which the original track belongs by default, and the global parameters of the new track can be modified and set in the global parameter panel. Animation instructions are all animation control information contained in the original track, including attribute values of key frames, easing curves, event configurations, and identifiers associated with the track, and are core data for driving animation execution. If the global parameters are not set to be covered, the global parameters (play speed, loop mode) of the new animation sequence file directly reuse the corresponding values of the main sequence to which the original track belongs, and if non-inheritance items are set, the attribute path, key frame parameters, etc. of the original track are not inherited, and the new track needs to be redefined. The key frames and events of the new track are written into the new animation sequence file, combined with the inherited global parameters, the new animation sequence file is added to the main sequence of the original timeline as a sub-sequence, and the main sequence locates and calls the sub-sequence through the target identifier of the new track, forming a nested structure.
[0102] Through the embodiments of the present application, sub-sequence creation based on the original sequence is realized, and according to the parameter inheritance mechanism, the sub-sequence can reuse the global configuration of the main sequence and maintain independence through the coverage mechanism, and the generated new animation sequence file can be used as a modular component, which can be referenced by the main sequence or independently reused in other scenarios.
[0103] In step 105, in response to a read operation for the animation sequence file, an animation corresponding to the animation sequence file is generated.
[0104] In some embodiments, the animation in step 105 can be implemented by the following method: reading a track list and a key frame list of each track in the track list from the animation sequence file; for any one track, in response to a fourth operation of calling a key frame event in the key frame list of the track, playing the key frame event according to the time sequence on the timeline to obtain the animation of the track; and combining the animations of multiple tracks in the track list into the animation corresponding to the animation sequence file.
[0105] As an example, the read operation is the process of loading and parsing the animation sequence file by the animation playing component (such as Sequence Player), and the triggering time includes: when the game scene is loaded, when the user interaction is triggered (such as clicking a button), or when other animation event callbacks are triggered. The track list is a collection of all tracks stored in the animation sequence file, and each track corresponds to a specific attribute (such as position, transparency) of an animation instance. The list is arranged in the order of animation logic. The keyframe list is a collection of keyframes arranged in time sequence in the track, which is parsed into specific animation instructions at runtime, including time points, attribute values, easing curves, and event configurations. The fourth operation is the operation of triggering the execution of keyframe events, which is automatically triggered by the animation playing component according to the timeline progress, or forcibly triggered by external instructions (such as code calls). According to the time sequence on the timeline, the keyframe events are played, and when the animation plays to the time point of the keyframe, the event (such as callback method call) of the keyframe is automatically executed without manual intervention.
[0106] For a single track, the animation playing component generates the object of the animation (Tween object) based on the keyframe list. For example, based on two keyframes, the DOTween.To() method is called for track 1, and the target component, attribute path, starting value, target value, time length, and easing curve are input to create a position transition animation. The event callback is inserted into the generated animation object, and when the animation plays to the time point of the keyframe, the target event method is called through the adapter layer code, the attribute change is driven according to the timeline order, the event is triggered at the time point of the keyframe, and the complete animation of a single track is formed. The animation playing component integrates all the Tween objects of the tracks into an animation playing component object, ensuring that all the tracks are played synchronously based on the same timeline. The Sequence.Play() method is called to start the animation of all the tracks, and all the animations in the track list are executed synchronously to obtain the final animation corresponding to the animation sequence file.
[0107] For example, the position animation of track 1 and the transparency animation of track 2 are performed simultaneously within 0-2 seconds. If there is a time correlation between the tracks, such as the animation of track 2 needs to be started 1 second after the animation of track 1 starts, the Sequence.Insert() method is used to set the start delay of the track to ensure the correct timing.
[0108] Through the embodiments of the present application, the conversion from the animation sequence file to the actual animation is realized. According to the animation playing component, the mapping table, and the DOTween engine, the animation target positioning is accurate, the keyframe events are triggered in sequence, the coherent animation effect is formed through the synchronous playback of multiple tracks, and the complex animation sequence is generated with zero code.
[0109] In some embodiments, the preview animation can also be generated in real time by reading the keyframes in the animation sequence file and encapsulating the data structure of the keyframes as an input unit of the virtual engine; in response to a third operation of previewing the animation instance in the virtual engine, the input unit is parsed to generate an animation corresponding to the animation instance.
[0110] By way of example, the virtual engine is a sandbox engine embedded in the Unity editor, which is a virtual execution environment that is decoupled from the runtime environment and can simulate animation logic in the editing mode, and is used to preview the animation effect without starting the game. The input unit of the virtual engine is an instruction unit formed by encapsulating the data structure of the keyframes, which can be directly parsed by the virtual engine and contains all the parameters required to drive the animation. The third operation is an interactive operation for triggering animation preview in the editor, including but not limited to clicking the preview button, dragging the timeline slider, or pressing the play shortcut key, which is used to start the animation simulation process of the virtual engine.
[0111] The animation sequence file is loaded and read, the keyframe list of each track in the animation sequence file is parsed, and the parameter information of each keyframe is read, including implementation information, attribute information, easing curve type, and event configuration. The parameter information of the keyframes is encapsulated as an input unit that can be recognized by the virtual engine, and the input units corresponding to all the keyframes are arranged in time sequence to form a list as the execution instruction of the virtual engine. The animation instance in the animation sequence file is queried in the mapping relationship table, and if no matching animation instance is found, a preview failure is prompted. In response to the third operation of previewing the animation instance in the virtual engine, the virtual engine records the current attribute value of the animation instance, starts the virtual timeline, and the virtual timeline supports setting the playback speed, pausing / continuing, and jumping to a specific time point. The virtual engine traverses the input unit list in time sequence, calculates the execution progress of each input unit according to the current simulation time (e.g., gradually increasing from 0 seconds to 5 seconds), calculates the attribute transition value at the current time point based on the easing curve algorithm, and applies the calculated transition value to the components of the animation instance through the reflection mechanism. When the virtual time reaches the event time point of the keyframe, the virtual engine executes the callback in the event list to simulate the event behavior in the actual runtime, generates an animation corresponding to the animation instance on the virtual timeline, and the specific principles and steps of the animation generation are the same as those in step 105, which will not be described here.
[0112] Through the embodiments of the present application, real-time preview of the animation is realized. Through the sandbox engine and the mapping mechanism, the animation effect is simulated through the virtual timeline, reflection modification, and real-time rendering without starting the game, which improves the iteration efficiency of animation editing and avoids false modification of scene data.
[0113] The following continues to describe an exemplary structure of the implementation of the animation generation apparatus 455 provided by the embodiments of the present application as a software module. In some embodiments, as shown in FIG. 6, the animation generation apparatus 455 includes an animation sequence file reading module 601, a keyframe encapsulation module 602, a virtual engine module 603, and a mapping relationship table 604. Figure 2As shown, the software modules stored in the animation generation apparatus 455 in the memory 450 can include: an animation sequence file creation module 4551, configured to, in response to a first operation of dragging any one animation instance to a timeline, create a track corresponding to the animation instance; create a key frame corresponding to the animation instance in the track; in response to an event configuration operation for the key frame, obtain an event corresponding to the key frame; generate an animation sequence file of the animation instance based on the track corresponding to the animation instance, the key frame corresponding to the animation instance, and the event; an animation generation module 4552, configured to, in response to a reading operation for the animation sequence file, generate an animation corresponding to the animation sequence file.
[0114] In some embodiments, the animation sequence file creation module 4551 is further configured to parse the animation instance corresponding to the first operation to obtain an identifier of the animation instance; create a data structure of the track corresponding to the animation instance based on the identifier of the animation instance; and render the data structure of the track to an editable interface of the timeline, and display the track corresponding to the animation instance on the editable interface.
[0115] In some embodiments, the animation sequence file creation module 4551 is further configured to query the mapping relationship table; in a case where the identifier of the animation instance exists in the mapping relationship table, read the identifier; and if the identifier of the animation instance is not queried in the mapping relationship table, generate the identifier for the animation instance.
[0116] In some embodiments, the animation sequence file creation module 4551 is further configured to, in response to a second operation of creating a key frame in the track, select an insertion position of the key frame on the timeline; configure parameters of the key frame at the insertion position, generate a data structure of the key frame of the animation instance; write the data structure of the key frame into a key frame list of the track, and render to the editable interface of the timeline, and display all key frames in the key frame list on the editable interface.
[0117] In some embodiments, the animation sequence file creation module 4551 is further configured to select a target event method in a preconfigured script method; configure execution parameters of the target event method; write the target event method and the execution parameters into the data structure of the key frame to obtain the event corresponding to the key frame.
[0118] In some embodiments, the animation sequence file creation module 4551 is further configured to insert a new track in the timeline, the new track corresponding to a new animation sequence file; determine an inheritance relationship between the new track and an original track in the timeline, and write animation instructions of the original track into the new animation sequence file according to the inheritance relationship.
[0119] In some embodiments, the animation sequence file creation module 4551 is further configured to configure the interpolation of the change between the key frames based on a preset curve database, the preset curve database including a basic library and an extended library, the basic library including pre-stored curve methods, and the extended library including new curves automatically generated according to an effect description input by a user.
[0120] In some embodiments, the animation generation module 4552 is further configured to read the key frames in the animation sequence file and encapsulate a data structure of the key frames as an input unit of the virtual engine; in response to a third operation of previewing an animation instance in the virtual engine, parse the input unit to generate an animation corresponding to the animation instance.
[0121] In some embodiments, the animation generation module 4552 is further configured to read a track list and a key frame list of each track in the track list from the animation sequence file; in response to a fourth operation of invoking a key frame event in the key frame list of a track, play the key frame event according to a time sequence on a time axis to obtain an animation of the track; and combine animations of multiple tracks in the track list as an animation corresponding to the animation sequence file.
[0122] Embodiments of the present application provide a computer program product including computer programs or computer executable instructions. A processor of an electronic device reads the computer executable instructions from a computer readable storage medium, and the processor executes the computer executable instructions to cause the electronic device to perform the animation generation method provided by the embodiments of the present application.
[0123] Embodiments of the present application provide a computer readable storage medium, which stores computer executable instructions or computer programs. When the computer executable instructions or computer programs are executed by a processor, the processor will execute the animation generation method provided by the embodiments of the present application, for example, the animation generation method shown in the above. Figure 3A
[0124] In some embodiments, the computer readable storage medium can be a RAM, a ROM, a flash memory, a magnetic surface memory, an optical disc, or a CD-ROM, etc. storage medium; or can be various devices including one or any combination of the above storage medium.
[0125] In some embodiments, the computer executable instructions can be in the form of programs, software, software modules, scripts or codes, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and can be deployed in any form, including being deployed as independent programs or being deployed as modules, components, subroutines or other units suitable for use in a computing environment.
[0126] As an example, computer-executable instructions can be, but need not be, related directly to a file. Any file that is a computer- executable instruction can be a script file, a class file, an object file, a shared library / cabinet / file, and / or any other file that can be executed on a computer. As examples, the computer-executable instructions can include, but are not limited to, scripts written in JAVASCRIPT, Python, Ruby, etc., and / or executables, such as.com,.exe,.bat, etc.
[0127] As an example, the computer-executable instructions can be deployed to be executed by one electronic device or multiple electronic devices that are located at one site, or that are distributed among multiple sites and that are interconnected through a communication network.
[0128] In summary, according to the above embodiments, the identifier of the animation instance is queried according to the mapping relationship table, and the data structure of the track is created based on the identifier and rendered to the editable interface of the timeline. Regardless of how the object changes in the hierarchy, the identifier always locates the target, solving the problem of animation loss or reference invalidation. Dragging generates a track, clicking adds a key frame, and configuring the parameter panel with the timing and events. All operations are directly saved as a serializable animation sequence file, without the need to write code to independently produce complex animations, significantly reducing communication and implementation costs. One track corresponds to one attribute channel, one sequence file can contain multiple tracks, and the inheritance and coverage mechanism is used to realize global parameter reuse and local customization between sequences. The generated sub-sequence can be embedded in the timeline and loaded separately in other scenes to form a pluggable animation component library. The editor is embedded in the virtual engine, reads the same animation sequence file data, uses reflection to calculate in real time in the editing mode and echo to the view, and can verify the effect in real time during production, improving iteration efficiency.
[0129] The above merely describes the embodiments of the present application, but does not serve to limit the protection scope of the present application. Any modification, equivalent replacement, and improvement within the spirit and scope of the present application shall be included in the protection scope of the present application.
Claims
1. An animation generation method characterized by comprising: The method comprises: in response to a first operation of dragging any one animation instance to a timeline, creating a track corresponding to the animation instance; creating a key frame corresponding to the animation instance in the track; in response to an event configuration operation for the key frame, obtaining an event corresponding to the key frame; based on the track corresponding to the animation instance, the key frame corresponding to the animation instance, and the event, generating an animation sequence file of the animation instance; in response to a reading operation for the animation sequence file, generating an animation corresponding to the animation sequence file.
2. The method of claim 1, wherein, The creation of the track corresponding to the animation instance comprises: parsing the animation instance corresponding to the first operation to obtain an identifier of the animation instance; based on the identifier of the animation instance, creating a data structure of the track corresponding to the animation instance; rendering the data structure of the track to an editable interface of the timeline, and displaying the track corresponding to the animation instance on the editable interface.
3. The method of claim 2, wherein, The parsing of the animation instance corresponding to the first operation to obtain the identifier of the animation instance comprises: if the identifier of the animation instance exists in a mapping relationship table, reading the identifier; if the identifier of the animation instance is not queried in the mapping relationship table, generating an identifier for the animation instance.
4. The method of claim 1, wherein, The creation of the key frame corresponding to the animation instance in the track comprises: in response to a second operation of creating a key frame in the track, selecting an insertion position of the key frame on the timeline; configuring parameters of the key frame at the insertion position to generate a data structure of the key frame of the animation instance; writing the data structure of the key frame into a key frame list of the track, and rendering to the editable interface of the timeline to display all key frames in the key frame list on the editable interface.
5. The method of claim 1, wherein, The obtaining of the event corresponding to the key frame comprises: selecting a target event method in a preconfigured script method; configuring execution parameters of the target event method; writing the target event method and the execution parameters into the data structure of the key frame to obtain the event corresponding to the key frame.
6. The method of claim 1, wherein, The method further comprises: reading the key frame in the animation sequence file, and encapsulating the data structure of the key frame as an input unit of a virtual engine; in response to a third operation of previewing the animation instance in the virtual engine, parsing the input unit to generate an animation corresponding to the animation instance.
7. The method of claim 1, wherein, The method comprises: inserting a new track in a timeline, the new track corresponding to a new animation sequence file; determining an inheritance relationship between the new track and an original track in the timeline, and writing animation instructions of the original track into the new animation sequence file according to the inheritance relationship.
8. The method of claim 1, wherein, The generation of the animation corresponding to the animation sequence file comprises: reading a track list and a key frame list of each track in the track list from the animation sequence file; in response to a fourth operation of calling a key frame event in the key frame list of any one track, playing the key frame event according to a time sequence on the timeline to obtain an animation of the track. Combining animations of a plurality of tracks in the track list into an animation corresponding to the animation sequence file.
9. The method of claim 1, wherein, The change of the interpolation result between the key frames is configured based on a preset curve database, the preset curve database includes a basic library and an extended library, the basic library includes a pre-stored curve method, and the extended library includes a new curve automatically generated according to an effect description input by a user.
10. An animation generation apparatus characterized by comprising: The device comprises: An animation sequence file creation module is configured to, in response to a first operation of dragging any one animation instance to a timeline, create a track corresponding to the animation instance; create a key frame corresponding to the animation instance in the track; in response to an event configuration operation for the key frame, acquire an event corresponding to the key frame; and based on the track corresponding to the animation instance, the key frame corresponding to the animation instance, and the event, generate an animation sequence file of the animation instance; An animation generation module is configured to, in response to a read operation for the animation sequence file, generate an animation corresponding to the animation sequence file.
Citation Information
Patent Citations
Animation display method, device and equipment and storage medium
CN111275797A
Animation generation method and device
CN113808237A
Overpass animation generation method, device and equipment and readable medium
CN116407829A
Unity-based animation curve serialization method
CN117173293A
Visualization method for realizing 3D (three-dimensional) object and UI (user interface) animation event
CN119027555A