Migration

This commit is contained in:
2024-03-20 16:21:19 +01:00
commit 4d87f6e4ab
1847 changed files with 19406 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,133 @@
[Home](../Home.md)
# Create Blueprint Character
- [Create New Enemy](#create-new-enemy)
- [Create Playable Character](#create-playable-character)
- [Character Standards](#character-standards)
## Create New Enemy
### 1 - Create the character blueprint
- Create a subclass of `BP_AuraEnemy`
![Create Enemy Blueprint](01_CreateEnemyCharacterBlueprint.png)
### 2 - Base Character Setup
[Setup the base character values](#base-character)
### 3 - Assign a behavior
- Assign a controller class
![Assign AIController](09_AssignAIController.png)
- The controller contains the behavior tree that automatically runs. To make a custom behavior, refer to the [chapter](../CreateNewBehavior/Content.md)
### 4 - Setup the drop table
There is a variable in the `BP_AuraEnemy` that child classes can fill to define a drop table
![Setup Drop Table](10_SetDropTable.png)
The key is the class that spawn when character dies and value is the probability of spawning.
Any actor class can spawn
## Create Playable Character
### 1 - Create the Character Blueprint
- Create a subclass of `BP_PlayerCharacterBase`
![Create Playable Character Blueprint](11_CreatePlayerCharacterBlueprint.png)
### 2 - Base Character Setup
[Setup the base character values](#base-character)
## Base Character
### 1 - Setup Mesh and Animations
- Create an animation blueprint for the mesh.
Make a new ABP or instanciate the template animation blueprint or use your own
![Create Animation Blueprint](02_CreateAnimationBlueprint.png)
- Setup the character mesh and its animation blueprint. Also pick a weapon mesh if you need one
- Adjust the mesh position and capsule size
- Create the hit react animation montage
- Setup combat animations
Fill up the map of combat montages in the character defaults combat interface
All possible key are sub tags of `CombatMontage.*`
A reaction to `CombatMontage.HitReact` animation is required
![Assign Animations](03_AssignAnimations.png)
> To use multiple animation for a same tag, we need to override the behavior of the `GetCombatMontage` method
### 2 - Set the combat socket locations
- override the function `GetCombatSocketLocation` and setup socket for each subtag of `CombatSocket.*`
![Set Combat Sockets](04_CombatSocketLocation.png)
### 3 - Handle death behavior
- override the event `Die` that executes on the server.
- for enemies, the parent class will execute the multicast event `M_HandleDeath`. We can override it to defined a custom behavior when the character dies
![Handle Death Behavior](05_HandleDeath.png)
- The parent call will manage ragdoll, weapon drop, movement stop and remove health widget
- The custom implementation would typically play a death sound and dissolve meshes
### 4 - Character Class Info
- Create data asset blueprint from `CharacterClassInfo`
![Create Character Class](06_CreateCharacterClass.png)
- Set the name of the class
- Set the class tag to a subtag of `CharacterClass.`
- Add base effects
- Subclass of `GE_StartingAttributes_Base` to define primary attributes scaling
- `GE_Character_SecondaryAttributes` to scale secondary attributes
- `GE_Character_PassiveRegeneration` to grant passive health and mana regeneration
- Add the base abilities
- The `GA_HitReact` Ability to have a reaction to damages
- Any other ability you will need
- Add starting effects
- `GE_RestoreMaxLife` to grant full life to the unit when starting game. As the maximum life is only calculated after starting attributes is granted, all unit start with 0 hp.
- `GE_RestoreMaxMana` if the unit has mana
![Filled Class Info](07_FilledClassInfo.png)
- Assign the data asset to the character blueprint
![Assign Data Asset](08_AssignClassDataAsset.png)
## Character Standards
Make sure to create sound for all situations
- Footsteps
- Getting hurt
- Death