ALSV4_CPP What the plugin contains - TwitchBlade/ALS-Wiki GitHub Wiki

This page lists all the assets and C++ classes part of the plugin. In bold you have the most relevant ones, if you want to study the system you can start from those.

ALSV4_CPP C++ Classes

  • Character/ALSBaseCharacter: Is one of the most important classes of the system. It's a subclass of Unreal Engine ACharacter class. It contains:
    • the setup of the player input - SetupPlayerInputComponent() function
    • the update of character movement while on ground, mantle checks and ragdoll - Tick() function
    • set of movement state, gait, actions, stance
    • rotation mode, updating rotations in air and on ground
    • update of mantle
    • switch of camera modes
  • Animation/ALSCharacterAnimInstance: Is one of the most important classes of the system. It's a subclass of Unreal Engine UAnimInstance class. It manages the update of all the core variables, in particular through UpdateLayerValues(), UpdateMovementValues(), UpdateRotationValues() functions, which are then sending the information to the ALS_AnimBP.
  • Character/ALSCharacter: It's a subclass of ALSBaseCharacter. This class just has the purpose to demonstrate that you can specialize ALSBaseCharacter class in subclasses to add some specific functionality. In principle all stuff contained here can go in ALSBaseCharacter. It contains:
    • functionality to attach an object to the hand of the character (example torch) - AttachToHand() function
  • Character/ALSCharacterMovementComponent: Not clear to me what it does
  • Character/ALSPlayerCameraManager: Manages the camera rotation, trying to smooth the movement of the camera
  • Character/ALSPlayerController: Only manages the Possess of new char, but you can basically ignore this class
  • AI/ALSAIController: Sets the Behaviour Tree of NPCs to /CharacterLogic/AI/ALS_BT_AICharacter. If you dont need NPC in your game you can ignore this, and all other classes under /AI
  • AI/ALS_BTTask_GetRandomLocation: using the Navigation System, searches for the next random location where the NPC will move to.
  • AI/ALS_BTTask_SetFocusToPlayer: used by some NPC to set their focus to the current player, so they can follow him, or look at him.
  • Animation/ALSPlayerCameraBehaviour: gets the information about stance, gait, action, rotation ... and set those on the camera.
  • Animation/Notify/*: Used to specialize footstep animation sounds, camera shake and ground state entry
  • Library/ALSMathLibrary: Various Math functions

ALSV4_CPP Content

  • Audio: Footstep sounds, UI sounds, background noise sounds.
  • Blueprints
    • AnimModifiers: no idea what these do. ?
    • CameraSystem: camera mesh and camera skeleton, very little logic in here
    • CharacterLogic
      • ALS_CharacterBP: as for the C++ class this basically contains only the Held object logic, very little.
      • ALS_Player_Controller: creates the HUD and add to viewport, contains the key inputs to execute the HUD commands (like show char info, debug view, etc..). Nothing else.
    • CharacterLogic/AI: contains the Behaviour Tree for NPCs to search random locations , move, wait and focus on player
    • GameModes: ALS_GameMode_SP sets only the Player Controller and Pawn classes, nothing else
    • Misc: Camera Shake settings
    • UI: widgets for HUD, buttons
  • CharacterAssets
    • MannequinSkeleton/ALS_AnimBP: This is the most important BP of the plugin, it contains all state machines to manage player movement, states, overlays. Its a subclass of the C++ class ALSCharacterAnimInstance.
    • MannequinSkeleton/ALS_Mannequin_Skeleton: This is the skeleton of the player model, where you can see how the player is setup, in particular check the Virtual Bones (VB), as those are used in the movement calculations.
    • MannequinSkeleton/ALS_Mannequin_T_Pose: T Pose, seems not to be used anywhere?
    • MannequinSkeleton/Editor: This AnimBP can be used in the editor as a Post Process Instance to modify an animation, which can then be recorded / exported as a new asset.
    • AnimationExamples (this folder is wrongly named "examples", these are actually the animations used in the demo)
      • Actions: Contains Mantle, GetUp, LandRoll animations
      • AimOffsets: Contains animations to allow the character to look left/right or up/down
      • Base/BasePoses: Crouched and standing animation poses
      • Base/InAir: Jump, Flail, Land animations
      • Base/InAir/Detail: Lean animations when falling
      • Base/Locomotion: Walk and run animations for standing and crouched positions
      • Base/Locomotion/Detail: Lean animations for walk/run
      • Base/Transitions: Animations to transition from crouched to standing and viceversa
      • Base/TurnInPlace: Animations to rotate left and right from standing or crouched positions
      • Overlay: Animations for all overlay states, like carry barrel, aim with bow, aim with pistol, ...
    • Materials: Materials applied to the demo character
    • Meshes: demo character and mannequin meshes
    • Physics Assets: physics assets for demo character and mannequin
  • Data
    • Data/Curves: Curves used to drive the animations making those more natural, example making a head turn faster at the start and slower at the end of the movement.
    • Data/DataTables: defines the speed of movement for walk/run/sprint
  • Environment: Contains the meshes, materials and text actors which make the enviroment where the character is moving in the demo level. You should not need any of this in your project.
  • Levels
    • ALS_DemoLevel: the main level to see the features of ALS.
    • ALS_GridLevel: a simple level with a grid on the ground to see visually the amount of movement.
  • Props: the items used by the character in the demo, like binoculars, bow, M4A1, ...