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

#include <GameCameraManager.h>

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

Public 멤버 함수

 AGameCameraManager ()
 
virtual void UpdateCamera (float DeltaTime) override
 
virtual void ApplyCameraModifiers (float DeltaTime, FMinimalViewInfo &InOutPOV) override
 
void NotifyHitConfirmed ()
 
void AddPostProcessBlend (const FPostProcessSettings &InSettings, float InWeight)
 
void SetHitStopActive (bool bActive)
 
void PlayCameraEffectSequence (ACameraEffector *Effector, UTemplateSequence *Sequence=nullptr)
 
void StopCameraEffectSequence ()
 
bool IsPlayingSequence () const
 
void ReleaseLockOn ()
 
bool IsLockingOn () const
 
TScriptInterface< ITargetableInterfaceGetLockOnTarget ()
 
APawn * GetCameraSubjectPawn () const
 
FRotator GetMovementInputRotation () const
 
bool ShouldStopCameraMovement () const
 
bool ShouldStopCameraRotation () const
 
FORCEINLINE double GetLastHitConfirmedTime () const
 
FORCEINLINE UCameraZoomComponent * GetCameraZoomComponent () const
 
FORCEINLINE UCameraTargetingComponent * GetPlayerTargetingComponent () const
 
FORCEINLINE UCameraBehaviorComponent * GetCameraBehaviorComponent () const
 
FORCEINLINE APlayerController * GetCameraOwnerController () const
 
FORCEINLINE UCameraCollisionComponent * GetCameraCollisionComponent () const
 
FORCEINLINE UCameraPostProcessComponent * GetCameraPostProcessComponent () const
 

Public 속성

TObjectPtr< UTemplateSequence > CameraEffectSequence
 
FMovieSceneSequencePlaybackSettings SequencePlaybackSettings
 
float BaseDistance = 500.0f
 
float PositionBlendSeconds = 0.1f
 
float RotationBlendSeconds = 0.1f
 
float FOVBlendSeconds = 0.1f
 
float TimeScaleBlendSeconds = 0.1f
 
float LocationLagStrength = 0.35f
 
bool bApplyCameraRotationLag = false
 

Private 멤버 함수

void OnSequenceFinished ()
 
void ExecutePendingPlay ()
 
void StartPlaySequence (ACameraEffector *Effector, UTemplateSequence *TargetSequence)
 
void UpdateSequencerTimeDilationCompensation ()
 
bool IsCinematicViewTarget () const
 
void ReleaseTimeScaleRequest ()
 

Private 속성

TObjectPtr< UTemplateSequencePlayer > PreviousSequencerPlayer
 
TWeakObjectPtr< ATemplateSequenceActor > PreviousSequenceActor
 
TObjectPtr< UTemplateSequencePlayer > SequencePlayer
 
TWeakObjectPtr< ATemplateSequenceActor > SequenceActor
 
TWeakObjectPtr< ACameraEffectorBoundEffector
 
TWeakObjectPtr< ACameraEffectorPendingEffector
 
TWeakObjectPtr< UTemplateSequence > PendingSequence
 
TObjectPtr< UCameraMotionBlenderBlender
 
TObjectPtr< UCameraZoomComponent > CameraZoomComponent
 
TObjectPtr< UCameraTargetingComponent > PlayerTargetingComponent
 
TObjectPtr< UCameraBehaviorComponent > CameraBehaviorComponent
 
TObjectPtr< UCameraCollisionComponent > CameraCollisionComponent
 
TObjectPtr< UCameraPostProcessComponent > CameraPostProcessComponent
 
double LastHitConfirmedTime = -1.0
 
bool bHasPendingPlay = false
 
bool bHitStopActive = false
 

생성자 & 소멸자 문서화

◆ AGameCameraManager()

AGameCameraManager::AGameCameraManager ( )
25{
26 PrimaryActorTick.bCanEverTick = true;
27
28 Blender = CreateDefaultSubobject<UCameraMotionBlender>(TEXT("MotionBlender"));
29 CameraZoomComponent = CreateDefaultSubobject<UCameraZoomComponent>(TEXT("CameraDistance"));
30 PlayerTargetingComponent = CreateDefaultSubobject<UCameraTargetingComponent>(TEXT("PlayerTargeting"));
31 CameraBehaviorComponent = CreateDefaultSubobject<UCameraBehaviorComponent>(TEXT("CameraBehavior"));
32 CameraCollisionComponent = CreateDefaultSubobject<UCameraCollisionComponent>(TEXT("CameraCollision"));
33 CameraPostProcessComponent = CreateDefaultSubobject<UCameraPostProcessComponent>(TEXT("CameraPostProcess"));
34}
TObjectPtr< UCameraCollisionComponent > CameraCollisionComponent
Definition GameCameraManager.h:197
TObjectPtr< UCameraPostProcessComponent > CameraPostProcessComponent
Definition GameCameraManager.h:200
TObjectPtr< UCameraZoomComponent > CameraZoomComponent
Definition GameCameraManager.h:188
TObjectPtr< UCameraMotionBlender > Blender
Definition GameCameraManager.h:185
TObjectPtr< UCameraTargetingComponent > PlayerTargetingComponent
Definition GameCameraManager.h:191
TObjectPtr< UCameraBehaviorComponent > CameraBehaviorComponent
Definition GameCameraManager.h:194

멤버 함수 문서화

◆ AddPostProcessBlend()

void AGameCameraManager::AddPostProcessBlend ( const FPostProcessSettings &  InSettings,
float  InWeight 
)
320{
321 FPostProcessSettings Settings = InSettings;
322 AddCachedPPBlend(Settings, InWeight);
323}

◆ ApplyCameraModifiers()

void AGameCameraManager::ApplyCameraModifiers ( float  DeltaTime,
FMinimalViewInfo &  InOutPOV 
)
overridevirtual
130{
131 // 시네마틱 ViewTarget 이면 InOutPOV 가 이미 시네카메라의 POV — 가공하지 않고 그대로 통과시킴.
133 {
134 Super::ApplyCameraModifiers(DeltaTime, InOutPOV);
135 return;
136 }
137
138 if (UCameraBehaviorComponent* BehaviorComponent = GetCameraBehaviorComponent())
139 {
140 SetCameraCachePOV(InOutPOV);
141 BehaviorComponent->UpdateCameraBehavior(this, DeltaTime);
142 InOutPOV = GetCameraCacheView();
143 }
144
145 Super::ApplyCameraModifiers(DeltaTime, InOutPOV);
146}
bool IsCinematicViewTarget() const
Definition GameCameraManager.cpp:339
FORCEINLINE UCameraBehaviorComponent * GetCameraBehaviorComponent() const
Definition GameCameraManager.h:89
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ExecutePendingPlay()

void AGameCameraManager::ExecutePendingPlay ( )
private
252{
253 if (PreviousSequencerPlayer != nullptr)
254 {
256 }
257
258 PreviousSequencerPlayer = nullptr;
259
260 if (PreviousSequenceActor.IsValid())
261 {
262 PreviousSequenceActor->Destroy();
263 }
264
265 PreviousSequenceActor = nullptr;
266
267 if (bHasPendingPlay && PendingEffector.IsValid() && PendingSequence.IsValid())
268 {
270 }
271
272 bHasPendingPlay = false;
273 PendingEffector = nullptr;
274 PendingSequence = nullptr;
275}
void StartPlaySequence(ACameraEffector *Effector, UTemplateSequence *TargetSequence)
Definition GameCameraManager.cpp:191
TWeakObjectPtr< ACameraEffector > PendingEffector
Definition GameCameraManager.h:179
TWeakObjectPtr< UTemplateSequence > PendingSequence
Definition GameCameraManager.h:182
TWeakObjectPtr< ATemplateSequenceActor > PreviousSequenceActor
Definition GameCameraManager.h:166
bool bHasPendingPlay
Definition GameCameraManager.h:205
TObjectPtr< UTemplateSequencePlayer > PreviousSequencerPlayer
Definition GameCameraManager.h:163
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCameraBehaviorComponent()

FORCEINLINE UCameraBehaviorComponent * AGameCameraManager::GetCameraBehaviorComponent ( ) const
inline
90 {
92 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCameraCollisionComponent()

FORCEINLINE UCameraCollisionComponent * AGameCameraManager::GetCameraCollisionComponent ( ) const
inline
102 {
104 }

◆ GetCameraOwnerController()

FORCEINLINE APlayerController * AGameCameraManager::GetCameraOwnerController ( ) const
inline
96 {
97 return PCOwner;
98 }

◆ GetCameraPostProcessComponent()

FORCEINLINE UCameraPostProcessComponent * AGameCameraManager::GetCameraPostProcessComponent ( ) const
inline
108 {
110 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCameraSubjectPawn()

APawn * AGameCameraManager::GetCameraSubjectPawn ( ) const
404{
405 if (PCOwner == nullptr)
406 {
407 return nullptr;
408 }
409 else
410 {
411 return PCOwner->GetPawn();
412 }
413}

◆ GetCameraZoomComponent()

FORCEINLINE UCameraZoomComponent * AGameCameraManager::GetCameraZoomComponent ( ) const
inline
78 {
80 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetLastHitConfirmedTime()

FORCEINLINE double AGameCameraManager::GetLastHitConfirmedTime ( ) const
inline
72 {
74 }
double LastHitConfirmedTime
Definition GameCameraManager.h:203
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetLockOnTarget()

TScriptInterface< ITargetableInterface > AGameCameraManager::GetLockOnTarget ( )
391{
392 if (UCameraTargetingComponent* Comp = GetPlayerTargetingComponent())
393 {
394 return Comp->GetCurrentTarget();
395 }
396 else
397 {
398 return nullptr;
399 }
400}
FORCEINLINE UCameraTargetingComponent * GetPlayerTargetingComponent() const
Definition GameCameraManager.h:83
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ GetMovementInputRotation()

FRotator AGameCameraManager::GetMovementInputRotation ( ) const
438{
439 if (const UCameraBehaviorComponent* BehaviorComponent = GetCameraBehaviorComponent())
440 {
441 return BehaviorComponent->GetSmoothPlayerRotation();
442 }
443 else
444 {
445 return FRotator::ZeroRotator;
446 }
447}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetPlayerTargetingComponent()

FORCEINLINE UCameraTargetingComponent * AGameCameraManager::GetPlayerTargetingComponent ( ) const
inline
84 {
86 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsCinematicViewTarget()

bool AGameCameraManager::IsCinematicViewTarget ( ) const
private
340{
341 // BP 에서 Set Cinematic Mode(true) 호출 시 PCOwner->bCinematicMode 가 set 됨 — 우선 yield.
342 if (PCOwner && PCOwner->bCinematicMode)
343 {
344 return true;
345 }
346
347 const AActor* VT = ViewTarget.Target;
348 if (VT == nullptr)
349 {
350 return false;
351 }
352
353 // ACineCameraActor 는 ACameraActor 상속이라 한 번에 커버됨.
354 return VT->IsA<ACameraActor>() || VT->IsA<ALevelSequenceActor>();
355}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsLockingOn()

bool AGameCameraManager::IsLockingOn ( ) const
378{
379 if (const UCameraTargetingComponent* Comp = GetPlayerTargetingComponent())
380 {
381 return Comp && Comp->IsTargeting();
382 }
383 else
384 {
385 return false;
386 }
387}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ IsPlayingSequence()

bool AGameCameraManager::IsPlayingSequence ( ) const
359{
360 return SequencePlayer && SequencePlayer->IsPlaying();
361}
TObjectPtr< UTemplateSequencePlayer > SequencePlayer
Definition GameCameraManager.h:170
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NotifyHitConfirmed()

void AGameCameraManager::NotifyHitConfirmed ( )
327{
328 const UWorld* World = GetWorld();
329
330 if (World == nullptr)
331 {
332 return;
333 }
334
335 LastHitConfirmedTime = World->GetTimeSeconds();
336}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnSequenceFinished()

void AGameCameraManager::OnSequenceFinished ( )
private
451{
452 const TWeakObjectPtr<ATemplateSequenceActor> SequenceActorToDestroy = SequenceActor;
453 const TWeakObjectPtr<ACameraEffector> EffectorToDestroy = BoundEffector;
454
455 SequenceActor = nullptr;
456 SequencePlayer = nullptr;
457 BoundEffector = nullptr;
458
460
461 auto Lambda = [SequenceActorToDestroy, EffectorToDestroy]()
462 {
463 if (SequenceActorToDestroy.IsValid())
464 {
465 SequenceActorToDestroy->Destroy();
466 }
467
468 if (EffectorToDestroy.IsValid())
469 {
470 EffectorToDestroy->Destroy();
471 }
472 };
473
474 FTimerManager& Manager = GetWorldTimerManager();
475 Manager.SetTimerForNextTick(Lambda);
476}
TWeakObjectPtr< ACameraEffector > BoundEffector
Definition GameCameraManager.h:176
TWeakObjectPtr< ATemplateSequenceActor > SequenceActor
Definition GameCameraManager.h:173
void ReleaseTimeScaleRequest()
Definition GameCameraManager.cpp:118
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PlayCameraEffectSequence()

void AGameCameraManager::PlayCameraEffectSequence ( ACameraEffector Effector,
UTemplateSequence *  Sequence = nullptr 
)
150{
151 UTemplateSequence* TargetSequence;
152
153 if (Sequence)
154 {
155 TargetSequence = Sequence;
156 }
157 else
158 {
159 TargetSequence = CameraEffectSequence;
160 }
161
162 if (TargetSequence == nullptr)
163 {
164 LOG_ERROR(LogCK, "재생할 %s가 없습니다.", NAMEOF(UTemplateSequence));
165 return;
166 }
167
168 if (Effector == nullptr)
169 {
170 LOG_ERROR(LogCK, "%s가 유효하지 않습니다.", NAMEOF(UCameraEffectSource));
171 return;
172 }
173
174 if (IsPlayingSequence())
175 {
176 // MovieScene 평가 도중 Stop/Create 충돌을 피하기 위해 다음 틱으로 지연
177 PendingEffector = Effector;
178 PendingSequence = TargetSequence;
179 bHasPendingPlay = true;
180
182 GetWorldTimerManager().SetTimerForNextTick(this, &AGameCameraManager::ExecutePendingPlay);
183 }
184 else
185 {
186 StartPlaySequence(Effector, TargetSequence);
187 }
188}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF(Type)
Definition CK_UE.h:30
void ExecutePendingPlay()
Definition GameCameraManager.cpp:251
void StopCameraEffectSequence()
Definition GameCameraManager.cpp:278
bool IsPlayingSequence() const
Definition GameCameraManager.cpp:358
TObjectPtr< UTemplateSequence > CameraEffectSequence
Definition GameCameraManager.h:132
Definition CameraEffectSource.h:14
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ReleaseLockOn()

void AGameCameraManager::ReleaseLockOn ( )
365{
366 UCameraTargetingComponent* Comp = GetPlayerTargetingComponent();
367
368 if (Comp == nullptr)
369 {
370 return;
371 }
372
373 Comp->ReleaseTargeting();
374}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ReleaseTimeScaleRequest()

void AGameCameraManager::ReleaseTimeScaleRequest ( )
private
119{
120 // 이펙트가 끝났으니 자기가 늦춰둔 시간을 되돌린다.
121 // 아직 멈춰 있어야 하는 쪽은 OnTimeScaleRaised 를 받아 다시 주장한다.
122 if (UTimeManagementSubsystem* TimeSubsystem = GetWorld()->GetSubsystem<UTimeManagementSubsystem>())
123 {
124 TimeSubsystem->ResetTimeScale();
125 }
126}
Definition TimeManagementSubsystem.h:27
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetHitStopActive()

void AGameCameraManager::SetHitStopActive ( bool  bActive)
314{
315 bHitStopActive = bActive;
316}
bool bHitStopActive
Definition GameCameraManager.h:206

◆ ShouldStopCameraMovement()

bool AGameCameraManager::ShouldStopCameraMovement ( ) const
417{
418 if (BoundEffector.IsValid() == false)
419 {
420 return false;
421 }
422
423 return BoundEffector->bStopMovement;
424}

◆ ShouldStopCameraRotation()

bool AGameCameraManager::ShouldStopCameraRotation ( ) const
427{
428 if (BoundEffector.IsValid() == false)
429 {
430 return false;
431 }
432
433 return BoundEffector->bStopRotation;
434}

◆ StartPlaySequence()

void AGameCameraManager::StartPlaySequence ( ACameraEffector Effector,
UTemplateSequence *  TargetSequence 
)
private
192{
193 ATemplateSequenceActor* NewSequenceActor = nullptr;
194 SequencePlayer = UTemplateSequencePlayer::CreateTemplateSequencePlayer(this, TargetSequence, SequencePlaybackSettings, NewSequenceActor);
195
196 if (SequencePlayer == nullptr || NewSequenceActor == nullptr)
197 {
198 LOG_ERROR(LogCK, "%s 생성에 실패했습니다.", NAMEOF(UTemplateSequencePlayer));
199 return;
200 }
201
202 SequenceActor = NewSequenceActor;
203 BoundEffector = Effector;
204
206
207 NewSequenceActor->SetBinding(Effector);
208
209 SequencePlayer->OnFinished.AddUniqueDynamic(this, &AGameCameraManager::OnSequenceFinished);
210 SequencePlayer->Play();
211
212 // HitStop 도중에 시퀀스가 시작되더라도 첫 프레임부터 정상 속도로 재생되도록 즉시 보정
214}
float TimeScaleBlendSeconds
Definition GameCameraManager.h:152
float RotationBlendSeconds
Definition GameCameraManager.h:146
float PositionBlendSeconds
Definition GameCameraManager.h:143
FMovieSceneSequencePlaybackSettings SequencePlaybackSettings
Definition GameCameraManager.h:135
float FOVBlendSeconds
Definition GameCameraManager.h:149
void UpdateSequencerTimeDilationCompensation()
Definition GameCameraManager.cpp:217
void OnSequenceFinished()
Definition GameCameraManager.cpp:450
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopCameraEffectSequence()

void AGameCameraManager::StopCameraEffectSequence ( )
279{
280 if (SequencePlayer == nullptr)
281 {
282 return;
283 }
284
285 // Stop() 전에 델리게이트를 해제해 OnSequenceFinished 재진입을 차단
286 SequencePlayer->OnStop.RemoveAll(this);
287 SequencePlayer->OnFinished.RemoveAll(this);
288
289 if (SequencePlayer->IsPlaying())
290 {
292 }
293
294 if (SequenceActor.IsValid())
295 {
297 }
298
299 if (BoundEffector.IsValid())
300 {
301 BoundEffector->ForceEndAllEffects();
302 BoundEffector->Destroy();
303 }
304
305 SequenceActor = nullptr;
306 SequencePlayer = nullptr;
307 BoundEffector = nullptr;
308
310}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateCamera()

void AGameCameraManager::UpdateCamera ( float  DeltaTime)
overridevirtual
38{
39 // 시네마틱 ViewTarget(레벨 시퀀스의 시네카메라 등) 인 동안에는 커스텀 카메라 로직을 건너뛰고
40 // 엔진 기본 처리에 위임 — 그러지 않으면 매 틱 POV 를 덮어써서 카메라컷이 적용되지 않는다.
42 {
43 Super::UpdateCamera(DeltaTime);
44 return;
45 }
46
47 float CameraDeltaTime = DeltaTime;
48
49 if (UCameraTargetingComponent* TargetingComponent = GetPlayerTargetingComponent())
50 {
51 TargetingComponent->UpdateCameraBehavior(this, CameraDeltaTime);
52 }
53
54 if (UCameraZoomComponent* DistanceComponent = GetCameraZoomComponent())
55 {
56 DistanceComponent->UpdateCameraBehavior(this, CameraDeltaTime);
57 }
58
59 Super::UpdateCamera(DeltaTime);
60
62
63 if (UCameraPostProcessComponent* PostProcessComponent = GetCameraPostProcessComponent())
64 {
65 PostProcessComponent->ApplyCachedPostProcessBlend(this);
66 }
67
68 if (BoundEffector == nullptr)
69 {
70 return;
71 }
72
73 const float RealDeltaTime = static_cast<float>(FApp::GetDeltaTime());
74
75 const FVector Position = Blender->AdvancePosition(BoundEffector->Position, RealDeltaTime);
76 const FVector Rotation = Blender->AdvanceRotation(BoundEffector->GetEffectiveRotation(), RealDeltaTime);
77 const float FieldOfViewOffset = Blender->AdvanceFieldOfViewOffset(BoundEffector->FieldOfViewOffset, RealDeltaTime);
78
79 FMinimalViewInfo POV = GetCameraCacheView();
80
81 if (Position.IsZero() == false)
82 {
83 POV.Location += Position;
84 }
85
86 if (Rotation.IsZero() == false)
87 {
88 POV.Rotation += FRotator(Rotation.Y, Rotation.Z, Rotation.X);
89 }
90
91 if (FMath::IsNearlyZero(FieldOfViewOffset) == false)
92 {
93 POV.FOV += FieldOfViewOffset;
94 }
95
96 SetCameraCachePOV(POV);
97
99 {
100 return;
101 }
102
103 const float TimeScale = Blender->AdvanceTimeScale(BoundEffector->WorldTimeScale, RealDeltaTime);
104
105 if (FMath::IsNearlyZero(TimeScale))
106 {
107 return;
108 }
109
110 // 전역 시간은 TimeManagementSubsystem 이 합친다. 여기서는 원하는 배율만 요청한다.
111 if (UTimeManagementSubsystem* TimeSubsystem = GetWorld()->GetSubsystem<UTimeManagementSubsystem>())
112 {
113 TimeSubsystem->ApplyTimeScale(TimeScale);
114 }
115}
FORCEINLINE UCameraZoomComponent * GetCameraZoomComponent() const
Definition GameCameraManager.h:77
FORCEINLINE UCameraPostProcessComponent * GetCameraPostProcessComponent() const
Definition GameCameraManager.h:107
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateSequencerTimeDilationCompensation()

void AGameCameraManager::UpdateSequencerTimeDilationCompensation ( )
private
218{
219 if (SequencePlayer == nullptr || !SequencePlayer->IsPlaying())
220 {
221 return;
222 }
223
224 const UWorld* World = GetWorld();
225
226 if (World == nullptr)
227 {
228 return;
229 }
230
231 const AWorldSettings* WorldSettings = World->GetWorldSettings();
232
233 if (WorldSettings == nullptr)
234 {
235 return;
236 }
237
238 const float Dilation = WorldSettings->GetEffectiveTimeDilation();
239 const float BasePlayRate = SequencePlaybackSettings.PlayRate;
240 const float TargetRate = (Dilation > KINDA_SMALL_NUMBER) ? (BasePlayRate / Dilation) : BasePlayRate;
241
242 if (FMath::IsNearlyEqual(SequencePlayer->GetPlayRate(), TargetRate))
243 {
244 return;
245 }
246
247 SequencePlayer->SetPlayRate(TargetRate);
248}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bApplyCameraRotationLag

bool AGameCameraManager::bApplyCameraRotationLag = false

◆ BaseDistance

float AGameCameraManager::BaseDistance = 500.0f

플레이어와 카메라 사이 거리이자, 줌의 기준이 됨.

◆ bHasPendingPlay

bool AGameCameraManager::bHasPendingPlay = false
private

◆ bHitStopActive

bool AGameCameraManager::bHitStopActive = false
private

◆ Blender

TObjectPtr<UCameraMotionBlender> AGameCameraManager::Blender
private

◆ BoundEffector

TWeakObjectPtr<ACameraEffector> AGameCameraManager::BoundEffector
private

◆ CameraBehaviorComponent

TObjectPtr<UCameraBehaviorComponent> AGameCameraManager::CameraBehaviorComponent
private

◆ CameraCollisionComponent

TObjectPtr<UCameraCollisionComponent> AGameCameraManager::CameraCollisionComponent
private

◆ CameraEffectSequence

TObjectPtr<UTemplateSequence> AGameCameraManager::CameraEffectSequence

◆ CameraPostProcessComponent

TObjectPtr<UCameraPostProcessComponent> AGameCameraManager::CameraPostProcessComponent
private

◆ CameraZoomComponent

TObjectPtr<UCameraZoomComponent> AGameCameraManager::CameraZoomComponent
private

◆ FOVBlendSeconds

float AGameCameraManager::FOVBlendSeconds = 0.1f

◆ LastHitConfirmedTime

double AGameCameraManager::LastHitConfirmedTime = -1.0
private

◆ LocationLagStrength

float AGameCameraManager::LocationLagStrength = 0.35f

◆ PendingEffector

TWeakObjectPtr<ACameraEffector> AGameCameraManager::PendingEffector
private

◆ PendingSequence

TWeakObjectPtr<UTemplateSequence> AGameCameraManager::PendingSequence
private

◆ PlayerTargetingComponent

TObjectPtr<UCameraTargetingComponent> AGameCameraManager::PlayerTargetingComponent
private

◆ PositionBlendSeconds

float AGameCameraManager::PositionBlendSeconds = 0.1f

◆ PreviousSequenceActor

TWeakObjectPtr<ATemplateSequenceActor> AGameCameraManager::PreviousSequenceActor
private

◆ PreviousSequencerPlayer

TObjectPtr<UTemplateSequencePlayer> AGameCameraManager::PreviousSequencerPlayer
private

◆ RotationBlendSeconds

float AGameCameraManager::RotationBlendSeconds = 0.1f

◆ SequenceActor

TWeakObjectPtr<ATemplateSequenceActor> AGameCameraManager::SequenceActor
private

◆ SequencePlaybackSettings

FMovieSceneSequencePlaybackSettings AGameCameraManager::SequencePlaybackSettings

◆ SequencePlayer

TObjectPtr<UTemplateSequencePlayer> AGameCameraManager::SequencePlayer
private

◆ TimeScaleBlendSeconds

float AGameCameraManager::TimeScaleBlendSeconds = 0.1f

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