---
description: Introduction to ComponentCameraSystem
---

# Introduction

ComponentCameraSystem is a simplified, extensible and designer-friendly camera system for Unreal Engine. It enhances the built-in spring arm and camera components in native Unreal editor across a wide variety of common gameplay camera behaviours such as keeping a target at a fixed screen position, moving on rail, and resolving occulusion in complex occasions, enabling you to easily create plentiful smooth camera movements and effects within only few minutes.

Before going forward, you can visit [Showcases](showcases) to take a look at the example camera behaviours you can create with ComponentCameraSystem. Then you should go through the [Basic Uses](basic-uses) section to learn the basic uses of ComponentCameraSystem. If you want to customize ComponentCameraSystem through blueprints, or if you want to use ComponentCameraSystem in GAS (Gameplay Ability System), please read the [Advanced Uses](advanced-uses) section. A complete list of blueprint nodes can be found at [Blueprint Nodes List](broken-reference).

## **Supported Engine Versions**

Unreal Engine >= 4.27

NOTE: As of the release of 5.2, Marketplace only allows upgrading the lastest three versions of any plugin. Users from older version can download the plugins at [Github](https://github.com/littlesulley/ComponentCameraSystemv4.27/tree/main).

## **Supported Platforms**

Win64, Linux, Android

## **Major Features**

* A full toolset of camera components for you to create nice composition and different camera behaviours.
* Clear concept separation of follow component, aim component and extension component, providing easy control over camera position, camera rotation and camera post-process respectively.
* Tons of helper functions for you to easily manipulate cameras.
* Highly customizable blueprint nodes to define your own camera components.

## Detailed Features

* Follow components generally control the position of camera (with some exceptions):
  * _ScreenFollow_ tries to keep the following target at a fixed screen position, with damping and offset.
  * _SimpleFollow_ tried to keep a fixed relationship between camera position and following target position, either in world space or target's local space.
  * _HardLockFollow_ uses exactly the following target's position, with offset applied in local space.
  * _OrbitFollow_ follows the target on the surface formed by several orbits that you can add or remove at will.
  * _RailFollow_ enables camera to move on a pre-defined rail.
  * _CraneFollow_ enables camera to move on a pre-defined crane.
* Aim components generally control the rotation of camera (with some exceptions):
  * _TargetingAim_ oriented camera to the aim target, with damping and offset.
  * _HardLockAim_ imposes aim target's rotation to camera, with angular offset.
  * _ControlAim_ receives player input to control camera rotation.
* Extension components provide interfaces to manipulate cameras in a more case-by-case way:
  * _ResolveOcclusionExtension_ displaces camera to avoid any occlusion along the camera view sight.
  * _ConfinerExtension_ restricts camera within given boxes.
  * _ConstrinPitchExtension_ constains camera pitch within a given range.
  * _ModifyAimPositionExtension_ alters aim target's position by certain criteria.
  * _ResolveGroupActorExtension_ adjusts camera field of view and distance to encompass group actors, if any in follow component and aim component.
  * _MixingCameraExtension_ allows you to add multiple sub-cameras and use them to determine the camera's position and rotation with sub-cameras' weighted positions and rotations.&#x20;
  * _AnimatedCameraExtension_ drives cameras based on a an animation sequence. It will automatically terminate when animation finishes. The given animation sequence is only used to drive cameras, so it should contain and only contain four tracks: position, rotation, scale and FOV.&#x20;
  * _KeyframeExtension_ is used when you want to keyframe your own simple camera animations. This extension interacts with the built-in sequencer editor and privides several useful parameters cotrolling in which space the keyframed animation is played.
* The _ECameraHUD_ class visualizes camera debug infomation to help you set appropriate parameters.
* The _ECameraGroupActor_ actor supports adding multiple actors in the level as well as their weights, then calculating a group-level position and rotation.
* Easy control over camera shakes, camera dither fade and camera post-processing.
* The _Photo Mode_ enables you to take photos at any time during your gameplay.
* _ArchViz_ cameras helps you create architecture rendering for 2-point perspective.&#x20;

## **Installation**

You can install ComponentCameraSystem from Unreal Engine [marketplace](https://www.unrealengine.com/marketplace/en-US/product/7dd53db6fd3a4ccfa4c35e6b2125b742). Select the `Marketplace` tab in Epic launcher, search ComponentCameraSystem and follow the installation instructions. This will automatically install ComponentCameraSystem to your Unreal Engine and works for all projects opened with the correct version Unreal editor.

## Support

Discord: [https://discord.gg/x8f4Nubh](https://discord.gg/x8f4Nubh)
