ALSUtilityCombine
by Zach Kolansky
ALS Community Version: https://github.com/dyanikoglu/ALS-Community
My Standalone UtilityAI System: https://www.unrealengine.com/marketplace/en-US/product/utilityai-with-replicated-weapon-stat-and-status-effect-systems
Standalone Github for my UtilityAI System: https://github.com/ZacharyDK/UtilityCombatSample
My Standalone UtilityAI System Documentation: https://docs.google.com/document/d/1XkaUs4PwrAyDM_PV1cD-ulRLw5Ykb_6LmlaFsxnZIcQ/edit?usp=sharing
Documentation: https://docs.google.com/document/d/1XkaUs4PwrAyDM_PV1cD-ulRLw5Ykb_6LmlaFsxnZIcQ/edit#
You need to have git LFS set up to download this repo properly.
- Install Homebrew
- brew install git-lfs
- Create a folder to hold the repo
- change your current directory to said folder
- git clone https://github.com/ZacharyDK/ALSUtilityCombine
This sample project combines my UtilityAI system with the community version of the ALS plugin. Reasoning: ALS offers a robust animation system, with mantle, camera shake, aim, overlay system, and a very good movement system. All of which are great, and done much better than I could ever do.
I wanted to make it easy to drag and drop into your project (i.e drag stuff into Plugins folder), even if it already uses ALS. See the content combined folder to find classes that I edited. I wanted to keep each system as pure as possible, with minimal changes. For example, the RangeAndMelee anim BP in the UtilityAI system is not changed, the ALS Anim BP is unchanged, and I made a copy of the ALS Anim BP named ALS_Combined_AnimBP. That is where I made my changes. The character that implements the numerous interfaces from the UtilityAI system named ALS_Combined_BP. I handled that part for you and left MannequinCharacter_BP unchanged.
-
ALVS4_CPP.uplugin now dependent on UtilityCombatPlugin. ALSV4_CPP.Build.cs also dependent on UtilityCombatPlugin
-
UtilityCombatPlugin now loads PreDefault, see .uplugin. This ensures I can make ALS dependent on UtilityCombat
-
AALSAIController is now a AUtilityAIController .
-
AALSPlayerController is a AUtilityPlayerController .
-
UALSMantleComponent has OnMantleStart and OnMantleEnd Delegates
-
UALSMantleComponent remembers the LastMantleHitResult, new BlueprintReadOnly variable
-
UALSMantleComponent has a TArray called ForbiddenMontages, if any of these montages is playing, the character will not be able to mantle.
-
UALSMantleComponent now has a variable that lets you toggle binding to the jump key.
-
Exposed some action events in AALSBaseCharacter to Blueprint
-
UALSCharacterAnimInstance has a new variable called bIsHumanCharacter = true. If this is false, the animation instance will terminate NativeUpdateAnimation() early, skipping the calls UpdateAimingValues(DeltaSeconds); UpdateLayerValues(); UpdateFootIK(DeltaSeconds); and all other update functions. Set bIsHumanCharacter to false if you want to possess a non human character (like a car) but still use the ALS controller framework.
-
Added three new overlay states. EALSOverlayState::MeleeOneHand, EALSOverlayState::MeleeAndShield, EALSOverlayState::MeleeTwoHand
-
Edited FALSOverlayState to account for the new overlay states. ALS_Combined_BP handles my changes.
-
Modified GetMantleAsset() in the BP child of UALSMantleComponent to account for the new overlay states.
-
ALS_Combined_AnimBP has an upperbody slot, for montages that you only want to play on the upperbody.
-
I was messing around with the UINavigationPlugin (Link: https://www.unrealengine.com/marketplace/en-US/product/uinavigation) Dependencies added.
Working on it. Getting build errors, related to Xcode 14. (Mac not valid platform, QFE) I'll get UE on my windows computer.
If you try to use this plugin with versions prior to 5.0. You will bet build errors related to the names of target platforms. You can view how the names changed in the migration guide, and fix as needed.
https://docs.unrealengine.com/5.0/en-US/unreal-engine-5-migration-guide/
Look, the major integration steps are done, so you can use this plugin with ALS. But there are some finishing touches I want to put on.
- Finish status effects testing (i.e make sure integration complete and working as intended)
- Making the AI AIM (using the Anims from ALS )
- Making the AI Sprint ()
- HUD integration. (UtilityAI hud should be mostly fine)
- Full menus. (Main menu, pause menu, maybe server select. )
- Make/include .cs files for server builds. For ease of use.
- Video show case.
This plugin is subject to same EULA as Epic's Paragon assets, the general UE4 EULA, and the EULA from using assets downloaded from the Unreal Engine Marketplace.
This plugin is only for Unreal Engine users. If you don't use Unreal, the most you can do read the source code.
This plugin contains animations from Paragon assets retargeted to the manniquin. Do not use these animations for anything other than an Unreal project.
This plugin contains animations from Advanced Locomotion System. This are subject to Ue4's EULA and Epic's EULA.
Free, have fun.
License: MIT license.