【Magical Girl Proto】v2024.04.26
ฝัง
- เผยแพร่เมื่อ 26 ก.ค. 2024
- Continuation of overhaul clean up.
Initial implementation of AI Behavior. Packaged with listen server and joining clients. Added Title.
- Clean up
- Events are set to `private` if it has private scope
- Assets renamed with better naming convention
- Removed Dodging from Player Character
- Removed Knock completely
- Moved limiting camera pitch to `BPC_Camera_Enhanced`
- Removed unused files
- Cleaned up level map
- Updated to use event dispatchers:
- `On_Lock_On_Off` exists in `BP_PlayerController_Custom`
- Calls in `BPC_Targeting` on clients when Player locks on/off
- Binds in `WBP_HUD_Main`, which will update the HUD
- `On_Received_Damage` exists in `BP_GameState_Custom`
- Calls in `BPC_Combat` on multicast when Entity takes damage
- Binds in `WBP_HUD_Main`, which will update damage text on HUD
- Binds in `WBP_TargetMarker`, which will update damage text on TargetMarker
- Added debug improvements
- Added slow-motion, global time dilation set to 0.01
- Added `BP_Debug_Event`
- Subscribes to `On_Lock_On_Off` and `On_Received_Damage` and prints out messages
- Also subscribes to `On_Death`
- Updated `BPC_Combat`
- Added parameter `Preventable` to `Server_Receive_Damage`
- Check if the damage can be affected by invulnerable or blocked
- For example:
- Preventable: Any attacks doing damage
- Preventable: Any attacks doing negative Status Condition
- Not Preventable: Healing attacks doing no or positive Status Condition
- Updated `SkipNumerical`
- Check if numerical damage should be applied
- For example:
- Skip Numerical: Attacks doing only Status Conditions and no damage
- Don't Skip Numerical: Attacks doing any damage even when Defender's defense is very high such that it does 0 damage
- Combinations:
```
Damage + No Status Condition
Damage + Positive Status Condition
Damage + Negative Status Condition
Healing + Negative Status Condition
No Damage + Negative Status Condition
Healing + No Status Condition
Healing + Positive Status Condition
No Damage + No Status Condition
No Damage + Positive Status Condition
```
- Initial implementation of AI Behavior
- Using AI Controller, Behavior Tree, and Blackboard
- AI Controller: Shared, `AIC_Generic`
- Behavior Tree: Unique for each Entity, `BT_Sevarog`
- Blackboard: Shared, `BB_Generic`
- Testing on Sevarog
- `BP_Sevarog_02` will implement `BPI_AIControllerable` which has `Get_BehaviorTree` (returns `BT_Sevarog`) that is used in `AIC_Generic`
- Added `DT_Entity_Action`
- Table of Actions
- Table keys used in BT
- Lists of BTTasks
- On Death: Calls `On_Death` and deletes Actor
- WIP: Currently only targets Player 0
- Updated `BPC_Combat`
- New action while another action is ongoing will cancel ongoing action/animation first before continuing to the new action
- Reference: • Smart Enemy AI Tutoria...
- Fixed bug: Niagara particles were not showing unless files are opened after opening UE Editor
- Load Asset for soft references
- Updated UE from 5.3.2 to 5.4.0
- In VS 2022,
```
Magical-Girl-Proto\Source\MagicalGirlProto.Target.cs
Magical-Girl-Proto\Source\MagicalGirlProtoEditor.Target.cs
```
Change from:
`DefaultBuildSettings = BuildSettingsVersion.V2;`
to
`DefaultBuildSettings = BuildSettingsVersion.Latest;`
- Set project as startup to fix issues with running, `Set as Startup Project`
(...)
0:00 Demo
6:36 Dynamic replicated Add BPC with IsServer check in Event Graph
8:18 Dynamic replicated Add BPC in Construction Script
9:54 Packaged game
Script notes:
- Debug_Event on
- Slow motion debug while attacking, on server and client
- Lock on/off
- Received damage shows updates on HUD and TargetMarker
- Show attacks
- AI Behavior
- Show `BT_Sevarog`
- Show on server and client
- Multiple Sevarogs
- Sevarog interrupted with death
- Automatically re-calculate lock-on after lock-on death
- Show at least one full Sevarog attack rotation (greater than 75%)
- Sevarog rotation less than 75%
- Host + Clients
- Test damage, occlusion
- Replicated `Add BPC`: Event Graph with IsServer vs Construction Script - เกม
(...)
- Replicated dynamic `Add BPC` moved from Event Graph to Construction Script, and removed IsServer check
- Error mentioned in recent UE 5.4.0 update in the logs
- Previously if using Event Graph, replicated Add BPC has an `Is Server` check: only added the BPC on the server, then the BPC will replicate over to the clients
- Now the Add BPC does not need the `Is Server` check and can be added directly in Construction Script: replication of the BPC seems to be properly handled
- Although there is an error in the log when using Event Graph previously,
```
LogOutputDevice: Error: Replicated component BP_Barrel_C_0::NODE_AddBPC_Combat-3 was added dynamically outside the construction script. This is not well supported and the component on the client will be initialized using the wrong archetype.
```
It seems to work fine except one instance when testing with the packaged game
- Three standalone packaged game instances: one hosting (Player A), one client joined (Player B), one client joined (Player C)
- If Replicated Add BPC with IsServer check in Event Graph: Player A can see B and C, Player B can only see A, and Player C can see A and B. Player B can initially see both but Player C disappears when they start to move/jump
- Issue is fixed and works perfectly if moved Replicated Add BPC to Construction Script
- Strange issue, not sure why, but is fixed with these changes
- Unreplicated Add BPC should still stay in Event Graph, especially when utilizing IsLocallyControlled, IsPlayerControlled, or delays (which do not work in Construction Script)
- Added Title
- Allows player to Host listen server and others to Join
- Testable in packaged game