UHL - unreal helper library, toolset to help developers working with AI, GAS, customizing editor and so on. Goal is to became a tool that insta-installed on new project creation. All tools are mostly tested on melee combat so if you have other background and think that something should work another way or have an idea on how to improve developer experience feel free to discuss.
GAS things not required to be used at all, you can use library only for AI things. GAS features provides much smoother GAS experience mostly based on Lyra features. All GAS features designed in mind that they or their part can be added or dropped by you in development in any time and replaced by something custom that fits your project needs
Support: UE5.5 (main), UE5.4 (branch UE5.4)
- UHL - utility functions like
GetProjectVersion,GetAssetsOfClass,GetHighestPoint. Editor - editor customization, e.g.Custom thumnails,Custom class icon - UHLGAS -
- UHLAI -
- UHLBehaviorTrees & UHLStateTree - AI nodes
SetGameplayFocus- set focus on actorInRange- check distance to enemyInAngle- check angle to enemyPlayAnimMontage- play attack animationInvokeGameplayAbility- activate/deactivate GAS Gameplay Ability by tag, with optional "wait for finishing"TurnTo- turn enemy using turn animations
- UHLCommonMaps
- UHLDebugSystem
// install as git submodule to your plugins folder git submodule add https://github.com/Ciberusps/unreal-helper-library.git ./Plugins/UnrealHelperLibrary // to update plugin git submodule update --init --recursive --checkoutor install all plugins as independent plugins
git submodule add https://github.com/Ciberusps/UHL.git ./Plugins/UHL git submodule add https://github.com/Ciberusps/UHLGAS.git ./Plugins/UHLGAS git submodule add https://github.com/Ciberusps/UHLAI.git ./Plugins/UHLAI git submodule add https://github.com/Ciberusps/UHLStateTree.git ./Plugins/UHLStateTree git submodule add https://github.com/Ciberusps/UHLBehaviorTree.git ./Plugins/UHLBehaviorTree git submodule add https://github.com/Ciberusps/UHLCharacter.git ./Plugins/UHLCharacter git submodule add https://github.com/Ciberusps/UHLCommonMaps.git ./Plugins/UHLCommonMaps git submodule add https://github.com/Ciberusps/UHLDebugSystem.git ./Plugins/UHLDebugSystem // to update plugins git submodule update --init --remote --recursiveNote
Don't forget to update your README.md with instructions on how to setup - git submodule update --init --recursive and how to update submodules/plugin(s) - git submodule update --remote
Note
Add Editor Preferences -> Force Compilation on Startup in Config/EditorPerProjectUserSettings.ini your team don't want to recompile plugin manually 😉
https://www.fab.com/listings/9f7d82e9-bc72-42ff-b302-b3d6562bd4c8
UHL consists of 3 modules:
- UnrealHelperLibrary - main module with GAS helper classes, AI behavior tree nodes, Blueprint Function Libraries. Most functionality can be tested in
Gyms(maps for testing atomic/single gameplay mechanic), allGymslocated in/Plugins/UnrealHelperLibrary/Content/Gyms - UnrealHelperEditor - optional module with editor customization, e.g. custom thumnails, custom class icons
- UHL Utils (EditorUtilityWidget) - widget with tools helping you make trivial things, like
ConvertToORMquite often task when you want to combine 3 texturesOcclusion,Roughness,Metalicin one ORM texture
AI nodes for behavior tree, based on BehaviorTree and BehaviorTreeComponent from UE5.4 and UE5.5 with some improvements and additional features
Gameplay Ability System - Lyra based inputs, ability system component, ability system config, input cache, attribute set, ability sets
Default character class with UHL interfaces implemented, so you don't need to do it by yourself
Debug system for your game, in mid-size commands you always use limited set of debugging tools
if already have plugin
-
checkout main
-
commit UnrealHelperLibrary change
-
run command -
git submodule update --init --recursive -
UHL CommonMaps - in
Config/DefaultGamerename section from [/Script/CommonMaps.UHLCommonMapsDeveloperSettings] -> [/Script/UHLCommonMaps.UHLCommonMapsDeveloperSettings]
git submodule add https://github.com/Ciberusps/UHL.git ./Plugins/UHL git submodule add https://github.com/Ciberusps/UHLAI.git ./Plugins/UHLAI git submodule add https://github.com/Ciberusps/UHLBehaviorTree.git ./Plugins/UHLBehaviorTree git submodule add https://github.com/Ciberusps/UHLStateTree.git ./Plugins/UHLStateTree git submodule add https://github.com/Ciberusps/UHLCharacter.git ./Plugins/UHLCharacter git submodule add https://github.com/Ciberusps/UHLCommonMaps.git ./Plugins/UHLCommonMaps git submodule add https://github.com/Ciberusps/UHLDebugSystem.git ./Plugins/UHLDebugSystem git submodule add https://github.com/Ciberusps/UHLGAS.git ./Plugins/UHLGAS- all modules moved to separate plugins and made as independent as possible now dependency tree looks like
- TODO: draw dependency tree using schemas
- UHLAI
- UHLBehaviorTree
- UHLStateTree
- UHLCharacter
- UHLGAS
- UHLCharacter
- UHL
- UHLCharacter
- UHLCommonMaps
- UHLDebugSystem
- UHLCharacter
- UHLAI
- UHLSettings moved to UHLAISettings now UHLStateTree and UHLBehaviorTree independent from core "UHL" plugin and can be used completly separatly from it. UHLStateTree and UHLBehaviorTree depends only on UHLAI
