Camera Volumes System for side-scroller games

From now, Camera Volumes System available in Marketplace for a very symbolic price!
So, if you like this project, you can support it. :slight_smile:
Thank you!


Marketplace link**

Demo video

Camera Volumes System allows you to create side-scroller games with advanced camera behavior.
Easy to use and integrate into your C++ or Blueprints project.


  • 2D / 2.5D / 3D support.
  • Paper2D support.
  • Perspective & Orthographic camera support.
  • Static & Dynamic camera volumes.
  • Movable and Static cameras.
  • Adjustable camera location, focus point, roll, field of view or ortho width.
  • Ability to block camera movement on volumes sides on specified depth.
  • Adjustable camera transitions between volumes.
  • Camera location / rotation lag.
  • Camera field of view and ortho width interpolation during transitions.
  • Ability to modify camera behavior with blueprints.

Update 19/03/2019
Added ability to change camera volume parameters in runtime.

Update 2019/04/10

  • updated plugin and project files to UE 4.22.
  • small improvements here and there.
  • added ability to use editor’s scale tool to change volume extent. Better to use with regular scale settings, not percentage based.

I think this will be the last update for UE 4.21.

Update 2019/05/01

**Important! **This update requires all camera volumes in your maps to be updated.
So, select all camera volumes in your map by “Ctrl + Shift + A” hotkey or with World Outliner, press “Update Volume” button in it’s properties, and save your map.

Major changes:

  1. Added ability to rotate camera volumes. This means that orientation limitation is no longer exits, and now you can create not only plane-constrained side-scrollers, but not side scrollers at all.
    Of course rotated volumes supports all provided features - static and movable cameras, camera blocking, camera transitions, etc…

Here is a video of new side-scroller example:

And a video of new “not side-scroller” example:

So, camera will be rotated even in runtime with dynamic volume.
Old and new math takes the same camera update time (~0.1ms) in packaged build, so there is no changes in performance.

  1. Added OnCameraVolumeChanged event, that fires when camera volume changed. It returns camera volume actor reference and passed side info.
    This event can be useful, for example, if you want to play some sound when passing through closed side of volume with cut transition:

I want to thank to everyone who have interest and supports this project!

Update 2019/05/09

  • Added camera collision settings. Well, camera collision is not really required in side-scroller camera games, but maybe you will find it useful for some other game types. Camera collision will work only when there is no camera volume and in camera volumes with movable camera settings. Collision settings is the same as used in SpringArmComponent.

  • Added new Top Down example. For now its supported by default and not requires any additional coding.

Update 2019/05/31

  • Fixed OnVolumeChanged event, so for now it fires only after all parameters updated.
  • Added runtime setters to character camera component for default camera location, focal point and roll.
  • Added pawn control rotaion support. So, now you can make 3rd person camera games with pawn control rotation.
    Docs - Architecture and classes · redcatbox/CameraVolumes Wiki · GitHub.

Hello. Here is new update for you.

Update 2019/09/06

  • Plugin updated to Unreal Engine 4.23.

  • Added ability to disable main box primitive component collision. So, you can add other primitive collision components to customize volume activation area. You can find bDisableMainBoxCollision control in Volume category:

  • Added functionality to make camera rotate around volume’s central axis. It can be activated by bUseCameraRotationAxis checker in Camera category.

You can use this feature, with disable main box collision feature, in case you want camera to rotate around some cylindrical objects or rounded corners. Also, it supports camera blocking on top and bottom sides. Here is how it looks like:

Update 2020/05/21

Plugin updated to UE 4,25 version.