Role animation processing method and device, electronic equipment, computer readable storage medium and computer program product

By analyzing the movement trajectory curves of the foot bones of the virtual character, determining the contact areas and adjusting the coordinate values, the sliding phenomenon in the animation was solved, improving the realism and visual appeal of the animation.

CN122048722APending Publication Date: 2026-05-15SHENZHEN TENCENT COMP SYST CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHENZHEN TENCENT COMP SYST CO LTD
Filing Date
2024-11-14
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively repair slippage at arbitrary sliding speeds in animation production, especially when the ground contact speed is high. Ground contact detection based on motion speed is prone to missing detections, leading to slippage repair failures.

Method used

By analyzing the movement trajectory curves of the foot bone points of the virtual character, the contact areas are determined, and the coordinate values ​​of other contact frames except the initial contact frame are set as the coordinate values ​​of the initial contact frame, thus realizing contact detection and slide repair at any speed.

Benefits of technology

It effectively eliminates the sliding phenomenon in animation, improves the realism and visual appeal of animation, and enhances the production efficiency and user experience of 3D animated films and games.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122048722A_ABST
    Figure CN122048722A_ABST
Patent Text Reader

Abstract

The invention provides a character animation processing method and device, electronic equipment, a computer readable storage medium and a computer program product. The method comprises the following steps: acquiring a moving track curve of foot skeleton points of a virtual character from a character animation; ground contact detection is carried out based on the moving track curve, a ground contact area of the virtual character in the moving process is obtained, and the ground contact area comprises a plurality of ground contact frames; a first coordinate value is obtained, and the first coordinate value is a coordinate value of a foot skeleton point of the virtual character in an initial grounding frame of the grounding area; the coordinate values of the foot skeleton points of the virtual character in other grounding frames of the grounding area are set to be the first coordinate values, and the other grounding frames are any grounding frame except the starting grounding frame in the multiple grounding frames. According to the invention, ground contact detection and sliding step repair at any sliding speed can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a method, apparatus, electronic device, computer-readable storage medium, and computer program product for processing character animation. Background Technology

[0002] During the animation production process, due to animator errors or technical limitations, when a character walks or runs, the contact point between the foot and the ground may slip unnaturally, a phenomenon known as "slipping."

[0003] Related technologies can detect ground contact based on foot movement speed, marking animation frames with low foot movement speed (below a certain set threshold) as ground contact frames, and fixing the character's feet in adjacent ground contact frames to the same position, thereby eliminating the slippage phenomenon. However, when the ground contact sliding speed is high, the ground contact detection stage based on movement speed may miss, resulting in the failure of slippage repair. Summary of the Invention

[0004] This application provides a method, apparatus, electronic device, computer-readable storage medium, and computer program product for processing character animation, which can realize ground contact detection and slide correction at any sliding speed.

[0005] The technical solution of this application embodiment is implemented as follows:

[0006] This application provides a method for processing character animation, including:

[0007] The movement trajectory curve of the foot bone points of the virtual character is obtained from the character animation;

[0008] Ground contact detection is performed based on the movement trajectory curve to obtain the ground contact areas of the virtual character during movement, wherein the ground contact areas include multiple ground contact frames;

[0009] Obtain a first coordinate value, wherein the first coordinate value is the coordinate value of the foot bone point of the virtual character in the initial ground contact frame between the contact areas;

[0010] The coordinate values ​​of the virtual character's foot bone points in other touch frames between the touch areas are set to the first coordinate value, wherein the other touch frames are any touch frames other than the initial touch frame among the plurality of touch frames.

[0011] This application provides a character animation processing apparatus, including:

[0012] The acquisition module is used to acquire the movement trajectory curve of the foot bone points of the virtual character from the character animation;

[0013] The first detection module is used to perform ground contact detection based on the movement trajectory curve to obtain the ground contact area between the virtual character during the movement, wherein the ground contact area includes multiple ground contact frames;

[0014] The acquisition module is further configured to acquire a first coordinate value, wherein the first coordinate value is the coordinate value of the foot bone point of the virtual character in the initial ground contact frame between the contact areas;

[0015] The first processing module is configured to set the coordinate values ​​of the foot bone points of the virtual character in other touch frames between the touch areas to the first coordinate value, wherein the other touch frames are any one of the plurality of touch frames other than the initial touch frame.

[0016] This application provides an electronic device, including:

[0017] Memory is used to store executable instructions for a computer;

[0018] The processor, when executing computer-executable instructions stored in the memory, implements the character animation processing method provided in the embodiments of this application.

[0019] This application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the character animation processing method provided in this application.

[0020] This application provides a computer program product, including a computer program or computer executable instructions, which, when executed by a processor, implements the character animation processing method provided in this application.

[0021] The embodiments of this application have the following beneficial effects:

[0022] First, by analyzing the movement trajectory curves of the virtual character's foot bones obtained from the character animation, the feature differences of the trajectory curves during movement are extracted to detect ground touch frames, thereby determining the ground touch zones of the virtual character during movement. Next, the coordinate values ​​of the virtual character's foot bones in all ground touch frames except the initial ground touch frame are set to the coordinate values ​​of the virtual character's foot bones in the initial ground touch frame, thus eliminating the sliding phenomenon in the animation. Therefore, this method of detecting ground touch frames and eliminating animation sliding based on the movement trajectory curves of the foot bones is independent of a speed threshold and can achieve ground touch detection and sliding correction at any sliding speed. Attached Figure Description

[0023] Figure 1 This is a schematic diagram of the architecture of the character animation processing system 100 provided in this application embodiment;

[0024] Figure 2 This is a schematic diagram of the structure of the electronic device 500 provided in the embodiments of this application;

[0025] Figure 3 This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0026] Figure 4 This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0027] Figure 5 This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0028] Figure 6A This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0029] Figure 6B This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0030] Figure 6C This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0031] Figure 7 This is a flowchart illustrating the character animation processing method provided in an embodiment of this application;

[0032] Figure 8 This is a schematic diagram of the movement trajectory curve of the foot bone points of the character provided in the embodiments of this application;

[0033] Figure 9 This is a comparative schematic diagram of the movement trajectory curves of the left and right foot bone points of the character provided in the embodiments of this application. Detailed Implementation

[0034] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0035] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0036] It is understood that in the embodiments of this application, data such as user information are involved. When the embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with relevant laws, regulations and standards.

[0037] In the following description, the terms “first, second, ...” are used merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that “first, second, ...” may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0038] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0039] Before providing a further detailed description of the embodiments of this application, the nouns and terms involved in the embodiments of this application will be explained, and the nouns and terms involved in the embodiments of this application shall be interpreted as follows.

[0040] 1) Responding to: used to indicate the conditions or states on which the operation is performed depends. When the conditions or states on which it depends are met, one or more operations can be performed in real time or with a set delay. Unless otherwise specified, there is no restriction on the order in which the multiple operations are performed.

[0041] 2) Character Animation: Character animation is a technical term in the fields of computer graphics and animation production, referring to the process of creating and manipulating the movements and expressions of virtual characters. In character animation, animators or computer programs bring virtual characters to life, enabling them to perform various movements and facial expressions to tell stories or express emotions.

[0042] 3) Touchdown Detection: In character animation, "touchdown detection" refers to the mechanism used in animation or games to determine whether a character's feet are in contact with the ground. This is crucial for the smoothness of animation and the realism of physics, especially when a character is jumping, running, or walking. The implementation of touchdown detection typically relies on a physics engine and collision detection technology.

[0043] 4) Sliding Step: In 3D animation production, the realism of character animation is crucial to enhancing the audience experience. However, during the animation production process, due to animator errors or technical limitations, the contact point between the character's feet and the ground may unnaturally slip when walking or running, a phenomenon known as "sliding step." This phenomenon significantly reduces the realism and visual appeal of the animation.

[0044] The relevant technology detects ground contact based on foot movement speed. It marks animation frames with low foot movement speed (below a certain set threshold) as ground contact frames, and then fixes the character's feet in adjacent ground contact frames to the same position, thereby eliminating the slipping phenomenon. However, the relevant technology can only repair small slipping steps with low ground contact speed. When the ground contact speed is high, it will miss the detection in the ground contact detection stage based on movement speed, resulting in the failure of slipping step repair. In other words, this movement speed-based method can only handle small slipping steps with low ground contact speed and is difficult to handle large slipping steps with high ground contact speed.

[0045] In view of this, embodiments of this application provide a method, apparatus, electronic device, computer-readable storage medium, and computer program product for processing character animation, capable of ground contact detection and slide correction at any sliding speed. The electronic device provided in this application embodiment can be implemented as a server, or implemented collaboratively by a server and a terminal. The following description uses an example of a method for processing character animation provided in this application embodiment implemented collaboratively by a server and a terminal.

[0046] For example, see Figure 1 , Figure 1 This is a schematic diagram of the architecture of the character animation processing system 100 provided in this application embodiment. To support the processing application of a single character animation, such as... Figure 1 As shown, the character animation processing system 100 includes: a server 200, a network 300, and a terminal 400. The terminal 400 is connected to the server 200 through the network 300. The network 300 can be a local area network (LAN), a wide area network (WAN), or a combination of both. The terminal 400 is a terminal associated with the user. A client 410 runs on the terminal 400. The client 410 can be various types of clients, such as dedicated character animation processing clients, game clients, or video clients.

[0047] In some embodiments, a user controls a virtual character in a character animation to perform related movements (e.g., walking, running) via a client 410. The terminal 400 transmits the character animation generated by the virtual character's related movements to the server 200 via a network 300. Then, the server 200, based on the received character animation, obtains the movement trajectory curve of the virtual character's foot bone points from the animation. Next, the server 200 performs ground contact detection based on the obtained movement trajectory curve to determine the contact areas between the virtual character during movement, wherein the contact areas include multiple contact points. Frame; then, server 200 obtains the first coordinate value from the touch area, where the first coordinate value is the coordinate value of the virtual character's foot bone point in the starting frame of the touch area; then, server 200 sets the coordinate values ​​of the virtual character's foot bone point in other touch frames of the touch area as the first coordinate value, where other touch frames are any touch frames other than the starting touch frame, to obtain the repaired animation; finally, server 200 sends the obtained repaired animation to terminal 400 through network 300 and presents it on client 410.

[0048] It should be noted that the technical solution provided in this application can be applied to various scenarios, such as film, television, video games, virtual reality, and animated short film production.

[0049] In some embodiments, taking the production of a 3D animated film as an example, during the production process of a 3D animated film, due to animator errors or technical limitations, the contact point between the feet and the ground of a virtual character may slip unnaturally when walking or running. To address this slippage, the character animation processing method of this application is used. The server automatically obtains the movement trajectory curve of the virtual character's foot bone points from the 3D animated film and performs ground contact detection based on the movement trajectory curve to determine the contact areas of the virtual character during movement. These contact areas include multiple ground contact frames, thus completing the ground contact detection in the 3D animated film. Next, the server automatically obtains the first coordinate value in the contact area. The first coordinate value is the coordinate value of the virtual character's foot bone point in the initial ground contact frame of the contact area. The server then sets the coordinate values ​​of the virtual character's foot bone points in other ground contact frames of the contact area to the first coordinate value. These other ground contact frames are any ground contact frame other than the initial ground contact frame. This automatically corrects the slippage phenomenon in the 3D animated film, improving the realism and visual appeal of the 3D animated film, and effectively improving the production efficiency and quality of the 3D animated film.

[0050] In some embodiments, taking a 3D animated game as an example, when a user operates a virtual character to perform actions such as walking or running, the contact point between the foot and the ground may slip unnaturally. Using the character animation processing method in this application, the server automatically captures the movement trajectory curve of the virtual character's foot bone points from the 3D game and performs ground contact detection based on the movement trajectory curve to determine the contact areas between the virtual character during movement. These contact areas include multiple ground contact frames, thus completing the ground contact detection in the 3D animated game and effectively capturing the slipping phenomenon generated by the virtual character during movement. Next, the server automatically obtains the first coordinate value in the contact area. The first coordinate value is the coordinate value of the virtual character's foot bone point in the initial ground contact frame of the contact area, and sets the coordinate values ​​of the virtual character's foot bone point in other ground contact frames of the contact area as the first coordinate value. Other ground contact frames are any ground contact frame other than the initial ground contact frame among multiple ground contact frames. This automatically repairs the slipping phenomenon generated by movement in the 3D animated game, thereby improving the realism and playability of the 3D animated game and effectively enhancing the user's gaming experience.

[0051] In addition, it should be noted that Figure 1 The server 200 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms. The terminal 400 can be a smartphone, tablet, laptop, desktop computer, smart speaker, smartwatch, in-vehicle terminal, etc., but is not limited to these. The terminal 400 and server 200 can be directly or indirectly connected via wired or wireless communication, which is not limited in this embodiment.

[0052] In some embodiments, the terminal or server can also implement the character animation processing method provided in this application embodiment by running various computer-executable instructions or computer programs. For example, computer-executable instructions can be microprogram-level commands, machine instructions, or software instructions. Computer programs can be native programs or software modules in an operating system; they can be native applications (APPs), i.e., programs that need to be installed in the operating system to run, such as video playback APPs; or they can be applets that can be embedded in any APP, i.e., programs that only need to be downloaded to a browser environment to run. In summary, the aforementioned computer-executable instructions can be any form of instruction, and the aforementioned computer programs can be any form of application, module, or plugin.

[0053] The structure of the electronic device provided in the embodiments of this application will be further described below. Taking the electronic device as a terminal as an example, see... Figure 2 , Figure 2 This is a schematic diagram of the structure of the electronic device 500 provided in the embodiments of this application. Figure 2 The illustrated electronic device 500 includes at least one processor 510, a memory 550, at least one network interface 520, and a user interface 530. The various components in the electronic device 500 are coupled together via a bus system 540. It is understood that the bus system 540 is used to implement communication between these components. In addition to a data bus, the bus system 540 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 540.

[0054] The processor 510 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.

[0055] User interface 530 includes one or more output devices 531 that enable the presentation of media content, including one or more speakers and / or one or more visual displays. User interface 530 also includes one or more input devices 532, including user interface components that facilitate user input, such as a keyboard, mouse, microphone, touch screen display, camera, other input buttons and controls.

[0056] The memory 550 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 550 may optionally include one or more storage devices physically located away from the processor 510.

[0057] The memory 550 may include volatile memory or non-volatile memory, or both. The non-volatile memory may be read-only memory (ROM), and the volatile memory may be random access memory (RAM). The memory 550 described in this application embodiment is intended to include any suitable type of memory.

[0058] In some embodiments, memory 550 is capable of storing data to support various operations, examples of which include programs, modules, and data structures or subsets or supersets thereof, as illustrated below.

[0059] Operating system 551 includes system programs for handling various basic system services and performing hardware-related tasks, such as the framework layer, core library layer, driver layer, etc., for implementing various basic business functions and handling hardware-based tasks;

[0060] The network communication module 552 is used to reach other computing devices via one or more (wired or wireless) network interfaces 520, exemplary network interfaces 520 including: Bluetooth, WiFi, and Universal Serial Bus (USB), etc.

[0061] Presentation module 553 is configured to enable the presentation of information (e.g., a user interface for operating peripheral devices and displaying content and information) via one or more output devices 531 (e.g., a display screen, a speaker, etc.) associated with user interface 530;

[0062] The input processing module 554 is used to detect and translate one or more user inputs or interactions from one or more input devices 532.

[0063] In some embodiments, the apparatus provided in this application can be implemented in software. Figure 2A processing device 555 for character animation stored in memory 550 is shown. This device can be software in the form of programs and plugins, and includes the following software modules: an acquisition module 5551, a first detection module 5552, a first processing module 5553, a second detection module 5554, and a second processing module 5555. These modules are logically connected and can therefore be arbitrarily combined or further separated according to the functions implemented. It should be noted that... Figure 2 For ease of explanation, all the above modules are shown at once, but this should not be interpreted as excluding the implementation of the character animation processing device 555, which may only include the acquisition module 5551, the first detection module 5552, and the first processing module 5553. The functions of each module will be explained below.

[0064] The following will describe in detail the character animation processing method provided in this application embodiment, with reference to the exemplary application and implementation of the terminal provided in the embodiments of this application.

[0065] See Figure 3 , Figure 3 This is a flowchart illustrating the character animation processing method provided in this application embodiment, which will be combined with... Figure 3 The steps shown are explained.

[0066] It should be noted that, Figure 3 The methods illustrated can be executed by various forms of computer programs running on the terminal, and are not limited to clients. For example, they can also be the operating systems, software modules, scripts, and applets mentioned above. Therefore, the client-side examples used below should not be considered as limiting the embodiments of this application. Furthermore, for ease of description, no specific distinction will be made between the terminal and the client running on the terminal below.

[0067] In step 101, the movement trajectory curve of the foot bone points of the virtual character is obtained from the character animation.

[0068] It should be noted that the foot bone points of a virtual character can refer to the ankle point, that is, the main joint point connecting the foot and the lower leg; they can also refer to the base of the metatarsal bone, that is, the part of the bone connecting the base of the toes and the ankle near the ankle; or they can refer to the middle of the foot, that is, the center of the foot as a bone point. No specific limitation is made here.

[0069] In some embodiments, firstly, the positions of the foot bone points of the virtual character in the character animation (e.g., fixed points of the foot such as the ankle and heel) are determined; then, the virtual character is animated, that is, the motion scenes of the virtual character in the character animation (including walking, running, or any other motion scenes involving foot movement) are captured; next, the coordinates of the foot bone points are extracted from each frame of the captured character animation; finally, according to the timeline of the character animation playback, the extracted coordinates of the foot bone points are arranged to generate the movement trajectory curve of the foot bone points of the virtual character.

[0070] For example, taking the left ankle of a virtual character in a character animation as a foot bone point, firstly, the walking frame of the virtual character's left ankle is captured, and its position in the character animation is determined. Next, the coordinates of the left ankle are extracted from each frame of the walking frame. Finally, according to the timeline of the character animation playback, the extracted coordinates of the left ankle are arranged to generate the movement trajectory curve of the virtual character's foot bone points. In this way, by extracting the coordinate information of the virtual character's foot bone points in each frame of the animation, the positional changes of the virtual character's foot bone points can be accurately obtained.

[0071] In some embodiments, see Figure 4 , Figure 4 This is a flowchart illustrating the character animation processing method provided in this application embodiment, such as... Figure 4 As shown, Figure 3 Step 101 shown can be achieved through Figure 4 Steps 1011 to 1012 shown are implemented, and will be combined with Figure 4 The steps shown are explained.

[0072] In step 1011, for each frame of the character animation, the coordinate values ​​of the foot bone points of the virtual character in the frame are obtained.

[0073] Here, the coordinate value can be the height of the foot bone point in one-dimensional space, the coordinate value of the foot bone point in two-dimensional space, or the coordinate value of the foot bone point in three-dimensional space; no specific limitation is made here.

[0074] In some embodiments, firstly, the character animation containing the information to be extracted is obtained, wherein the character animation contains enough keyframes and the position of the foot bone points during the movement can be accurately captured in each frame of the animation; then, each frame of the character animation is iteratively processed, and for each frame, the position of the foot bone point (e.g., the ankle of the left foot) is selected, and the coordinate value of the foot bone point in the current frame is read (e.g., it can be a one-dimensional height value, a two-dimensional coordinate, or a three-dimensional coordinate); finally, the coordinate value of each bone point in each frame is recorded and stored (e.g., stored in a table, database, or text document).

[0075] For example, taking a virtual character's walking animation as an example, to obtain the coordinates of the left ankle in each frame of the animation, assuming the animation has 60 frames, we would iterate from frame 1 to frame 60. In frame 1, we would read the position of the left ankle and record its coordinates as (0, 10, 5). Similarly, in frame 2, we would read the position of the left ankle and record its coordinates as (0, 10.2, 5.1). This process would continue iteratively, reading the position of the left ankle in each frame and recording the corresponding coordinates, until all 60 frames were read. Finally, we would store the coordinates of all the frames in a table. In this way, we can analyze the ankle's movement path in the animation and its precise position in each frame based on the read coordinates.

[0076] In step 1012, the movement trajectory curve of the foot bone points of the virtual character is generated based on multiple coordinate values ​​and the playback time of the frame corresponding to each coordinate value.

[0077] In some embodiments, firstly, the coordinate values ​​of the foot bone points in each frame and the corresponding frame playback time are collected; then, the collected coordinate values ​​of the foot bone points are sorted according to the playback time of the frames; finally, the sorted coordinate values ​​of the foot bone points are connected by a smooth curve to generate the movement trajectory curve of the foot bone points of the virtual character.

[0078] It should be noted that when the coordinate values ​​of adjacent foot bone points differ significantly after sorting, interpolation methods (such as linear interpolation, Bezier interpolation, spline interpolation, etc.) can be used to generate the movement trajectory curve of the virtual character's foot bone points based on the coordinate values ​​and playback time.

[0079] For example, suppose the coordinates of the foot bone points obtained in each frame are as follows: Frame 1 (0 seconds) 10 mm, Frame 2 (0.1 seconds) 10.1 mm, Frame 3 (0.2 seconds) 10.2 mm, Frame 4 (0.3 seconds) 10.3 mm, Frame 5 (0.4 seconds) 10.4 mm, Frame 6 (0.5 seconds) 10.5 mm, Frame 7 (0.6 seconds) 10.6 mm, Frame 8 (0.7 seconds) 10.6 mm, Frame 9 (0.8 seconds) 10.45 mm, and Frame 10 (0.9 seconds) 10.30 mm. Then, the collected coordinates of the foot bone points are sorted according to the playback time of the frames, and spline interpolation is used to generate a smooth trajectory curve, where the horizontal axis of the curve is the playback time and the vertical axis is the coordinates of the foot bone points. In this way, we can better understand the changes in the virtual character's position based on the trajectory curve, thereby better analyzing and adjusting the character's movements.

[0080] In step 102, ground contact detection is performed based on the movement trajectory curve to obtain the contact areas between virtual characters during movement.

[0081] Here, the area between touch zones includes multiple touch frames.

[0082] It should be noted that the touch zone refers to the interval between the virtual character's feet and the ground in the current character animation. The touch zone can include multiple consecutive touch frames; for example, the interval from the first touch frame to the last touch frame can be called the touch zone. A touch frame is an image frame in the character animation where the virtual character's feet touch the ground; that is, in a touch frame, the virtual character's feet are in contact with the ground.

[0083] In some embodiments, after acquiring the movement trajectory curve of the foot bone points, firstly, the conditions for the foot to contact the ground are determined, such as determining the ground height value and determining a height threshold based on the ground height value, and judging the relationship between the height value of the foot bone points and the height threshold; then, each point on the trajectory curve is traversed to check whether the height value of the foot bone points meets the ground contact condition, that is, judging the size relationship between the height value of the foot bone points and the height threshold. When the height value of the foot bone points is less than or equal to the height threshold, it is determined that the virtual character's foot is in contact with the ground in the current frame, that is, the current frame is determined to be a ground contact frame. When the height value of the foot bone points is greater than the height threshold, it is determined that the virtual character's foot is off the ground in the current frame, that is, the current frame is determined to be a non-ground contact frame; finally, the ground contact frames are collected to determine the time period from when the foot touches the ground to when the foot leaves the ground again, thereby determining the contact area of ​​the virtual character during the movement.

[0084] For example, taking the movement trajectory curve of a virtual character's left ankle as an example, assuming there are a total of 10 frames, the height values ​​of the virtual character's left ankle from frame 1 to frame 10 are 2.2 cm, 2.1 cm, 2.0 cm, 1.9 cm, 1.85 cm, 1.8 cm, 1.9 cm, 1.95 cm, 2.05 cm, and 2.1 cm, respectively. Assuming a height threshold of 2 cm, comparing each frame in the movement trajectory curve, we determine that frames 3 to 8 are all ground-touching frames, meaning the virtual character's left foot is in contact with the ground during frames 3 to 8. Therefore, we can determine that the time period from when the virtual character's foot touches the ground to when it leaves the ground again is from frames 3 to 8, i.e., the contact area of ​​the virtual character during movement is from frames 3 to 8. In this way, by detecting ground contact, we can ensure that the interaction between the character and the ground during movement is more natural and conforms to the laws of physics.

[0085] In some embodiments, see Figure 5 , Figure 5 This is a flowchart illustrating the character animation processing method provided in this application embodiment, such as... Figure 5 As shown, Figure 3 Step 102 shown can be achieved through Figure 5 Steps 1021 to 1023 shown are implemented, and will be combined with Figure 5 The steps shown are explained.

[0086] In step 1021, the monotonically increasing interval of the movement trajectory curve is determined.

[0087] Here, the monotonically increasing interval corresponds to the virtual character's foot lifting movement.

[0088] It should be noted that the monotonically increasing interval of the movement trajectory curve can be determined by visually inspecting the trend of the movement trajectory curve to determine the monotonically increasing interval (i.e., the continuously rising part of the curve), or by calculating the first derivative of the trajectory curve to determine the monotonically increasing interval (i.e., the part of the first derivative where the derivative is greater than 0), or by determining the monotonically increasing interval of the movement trajectory curve based on the movement of the virtual character (i.e., the time period corresponding to the virtual character's leg raising movement in the character animation). No specific limitations are made here.

[0089] In some embodiments, the movement trajectory curve includes multiple points that correspond one-to-one with multiple coordinate values, see [link to documentation]. Figure 6A , Figure 6A This is a flowchart illustrating the character animation processing method provided in this application embodiment, such as... Figure 6A As shown, Figure 5 Step 1021 shown can be achieved through Figure 6A Steps 10211 to 10214 shown are implemented by combining Figure 6A The steps shown are explained.

[0090] In step 10211, the traversal starts from the starting point of the movement trajectory curve. If the coordinate value of the current point is less than or equal to the coordinate value of the next point, the traversal continues.

[0091] For example, assuming the starting point of the movement trajectory curve has a height of 0 cm, and the height of the next point is 0.1 cm, the current point's height is less than the next point's height, meaning the current movement trajectory curve is in an upward segment, within the monotonically increasing interval of the curve, and we can continue to traverse subsequent points.

[0092] In step 10212, if the coordinate value of the current point is greater than the coordinate value of the next point, the traversal ends.

[0093] For example, suppose the current height of the movement trajectory curve is 10.5 cm, and the height of the next point is 10.4 cm. The current height is greater than the next height, which means that the current movement trajectory curve is in a descending segment and has left the monotonically increasing interval of the curve, so the traversal can be ended.

[0094] In step 10213, if the number of points traversed is greater than 1, then the interval consisting of the traversed points will be used as the monotonically increasing interval of the movement trajectory curve.

[0095] For example, suppose the number of points traversed is 5, namely 2.1 cm in frame 1, 2.2 cm in frame 2, 2.4 cm in frame 3, 2.5 cm in frame 4, and 2.7 cm in frame 5. Then, the 5 traversed points are combined into an interval (from frame 1 to frame 5), which is a monotonically increasing interval of the movement trajectory curve.

[0096] In step 10214, the point after the end point of the monotonically increasing interval is taken as the new starting point, and the above traversal process is repeated until all points have been traversed.

[0097] Continuing with the example above, assuming that the traversal yields a monotonically increasing interval from frame 1 to frame 5, then frame 6 will be used as the new starting point. The traversal will continue to determine the monotonically increasing interval in the movement trajectory curve until all points in the movement trajectory curve have been traversed.

[0098] In some embodiments, the movement trajectory curve includes a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character; determining the monotonically increasing interval of the movement trajectory curve includes: determining a first monotonically increasing interval of the first movement trajectory curve and determining a second monotonically increasing interval of the second movement trajectory curve; after performing the above step 1021, the following processing may also be performed: obtaining the second coordinate value of the left foot bone point of the virtual character in the first monotonically increasing interval and the third coordinate value of the right foot bone point of the virtual character in the second monotonically increasing interval; in response to the second coordinate value being greater than the third coordinate value and the difference between the second coordinate value and the third coordinate value being greater than the difference threshold, deleting the first monotonically increasing interval.

[0099] It should be noted that the second coordinate value refers to the coordinate value of the left foot bone point of the virtual character in the initial frame of the first monotonically increasing interval, and the third coordinate value refers to the coordinate value of the right foot bone point of the virtual character in the same animation frame as the second coordinate value.

[0100] In some embodiments, the trajectory curves of the left and right foot bone points of the virtual character are first traversed to determine the monotonically increasing interval corresponding to each foot bone point. Then, an interval is selected from all the monotonically increasing intervals of the left foot, and the second coordinate value of the foot bone point corresponding to the initial frame in the current interval is extracted. Similarly, the third coordinate value of the foot bone point in the same frame is selected from all the monotonically increasing intervals of the right foot. Subsequently, the difference between the second coordinate value and the third coordinate value is calculated. If the second coordinate value of the left foot is greater than the third coordinate value of the right foot, and the difference is greater than a predetermined difference threshold, it indicates that the left foot of the virtual character is detached from the ground in the current frame, and the current monotonically increasing interval is deleted. The above process is repeated for each frame in the monotonically increasing interval until all the monotonically increasing intervals are traversed.

[0101] For example, assuming the monotonically increasing interval of the left foot is from frame 1 to frame 8, select frame 1 and extract the second coordinate value of the left foot bone point as 10.2 cm. Select the first frame corresponding to the right foot and extract the third coordinate value of the right foot bone point as 0.2 cm. Assuming the difference threshold is 5 cm, calculate the difference between the second and third coordinate values. If the difference is 10 cm, which is greater than the difference threshold, it means that the left foot is in a suspended state in the current frame. This means that the left foot of the virtual character in the current frame is detached from the ground, and the monotonically increasing interval in which the left foot is located in the current frame is deleted.

[0102] In step 1022, the monotonically decreasing interval of the movement trajectory curve is determined.

[0103] Here, the monotonically decreasing interval corresponds to the landing motion of the virtual character.

[0104] It should be noted that the monotonically decreasing interval of the movement trajectory curve can be determined by visually inspecting the trend of the movement trajectory curve to determine the monotonically decreasing interval (i.e., the continuously decreasing part of the curve), or by calculating the first derivative of the trajectory curve to determine the monotonically decreasing interval (i.e., the part of the first derivative where the derivative is less than 0), or by determining the monotonically decreasing interval of the movement trajectory curve based on the movement of the virtual character (i.e., the time period corresponding to the landing movement of the virtual character in the character animation). No specific limitations are made here.

[0105] In some embodiments, the movement trajectory curve includes multiple points that correspond one-to-one with multiple coordinate values, see [link to documentation]. Figure 6B , Figure 6B This is a flowchart illustrating the character animation processing method provided in this application embodiment, such as... Figure 6B As shown, Figure 5 Step 1022 shown can be achieved through Figure 6B Steps 10221 to 10224 shown are implemented by combining Figure 6B The steps shown are explained.

[0106] In step 10221, the traversal starts from the starting point of the movement trajectory curve. If the coordinate value of the current point is greater than or equal to the coordinate value of the next point, the traversal continues.

[0107] For example, suppose the height of the starting point of the movement trajectory curve is 10.2 cm, and the height of the next point is 10.1 cm. The height of the current point is greater than the height of the next point, which means that the current movement trajectory curve is in a descending segment and is within the monotonically decreasing interval of the curve. We can continue to traverse subsequent points.

[0108] In step 10222, if the coordinate value of the current point is less than the coordinate value of the next point, the traversal ends.

[0109] For example, suppose the current height of the movement trajectory curve is 0 cm, and the height of the next point is 0.1 cm. The current height is less than the next height, which means that the current movement trajectory curve is in an upward segment and has left the monotonically decreasing interval of the curve, so the traversal can be ended.

[0110] In step 10223, if the number of points traversed is greater than 1, then the interval consisting of the traversed points will be used as the monotonically decreasing interval of the movement trajectory curve.

[0111] For example, suppose the number of points traversed is 5, namely 2.5 cm in frame 1, 2.4 cm in frame 2, 2.3 cm in frame 3, 2.3 cm in frame 4, and 2.1 cm in frame 5. Then, the 5 traversed points are combined into an interval (from frame 1 to frame 5), which is a monotonically decreasing interval of the movement trajectory curve.

[0112] In step 10224, the point after the end point of the monotonically decreasing interval is taken as the new starting point, and the above traversal process is repeated until all points have been traversed.

[0113] Continuing with the example above, assuming that the traversal yields a monotonically decreasing interval from frame 1 to frame 5, then frame 6 will be used as the new starting point to continue traversing and determining the monotonically decreasing interval in the movement trajectory curve, until all points in the movement trajectory curve have been traversed.

[0114] In some embodiments, the movement trajectory curve includes a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character; determining the monotonically decreasing interval of the movement trajectory curve includes: determining a first monotonically decreasing interval of the first movement trajectory curve and determining a second monotonically decreasing interval of the second movement trajectory curve; after performing the above step 1022, the following processing may also be performed: obtaining the fourth coordinate value of the left foot bone point of the virtual character in the first monotonically decreasing interval and the fifth coordinate value of the right foot bone point of the virtual character in the second monotonically decreasing interval; in response to the fourth coordinate value being greater than the fifth coordinate value and the difference between the fourth coordinate value and the fifth coordinate value being greater than the difference threshold, deleting the first monotonically decreasing interval.

[0115] It should be noted that the fourth coordinate value refers to the coordinate value of the left foot bone point of the virtual character in the initial frame of the first monotonically decreasing interval, and the fifth coordinate value refers to the coordinate value of the right foot bone point of the virtual character in the same animation frame as the fourth coordinate value.

[0116] In some embodiments, the trajectory curves of the left and right foot bone points of the virtual character are first traversed to determine the monotonically decreasing interval corresponding to each foot bone point. Then, an interval is selected from all the monotonically decreasing intervals of the left foot, and the fourth coordinate value of the foot bone point corresponding to the initial frame in the current interval is extracted. Similarly, the fifth coordinate value of the foot bone point in the same frame is selected from all the monotonically decreasing intervals of the right foot. Subsequently, the difference between the fourth coordinate value and the fifth coordinate value is calculated. If the fourth coordinate value of the left foot is greater than the fifth coordinate value of the right foot, and the difference is greater than a predetermined difference threshold, it indicates that the left foot of the virtual character is detached from the ground in the current frame, and the current monotonically decreasing interval is deleted. The above process is repeated for each frame in the monotonically decreasing interval until all the monotonically decreasing intervals are traversed.

[0117] For example, assuming the monotonically decreasing interval of the left foot is from frame 1 to frame 8, select frame 1 and extract the fourth coordinate value of the left foot bone point as 7.2 cm. Select the first frame corresponding to the right foot and extract the fifth coordinate value of the right foot bone point as 2.0 cm. Assuming the difference threshold is 5 cm, the difference between the fourth and fifth coordinate values ​​is calculated to be 5.2 cm. Since it is greater than the difference threshold, it means that the left foot is in a suspended state in the current frame. Therefore, it means that the left foot of the virtual character is detached from the ground in the current frame, and the monotonically decreasing interval in which the left foot is located in the current frame is deleted.

[0118] In step 1023, the contact areas of the virtual character during movement are determined based on the monotonically increasing and monotonically decreasing intervals.

[0119] In some embodiments, see Figure 6C , Figure 6C This is a flowchart illustrating the character animation processing method provided in this application embodiment, such as... Figure 6C As shown, Figure 5 Step 1023 shown can be achieved through Figure 6C Steps 10231 to 10232 shown are implemented by combining Figure 6C The steps shown are explained.

[0120] In step 10231, the lowest point of the monotonically increasing interval is taken as the first seed point, and regions are grown to both sides of the time axis respectively. The frames corresponding to the points whose height difference with the first seed point is less than the first height difference threshold are added to the growth region as ground touch frames, so as to obtain the first touch area between the virtual character during the movement.

[0121] Here, the lowest point of the monotonically increasing interval corresponds to the starting point of the leg-lifting movement.

[0122] In some embodiments, on the trajectory curve of the character's foot bone points, firstly, all monotonically increasing intervals are identified, and the lowest point in each monotonically increasing interval is selected as the seed point; next, a first height difference threshold is set; then, region growth is performed on both sides of the time axis, starting from the seed point and expanding to the left and right sides of the time axis respectively. During the expansion process, the difference between the coordinate value of each adjacent point and the coordinate value of the seed point is checked. If the difference between the coordinate value of a point and the coordinate value of the seed point is less than the first height difference threshold, the point is added to the growth region; finally, the expansion continues until a certain frame limit is reached or until the first point that is not a ground-touching region is encountered, thus obtaining the first ground-touching region.

[0123] For example, assuming the coordinates of the lowest point are (frame m, height m), and the first height difference threshold is n, expand to the left from frame m and check (frame m-1, height m-1). If |height m - height m-1| < threshold, then (frame m-1, height m-1) is a ground-touching frame, and the current frame is added to the ground-touching area. Repeat the above process until the first point that does not meet the condition is found or the preset number of frames is reached. Similarly, expand to the right from frame m, and the steps are similar to those for expanding to the left, finally obtaining the first ground-touching area.

[0124] In step 10232, the lowest point of the monotonically decreasing interval is taken as the second seed point, and regions are grown to both sides of the time axis respectively. The frames corresponding to the points whose height difference with the second seed point is less than the second height difference threshold are added to the growth region as ground touch frames, so as to obtain the second touch area between the virtual character during the movement.

[0125] Here, the lowest point of the monotonically decreasing interval corresponds to the end point of the landing motion.

[0126] It should be noted that the execution process of step 10232 is similar to that of step 10231 above. The specific implementation can be referred to the execution process of step 10231, and will not be repeated here.

[0127] In some embodiments, step 102 described above can also be implemented in the following way: in response to the absence of a monotonically increasing interval or a monotonically decreasing interval in the movement trajectory curve, all frames included in the character animation are taken as ground touch frames; based on the multiple ground touch frames, the ground touch intervals of the virtual character during the movement are generated.

[0128] In some embodiments, firstly, when the movement trajectory curve does not have a monotonically increasing or monotonically decreasing interval, it can be assumed that the virtual character is in contact with the ground throughout the entire animation process, that is, the movement trajectory curve is flat or has no obvious rise and fall. In this case, all frames in the animation can be marked as ground-touching frames. Then, the intervals corresponding to all ground-touching frames are taken as the touch intervals of the virtual character during the movement.

[0129] For example, assuming there are no monotonically increasing or monotonically decreasing intervals in the current character animation, it means that the virtual character is in contact with the ground throughout the entire animation. Each frame can be regarded as a ground-touching frame, and the intervals corresponding to all ground-touching frames can be regarded as the contact intervals of the virtual character during the movement.

[0130] In some embodiments, the movement trajectory curve includes a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character. Step 102 described above can also be implemented in the following way: perform ground contact detection based on the first movement trajectory curve to obtain the contact area between the left foot and the right foot of the virtual character during the movement; perform ground contact detection based on the second movement trajectory curve to obtain the contact area between the right foot and the right foot of the virtual character during the movement.

[0131] It should be noted that ground contact detection is performed on both feet of the virtual character in the character animation. Specifically, ground contact detection is performed based on the first movement trajectory curve corresponding to the left foot bone point of the virtual character to obtain the contact area of ​​the left foot during the movement. Ground contact detection is performed based on the second movement trajectory curve corresponding to the right foot bone point to obtain the contact area of ​​the right foot during the movement.

[0132] In step 103, the first coordinate value is obtained.

[0133] Here, the first coordinate value is the coordinate value of the virtual character's foot bone point in the initial ground contact frame between the touch areas.

[0134] In some embodiments, after obtaining the contact area, the starting contact frame, i.e. the frame where the foot begins to contact the ground, is first found from the contact area; then, the index of the starting contact frame is found from the trajectory curve data of the foot bone points, and the coordinate value of the starting contact frame is obtained according to the index.

[0135] For example, suppose we obtain the trajectory curve S of the virtual character's foot bone points, and the starting ground contact frame in the contact area is obtained as frame 10. Based on the starting ground contact frame, we determine the index in the trajectory curve data as frame 10, and obtain the coordinate value of the starting ground contact frame as 10 centimeters.

[0136] In step 104, the coordinate values ​​of the virtual character's foot bone points in other touch frames between touch areas are set as the first coordinate values.

[0137] Here, other grounding frames are any grounding frames other than the initial grounding frame.

[0138] In some embodiments, after obtaining the first coordinate value, all ground touch frames included in the touch area are determined, and the coordinate values ​​of all ground touch frames in the touch area except the initial ground touch frame are set to the first coordinate value, thereby completing the slide repair process. This improves the realism and visual appeal of the character animation, enhancing the user's viewing experience.

[0139] For example, suppose there are 5 touch-ground frames in the touch zone, with corresponding coordinate values ​​of 10.1 cm, 10.2 cm, 10.2 cm, 10.3 cm and 10.3 cm respectively. The initial touch-ground frame is 10.1 cm, that is, the first coordinate value is 10.1 cm. Then, the coordinate values ​​of the other 4 touch-ground frames in the touch zone are all set to 10.1 cm.

[0140] The following describes an exemplary application of the embodiments of this application in a real-world application scenario. This exemplary application describes the specific implementation process of the character animation processing method.

[0141] Character animation is a technical term in computer graphics and animation production, referring to the process of creating and manipulating the movements and expressions of virtual characters. In character animation, animators or computer programs bring virtual characters to life, enabling them to perform various actions and facial expressions to tell a story or express emotions. Character animation typically includes the following aspects:

[0142] (1) Modeling: Create a 3D model of the character, including the body, face and other features.

[0143] (2) Rigging: Setting up the skeleton and control system on the character model to prepare for animation production. The skeleton is usually called the "skeleton" or "skeleton system", and the control system includes sliders, rotation rings, etc. to control the movement of the skeleton.

[0144] (3) Skinning: Connects the character's 3D model (skin) to the skeletal system to ensure that the character's surface (skin) can naturally follow the movement of the skeleton when the character moves.

[0145] (4) Animation: Character movements are created by adjusting the skeleton and controlling keyframes in the system. Keyframes define the character's position, rotation, and proportions at a specific point in time.

[0146] (5) Motion Capture: Special equipment is used to record the movements of real actors, and then this motion data is applied to virtual characters to create more natural and realistic animations.

[0147] (6) Facial Animation: Creating facial expressions for a character, usually achieved by manually setting keyframes for the facial control system or by using facial capture technology.

[0148] (7) Lip Syncing: Ensure that the character's lip movements are synchronized with the dialogue or sound to enhance the realism of the animation.

[0149] (8) Simulation: Uses a physics engine to simulate the movement of a character's clothing, hair, and other soft objects.

[0150] Character animation is widely used in movies, television, video games, virtual reality, and animated short films. With the development of technology, the production of character animation has become more efficient and realistic, providing viewers with a more immersive experience.

[0151] In addition, in character animation, "ground touch detection" refers to the mechanism used in animation or games to determine whether a character's feet are in contact with the ground. This is crucial for the smoothness of the animation and the realism of the physics, especially when the character is jumping, running or walking.

[0152] For example, in game development, such as with engines like Unity, touch detection can be implemented in several ways:

[0153] (1) Raycast: A ray is fired downwards from the character's feet. If the ray collides with a collision object on the ground, the character is considered to have touched the ground.

[0154] (2) Overlap Sphere Detection: Creates a spherical detection area at the character's feet. If there is a ground collision object in the area, the character is considered to be touching the ground.

[0155] (3) Character Controller Component: Unity's Character Controller component includes an isGrounded property, which can be used to detect whether the character is in contact with the ground. This property is updated when the CharacterController.Move method is called; if the character is in contact with the ground during movement, isGrounded is true.

[0156] (4) Three-ray detection: This is a more detailed method. Three rays are emitted from the character's left and right feet and groin. If any ray detects the ground, the character is considered to have touched the ground.

[0157] (5) Capsule detection (OverlapCapsule): Uses a capsule-shaped detection area to simulate the character's feet. If the capsule area comes into contact with the ground, the character is considered to be touching the ground.

[0158] Ground contact detection in character animation ensures the fluidity of character movements and the realism of physical responses, such as correctly initiating the next jump after a jump, or maintaining balance while walking on a slope. This detection is crucial for character control and animation playback in games.

[0159] Related technologies can only repair small slides with low ground contact speeds. When the ground contact speed is high, there will be missed detections in the ground contact detection stage based on movement speed, resulting in the failure of slide repair. However, the ground contact detection and slide repair method based on foot movement trajectory proposed in this application can make up for the above defects. It can not only repair small slides with low ground contact speeds, but also large slides with high ground contact speeds.

[0160] See Figure 7 , Figure 7 This is a flowchart illustrating the character animation processing method provided in this application embodiment, which will be combined with... Figure 7 The steps shown are explained.

[0161] In step 201, input the movement trajectory curves of the character's left and right foot bone points.

[0162] Here, the movement trajectory curve is generated by connecting the coordinate positions of the character's left and right foot bone points in each frame in a sequential manner over time.

[0163] In some embodiments, such as Figure 8 As shown, Figure 8 This is a schematic diagram of the movement trajectory curve of the foot bone points of a character provided in this application embodiment. For any foot (left or right foot) of the animated character, the y-coordinate (height) values ​​of its foot bone points in each frame are collected to form a curve like this. Figure 8 The movement trajectory curve shown.

[0164] In step 202, the left foot touches the ground based on the trajectory curve of the character's left foot bone point to obtain the touch area of ​​the left foot, and the right foot touches the ground based on the trajectory curve of the character's right foot bone point to obtain the touch area of ​​the right foot.

[0165] It should be noted that the method for detecting the ground contact of the left and right feet is exactly the same, and they can be processed separately.

[0166] In some embodiments, taking the left foot's ground contact detection method as an example, all monotonically increasing and decreasing intervals in the movement trajectory curve are determined. The monotonically increasing interval corresponds to the lifting motion of the left foot, and the monotonically decreasing interval corresponds to the landing motion of the left foot. The detection of the monotonically increasing interval can be achieved by a loop iterative algorithm.

[0167] Specifically, by iterating through each point on the movement trajectory curve (each point corresponds to a frame in the character's animation), if the height value of the current point is less than or equal to the height value of the next point, the iteration continues until the height value of the current point is greater than the height value of the next point, at which point the iteration ends. If the number of points traversed in this process is greater than 1, all the points traversed in this process are collected as a monotonically increasing interval. Then, taking the point after the end of the interval as the initial point, the above iteration process is repeated until all points have been traversed, thereby determining all monotonically increasing intervals in the movement trajectory curve.

[0168] It should be noted that the detection method for monotonically decreasing intervals is similar to that for monotonically increasing intervals. The specific method can be determined by referring to the detection method for monotonically increasing intervals, and will not be elaborated here.

[0169] In some embodiments, after detecting all monotonically increasing and monotonically decreasing intervals, the lowest point of the monotonically increasing interval corresponds to the starting point of the foot lifting movement, and the lowest point of the monotonically decreasing interval corresponds to the ending point of the foot landing movement. These points are used as seed points, and regions are grown to the left and right of the time axis, respectively. The growth condition is that the height difference with the seed point is not greater than the height difference threshold. That is, frames with a height difference less than the height difference threshold from the seed point are added to the growth region, and the grown frame interval is the touch area interval.

[0170] In other embodiments, two special cases are handled separately: when there are no monotonically increasing or decreasing intervals in the movement trajectory curve, indicating that there is no leg lifting or lowering movement in the entire animation, the entire animation is treated as a touch zone; additionally, monotonically increasing or decreasing intervals may also appear when the virtual character's feet are suspended in the air, which can be identified by the height relationship between the two feet, see [link to relevant documentation] Figure 9 , Figure 9 This is a comparative schematic diagram of the movement trajectory curves of the left and right foot bone points of the character provided in the embodiments of this application, such as... Figure 9 As shown, the upper part is the movement trajectory curve of the virtual character's left foot bone point, and the lower part is the movement trajectory curve of the virtual character's right foot bone point. Figure 9 Points A and B shown in the image represent the height values ​​of the right and left foot skeletons at the same playback time frame, respectively. Figure 9 As shown, when the height difference between point A corresponding to the right foot and point B corresponding to the left foot is greater than the height difference threshold, it indicates that the right foot is in a suspended state at the moment corresponding to point A, and all frames judged to be in a suspended state are marked as non-ground-touching frames.

[0171] In step 203, the left foot slide is repaired based on the area where the character's left foot touches the ground, and the right foot slide is repaired based on the area where the character's right foot touches the ground.

[0172] In some embodiments, based on the obtained ground contact information, all consecutive adjacent ground contact frame sequences are extracted, with each sequence corresponding to a [start_frame, end_frame] ground contact interval. The foot bone points of all frames within each ground contact interval are fixed at the starting frame position of that interval, thus achieving slide repair. In other words, the coordinate values ​​of the foot bone points in all frames within the ground contact interval are made equal to the coordinate values ​​of the foot bone points in the first frame of the interval.

[0173] With the booming development of the animation industry, especially in fields such as games, movies, and virtual reality, the demand for high-quality animation content is increasing, and the demand for efficient and high-quality animation production technology is also constantly rising. In 3D animation production, the realism of character animation is crucial to enhancing the audience experience. However, during the animation production process, due to animator errors or technical limitations, unnatural slippage may occur at the contact point between the character's feet and the ground when walking or running, a phenomenon known as "slipping." This phenomenon significantly reduces the realism and visual appeal of the animation. Related technologies mainly rely on manual adjustments by animators to correct slippage, which is not only time-consuming and labor-intensive but also difficult to guarantee the consistency and accuracy of the correction. This application provides a method for processing character animation that can automatically identify various slippage phenomena (including small and large slippages) in character animation and automatically correct them to improve the realism and visual appeal of the animation. The algorithm of this invention can significantly improve the quality of character animation, reduce the workload of animators, and improve the efficiency and quality of animation production.

[0174] The character animation processing method provided in this application has broad application prospects. It can be applied to character animation production in fields such as film, television, video games, virtual reality, and animated short films. It can also be used for post-processing of motion capture data to improve the accuracy and efficiency of motion capture. With the rapid development of virtual reality and augmented reality technologies, the character animation processing method provided in this application can also be applied to real-time animation production, providing users with a smoother and more realistic virtual experience. Furthermore, with the development of technology, more and more non-professional users are beginning to try creating animation content. The character animation processing method provided in this application can be used as part of an animation production tool to help users more easily create high-quality animations, thereby expanding the potential user base of animation production software.

[0175] The following description continues to illustrate the exemplary structure of the character animation processing device 555 provided in the embodiments of this application as a software module. In some embodiments, such as Figure 2 As shown, the software modules in the character animation processing device 555 stored in the memory 550 may include: an acquisition module 5551, a first detection module 5552, and a first processing module 5553.

[0176] The acquisition module 5551 is used to acquire the movement trajectory curve of the foot bone points of the virtual character from the character animation; the first detection module 5552 is used to perform ground contact detection based on the movement trajectory curve to obtain the ground contact area of ​​the virtual character during the movement, wherein the ground contact area includes multiple ground contact frames; the acquisition module 5551 is also used to acquire a first coordinate value, wherein the first coordinate value is the coordinate value of the foot bone point of the virtual character in the initial ground contact frame of the ground contact area; the first processing module 5553 is used to set the coordinate values ​​of the foot bone point of the virtual character in other ground contact frames of the ground contact area as the first coordinate value, wherein the other ground contact frames are any ground contact frames other than the initial ground contact frame among the multiple ground contact frames.

[0177] In some embodiments, the acquisition module 5551 is further configured to acquire the coordinate values ​​of the foot bone points of the virtual character in each frame of the character animation; and generate the movement trajectory curve of the foot bone points of the virtual character based on multiple coordinate values ​​and the playback time of the frame corresponding to each coordinate value.

[0178] In some embodiments, the first detection module 5552 is further configured to determine a monotonically increasing interval of the movement trajectory curve, wherein the monotonically increasing interval corresponds to the lifting movement of the virtual character's foot; determine a monotonically decreasing interval of the movement trajectory curve, wherein the monotonically decreasing interval corresponds to the landing movement of the virtual character; and determine the contact area between the virtual character during the movement based on the monotonically increasing interval and the monotonically decreasing interval.

[0179] In some embodiments, the movement trajectory curve includes multiple points corresponding one-to-one with multiple coordinate values. The first detection module 5552 is further configured to traverse from the starting point of the movement trajectory curve. If the coordinate value of the current point is less than or equal to the coordinate value of the next point, the traversal continues. If the coordinate value of the current point is greater than the coordinate value of the next point, the traversal ends. If the number of traversed points is greater than 1, the interval composed of the traversed points is taken as the monotonically increasing interval of the movement trajectory curve. The traversal process is repeated with the point after the end point of the monotonically increasing interval as the new starting point, until all points have been traversed.

[0180] In some embodiments, the movement trajectory curve includes multiple points corresponding one-to-one with multiple coordinate values. The first detection module 5552 is further configured to traverse from the starting point of the movement trajectory curve. If the coordinate value of the current point is greater than or equal to the coordinate value of the next point, the traversal continues; if the coordinate value of the current point is less than the coordinate value of the next point, the traversal ends; if the number of traversed points is greater than 1, the interval composed of the traversed points is taken as the monotonically decreasing interval of the movement trajectory curve; the point after the end point of the monotonically decreasing interval is taken as the new starting point, and the above traversal process is repeated until all multiple points are traversed.

[0181] In some embodiments, the first detection module 5552 is further configured to use the lowest point of the monotonically increasing interval as the first seed point, grow regions to both sides of the time axis respectively, and add frames corresponding to points whose height difference with the first seed point is less than the first height difference threshold as ground-touching frames to the growth region, thereby obtaining the first touch-field interval of the virtual character during movement; wherein, the lowest point of the monotonically increasing interval corresponds to the starting point of the foot-lifting movement; and use the lowest point of the monotonically decreasing interval as the second seed point, grow regions to both sides of the time axis respectively, and add frames corresponding to points whose height difference with the second seed point is less than the second height difference threshold as ground-touching frames to the growth region, thereby obtaining the second touch-field interval of the virtual character during movement; wherein, the lowest point of the monotonically decreasing interval corresponds to the ending point of the foot-landing movement.

[0182] In some embodiments, the movement trajectory curve includes a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character. Determining the monotonically increasing interval of the movement trajectory curve includes determining a first monotonically increasing interval of the first movement trajectory curve and determining a second monotonically increasing interval of the second movement trajectory curve. The character animation processing device 555 further includes a second detection module 5554 and a second processing module 5555.

[0183] The second detection module 5554 is used to obtain the second coordinate value of the left foot bone point of the virtual character in the first monotonically increasing interval and the third coordinate value of the right foot bone point of the virtual character in the second monotonically increasing interval; the second processing module 5555 is used to delete the first monotonically increasing interval in response to the second coordinate value being greater than the third coordinate value and the difference between the second coordinate value and the third coordinate value being greater than the difference threshold.

[0184] In some embodiments, the first detection module 5553 is further configured to, in response to the absence of a monotonically increasing or monotonically decreasing interval in the movement trajectory curve, treat all frames included in the character animation as ground touch frames; and generate the ground touch intervals of the virtual character during the movement based on the multiple ground touch frames.

[0185] In some embodiments, the movement trajectory curve includes a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character. The first detection module 5553 is further configured to perform ground contact detection based on the first movement trajectory curve to obtain the contact area between the left foot and the right foot of the virtual character during the movement; and to perform ground contact detection based on the second movement trajectory curve to obtain the contact area between the right foot and the right foot of the virtual character during the movement.

[0186] It should be noted that the description of the apparatus in this application embodiment is similar to the description of the method embodiment above, and has similar beneficial effects as the method embodiment, therefore it will not be repeated. For any technical details not covered in the character animation processing apparatus provided in this application embodiment, please refer to... Figure 3 , Figure 4 , Figure 5 , Figure 6A , Figure 6B ,or Figure 6C The meaning is understood in accordance with the description of any of the accompanying drawings.

[0187] This application provides a computer program product, which includes a computer program or computer-executable instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer-executable instructions from the computer-readable storage medium and executes the computer-executable instructions, causing the computer device to perform the character animation processing method described in this application embodiment.

[0188] This application provides a computer-readable storage medium storing computer-executable instructions. When these computer-executable instructions are executed by a processor, they cause the processor to execute the character animation processing method provided in this application. For example, ... Figure 3 , Figure 4 , Figure 5 , Figure 6A , Figure 6B ,or Figure 6C The method for handling character animation is shown.

[0189] In some embodiments, the computer-readable storage medium may be a memory such as ferroelectric random access memory (FRAM), ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); or it may be a device that includes one or any combination of the above-mentioned memories.

[0190] In some embodiments, computer-executable instructions may take the form of programs, software, software modules, scripts, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as stand-alone programs or as modules, components, subroutines, or other units suitable for use in a computing environment.

[0191] As an example, computer-executable instructions may, but do not necessarily, correspond to files in a file system. They may be stored as part of a file that holds other programs or data, for example, in one or more scripts in a Hyper Text Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple co-located files (e.g., files that store one or more modules, subroutines, or code sections).

[0192] As an example, computer-executable instructions can be deployed to execute on a single electronic device, or on multiple electronic devices located at one location, or on multiple electronic devices distributed across multiple locations and interconnected via a communication network.

[0193] In summary, the embodiments of this application can automatically identify various sliding phenomena (including small and large sliding steps) in character animation and automatically correct them to improve the realism and visual appeal of the animation. Furthermore, the automatic sliding correction algorithm in this application can significantly improve the quality of character animation, reduce the workload of animators, and improve the efficiency and quality of animation production.

[0194] The above description is merely an embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, and improvements made within the spirit and scope of this application are included within the scope of protection of this application.

Claims

1. A method for processing character animation, characterized in that, The method includes: The movement trajectory curve of the foot bone points of the virtual character is obtained from the character animation; Ground contact detection is performed based on the movement trajectory curve to obtain the ground contact areas of the virtual character during movement, wherein the ground contact areas include multiple ground contact frames; Obtain a first coordinate value, wherein the first coordinate value is the coordinate value of the foot bone point of the virtual character in the initial ground contact frame between the contact areas; The coordinate values ​​of the virtual character's foot bone points in other touch frames between the touch areas are set to the first coordinate value, wherein the other touch frames are any touch frames other than the initial touch frame among the plurality of touch frames.

2. The method according to claim 1, characterized in that, The step of obtaining the movement trajectory curve of the virtual character's foot bone points from the character animation includes: For each frame of the character animation, obtain the coordinate values ​​of the virtual character's foot bone points in that frame; Based on the multiple coordinate values ​​and the playback time of the frame corresponding to each coordinate value, a movement trajectory curve of the foot bone points of the virtual character is generated.

3. The method according to claim 1, characterized in that, The step of detecting ground contact based on the movement trajectory curve to obtain the contact areas of the virtual character during movement includes: Determine the monotonically increasing interval of the movement trajectory curve, wherein the monotonically increasing interval corresponds to the foot lifting movement of the virtual character; Determine the monotonically decreasing interval of the movement trajectory curve, wherein the monotonically decreasing interval corresponds to the landing movement of the virtual character; Based on the monotonically increasing interval and the monotonically decreasing interval, the contact area between the virtual character during movement is determined.

4. The method according to claim 3, characterized in that, The movement trajectory curve includes multiple points that correspond one-to-one with the multiple coordinate values; Determining the monotonically increasing interval of the movement trajectory curve includes: The traversal starts from the starting point of the movement trajectory curve. If the coordinate value of the current point is less than or equal to the coordinate value of the next point, the traversal continues; if the coordinate value of the current point is greater than the coordinate value of the next point, the traversal ends. If the number of points traversed is greater than 1, then the interval consisting of the traversed points will be used as the monotonically increasing interval of the movement trajectory curve. Using the point after the end of the monotonically increasing interval as the new starting point, repeat the above traversal process until all the points have been traversed.

5. The method according to claim 3, characterized in that, The movement trajectory curve includes multiple points that correspond one-to-one with the multiple coordinate values; Determining the monotonically decreasing interval of the movement trajectory curve includes: The traversal begins from the starting point of the movement trajectory curve. If the coordinate value of the current point is greater than or equal to the coordinate value of the next point, the traversal continues; if the coordinate value of the current point is less than the coordinate value of the next point, the traversal ends. If the number of points traversed is greater than 1, then the interval consisting of the traversed points will be used as the monotonically decreasing interval of the movement trajectory curve. Using the point after the end of the monotonically decreasing interval as the new starting point, repeat the above traversal process until all the points have been traversed.

6. The method according to claim 3, characterized in that, Determining the contact area between the virtual character during movement based on the monotonically increasing interval and the monotonically decreasing interval includes: Using the lowest point of the monotonically increasing interval as the first seed point, regions are grown to both sides of the time axis, and frames corresponding to points whose height difference with the first seed point is less than the first height difference threshold are added to the growth region as ground-touching frames, thus obtaining the first ground-touching region of the virtual character during the movement. The lowest point of the monotonically increasing interval corresponds to the starting point of the foot lifting movement; Using the lowest point of the monotonically decreasing interval as the second seed point, regions are grown to both sides of the time axis, and frames corresponding to points whose height difference with the second seed point is less than the second height difference threshold are added to the growth region as ground-touching frames, thus obtaining the second ground-touching region of the virtual character during the movement process. The lowest point of the monotonically decreasing interval corresponds to the end point of the landing motion.

7. The method according to claim 3, characterized in that, The movement trajectory curves include a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character. Determining the monotonically increasing interval of the movement trajectory curve includes: Determine the first monotonically increasing interval of the first movement trajectory curve, and determine the second monotonically increasing interval of the second movement trajectory curve; The method further includes: Obtain the second coordinate value of the left foot bone point of the virtual character in the first monotonically increasing interval, and the third coordinate value of the right foot bone point of the virtual character in the second monotonically increasing interval; In response to the second coordinate value being greater than the third coordinate value, and the difference between the second coordinate value and the third coordinate value being greater than the difference threshold, the first monotonically increasing interval is deleted.

8. The method according to claim 1, characterized in that, Ground contact detection is performed based on the movement trajectory curve to obtain the contact areas of the virtual character during movement, including: In response to the absence of a monotonically increasing or monotonically decreasing interval in the movement trajectory curve, all frames included in the character animation are treated as ground touch frames. Based on multiple ground-touching frames, the ground-touching areas of the virtual character during movement are generated.

9. The method according to any one of claims 1 to 8, characterized in that, The movement trajectory curves include a first movement trajectory curve corresponding to the left foot bone point of the virtual character and a second movement trajectory curve corresponding to the right foot bone point of the virtual character. The step of detecting ground contact based on the movement trajectory curve to obtain the contact areas of the virtual character during movement includes: Ground contact detection is performed based on the first movement trajectory curve to obtain the contact area of ​​the virtual character's left foot during the movement; Ground contact detection is performed based on the second movement trajectory curve to obtain the contact area of ​​the virtual character's right foot during the movement.

10. A processing device for character animation, characterized in that, The device includes: The acquisition module is used to acquire the movement trajectory curve of the foot bone points of the virtual character from the character animation; The first detection module is used to perform ground contact detection based on the movement trajectory curve to obtain the ground contact area between the virtual character during the movement, wherein the ground contact area includes multiple ground contact frames; The acquisition module is further configured to acquire a first coordinate value, wherein the first coordinate value is the coordinate value of the foot bone point of the virtual character in the initial ground contact frame between the contact areas; The first processing module is used to set the coordinate values ​​of the foot bone points of the virtual character in other touch frames between the touch areas to the first coordinate value, wherein the other touch frames are any one of the plurality of touch frames other than the starting touch frame.

11. An electronic device, characterized in that, include: Memory is used to store executable instructions for a computer; A processor, when executing computer-executable instructions stored in the memory, implements the character animation processing method according to any one of claims 1 to 9.

12. A computer-readable storage medium storing computer-executable instructions, characterized in that, When the computer-executable instructions are executed by the processor, they implement the character animation processing method according to any one of claims 1 to 9.

13. A computer program product, comprising a computer program or computer-executable instructions, characterized in that, When the computer program or computer-executable instructions are executed by the processor, the character animation processing method according to any one of claims 1 to 9 is implemented.