Creating Combat and Unique Character Animations

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
Creating Combat and Unique Character Animations
Complex
from 3 days to 2 weeks
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1420
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    954
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    575
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    637

We often encounter a situation where combat animations are the most labor-intensive part of the pipeline. Not because it's technically harder, but because the requirements are fuzzy until the game prototype is running. "Make a good sword swing" turns into five iterations when the game designer finally sees how the animation interacts with the hitbox, hitlag, cancel window, and combo system. Proper structure from the start saves up to 40% of rework time and cuts the number of iterations in half.

Phases of a Combat Animation

A combat strike in a game consists of three phases: anticipation (wind-up), active (the hitbox phase), and recovery (exiting the animation). The animator must know the length of each phase in frames — it's not an artistic decision, it's a game design specification. Without it, the animation will look beautiful but be non-functional: the hitbox will activate before the weapon visually reaches the target, or the player will get stuck in recovery and be unable to cancel the attack.

In Unity, these phases are controlled via Animation Events. At the required frames, events are placed: OnAttackStart, OnAttackEnd, OnHitboxEnable, OnHitboxDisable. A Combat Controller script subscribes to these events and manages the weapon colliders. This is the standard scheme; without it, hit detection either relies on C# timers (which break when the animation changes) or on physics triggers (which cause false positives). More details: Animation Events.

The cancel window is the moment when the player can interrupt the current attack and start the next one. In the Animator Controller, this is implemented via a Transition with the condition canCancel == true, set by an Animation Event at the required frame of the animation. If the cancel window doesn't match the feel of the gameplay — it's back to the animator, not the programmer.

Motion Capture vs. Hand-Keyed Animation

For unique animations (deaths, finishers, cutscenes), the choice of pipeline depends on budget and style. Motion Capture provides organic movement that is extremely difficult to reproduce manually — inertia, subtle weight shifts, micro hand movements. The downside is that raw mocap data requires retargeting and cleanup: jitter, joint artifacts, and mismatches with the game character's proportions.

Hand-keyed animation in Maya or Blender is slower but gives full control over timing and spacing. For stylized games with exaggerated movements, it's often preferable. Hand-keyed takes 3-5 times longer than processing mocap but eliminates retargeting artifacts. Workflow: blockout using Bezier curves, then refinement with breakdown keys, and final tweaking of Euler Rotation to avoid gimbal lock.

Gimbal lock in Maya is a common problem when animating rotations over 180°. It is Fixed by changing the Rotation Order to ZXY or XZY depending on the main rotation axis of the bone. For wrists during pronation, this is mandatory; otherwise, the Euler curves will flip. Certified specialists on our team know these nuances and guarantee no artifacts.

How to Implement a Combo System in the Animator Controller?

A three-strike combo is implemented step by step:

  1. Create a Sub-State Machine with three states: Attack1, Attack2, Attack3.
  2. Set up a parameter NextAttack of type Trigger.
  3. In each state, on the cancel window frame, call animator.SetTrigger("NextAttack") via an Animation Event.
  4. Set up transitions: Attack1 → Attack2, Attack2 → Attack3, Attack3 → Idle. The transition condition is NextAttack.
  5. After the third strike, return to Idle or Run via the Exit.

An alternative is an Animation Layer with Override and its own State Machine for attacks on top of the base locomotion layer. This is convenient if attacks must work while moving, but requires a proper Avatar Mask: only the upper body plus weapon, while the lower limbs continue locomotion.

Blend Trees for attacks with weighted interpolation are used less often — only for animations that depend on direction (attack left/right), where a 2D Blend Tree interpolates between four attack directions.

What Typical Mistakes Are Made When Creating Combat Animations?

  • Animation without Export Root Motion. If the strike includes a lunge forward, Root Motion must be explicitly set; otherwise, the character teleports back to the start when transitioning to Idle.
  • Lack of an Additive Layer for hit reaction. Hit Reaction is layered on top of any state via an Additive Layer — it doesn't interrupt the attack but provides visual feedback. Without this layer, you'd need separate versions of every animation with reaction.
  • Ignoring Secondary Motion. Capes, hair, loose clothing — without secondary motion, the animation looks "wooden" regardless of the quality of the main keyframing. In Unity, this is handled via Physics Bone through Animation Rigging or Spring Bone from the VRM pipeline.

Comparison of Animation Approaches: Mocap vs. Hand-Keyed

Characteristic Motion Capture Hand-keyed
Creation time (per 10 seconds of animation) 2-4 days after processing 10-20 days
Control over timing Limited (requires cleanup) Full
Artifacts (gimbal lock, jitter) Often present Minimal
Ideal for Realistic games Stylized games

What Is Included in the Work on Creating Combat Animations

  • Developing animation structure (phases, events)
  • Creating source animations in Maya/Blender (mocap or hand-keyed)
  • Integration into Unity/Unreal Engine with Animation Events setup
  • Configuring the Animator Controller (transitions, cancel windows, combos)
  • Adding Secondary Motion (Physics Bone, Spring Bone)
  • Testing in the game prototype and adjustments based on feedback
  • Final package: FBX, configs, event documentation
  • Post-delivery support (2 weeks)

Setting Up Export Root Motion

For correct Export Root Motion in Unity, in the model settings set Root Transform Position (Y) and Root Transform Rotation to None, and Root Transform Position (XZ) to Bake Into Pose. Otherwise, the character will shift with each strike. Detailed documentation at Root Motion.

Process and Timelines

Type of Work Estimated Timeline
Single standard strike (3 phases, Animation Events) from 4 to 8 hours
Combo of 3 attacks with Animator integration from 1 to 2 days
Full combat set (strikes, block, dodge, death) from 5 to 10 days
Unique cutscene (15–30 seconds) from 3 to 7 days

Cost is determined after discussing the number of animations, complexity of the combo system, and Secondary Motion requirements. If you need such a package, get a consultation from our specialists — we guarantee a professional approach and adherence to deadlines. Contact us to discuss your project.

Why Does Game Character Rigging Often Break the Animation Pipeline?

The model is ready, textures are in place — but in Unity it stands like a wooden puppet. Bones are set arbitrarily and don't map to Humanoid Avatar. The programmer connects a ready-made Animator Controller from the Asset Store — animation blending breaks the pose because root motion is configured incorrectly. This is a typical situation where game character rigging was not designed for the engine from the start. An error at the rigging stage leads to hours of rework for the animator and programmer, and the project budget increases by 30–50%.

Rigging is not just "adding bones." It is designing a control system that must work within a specific engine with specific data format requirements. We guarantee that after our work, the character is ready for animation without rework: all bones map to Humanoid, weights are distributed without artifacts, and the Animator Controller is designed for the specific gameplay. Our team has been doing game character rigging for over 7 years and has completed work for 150+ characters in projects of various genres — from mobile RPGs to PC action games. Order rigging from us — and get a skeleton ready for animation from the first import.

What Are the Skeleton Requirements for Humanoid Avatar?

Unity works with two rig types: Generic and Humanoid. The choice affects the entire animation pipeline.

Generic rig — arbitrary bone hierarchy. Animations are tied to a specific model, retargeting is impossible. Suitable for non-character animation (vehicles, doors, creatures with non-standard anatomy).

Humanoid rig — Unity maps bones to a standard schema of 17 mandatory bones (spine, head, arms, legs) and up to 32 optional ones. After that, any Humanoid animation can be applied to any Humanoid character. This is the foundation for retargeting and Animator Controller with Blend Tree. Humanoid rig speeds up animation creation by 2–3 times compared to Generic, since ready-made animations from the Asset Store work without adaptation.

Errors that break Avatar mapping:

  • Incorrect bone orientation. Unity expects the X-axis to point along the bone toward the child bone. If the arm points along Z or -Y — the Avatar will be generated with a distorted T-pose.
  • Extra intermediate bones in the spine chain. If there is an unmapped intermediate bone between Spine and Chest — it gets lost during retargeting, spine animation looks stiff.
  • Roll bones (twist bones) — bones for distributing forearm and thigh twist. In Humanoid, they must be added as additional (non-mandatory) bones with correct weight painting. Without twist bones, the forearm twists unnaturally when the hand rotates.

T-pose vs A-pose

Unity recommends T-pose as the bind pose. A-pose (arms down at ~45°) technically works, but retargeted animations will have small shoulder joint errors — up to 5° deviation. For characters with armor or broad shoulders, A-pose is sometimes preferable: less mesh stretching during retargeting. The decision is made at the rigging stage, redoing it later is expensive.

Avatar Mask

Avatar Mask is a tool for partial application of animations. For example: the lower body plays a run animation, the upper body plays a shoot animation. Without Avatar Mask, these states conflict. The correct Animator Controller structure for a shooter:

Base Layer (Full Body weight: 1.0)
  └── Locomotion Blend Tree (idle / walk / run / sprint)

Upper Body Layer (Avatar Mask: upper body, weight: 1.0)
  ├── Idle_upper
  ├── Shoot
  ├── Reload
  └── Aim_offset (2D Blend Tree by pitch/yaw)

Additive Layer (Avatar Mask: spine, weight: by parameter)
  └── Lean_left / Lean_right

Example of Avatar Mask setup: in Unity Inspector, select Animator Controller, open Layers -> Add Layer -> choose Avatar Mask. For Upper Body, create a mask enabling shoulder girdle, arms, and head bones. For Additive, only spine. Uncheck the legs.

Additive layer for leaning is a typical optimization: instead of 8 separate animations (run_left, run_right, walk_left...), one additive lean is applied on top of any state. Time savings on clip creation — up to 40%. For complex projects, this reduces the animation budget by 15–20%.

How to Set Up a Blend Tree for Locomotion?

Blend Tree is a system for blending animations based on one or two parameters. For character locomotion, the standard is 2D Freeform Directional with parameters velocityX and velocityZ.

Minimum set of clips for basic locomotion:

Animation velocityX velocityZ
Idle 0 0
Walk Forward 0 0.5
Run Forward 0 1.0
Walk Backward 0 -0.5
Run Backward 0 -1.0
Strafe Left -0.5 0
Strafe Right 0.5 0

Freeform Directional interpolates between clips by angle and magnitude of the velocity vector. At velocity (0.35, 0.35), Walk Forward and Strafe Right are mixed with weights calculated by distance to each point in 2D space.

Root Motion vs. In-Place Animations

Root Motion — character movement is driven by the root bone displacement in the animation clip. The animator "bakes" movement speed into the animation. Unity reads this displacement and moves the character Transform. Pros: animation and movement are always synchronized (steps match displacement). Cons: harder to control speed via code, requires correct setup in Animator (Apply Root Motion: true).

In-Place — the pelvis bone stays in place, movement is controlled by code (CharacterController or Rigidbody). Easier to integrate with physics systems, but risk of step-to-speed desynchronization (slipping feet).

In-Place animations with Foot IK via the Animation Rigging package (Unity) are better for games with complex terrain, as they ensure precise foot placement on uneven surfaces, saving 15–20% of time on manual animation correction.

Why Do Skinning Problems Occur and How to Solve Them?

Skinning (binding mesh to bones via weights) is the most labor-intensive stage of rigging organic characters.

Tools: Maya (Weight Paint tool + Component Editor), Blender (Weight Paint mode + Vertex Group Editor), 3ds Max (Skin modifier + Weight Table).

Problem areas and solutions:

Problem Cause Solution Budget Savings
"Candy wrapper" artifact in armpits Default skinning solution Add corrective shape keys (blend shapes) triggered by shoulder angle 90% reduction in artifacts
Knee/elbow twisting Missing twist bones Twist bones distribute deformation across three joints (shoulder twist, elbow, forearm twist) Eliminates "cylinder twisting"
Distortion during retargeting Incorrect bone orientation in T-pose Check via Unity Avatar Tester 60% time savings on animation rework

Proper skinning from the start saves up to 60% of the animation rework budget. — and we add weight math and blendshapes to make movements look natural. To avoid similar issues on your project, get a rigging consultation right now.

Combat Animations and States

A combat animation system is not just a set of clips. It is a state graph with transition conditions and interrupt priorities.

Typical mistake: transition from Idle → Attack with Has Exit Time: true and Exit Time: 0.9. This means the attack will start only when idle has played 90% (0.5 seconds). The player presses the attack button and waits half a second. Solution: Has Exit Time: false, transition by trigger, Interruption Source: Current State with priority.

Combat states structure:

Any State → Hit Reaction (trigger: onHit, interrupts current)
Any State → Death (trigger: onDeath, interrupts all)

Attack Layer:
  Idle → Attack1 (trigger: attack)
  Attack1 → Attack2 (trigger: attack, exit time: 0.6)
  Attack2 → Attack3 (trigger: attack, exit time: 0.6)
  Attack1/2/3 → Idle (no trigger, exit time: 1.0)

Combo-window opens at ~40% of animation length and closes at ~80%. This creates a sense of responsiveness without breaking the animation.

When Should You Use Spine 2D?

Spine is the standard for 2D animation in mobile RPGs, idle games, action-platformers. The character mesh is split into parts attached to a 2D skeleton. Animation — bone transformations, mesh deformation via weighted vertices.

Advantages over frame-by-frame:

  • Animation file size is kilobytes instead of megabytes (spritesheets). Typical savings — 80–90% of build size.
  • Retargeting: same attack animations work on different characters with identical skeleton structure.
  • Animation blending and IK — same concepts as in 3D.

Integration in Unity: official Spine Runtime for Unity. The SkeletonAnimation component controls playback, SkeletonMecanim allows using Animator Controller on top of the Spine skeleton. For programmatic animation — direct control via API: skeletonAnimation.AnimationState.SetAnimation(0, "walk", true).

DOTween is often used in conjunction with Spine to control non-skeletal animations of UI elements attached to the character (health bar, damage numbers) — not for the skeleton itself, but for synchronizing UI with game events.

How We Work

  1. Analysis — examine gameplay, determine list of animations, rig type (Humanoid/Generic), IK and layer requirements.
  2. Skeleton design — create bone hierarchy in Maya/Blender considering Humanoid Avatar, add twist bones, corrective shapes.
  3. Skinning — manual weight refinement in problem areas, verification via Unity Avatar Tester.
  4. Animation creation — locomotion, combat, reactions, cinematics. Set up Animator Controller with Blend Tree and Avatar Mask.
  5. Testing and optimization — check in target scene, profile draw calls, eliminate stutter, configure asset streaming.
  6. Delivery — hand over project with documentation and support.

What You Get

  • Skeletal model with correct Humanoid Avatar (or Generic) — FBX/glTF file.
  • Set of animation clips — FBX with AnimationClips.
  • Animator Controller with configured layers, Blend Tree, and transitions.
  • Documentation on controller structure and code usage.
  • Support during integration — we answer questions, fix inaccuracies.

Estimated timeline: 5 to 15 working days depending on complexity (number of animations, rig type, Spine 2D presence). Cost is calculated individually after scope assessment — contact us for consultation and a rough estimate. Order game character rigging — and your characters will come to life without animation bugs.