Recently, I have been working on restructuring the animation system. By the way, I have taken a look at the mature engine animation section. I have done a pre-Research on an action game before, so I feel a lot about it. Compared with industry-class manufacturers, animation technology can be said to be the most lagging part of game development in China.
In my opinion, the animation system is divided into several levels:
- You can import the actions made in DCC to play the game. APIs such as play, stop, and pause are available. Open-source or self-developed engines stay at this stage.
- A hybrid conversion mode can be defined between multiple animations, which can well handle the transition between non-moving actions, such as gamebryo and vision.
- There are animation state machines and blendtree. You can use parameters to control playing different actions, such as unity, unreal, Havok, and morpheme.
- Combining animations with physical systems to achieve environment interaction, Ik, collision, ragdoll, etc. Generally, 3 is implemented and 4 is done by the way.
- Combining animation and behavior systems to make real characters behave. This part has risen to the AI level, leading naturalmotion in the industry.
We are still struggling. the introduction of animation middleware can quickly increase to 4. 5. Currently, there are few game applications. The following are some technical terms used in recent reading documents, from unity, vision, and Havok:
- Animation clip (same as animation sequence)
-
- Animation data units, such as "idle" clip, "Run" clip, and "walk" clip.
- Body mask (same as skeleton partitioning)
-
- Used to mark which parts of the body contain or exclude from the skeleton.
- Animation retargeting
-
- Apply the animation of a model to another model. The animators do not need to repeat similar animations for each role.
- T-pose
-
- The original skeleton is usually "T" type when there is no animation
- In a strong-motion interactive game, use an animation to control the orientation of the role, instead of relying on the program.
- Root motion (same as motion extraction)
-
- The role's "root" movement may be controlled by the animation itself or externally
- Animation Layer
-
- State machine that controls model animation or partial animation. It is used together with the body mask for body animation and half-body animation.
- Animation state machine
-
- Control animation interaction status
- Animation blend tree
-
- Consecutive mixing between similar animation clip based on floating point parameters. For example, if you set a direction value, smooth transition is performed between the First and Fourth animation walks.
- Inverse Kinematics (ik)
-
- Controls the change of the body location of a role based on the objects in the world space, for example:
-
- The two feet are placed at different heights Based on the surface slope.
- Head locking toward target
- Wrap Mode
-
- Animation playback mode: single playback, loop playback, and single playback at the end
- Transition
-
- The conversion method from one animation to another. Take vision as an example:
-
- Immediate: directly interpolation between source and target, during which animation data is not processed (not played)
- Crossfade: smooth transition between source and target, processing animation data during (PLAYING)
- Intermediate: use an animation sequence to mix the two animations
- Transition table
-
- Define a sequence table in transition mode between two animations (see gamebryo, vision)
- Animation event
-
- The event definition on the animation timeline. For example, the landing time point of the Left or Right foot can be used to trigger footsteps.
- Animation Compression
-
- When the animation data volume is large, the memory and disk usage will be high, so compression is required.
- Animation Blending
-
- Mix the pose of multiple animations to one pose for rendering.
- Normal Blending
-
- Generally, the weights are averaged among multiple animationtracks.
- Additive Blending
-
- A detailed animation can be superimposed on an existing pose. Generally, the animation's current pose is converted relative to the first pose and then added to the target pose.
- Animation job
-
- Some Computing-intensive operations are encapsulated into tasks and thrown into the thread pool for computing, such as sampling, mixing, and decompression.
- Skeleton Mapping
-
- To convert the pose of one skeleton to another, there are two situations:
-
- Maps a simplified skeleton to a normal skeleton for "ragdoll mapping" (used in role physics)
- Transition between two different role frameworks for "Animation retargeting"
- Local hit Reaction
-
- The role performs the corresponding action on the partial impact of the body. This action is driven by ragdoll and can be used instead of animation.
- Animation driven ragdoll death
-
- The ragdoll driver is used to simulate the death/fly action. The real-time Physical computation does not require an animation to make data.