From 6240f501adffa0c42465224a3125ba523b7be8e9 Mon Sep 17 00:00:00 2001 From: "adnan.mujkic" Date: Fri, 11 Sep 2026 23:19:03 +0200 Subject: [PATCH] Depth of field fixes and camera zoom fixes --- Config/DefaultEngine.ini | 2 +- .../Blueprints/BP_ThirdPersonCharacter.uasset | 4 ++-- Source/ProjectEleri/Items/ItemDatabase.h | 1 + Source/ProjectEleri/Private/MyCharacter.cpp | 23 +++++++++++++------ Source/ProjectEleri/ProjectEleri.Build.cs | 2 +- Source/ProjectEleri/Public/MyCharacter.h | 5 +++- 6 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 95bd7f08..f70ea517 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -174,7 +174,7 @@ r.VolumetricFog.GridPixelSize=16 r.PathTracing=False r.Shadow.Virtual.Enable=0 r.Velocity.EnableVertexDeformation=1 -r.DepthOfFieldQuality=0 +r.DepthOfFieldQuality=1 r.AmbientOcclusion.Compute= 3 r.VelocityOutputPass=1 diff --git a/Content/ThirdPersonBP/Blueprints/BP_ThirdPersonCharacter.uasset b/Content/ThirdPersonBP/Blueprints/BP_ThirdPersonCharacter.uasset index 7b54544d..52b45eed 100644 --- a/Content/ThirdPersonBP/Blueprints/BP_ThirdPersonCharacter.uasset +++ b/Content/ThirdPersonBP/Blueprints/BP_ThirdPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f6b88d82b7d94d14c336d2b6416ff71e111faad5d07e26b0912e5083ae14c23e -size 1301649 +oid sha256:7bb6e9292a284f3d68d6457f2787076ec7396338921a854426a5f8d8bc7594fd +size 1292036 diff --git a/Source/ProjectEleri/Items/ItemDatabase.h b/Source/ProjectEleri/Items/ItemDatabase.h index db56657d..342fccde 100644 --- a/Source/ProjectEleri/Items/ItemDatabase.h +++ b/Source/ProjectEleri/Items/ItemDatabase.h @@ -18,6 +18,7 @@ struct FArrayOfItemRefs { GENERATED_BODY() public: + UPROPERTY() TArray ItemArray; void SortByName(); diff --git a/Source/ProjectEleri/Private/MyCharacter.cpp b/Source/ProjectEleri/Private/MyCharacter.cpp index 645ed813..fa1a515c 100644 --- a/Source/ProjectEleri/Private/MyCharacter.cpp +++ b/Source/ProjectEleri/Private/MyCharacter.cpp @@ -6,6 +6,7 @@ #include "Kismet/GameplayStatics.h" #include "EleriSaveGame.h" #include "EleriGameInstance.h" +#include "LTweenBPLibrary.h" #include "PaperFlipbookComponent.h" #include "Kismet/KismetMathLibrary.h" #include "../GameObjects/WaterBall.h" @@ -123,12 +124,12 @@ void AMyCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); - if (CurrentZoomTimer > 0.f) { - const float ZoomDelta = (NextZoomOffsetTarget * DeltaTime) / ZoomTime; - SpringArmRef->TargetArmLength += ZoomDelta; - CurrentZoomTimer -= DeltaTime; - UE_LOG(LogTemp, Warning, TEXT("Zooming in: ZoomDelta:%f"), ZoomDelta); - } + // if (CurrentZoomTimer > 0.f) { + // const float ZoomDelta = (NextZoomOffsetTarget * DeltaTime) / ZoomTime; + // SpringArmRef->TargetArmLength += ZoomDelta; + // CurrentZoomTimer -= DeltaTime; + // UE_LOG(LogTemp, Warning, TEXT("Zooming in: ZoomDelta:%f"), ZoomDelta); + // } } void AMyCharacter::EndPlay(const EEndPlayReason::Type EndPlayReason) @@ -187,15 +188,23 @@ void AMyCharacter::OnHarvestSeed_Implementation(class UItem* HarvestedItem) { } +void AMyCharacter::UpdateCameraZoom(float NewZoom) const +{ + SpringArmRef->TargetArmLength = NewZoom; +} + void AMyCharacter::ZoomCamera(float CameraZoomAmount, float Time) { CurrentZoomTimer = Time; ZoomTime = Time; NextZoomOffsetTarget = CameraZoomAmount; + FLTweenFloatSetterDynamic Setter; + Setter.BindDynamic(this, &AMyCharacter::UpdateCameraZoom); + ULTweenBPLibrary::FloatTo(this, Setter, SpringArmRef->TargetArmLength, SpringArmRef->TargetArmLength + CameraZoomAmount, Time); } void AMyCharacter::ZoomBack(float Time) { - ZoomCamera(SpringArmRef->TargetArmLength - DefaultZoom, Time); + ZoomCamera(DefaultZoom - SpringArmRef->TargetArmLength, Time); } void AMyCharacter::ReturnCameraToPlayer() { diff --git a/Source/ProjectEleri/ProjectEleri.Build.cs b/Source/ProjectEleri/ProjectEleri.Build.cs index 467a3571..a7472610 100644 --- a/Source/ProjectEleri/ProjectEleri.Build.cs +++ b/Source/ProjectEleri/ProjectEleri.Build.cs @@ -33,7 +33,7 @@ public class ProjectEleri : ModuleRules "InteractionSystem" }); - PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils", "Landscape" }); + PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils", "Landscape", "LTween" }); // Uncomment if you are using Slate UI // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); diff --git a/Source/ProjectEleri/Public/MyCharacter.h b/Source/ProjectEleri/Public/MyCharacter.h index e0596c72..40c473c1 100644 --- a/Source/ProjectEleri/Public/MyCharacter.h +++ b/Source/ProjectEleri/Public/MyCharacter.h @@ -82,6 +82,9 @@ protected: float CurrentZoomTimer = 0.f; float ZoomTime = 0.f; float NextZoomOffsetTarget = 0.f; + + UFUNCTION() + void UpdateCameraZoom(float NewZoom) const; static const FText PlayerName; @@ -145,7 +148,7 @@ public: void ZoomBack(float Time = 0.2f); UFUNCTION(BlueprintCallable, Category = "Camera Controll") void ReturnCameraToPlayer(); - + UFUNCTION(BlueprintCallable) void SetNewCameraPitches(float NewMinPitch, float NewMaxPitch);