Skip to content
Documentation: Ultimate Gameplay Camera

BP UGC Camera Manager

This is the Player Camera Manager class that takes care of updating the camera position and rotation and displaying its view on the screen for a particular player. It is important that your player camera manager class inherits from it. The player camera manager allows further camera modifiers to register and modify the final point of view.
The BP UGC Camera Manager class is responsible for setting/interpolating all of the data that UGC Camera Modifiers and keeps references of these modifiers.
BP UGC Camera Manager is also the ONLY class with which you will need to interact to change anything in the camera. Any camera parameter change needs to be done through this class using its functions and methods. See the Camera Modifiers sections for all the functions and settings you can tweak to customize your dynamic camera.
In the Class Default of the Camera Manager class, you can set all of the camera modifiers which you want to use.
You can also call AddNewCameraModifier and RemoveCameraModifier in runtime to add/remove them.

UGC Camera Modifiers

Our Camera Modifiers all inherit from UGC_CameraModifier. This allows us to change the location/rotation of the camera among some other properties on every tick by overriding the following functions:
ProcessControlRotation: Called to give modifiers a chance to adjust the control rotation (spring arm rotation, i.e., the camera orbit rotation) updates before they are applied.
ProcessBoomDistanceAndFOV: Called to give modifiers the chance to modify the Arm Target Length and the FOV before they applied.
ProcessBoomOffset: Called to give modifiers the chance to modify the Arm Socket Offset before they applied.
ProcessTurnRate: Called to give modifiers a chance to adjust both the yaw turn rate and pitch turn rate.
However the input for looking needs to have UGC_CameraTurnRateModifier.

UGC Camera Data Asset

UDataAssets are simple assets that stores instanced data. Assets can be made in the Content Browser using any native class that inherits from this. UGC Camera Data Assets is nothing more than a collection of settings for the camera.
You can create multiple instances of these data settings for any usage; for example: you can create one that has a bunch of camera settings for when the character is idle, one for when the character is sprinting, one for when the character is crouching; etc, and you can switch between them in runtime while the Camera smoothly changes properties.
Simply right-click in the browser and select Data Asset under Miscellaneous.
Then select UGC_CameraDataAsset ​
This data asset contains settings relating to all the Camera Modifiers and Camera properties
In the data asset, you can enable/disable features and change their properties to your liking. You can even choose how these settings ease in when this data asset is activated.
In order to activate a Camera Data Asset, simply call SetCameraData on BP_UGCCameraManager.
The Camera Manager and the Camera Modifiers will take care of interpolating everything smoothly.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.