Cyril Ibrahim - Enhanced AI Movement

Enhanced AI Movement is a set of tools designed to make your AI movements smoother and more natural. It generates customizable splines (instead of straight lines) for AI trajectories, making their movements more realistic. The Quadruped and Biped IK control rigs ensure your AIs maintains a contact with the ground, preventing them from floating in the air on slopes. Additionally, the plugin contains another control rig that bends spines and tails while turning, enhancing the fluidity of movements. A real-time avoidance system, based on simulated sensors, is also included. It allows to smoothly move around other AIs and dynamic obstacles, such as moving platforms or vehicles, without relying on dynamic navmesh.

📺 Showcase : Showcase video link

📺 Five minutes simulation showcase in a forest environment: Showcase video link

💡 Tutorial if you don't already have an AI : Long Tutorial link

💡 Tutorial if you already have an AI : Short Tutorial link

📋 Documentation : Documentation link

🗨️ Discord : https://discord.gg/cuy547euCd

🎮 Demo : Demo Link (v1.2.0)

* This plugin assumes basic knowledge of AI in Unreal engine and blueprints (no C++ is needed).

** None of the 3d models and animations in the showcase videos, demo, images and documentation are included with the plugin.

*** Your AIs need to use the Character Movement Component.

Features

  • A spline path-following component extends Unreal’s default path following component by creating customizable spline trajectories instead of linear segments. The parameters allow you to adjust the shape and size of the turn radius or add zig-zags of varying sizes and frequencies while still using the default pathfinding on navmesh.

  • AI Push System : An AI push system has been introduced in v1.4.0, allowing AIs to push each other to prevent them from getting stuck in crowded spaces. The system also transfers forces between AIs, making their movement more natural and crowd-like.

  • Sphere AI Push Component : An actor component that you can add to your player (Standalone mode only) to push AIs while moving whether the AIs are moving or not.

  • Dynamic obstacles real-time avoidance : Uses simulated sensors to make AIs smoothly avoid most dynamic obstacles, such as physics objects moved by the player, moving platforms, or vehicles without them being on the Navmesh.

  • Avoidance System for pawns : the plugin has a custom implementation for Pawn avoidance reusing the sensors (which replaces RVO or the Detour Crowd Manager) allowing AIs to avoid each other smoothly. Each AI is assigned a random priority so that some slow down to let other AIs pass.

  • Navmesh validation: The generated splines are checked and modified before being finalized to ensure they always stay on the navmesh. The plugin includes checks to verify that all spline points remain connected.

  • Quadruped IK Control Rig : Applies a full-body rotation pass before the full-body IK to ensure animals maintain a natural posture on slopes and don’t appear to float.

  • Biped IK Control Rig : Ensures bipeds stay on the ground on slopes and dynamically bends the spine forward or backward, simulating balance adjustments.

  • Spine & Tail Control Rig : Bends the animal AI’s spine and tail procedurally while turning. Simplify your animals AI animation blueprint, by replacing most of your turning animations with one or two control rig nodes.

  • Dynamic Speed : AI speed changes based on terrain slope (faster when going downard and slower upward) , slow down during turns, and random variations.

  • Dynamic Rotation Rate : AI rotates slower when moving slow and faster when moving fast to look more natural.

  • Root Motion Support: Option to use root motion animations, where forward movement is controlled by the animation and rotation is handled by the plugin’s spline path component.

  • Predefined AI Controller Presets :

    • Humanoids

    • Small Quadrupeds (e.g., rabbits, squirrels, rats, etc.)

    • Medium Quadrupeds (e.g., foxes, dogs, cats, wolves, deer, etc.)

    • Large Quadrupeds (e.g., bears, rhinoceroses, hippopotamuses, etc.)

  • Custom Data Asset Presets : Allow AI controller parameters to be shared between different AI types, even if they don’t have a common parent class and makes presets compatible with C++ AI Controllers.

  • Smart Spline Regeneration : Splines regenerate only when necessary to improve AI tracking of moving targets.

  • Optimizations :

    • Sensors and IK traces running at a low frequency rate.

    • The spline path system switching to default path following at a distance or when not rendered (standalone only).

    • Sensors deactivating when not rendered or at a distance (standalone only).

  • Compatibility : Works with ALS, EQS, and the Game Animation Sample Project. While future versions of the Game Animation Sample Project may introduce changes, the plugin has been tested with versions 5.4 and 5.5.

  • Coded in C++ : The plugin is coded in C++ (except for control rigs) but is not required to use the plugin, most parameters are commented and accessible in blueprints.

  • Non-Destructive Integration : Works by replacing the AI Controller, ensuring most of your previous AI-related code remains functional.

Support

Discord : https://discord.gg/cuy547euCd

Or you can also email me at :

cyril.ibrahim.gamedev@gmail.com

Version 1.5.0

Version log can be found in the documentation.

Hello, I encountered an issue while using your plugin. After specifying the start and end points of the spine in the state machine, I noticed that it does not bend correctly when turning.

Hello, I believe I replied to you by email earlier today it may have ended up in your Spam folder?

Could you check if the problem also occurs with other Skeletal Meshes?

Edit: Fixed, it was just a typo in the bone names.

1 Like