From 2e2dc472d529b942fec40cbdf9579bbb4eb055ca Mon Sep 17 00:00:00 2001 From: Emilie Schott <43524962+EmilieSchott@users.noreply.github.com> Date: Thu, 6 Mar 2025 01:43:56 +0100 Subject: [PATCH 1/3] [ADD] Damage Display on Player screen and affect percent when hit by Melee Enemies --- Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset | 4 ++-- Content/Legumix/Player/BP_Play.uasset | 4 ++-- Content/Legumix/Player/HUD/WBP_DamageDisplay.uasset | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 Content/Legumix/Player/HUD/WBP_DamageDisplay.uasset diff --git a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset index fd32e0c..0ad6d19 100644 --- a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset +++ b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:534f38474dde37a8637b3476a7a04b14e09c77bf6d3d273b345e0a9464057ff8 -size 140384 +oid sha256:77a4f9da08863166e9d4bfd5c34ba0d5d5cb5a5019336e40069e434586982e3f +size 155532 diff --git a/Content/Legumix/Player/BP_Play.uasset b/Content/Legumix/Player/BP_Play.uasset index 542de20..af0ab3c 100644 --- a/Content/Legumix/Player/BP_Play.uasset +++ b/Content/Legumix/Player/BP_Play.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc671ebd77c88ba91852256def97a396662efbc816caff40f18381e2eac44413 -size 286911 +oid sha256:c33f1294a895879d3fda162bd55395f16161fdd04b3e443fe2a8b2a09a6acbd7 +size 299947 diff --git a/Content/Legumix/Player/HUD/WBP_DamageDisplay.uasset b/Content/Legumix/Player/HUD/WBP_DamageDisplay.uasset new file mode 100644 index 0000000..3600b61 --- /dev/null +++ b/Content/Legumix/Player/HUD/WBP_DamageDisplay.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:958ac948dde4c5891f4b3661c3190f9ea3163a184885808557829b3ea5e2d090 +size 39409 From 89f514a0e488ad2e99a5738478253b42ec5321c1 Mon Sep 17 00:00:00 2001 From: Emilie Schott <43524962+EmilieSchott@users.noreply.github.com> Date: Sun, 9 Mar 2025 03:00:07 +0100 Subject: [PATCH 2/3] Add post process material instance to display damage on screen --- .../Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset | 4 +-- Content/Legumix/Levels/LVL_GYM_00.umap | 4 +-- Content/Legumix/Player/BP_Play.uasset | 4 +-- Content/Legumix/Player/HUD/Greyscale.uasset | 3 ++ .../Player/HUD/M_Postprocess_Damage.uasset | 3 ++ .../HUD/M_Postprocess_Damage_Inst.uasset | 3 ++ .../Player/HUD/T_LavaMat4_Emissive.uasset | 3 ++ Source/LegumeMix/Private/Enemy/LMEnemy.cpp | 1 + Source/LegumeMix/Private/Player/LMPlayer.cpp | 4 +++ Source/LegumeMix/Public/Enemy/LMEnemy.h | 2 +- Source/LegumeMix/Public/Player/LMPlayer.h | 28 +++++++++++++++++++ 11 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 Content/Legumix/Player/HUD/Greyscale.uasset create mode 100644 Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset create mode 100644 Content/Legumix/Player/HUD/M_Postprocess_Damage_Inst.uasset create mode 100644 Content/Legumix/Player/HUD/T_LavaMat4_Emissive.uasset diff --git a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset index 0ad6d19..9d91910 100644 --- a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset +++ b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77a4f9da08863166e9d4bfd5c34ba0d5d5cb5a5019336e40069e434586982e3f -size 155532 +oid sha256:93f9b1b58b4fbcd25edbd71b7c063ceff3eb570196cff23c65734dd201bc1132 +size 156474 diff --git a/Content/Legumix/Levels/LVL_GYM_00.umap b/Content/Legumix/Levels/LVL_GYM_00.umap index 7c5a4e3..d523f28 100644 --- a/Content/Legumix/Levels/LVL_GYM_00.umap +++ b/Content/Legumix/Levels/LVL_GYM_00.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c0f7a83ea411981c11010e37f610332042e1f1d2bcf43c1dc81fb8f3ba21483 -size 979519 +oid sha256:84197784f712cc43d6b4e3512ca08739be790090387576fd7d1f2c915ac36c95 +size 979590 diff --git a/Content/Legumix/Player/BP_Play.uasset b/Content/Legumix/Player/BP_Play.uasset index af0ab3c..b3bc6bc 100644 --- a/Content/Legumix/Player/BP_Play.uasset +++ b/Content/Legumix/Player/BP_Play.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c33f1294a895879d3fda162bd55395f16161fdd04b3e443fe2a8b2a09a6acbd7 -size 299947 +oid sha256:bd8399d8102d6f0110ecf618b4decef972e915c833035ab6058ff7512acf695b +size 484954 diff --git a/Content/Legumix/Player/HUD/Greyscale.uasset b/Content/Legumix/Player/HUD/Greyscale.uasset new file mode 100644 index 0000000..4185ef5 --- /dev/null +++ b/Content/Legumix/Player/HUD/Greyscale.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ab485ad2bb51767342e4f10983b22737c5bafc972d39fcd62b0cc856de8a415 +size 9283 diff --git a/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset b/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset new file mode 100644 index 0000000..5c6e575 --- /dev/null +++ b/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dcb8de706099ffc7ee8024490eafff0c3cee3540d1f546509d2dcc39dd02ffc +size 23688 diff --git a/Content/Legumix/Player/HUD/M_Postprocess_Damage_Inst.uasset b/Content/Legumix/Player/HUD/M_Postprocess_Damage_Inst.uasset new file mode 100644 index 0000000..0a2f168 --- /dev/null +++ b/Content/Legumix/Player/HUD/M_Postprocess_Damage_Inst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47f61885148b08c7dce5a87092f0bd7f50862c2e37c11269ae5092f7fc60757a +size 6220 diff --git a/Content/Legumix/Player/HUD/T_LavaMat4_Emissive.uasset b/Content/Legumix/Player/HUD/T_LavaMat4_Emissive.uasset new file mode 100644 index 0000000..f4847bd --- /dev/null +++ b/Content/Legumix/Player/HUD/T_LavaMat4_Emissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebcff105190025a7407d86121af16d8ea7e5860dcc7d2773d3716c5f44708146 +size 57666122 diff --git a/Source/LegumeMix/Private/Enemy/LMEnemy.cpp b/Source/LegumeMix/Private/Enemy/LMEnemy.cpp index 25abcfa..aadbe70 100644 --- a/Source/LegumeMix/Private/Enemy/LMEnemy.cpp +++ b/Source/LegumeMix/Private/Enemy/LMEnemy.cpp @@ -6,6 +6,7 @@ ALMEnemy::ALMEnemy() { PrimaryActorTick.bCanEverTick = true; EnemyState = EEnemyState::EES_Chasing; + AttackingRadius = 100.f; AttackingDamage = 0.f; } diff --git a/Source/LegumeMix/Private/Player/LMPlayer.cpp b/Source/LegumeMix/Private/Player/LMPlayer.cpp index e611f89..a2dbffc 100644 --- a/Source/LegumeMix/Private/Player/LMPlayer.cpp +++ b/Source/LegumeMix/Private/Player/LMPlayer.cpp @@ -27,6 +27,10 @@ ALMPlayer::ALMPlayer() SpreadStream = FRandomStream(FMath::Rand()); HealthComponent = CreateDefaultSubobject(TEXT("HealthComponent")); + + HitPeriodLengthInSeconds = 0.f; + TimeElapsedSinceLastDamageInSeconds = 0.f; + CumulatedDamagesOnCurrentHitPeriod = 0.f; } void ALMPlayer::BeginPlay() diff --git a/Source/LegumeMix/Public/Enemy/LMEnemy.h b/Source/LegumeMix/Public/Enemy/LMEnemy.h index 919aa54..b129aa2 100644 --- a/Source/LegumeMix/Public/Enemy/LMEnemy.h +++ b/Source/LegumeMix/Public/Enemy/LMEnemy.h @@ -44,7 +44,7 @@ protected: double GetDistanceToTarget(const AActor* TargetedActor); /** - * Returns the distance between the enemy and a target. + * Performs an attack on the targeted pawn * @param TargetedPawn * @returns */ diff --git a/Source/LegumeMix/Public/Player/LMPlayer.h b/Source/LegumeMix/Public/Player/LMPlayer.h index a7bef32..38bbe50 100644 --- a/Source/LegumeMix/Public/Player/LMPlayer.h +++ b/Source/LegumeMix/Public/Player/LMPlayer.h @@ -113,6 +113,34 @@ private: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) TObjectPtr HealthComponent; + /** + * Length of the period in which the damages HUD will be displayed on player screen. + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta = (AllowPrivateAccess = true)) + double HitPeriodLengthInSeconds; + + /** + * Time elapsed since last damage taken. + * If it's superior to the HitPeriodLengthInSeconds variable, ends the Hit period + * and so the displaying of damages HUD on player screen + */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) + double TimeElapsedSinceLastDamageInSeconds; + + /** + * Cumulated damages taken by the player on the current hit period + * To calculate view occlusion percent for the damage HUD + */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) + float CumulatedDamagesOnCurrentHitPeriod; + + /** + * Player health at the current hit period beginning + * To calculate view occlusion percent for the damage HUD + */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) + float HealthAtTheCurrentHitPeriodBeginning; + private: #if WITH_EDITORONLY_DATA /** If set, bullet debug will be drawn. */ From 8bb7542dfd65360c33d019c114a34ca39f902718 Mon Sep 17 00:00:00 2001 From: Emilie Schott <43524962+EmilieSchott@users.noreply.github.com> Date: Sun, 9 Mar 2025 22:23:36 +0100 Subject: [PATCH 3/3] [ADD] Display post process material on screen with radius depending on damages amount taken over time --- .../Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset | 4 +- Content/Legumix/Levels/LVL_GYM_00.umap | 2 +- Content/Legumix/Player/BP_Play.uasset | 4 +- .../Player/HUD/M_Postprocess_Damage.uasset | 4 +- Source/LegumeMix/Private/Player/LMPlayer.cpp | 67 ++++++++++++++++++- .../Public/Player/LMHealthComponent.h | 2 + Source/LegumeMix/Public/Player/LMPlayer.h | 60 +++++++++++++++-- 7 files changed, 126 insertions(+), 17 deletions(-) diff --git a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset index 9d91910..15490a4 100644 --- a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset +++ b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:93f9b1b58b4fbcd25edbd71b7c063ceff3eb570196cff23c65734dd201bc1132 -size 156474 +oid sha256:79ce1eaf8c92f3dcbe0b59ca6c976be1a161d8acf14d36cea7a8f3e6e3b43349 +size 141512 diff --git a/Content/Legumix/Levels/LVL_GYM_00.umap b/Content/Legumix/Levels/LVL_GYM_00.umap index d523f28..2794140 100644 --- a/Content/Legumix/Levels/LVL_GYM_00.umap +++ b/Content/Legumix/Levels/LVL_GYM_00.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84197784f712cc43d6b4e3512ca08739be790090387576fd7d1f2c915ac36c95 +oid sha256:a030ec9cab6b4b991b2cd4ac11ab5e88b47346bcd0bcb657b6af3208bdbd8320 size 979590 diff --git a/Content/Legumix/Player/BP_Play.uasset b/Content/Legumix/Player/BP_Play.uasset index b3bc6bc..47cf459 100644 --- a/Content/Legumix/Player/BP_Play.uasset +++ b/Content/Legumix/Player/BP_Play.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bd8399d8102d6f0110ecf618b4decef972e915c833035ab6058ff7512acf695b -size 484954 +oid sha256:281dcd4cdfd08af9eaa65e33fe67f7d72e40c10d2ca503cb9668058e15549aa0 +size 463534 diff --git a/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset b/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset index 5c6e575..d01996c 100644 --- a/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset +++ b/Content/Legumix/Player/HUD/M_Postprocess_Damage.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0dcb8de706099ffc7ee8024490eafff0c3cee3540d1f546509d2dcc39dd02ffc -size 23688 +oid sha256:2e9485574a4e11a2b875255a8dc3a7874ae00b4caac0e5cd995e55f6c0df992d +size 24558 diff --git a/Source/LegumeMix/Private/Player/LMPlayer.cpp b/Source/LegumeMix/Private/Player/LMPlayer.cpp index a2dbffc..c21a898 100644 --- a/Source/LegumeMix/Private/Player/LMPlayer.cpp +++ b/Source/LegumeMix/Private/Player/LMPlayer.cpp @@ -28,9 +28,16 @@ ALMPlayer::ALMPlayer() SpreadStream = FRandomStream(FMath::Rand()); HealthComponent = CreateDefaultSubobject(TEXT("HealthComponent")); - HitPeriodLengthInSeconds = 0.f; - TimeElapsedSinceLastDamageInSeconds = 0.f; + HitPeriodLengthInSeconds = 15.f; + bHitPeriodInProgress = false; + TimeOfTheLastDamage = 0.f; + HealthAtTheCurrentHitPeriodBeginning = 100.f; CumulatedDamagesOnCurrentHitPeriod = 0.f; + PlayerViewOcclusionPercent = 0.f; + NextPlayerViewOcclusionPercent = 0.f; + PlayerViewOcclusionPercent = 0.f; + AlphaLerpForPlayerViewOcclusionPercent = 0.f; + } void ALMPlayer::BeginPlay() @@ -41,9 +48,41 @@ void ALMPlayer::BeginPlay() GetCamera()->SetFieldOfView(ULMUserSettings::GetLegumixUserSettings()->FieldOfView); - + HealthComponent->OnHealthChanged.AddDynamic(this, &ALMPlayer::SetDisplayDamageParameters); } +void ALMPlayer::Tick(float DeltaTime) +{ + if(bHitPeriodInProgress == true) + { + double TimeElapsedSinceLastDamage = GetWorld()->GetTimeSeconds() - TimeOfTheLastDamage; + if(TimeElapsedSinceLastDamage > HitPeriodLengthInSeconds) + { + if(bHitPeriodInProgress == true) + { + bHitPeriodInProgress = false; + PlayerViewOcclusionPercent = NextPlayerViewOcclusionPercent; + NextPlayerViewOcclusionPercent = 0.f; + AlphaLerpForPlayerViewOcclusionPercent = 0.f; + TimeOfTheLastDamage = 0.f; + CumulatedDamagesOnCurrentHitPeriod = 0.f; + } + } + } + + if(PlayerViewOcclusionPercent != NextPlayerViewOcclusionPercent) + { + AlphaLerpForPlayerViewOcclusionPercent = FMath::Clamp(AlphaLerpForPlayerViewOcclusionPercent + DeltaTime, 0, 1); + PlayerViewOcclusionPercent = FMath::Lerp(PlayerViewOcclusionPercent, NextPlayerViewOcclusionPercent, AlphaLerpForPlayerViewOcclusionPercent); + DamageDynamicMaterialInstance->SetScalarParameterValue("PlayerViewOcclusionPercent", PlayerViewOcclusionPercent); + } + else if(PlayerViewOcclusionPercent == NextPlayerViewOcclusionPercent) + { + AlphaLerpForPlayerViewOcclusionPercent = 0; + } +} + + bool ALMPlayer::PickUpAmmo(ALMAmmo* Ammo) { if (GEngine) @@ -163,3 +202,25 @@ USkeletalMeshComponent* ALMPlayer::GetArms() return ArmsMesh; } +void ALMPlayer::SetDisplayDamageParameters(float Health, float Damage) +{ + if (bHitPeriodInProgress == false) + { + HealthAtTheCurrentHitPeriodBeginning = Health; + bHitPeriodInProgress = true; + } + TimeOfTheLastDamage = GetWorld()->GetTimeSeconds(); + CumulatedDamagesOnCurrentHitPeriod += Damage; + SetPlayerViewOcclusionPercent(); +} + + + +void ALMPlayer::SetPlayerViewOcclusionPercent() +{ + AlphaLerpForPlayerViewOcclusionPercent = 0; + PlayerViewOcclusionPercent = NextPlayerViewOcclusionPercent; + NextPlayerViewOcclusionPercent = CumulatedDamagesOnCurrentHitPeriod / HealthAtTheCurrentHitPeriodBeginning; +} + + diff --git a/Source/LegumeMix/Public/Player/LMHealthComponent.h b/Source/LegumeMix/Public/Player/LMHealthComponent.h index cb9a577..a780596 100644 --- a/Source/LegumeMix/Public/Player/LMHealthComponent.h +++ b/Source/LegumeMix/Public/Player/LMHealthComponent.h @@ -23,6 +23,8 @@ public: void Kill(); public: + FORCEINLINE float GetHealth() const { return Health; } + /** * Applies an amount of damage to the component. * @param Damage The damage to apply the Health to. diff --git a/Source/LegumeMix/Public/Player/LMPlayer.h b/Source/LegumeMix/Public/Player/LMPlayer.h index 38bbe50..f86b10c 100644 --- a/Source/LegumeMix/Public/Player/LMPlayer.h +++ b/Source/LegumeMix/Public/Player/LMPlayer.h @@ -11,6 +11,7 @@ class UCameraComponent; class ULMWeaponManager; class ULMHealthComponent; +class UMaterialInstanceDynamic; class ALMAmmo; DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnRequestUnpauseSignature); @@ -48,6 +49,9 @@ protected: // Called when the game starts or when spawned virtual void BeginPlay() override; + // Called every frame + virtual void Tick(float DeltaTime) override; + public: UFUNCTION(BlueprintCallable) ULMWeaponManager* GetWeaponManager() { return WeaponManager; } @@ -113,34 +117,76 @@ private: UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) TObjectPtr HealthComponent; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta = (AllowPrivateAccess = true)) + TObjectPtr DamageDynamicMaterialInstance; + /** - * Length of the period in which the damages HUD will be displayed on player screen. + * Is a hit period in progress + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta = (AllowPrivateAccess = true)) + bool bHitPeriodInProgress; + + /** + * Length of the period in which the damage texture effect will be displayed on player screen. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Legumix, meta = (AllowPrivateAccess = true)) double HitPeriodLengthInSeconds; /** - * Time elapsed since last damage taken. - * If it's superior to the HitPeriodLengthInSeconds variable, ends the Hit period - * and so the displaying of damages HUD on player screen + * Time of last damage taken. + * If the time elapsed since is superior to the HitPeriodLengthInSeconds variable, ends the Hit period + * and so the displaying the damage texture effect on player screen */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) - double TimeElapsedSinceLastDamageInSeconds; + double TimeOfTheLastDamage; /** * Cumulated damages taken by the player on the current hit period - * To calculate view occlusion percent for the damage HUD + * To calculate view occlusion percent for the damage texture effect */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) float CumulatedDamagesOnCurrentHitPeriod; /** * Player health at the current hit period beginning - * To calculate view occlusion percent for the damage HUD + * To calculate view occlusion percent for the damage texture effect */ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) float HealthAtTheCurrentHitPeriodBeginning; + /** + * Percent of the player screen occupied with damage texture effect to reach + */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) + float NextPlayerViewOcclusionPercent; + + /** + * Previous percent of the player screen occupied with damage texture effect + * mandatory to make interpolation between this core and the current one + */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Legumix, meta = (AllowPrivateAccess = true)) + float PlayerViewOcclusionPercent; + + /** + * Percent of the player screen occupied with damage texture effect + */ + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category=Legumix, meta = (AllowPrivateAccess = true)) + float AlphaLerpForPlayerViewOcclusionPercent; + + /** + * Actualize all parameters needed to calculate PlayerViewOcclusionPercent + */ + UFUNCTION(BlueprintCallable, Category=PostProcess) + void SetDisplayDamageParameters(float Health, float Damage); + + /** + * Determine Percent of the player screen occupied with damage texture effect + */ + UFUNCTION(BlueprintCallable, Category=PostProcess) + void SetPlayerViewOcclusionPercent(); + + + private: #if WITH_EDITORONLY_DATA /** If set, bullet debug will be drawn. */