Website powered by

Locomotion + Sword Combat

Detailed description of included locomotion/combat features could be found at my Behance page:
https://www.behance.net/gallery/108725255/Locomotion-Sword-Combat-Technical-Animation-Demo

State Machine:
Orient Based Locomotion:
- Idle & Aim Offsets
- Walking, Jogging, Running, Sprinting Cycles, Turns
- Starts & Turns in place
- Stops
Strafe Locomotion
Jumps
Equip/Unequip Weapon
Anim Dynamics

Battle System:
Melee Hit Combo
Directional Attacks
Long-Range Attack & Dodge
Hit Reactions

Quick Overview of NPC

short videos playlist:
https://www.youtube.com/playlist?list=PL2OG7vVACTCt6c9wSCqsBKiWGScguGC0b

Model: https://www.gameanim.com/product/azri-rig/

You can play the demo on your PC by downloading the archive by this link: https://drive.google.com/file/d/1XFWy...

This is a project I've been working on for a while - advanced locomotion inside Unreal Engine + battle system with the enemy prototype. The project is root-motion based, 97% of main character animations are pure keyframe, but hit reactions/deaths and the NPC animations are I've made with a Mixamo mocap.

My Contacts:
Vyacheslav Borovik - Technical Animator, Kraków
behance.net/borovikmotion
linkedin.com/in/borovikmotion

Full video

Locomotion State machine

Locomotion State machine

Idles & AO

idles & aim offsets

idles & aim offsets

Movement

movement setup

movement setup

starts & turns in place

starts & turns in place setup

starts & turns in place setup

direction calculation

direction calculation

Stops

stops setup

stops setup

Strafes

Movement input is a direction vector decomposed into two axes:
https://blueprintue.com/blueprint/gooo_2la/

Movement input is a direction vector decomposed into two axes:
https://blueprintue.com/blueprint/gooo_2la/

Jumps

Blend conditions are isInAir? bool extracted from a character movement component and inJump? bool which is set after Jump input, pretty standard stuff: https://blueprintue.com/blueprint/-dxyifih/

Blend conditions are isInAir? bool extracted from a character movement component and inJump? bool which is set after Jump input, pretty standard stuff: https://blueprintue.com/blueprint/-dxyifih/

Equip / Unequip

Anim Dynamics. Hair joint chains, box "collisions" for a single chain, anim dynamics node settings, spherical limits

Anim Dynamics. Hair joint chains, box "collisions" for a single chain, anim dynamics node settings, spherical limits

Combat System

Melee Hit combo

Essentially, after the attack input and if all conditions have matched, we should play either compo part or combo end animation montage, and for that, we can use a combo counter variable

Essentially, after the attack input and if all conditions have matched, we should play either compo part or combo end animation montage, and for that, we can use a combo counter variable

And the animation montage is chosen randomly from the animation map

And the animation montage is chosen randomly from the animation map

Directional Attacks

Based on direction we should play one of the directional attack animations, -180, -135, -90, -45, 0, 45, 90, 135, 180 degrees. And Attack Direction Delta is a difference between turn value inside attack animation and the actual direction

Based on direction we should play one of the directional attack animations, -180, -135, -90, -45, 0, 45, 90, 135, 180 degrees. And Attack Direction Delta is a difference between turn value inside attack animation and the actual direction

Attack direction is calculated using Find Look at Rotation node

Attack direction is calculated using Find Look at Rotation node

Long Range Attacks

Hit Reactions

NPC

Hit reaction setup

Hit reaction setup