Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UCameraBlurEffectProcessor 클래스 참조

#include <CameraBlurEffectProcessor.h>

UCameraBlurEffectProcessor에 대한 상속 다이어그램 :
Inheritance graph
UCameraBlurEffectProcessor에 대한 협력 다이어그램:
Collaboration graph

Public 속성

TMap< ECameraBlurEffectType, FCameraBlurEffectSettingsBlurSettings
 

Protected 멤버 함수

virtual void OnStart (const FCameraEffect &CameraEffect, APlayerController *PC) override
 
virtual void OnUpdate (const FCameraEffect &CameraEffect, APlayerController *PC) override
 
virtual void OnEnd (const FCameraEffect &CameraEffect, APlayerController *PC) override
 
- UCameraEffectProcessor(으)로부터 상속된 Protected 멤버 함수
virtual void OnInitialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 
virtual void OnDeinitialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 

Private 멤버 함수

bool TryGetBlurValues (const ECameraBlurEffectType EffectType, const float ElapsedTimeRatio, float &OutStrength, float &OutWeight) const
 

Private 속성

float StartRealTime = 0.0f
 
float DurationMul = 0.0f
 
bool bIsActive = false
 

추가로 상속된 멤버들

- UCameraEffectProcessor(으)로부터 상속된 Public 멤버 함수
void Initialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 
void Deinitialize (const FCameraEffect &CameraEffect, APlayerController *PC)
 
void Start (const FCameraEffect &CameraEffect, APlayerController *PC)
 
bool Update (const FCameraEffect &CameraEffect, APlayerController *PC)
 
void End (const FCameraEffect &CameraEffect, APlayerController *PC)
 
FORCEINLINE ECameraEffectProcessorState GetCurrentState () const
 
FORCEINLINE int32 GetActivatedTickCount () const
 
FORCEINLINE void ResetActivatedTickCount ()
 

멤버 함수 문서화

◆ OnEnd()

void UCameraBlurEffectProcessor::OnEnd ( const FCameraEffect CameraEffect,
APlayerController *  PC 
)
overrideprotectedvirtual

UCameraEffectProcessor(으)로부터 재구현되었습니다.

118{
119 Super::OnEnd(CameraEffect, PC);
120 bIsActive = false;
121
122 if (PC == nullptr || PC->PlayerCameraManager == nullptr)
123 {
124 return;
125 }
126
127 AGameCameraManager* CamManager = Cast<AGameCameraManager>(PC->PlayerCameraManager);
128
129 if (CamManager == nullptr)
130 {
131 LOG_ERROR(LogCK, "%s를 불러올 수 없습니다. ", NAMEOF(AGameCameraManager));
132 return;
133 }
134
135 UCameraPostProcessComponent* PostProcessComponent = CamManager->GetCameraPostProcessComponent();
136
137 if (PostProcessComponent == nullptr)
138 {
139 return;
140 }
141
142 PostProcessComponent->ClearAllBlurMaterials();
143 PostProcessComponent->ClearBlurPPSettings();
144}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF(Type)
Definition CK_UE.h:30
Definition GameCameraManager.h:28
FORCEINLINE UCameraPostProcessComponent * GetCameraPostProcessComponent() const
Definition GameCameraManager.h:107
bool bIsActive
Definition CameraBlurEffectProcessor.h:33
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnStart()

void UCameraBlurEffectProcessor::OnStart ( const FCameraEffect CameraEffect,
APlayerController *  PC 
)
overrideprotectedvirtual

UCameraEffectProcessor(으)로부터 재구현되었습니다.

17{
18 Super::OnStart(CameraEffect, PC);
19
20 if (PC == nullptr)
21 {
22 return;
23 }
24
25 const UWorld* World = PC->GetWorld();
26 if (World == nullptr)
27 {
28 return;
29 }
30
31 StartRealTime = World->GetRealTimeSeconds();
32 const float Duration = CameraEffect.EndSeconds - CameraEffect.StartSeconds;
33 DurationMul = FMath::IsNearlyZero(Duration) ? 0.0f : (1.0f / Duration);
34 bIsActive = true;
35}
float DurationMul
Definition CameraBlurEffectProcessor.h:32
float StartRealTime
Definition CameraBlurEffectProcessor.h:31
float StartSeconds
Definition CameraEffector.h:31
float EndSeconds
Definition CameraEffector.h:34

◆ OnUpdate()

void UCameraBlurEffectProcessor::OnUpdate ( const FCameraEffect CameraEffect,
APlayerController *  PC 
)
overrideprotectedvirtual

UCameraEffectProcessor(으)로부터 재구현되었습니다.

39{
40 Super::OnUpdate(CameraEffect, PC);
41
42 if (PC == nullptr || PC->PlayerCameraManager == nullptr)
43 {
44 return;
45 }
46
47 if (bIsActive == false)
48 {
49 return;
50 }
51
52 AGameCameraManager* CamManager = Cast<AGameCameraManager>(PC->PlayerCameraManager);
53
54 if (CamManager == nullptr)
55 {
56 return;
57 }
58
59 UCameraPostProcessComponent* PostProcessComponent = CamManager->GetCameraPostProcessComponent();
60
61 if (PostProcessComponent == nullptr)
62 {
63 return;
64 }
65
66 if (BlurSettings.IsEmpty())
67 {
68 return;
69 }
70
71 const UWorld* World = PC->GetWorld();
72
73 if (World == nullptr)
74 {
75 return;
76 }
77
78 const float ElapsedTimeRatio = (World->GetRealTimeSeconds() - StartRealTime) * DurationMul;
79 FPostProcessSettings PPSettings;
80 bool bHasPPSettings = false;
81 float PPWeight = 1.0f;
82
83 for (const TPair<ECameraBlurEffectType, FCameraBlurEffectSettings>& Pair : BlurSettings)
84 {
85 float CurrentStrength = 0.0f;
86 float CurrentWeight = 0.0f;
87
88 if (TryGetBlurValues(Pair.Key, ElapsedTimeRatio, CurrentStrength, CurrentWeight) == false)
89 {
90 continue;
91 }
92
93 if (Pair.Key == ECameraBlurEffectType::ChromaticAberration)
94 {
95 PPSettings.bOverride_SceneFringeIntensity = true;
96 PPSettings.SceneFringeIntensity = CurrentStrength * 5.0f;
97 PPWeight = CurrentWeight;
98 bHasPPSettings = true;
99 continue;
100 }
101
102 if (Pair.Key == ECameraBlurEffectType::None)
103 {
104 continue;
105 }
106
107 PostProcessComponent->ApplyBlurMaterial(Pair.Key, CurrentStrength, CurrentWeight);
108 }
109
110 if (bHasPPSettings)
111 {
112 PostProcessComponent->SetBlurPPSettings(PPSettings, PPWeight);
113 }
114}
TMap< ECameraBlurEffectType, FCameraBlurEffectSettings > BlurSettings
Definition CameraBlurEffectProcessor.h:28
bool TryGetBlurValues(const ECameraBlurEffectType EffectType, const float ElapsedTimeRatio, float &OutStrength, float &OutWeight) const
Definition CameraBlurEffectProcessor.cpp:147
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ TryGetBlurValues()

bool UCameraBlurEffectProcessor::TryGetBlurValues ( const ECameraBlurEffectType  EffectType,
const float  ElapsedTimeRatio,
float &  OutStrength,
float &  OutWeight 
) const
private
148{
149 const FCameraBlurEffectSettings* Settings = BlurSettings.Find(EffectType);
150
151 if (Settings == nullptr)
152 {
153 return false;
154 }
155
156 float CurveScale = 1.0f;
157
158 if (Settings->BlurCurve)
159 {
160 CurveScale = Settings->BlurCurve->GetFloatValue(FMath::Clamp(ElapsedTimeRatio, 0.0f, 1.0f));
161 }
162
163 OutStrength = FMath::Max(Settings->Strength * CurveScale, 0.0f);
164
165 if (Settings->bAutoWeight)
166 {
167 OutWeight = FMath::IsNearlyZero(OutStrength) ? 0.0f : 1.0f;
168 }
169 else
170 {
171 OutWeight = FMath::Clamp(Settings->Weight, 0.0f, 1.0f);
172 }
173
174 return true;
175}
Definition CameraBlurEffect.h:25
float Weight
Definition CameraBlurEffect.h:36
float Strength
Definition CameraBlurEffect.h:30
bool bAutoWeight
Definition CameraBlurEffect.h:33
TObjectPtr< UCurveFloat > BlurCurve
Definition CameraBlurEffect.h:40
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bIsActive

bool UCameraBlurEffectProcessor::bIsActive = false
private

◆ BlurSettings

TMap<ECameraBlurEffectType, FCameraBlurEffectSettings> UCameraBlurEffectProcessor::BlurSettings

◆ DurationMul

float UCameraBlurEffectProcessor::DurationMul = 0.0f
private

◆ StartRealTime

float UCameraBlurEffectProcessor::StartRealTime = 0.0f
private

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: