Navigation
API > API/Runtime > API/Runtime/Engine
A PlayerCameraManager is responsible for managing the camera for a particular player. It defines the final view properties used by other systems (e.g. the renderer), meaning you can think of it as your virtual eyeball in the world. It can compute the final camera properties directly, or it can arbitrate/blend between other objects or actors that influence the camera (e.g. blending from one CameraActor to another).
The PlayerCameraManagers primary external responsibility is to reliably respond to various Get*() functions, such as GetCameraViewPoint. Most everything else is implementation detail and overrideable by user projects.
By default, a PlayerCameraManager maintains a "view target", which is the primary actor the camera is associated with. It can also apply various "post" effects to the final view state, such as camera animations, shakes, post-process effects or special effects such as dirt on the lens.
| Name | APlayerCameraManager |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Classes/Camera/PlayerCameraManager.h |
| Include Path | #include "Camera/PlayerCameraManager.h" |
Syntax
UCLASS (NotPlaceable, Transient, BlueprintType, Blueprintable, Config=Engine, MinimalAPI)
class APlayerCameraManager : public AActor
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → AActor → APlayerCameraManager
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
APlayerCameraManager
(
const FObjectInitializer& ObjectInitializer |
Camera/PlayerCameraManager.h |
Classes
| Name | Remarks |
|---|---|
| FOnBlendComplete | Fires when ViewTarget is set to PendingViewTarget |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AutoPlaneShift | float | Manually adjusts the planes of this camera, maintaining the distance between them. | Camera/PlayerCameraManager.h |
|
| bAutoCalculateOrthoPlanes | uint32 | True when this camera should automatically calculated the Near+Far planes | Camera/PlayerCameraManager.h |
|
| bClientSimulatingViewTarget | uint32 | True if clients are handling setting their own viewtarget and the server should not replicate it. | Camera/PlayerCameraManager.h |
|
| bDebugClientSideCamera | uint32 | For debugging. | Camera/PlayerCameraManager.h | |
| bDefaultConstrainAspectRatio | uint32 | True if black bars should be added if the destination view has a different aspect ratio (only used when a view target doesn't specify whether or not to constrain the aspect ratio; most of the time the value from a camera component is used instead) | Camera/PlayerCameraManager.h |
|
| bEnableColorScaleInterp | uint32 | True to smoothly interpolate color scale values when they change. | Camera/PlayerCameraManager.h | |
| bEnableColorScaling | uint32 | True to turn on scaling of color channels in final image using ColorScale property. | Camera/PlayerCameraManager.h | |
| bEnableFading | uint32 | True if we should apply FadeColor/FadeAmount to the screen. | Camera/PlayerCameraManager.h | |
| bFadeAudio | uint32 | True to apply fading of audio alongside the video. | Camera/PlayerCameraManager.h | |
| bGameCameraCutThisFrame | uint32 | True if we did a camera cut this frame. | Camera/PlayerCameraManager.h |
|
| bIsOrthographic | uint32 | Flags. | Camera/PlayerCameraManager.h |
|
| BlendParams | FViewTargetTransitionParams | Current view target transition blend parameters. | Camera/PlayerCameraManager.h | |
| BlendTimeToGo | float | Time remaining in viewtarget blend. | Camera/PlayerCameraManager.h | |
| bShouldSendClientSideCameraUpdate | uint32 | If true, send a camera update to the server on next update. | Camera/PlayerCameraManager.h | |
| bUpdateOrthoPlanes | uint32 | Adjusts the near/far planes and the view origin of the current camera automatically to avoid clipping and light artefacting | Camera/PlayerCameraManager.h |
|
| bUseCameraHeightAsViewTarget | uint32 | If UpdateOrthoPlanes is enabled, this setting will use the cameras current height to compensate the distance to the general view (as a pseudo distance to view target when one isn't present) | Camera/PlayerCameraManager.h |
|
| bUseClientSideCameraUpdates | uint32 | True if server will use camera positions replicated from the client instead of calculating them locally. | Camera/PlayerCameraManager.h |
|
| CameraStyle | FName | Usable to define different camera behaviors. A few simple styles are implemented by default. | Camera/PlayerCameraManager.h | |
| ColorScale | FVector | Allows control over scaling individual color channels in the final image (when bEnableColorScaling == true). | Camera/PlayerCameraManager.h | |
| ColorScaleInterpDuration | float | Total time for color scale interpolation to complete (when bEnableColorScaling and bEnableColorScaleInterp == true) | Camera/PlayerCameraManager.h | |
| ColorScaleInterpStartTime | float | Time at which interpolation started (when bEnableColorScaling and bEnableColorScaleInterp == true) | Camera/PlayerCameraManager.h | |
| DefaultAspectRatio | float | Default aspect ratio. Most of the time the value from a camera component will be used instead. | Camera/PlayerCameraManager.h |
|
| DefaultFOV | float | FOV to use by default. | Camera/PlayerCameraManager.h |
|
| DefaultModifiers | TArray< TSubclassOf< UCameraModifier > > | List of modifiers to create by default for this camera | Camera/PlayerCameraManager.h |
|
| DefaultOrthoWidth | float | The default desired width (in world units) of the orthographic view (ignored in Perspective mode) | Camera/PlayerCameraManager.h |
|
| DesiredColorScale | FVector | Desired color scale which ColorScale will interpolate to (when bEnableColorScaling and bEnableColorScaleInterp == true) | Camera/PlayerCameraManager.h | |
| FadeAlpha | FVector2D | Current camera fade alpha range, where X = starting alpha and Y = final alpha (when bEnableFading == true) | Camera/PlayerCameraManager.h | |
| FadeAmount | float | Amount of fading to apply (when bEnableFading == true). | Camera/PlayerCameraManager.h | |
| FadeColor | FLinearColor | Color to fade to (when bEnableFading == true). | Camera/PlayerCameraManager.h | |
| FadeTime | float | Total duration of the camera fade (when bEnableFading == true) | Camera/PlayerCameraManager.h | |
| FadeTimeRemaining | float | Time remaining in camera fade (when bEnableFading == true) | Camera/PlayerCameraManager.h | |
| FreeCamDistance | float | Distance to place free camera from view target (used in certain CameraStyles) | Camera/PlayerCameraManager.h |
|
| FreeCamOffset | FVector | Offset to Z free camera position (used in certain CameraStyles) | Camera/PlayerCameraManager.h |
|
| OnAudioFadeChangeEvent | FOnAudioFadeChangeSignature | If bound, broadcast on fade start (with fade time) instead of manually altering audio device's primary volume directly | Camera/PlayerCameraManager.h |
|
| OriginalColorScale | FVector | Color scale value at start of interpolation (when bEnableColorScaling and bEnableColorScaleInterp == true) | Camera/PlayerCameraManager.h | |
| PCOwner | TObjectPtr< class APlayerController > | PlayerController that owns this Camera actor | Camera/PlayerCameraManager.h |
|
| PendingViewTarget | FTViewTarget | Pending view target for blending | Camera/PlayerCameraManager.h |
|
| ViewPitchMax | float | Maximum view pitch, in degrees. | Camera/PlayerCameraManager.h |
|
| ViewPitchMin | float | Minimum view pitch, in degrees. | Camera/PlayerCameraManager.h |
|
| ViewRollMax | float | Maximum view roll, in degrees. | Camera/PlayerCameraManager.h |
|
| ViewRollMin | float | Minimum view roll, in degrees. | Camera/PlayerCameraManager.h |
|
| ViewTarget | FTViewTarget | Current ViewTarget | Camera/PlayerCameraManager.h |
|
| ViewTargetOffset | FVector | Offset to view target (used in certain CameraStyles) | Camera/PlayerCameraManager.h |
|
| ViewYawMax | float | Maximum view yaw, in degrees. | Camera/PlayerCameraManager.h |
|
| ViewYawMin | float | Minimum view yaw, in degrees. | Camera/PlayerCameraManager.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CameraCachePrivate | FCameraCacheEntry | Cached camera properties. | Camera/PlayerCameraManager.h |
|
| LastFrameCameraCachePrivate | FCameraCacheEntry | Cached camera properties, one frame old. | Camera/PlayerCameraManager.h |
|
| OnBlendCompleteEvent | FOnBlendComplete | Camera/PlayerCameraManager.h | ||
| ServerUpdateCameraTimeout | float | Timeout in seconds used to determine when to force a call to ServerUpdateCamera | Camera/PlayerCameraManager.h |
|
| TimeSinceLastServerUpdateCamera | float | Used to tell how long in seconds its been since ServerUpdateCamera was called | Camera/PlayerCameraManager.h | |
| TransformComponent | TObjectPtr< class USceneComponent > | Dummy component we can use to attach things to the camera. | Camera/PlayerCameraManager.h |
|
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddCachedPPBlend
(
FPostProcessSettings& PPSettings, |
Adds a postprocess effect at the given weight. | Camera/PlayerCameraManager.h | |
virtual TScriptInterface< class ICameraLensEffectInterface > AddGenericCameraLensEffect
(
TSubclassOf< AActor > LensEffectEmitterClass |
Creates a camera lens effect of the given class on this camera. | Camera/PlayerCameraManager.h |
|
virtual UCameraModifier * AddNewCameraModifier
(
TSubclassOf< UCameraModifier > ModifierClass |
Creates and initializes a new camera modifier of the specified class. | Camera/PlayerCameraManager.h |
|
virtual void ApplyCameraModifiers
(
float DeltaTime, |
Applies the current set of camera modifiers to the given camera POV. | Camera/PlayerCameraManager.h | |
virtual void AssignViewTarget
(
AActor* NewTarget, |
Camera/PlayerCameraManager.h | ||
bool BlueprintUpdateCamera
(
AActor* CameraTarget, |
Blueprint hook to allow blueprints to override existing camera behavior or implement custom cameras. | Camera/PlayerCameraManager.h |
|
virtual void ClearCameraLensEffects() |
Removes all camera lens effects. | Camera/PlayerCameraManager.h |
|
virtual void DisplayDebug
(
UCanvas* Canvas, |
Camera/PlayerCameraManager.h | ||
void FillCameraCache
(
const FMinimalViewInfo& NewInfo |
Caches given final POV info for efficient access from other game code. | Camera/PlayerCameraManager.h | |
virtual UCameraModifier * FindCameraModifierByClass
(
TSubclassOf< UCameraModifier > ModifierClass |
Returns camera modifier for this camera of the given class, if it exists. | Camera/PlayerCameraManager.h |
|
virtual TScriptInterface< class ICameraLensEffectInterface > FindGenericCameraLensEffect
(
TSubclassOf< AActor > LensEffectEmitterClass |
Camera Lens Effects Returns first instance of a lens effect of the given class. | Camera/PlayerCameraManager.h | |
void ForEachCameraModifier
(
TFunctionRef< bool(UCameraModifier*)> Fn |
Runs the given function on a local copy of the ModifierList of UCameraModifier, with the possibility of early exit Most easily used with a lambda as follows: ForEachCameraModifier( -> bool { return continueLoop ? true : false; }); | Camera/PlayerCameraManager.h | |
void GetCachedPostProcessBlends
(
TArray< struct FPostProcessSettings > const*& OutPPSettings, |
Returns active post process info. | Camera/PlayerCameraManager.h | |
void GetCachedPostProcessBlends
(
TArray< struct FPostProcessSettings > const*& OutPPSettings, |
Returns active post process info. | Camera/PlayerCameraManager.h | |
float GetCameraCacheTime() |
Get value of CameraCachePrivate.Time | Camera/PlayerCameraManager.h | |
virtual const FMinimalViewInfo & GetCameraCacheView() |
Gets value of CameraCachePrivate.POV | Camera/PlayerCameraManager.h | |
virtual FVector GetCameraLocation() |
Returns camera's current location. | Camera/PlayerCameraManager.h |
|
virtual FRotator GetCameraRotation() |
Returns camera's current rotation. | Camera/PlayerCameraManager.h |
|
virtual void GetCameraViewPoint
(
FVector& OutCamLoc, |
Primary function to retrieve Camera's actual view point. | Camera/PlayerCameraManager.h | |
virtual float GetFOVAngle() |
Returns the camera's current full FOV angle, in degrees. | Camera/PlayerCameraManager.h |
|
float GetLastFrameCameraCacheTime() |
Get value of LastFrameCameraCachePrivate.Time | Camera/PlayerCameraManager.h | |
virtual const FMinimalViewInfo & GetLastFrameCameraCacheView() |
Gets value of LastFrameCameraCachePrivate.POV | Camera/PlayerCameraManager.h | |
float GetLockedFOV() |
Camera/PlayerCameraManager.h | ||
virtual float GetOrthoWidth() |
Returns the current orthographic width for the camera. | Camera/PlayerCameraManager.h | |
virtual APlayerController * GetOwningPlayerController() |
Returns the PlayerController that owns this camera. | Camera/PlayerCameraManager.h |
|
USceneComponent * GetTransformComponent() |
Returns TransformComponent subobject | Camera/PlayerCameraManager.h | |
AActor * GetViewTarget() |
Returns the current ViewTarget. | Camera/PlayerCameraManager.h | |
APawn * GetViewTargetPawn() |
Returns the ViewTarget if it is an APawn, or nullptr otherwise | Camera/PlayerCameraManager.h | |
virtual void InitializeFor
(
APlayerController* PC |
Initialize this PlayerCameraManager for the given associated PlayerController. | Camera/PlayerCameraManager.h | |
virtual bool IsOrthographic() |
Returns true if this camera is using an orthographic perspective. | Camera/PlayerCameraManager.h | |
virtual void LimitViewPitch
(
FRotator& ViewRotation, |
Limit the player's view pitch. | Camera/PlayerCameraManager.h | |
virtual void LimitViewRoll
(
FRotator& ViewRotation, |
Limit the player's view roll. | Camera/PlayerCameraManager.h | |
virtual void LimitViewYaw
(
FRotator& ViewRotation, |
Limit the player's view yaw. | Camera/PlayerCameraManager.h | |
APlayerCameraManager::FOnBlendComplete TBaseMulticastDelegate_NoParams OnBlendComplete() |
Camera/PlayerCameraManager.h | ||
void OnPhotographyMultiPartCaptureEnd () |
Event triggered upon the end of a multi-part photograph capture, when manual free-roaming photographic camera control is about to be returned to the user. | Camera/PlayerCameraManager.h |
|
| Event triggered upon the start of a multi-part photograph capture (i.e. a stereoscopic or 360-degree shot). | Camera/PlayerCameraManager.h |
|
|
void OnPhotographySessionEnd() |
Event triggered upon leaving Photography mode (after unpausing, if r.Photography.AutoPause is 1). | Camera/PlayerCameraManager.h |
|
void OnPhotographySessionStart() |
Event triggered upon entering Photography mode (before pausing, if r.Photography.AutoPause is 1). | Camera/PlayerCameraManager.h |
|
void PhotographyCameraModify
(
const FVector NewCameraLocation, |
Implementable blueprint hook to allow a PlayerCameraManager subclass to constrain or otherwise modify the camera during free-camera photography. | Camera/PlayerCameraManager.h |
|
virtual void ProcessViewRotation
(
float DeltaTime, |
Called to give PlayerCameraManager a chance to adjust view rotation updates before they are applied. | Camera/PlayerCameraManager.h | |
virtual bool RemoveCameraModifier
(
UCameraModifier* ModifierToRemove |
Removes the given camera modifier from this camera (if it's on the camera in the first place) and discards it. | Camera/PlayerCameraManager.h |
|
virtual void RemoveGenericCameraLensEffect
(
TScriptInterface< class ICameraLensEffectInterface > Emitter |
Removes the given lens effect from the camera. | Camera/PlayerCameraManager.h |
|
virtual void SetCameraCachePOV
(
const FMinimalViewInfo& InPOV |
Sets value of CameraCachePrivate.POV | Camera/PlayerCameraManager.h | |
virtual void SetDesiredColorScale
(
FVector NewColorScale, |
Sets the new desired color scale, enables color scaling, and enables color scale interpolation. | Camera/PlayerCameraManager.h | |
virtual void SetFOV
(
float NewFOV |
Locks the FOV to the given value. Unlock with UnlockFOV. | Camera/PlayerCameraManager.h | |
virtual void SetGameCameraCutThisFrame() |
Sets the bGameCameraCutThisFrame flag to true (indicating we did a camera cut this frame; useful for game code to call, e.g., when performing a teleport that should be seamless) | Camera/PlayerCameraManager.h |
|
virtual void SetLastFrameCameraCachePOV
(
const FMinimalViewInfo& InPOV |
Sets value of LastFrameCameraCachePrivate.POV | Camera/PlayerCameraManager.h | |
virtual void SetManualCameraFade
(
float InFadeAmount, |
Turns on camera fading at the given opacity. | Camera/PlayerCameraManager.h |
|
virtual void SetOrthoWidth
(
float OrthoWidth |
Sets and locks the current orthographic width for the camera. | Camera/PlayerCameraManager.h | |
virtual void SetViewTarget
(
AActor* NewViewTarget, |
Sets a new ViewTarget. | Camera/PlayerCameraManager.h | |
virtual void StartCameraFade
(
float FromAlpha, |
Camera fades. Does a camera fade to/from a solid color. Animates automatically. Camera fades | Camera/PlayerCameraManager.h |
|
virtual UCameraShakeBase * StartCameraShake
(
TSubclassOf< UCameraShakeBase > ShakeClass, |
Plays a camera shake on this camera. | Camera/PlayerCameraManager.h | |
virtual UCameraShakeBase * StartCameraShake
(
TSubclassOf< UCameraShakeBase > ShakeClass, |
Camera Shakes. Plays a camera shake on this camera. Camera Shakes | Camera/PlayerCameraManager.h |
|
virtual UCameraShakeBase * StartCameraShakeFromSource
(
TSubclassOf< UCameraShakeBase > ShakeClass, |
Plays a camera shake on this camera. | Camera/PlayerCameraManager.h |
|
virtual void StopAllCameraShakes
(
bool bImmediately |
Stops all active camera shakes on this camera. | Camera/PlayerCameraManager.h |
|
virtual void StopAllCameraShakesFromSource
(
UCameraShakeSourceComponent* SourceComponent, |
Stops playing all shakes originating from the given source. | Camera/PlayerCameraManager.h |
|
virtual void StopAllInstancesOfCameraShake
(
TSubclassOf< UCameraShakeBase > Shake, |
Stops playing all shakes of the given class. | Camera/PlayerCameraManager.h |
|
virtual void StopAllInstancesOfCameraShakeFromSource
(
TSubclassOf< UCameraShakeBase > Shake, |
Stops playing all shakes of the given class originating from the given source. | Camera/PlayerCameraManager.h |
|
virtual void StopCameraFade() |
Stops camera fading. | Camera/PlayerCameraManager.h |
|
virtual void StopCameraShake
(
UCameraShakeBase* ShakeInstance, |
Immediately stops the given shake instance and invalidates it. | Camera/PlayerCameraManager.h |
|
virtual void UnlockFOV() |
Unlocks the FOV. | Camera/PlayerCameraManager.h | |
virtual void UnlockOrthoWidth() |
Unlocks OrthoWidth value | Camera/PlayerCameraManager.h | |
virtual void UpdateCamera
(
float DeltaTime |
Performs per-tick camera update. | Camera/PlayerCameraManager.h | |
virtual void UpdateCameraPhotographyOnly() |
Performs a photography camera tick even when the camera wouldn't normally be ticking. | Camera/PlayerCameraManager.h | |
virtual void UpdatePhotographyPostProcessing
(
FPostProcessSettings& InOutPostProcessing |
Allows the photography system to override postprocessing | Camera/PlayerCameraManager.h |
Overridden from AActor
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void ApplyWorldOffset
(
const FVector& InOffset, |
Called by owning level to shift an actor location and all relevant data structures by specified delta | Camera/PlayerCameraManager.h | |
virtual void Destroyed() |
Called when this actor is explicitly being destroyed during gameplay or in the editor, not called during level streaming or gameplay ending | Camera/PlayerCameraManager.h | |
virtual void EndPlay
(
const EEndPlayReason::Type EndPlayReason |
Overridable function called whenever this actor is being removed from a level | Camera/PlayerCameraManager.h | |
virtual void PostInitializeComponents() |
Allow actors to initialize themselves on the C++ side after all of their components have been initialized, only called during gameplay | Camera/PlayerCameraManager.h | |
virtual bool ShouldTickIfViewportsOnly () |
If true, actor is ticked even if TickType==LEVELTICK_ViewportsOnly | Camera/PlayerCameraManager.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool AddCameraModifierToList
(
UCameraModifier* NewModifier |
Internal. Places the given modifier in the ModifierList at the appropriate priority. | Camera/PlayerCameraManager.h | |
virtual bool AllowPhotographyMode() |
Whether or not we allow photography mode | Camera/PlayerCameraManager.h | |
virtual void ApplyAudioFade() |
Internal. Applies appropriate audio fading to the audio system. | Camera/PlayerCameraManager.h | |
FPOV BlendViewTargets
(
const FTViewTarget& A, |
Internal helper to blend two viewtargets. | Camera/PlayerCameraManager.h | |
virtual void CleanUpAnimCamera
(
const bool bDestroy |
Camera/PlayerCameraManager.h | ||
void ClearCachedPPBlends() |
Removes all postprocess effects. | Camera/PlayerCameraManager.h | |
virtual void DoUpdateCamera
(
float DeltaTime |
Internal function conditionally called from UpdateCamera to do the actual work of updating the camera. | Camera/PlayerCameraManager.h | |
void SetCameraCacheTime
(
float InTime |
Get value of CameraCachePrivate.Time | Camera/PlayerCameraManager.h | |
void SetLastFrameCameraCacheTime
(
float InTime |
Get value of LastFrameCameraCachePrivate.Time | Camera/PlayerCameraManager.h | |
virtual void StopAudioFade() |
Camera/PlayerCameraManager.h | ||
void SwapPendingViewTargetWhenUsingClientSideCameraUpdates() |
ClientSide camera updates prevents DoUpdateCamera from swapping PendingViewTarget in when the blend is complete, just use a timer to swap. | Camera/PlayerCameraManager.h | |
virtual void UpdateCameraLensEffects
(
const FTViewTarget& OutVT |
Update any attached camera lens effects | Camera/PlayerCameraManager.h | |
virtual bool UpdatePhotographyCamera
(
FMinimalViewInfo& NewPOV |
Overridable. | Camera/PlayerCameraManager.h | |
virtual void UpdateViewTarget
(
FTViewTarget& OutVT, |
Calculates an updated POV for the given viewtarget. | Camera/PlayerCameraManager.h | |
virtual void UpdateViewTargetInternal
(
FTViewTarget& OutVT, |
Does the actual work to UpdateViewTarget. | Camera/PlayerCameraManager.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static float CalcRadialShakeScale
(
APlayerCameraManager* Cam, |
Internal. Calculates shake scale for a particular camera. | Camera/PlayerCameraManager.h | |
static void PlayWorldCameraShake
(
UWorld* InWorld, |
Static. | Camera/PlayerCameraManager.h |