Skip to content

enes-sertkan/AnimationProject03

Repository files navigation

🚀 Running the Project

To run the project, simply build and execute it in Release mode.
All assets and systems are configured to work out of the box — no additional setup required.

⚠️ Make sure dependencies are correctly linked before building.

🎮 Character Controller & Animation System

A simple character control system with animation switching, designed for intuitive movement and clean transitions between states.


🕹️ Character Controls

Key Action Animation Triggered
W Move Forward Walk Forward
S Move Backward Walk Backward
A Strafe Left Walk Left
D Strafe Right Walk Right
SPACE Jump Jump (plays once)
ESC Quit Application -

🧠 How Animation Switching Was Implemented

The core animation system is built around an Animator class that handles various animation states such as idle, walk, and jump. Animations are stored in a map and triggered by input events.

🔄 Key Features:

  • State-Based Switching
    Character begins in an idle state and only transitions when a valid input is received (e.g., pressing W to trigger a walk forward).

  • Single-State Priority (No Stacking)
    When multiple keys are pressed (e.g., W + A), one animation takes priority — for instance, forward walking overrides strafing.

  • Non-Looping Animation Handling
    Certain animations like jump are played once and automatically return to the idle state upon completion.

  • Smooth Transitions via Matrix Decomposition
    Blending is achieved by decomposing the transformation matrix into:

    • Position
    • Rotation
    • Scale

    This allows more natural transitions between animations.

  • Performance Fallback Option
    For lightweight builds, a simplified glm::mix() blending approach is available as an alternative.


⚙️ Built with extensibility in mind, this system can be expanded to include combat states, reaction animations, or full locomotion blending with root motion.

About

OpenGL animation project using skeletal animation system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published