【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
  • เกม

ความคิดเห็น • 1

  • @seiyopidev
    @seiyopidev  3 หลายเดือนก่อน

    (...)
    - 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