Announcement

Collapse
No announcement yet.

Camera Volumes System for side-scroller games

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [PLUGIN] Camera Volumes System for side-scroller games

    Marketplace link
    https://www.unrealengine.com/marketp...volumes-system

    Docs
    https://github.com/redcatbox/CameraVolumes/wiki

    Demo videos

    ADVANCED SIDE SCROLLER


    PAPER2D SIDE SCROLLER


    FIXED CAMERAS


    TOP DOWN


    Description
    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.

    Features
    • 2D / 2.5D / 3D support
    • Paper2D support
    • Perspective & Orthographic camera support
    • Static & Dynamic camera volumes
    • Movable & 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
    • Camera collision
    • Ability to modify camera behavior with blueprints
    • Ability to modify volume parameters in runtime
    Plugin code - C++

    Engine version - 4.21, 4.22

    Side-scroller screenshots:

    Click image for larger version  Name:	ss1.jpg Views:	1 Size:	279.8 KB ID:	1585482
    Click image for larger version  Name:	ss2.jpg Views:	1 Size:	234.4 KB ID:	1585484
    Click image for larger version  Name:	ss3.jpg Views:	1 Size:	218.8 KB ID:	1585487
    Click image for larger version  Name:	ss4.jpg Views:	1 Size:	204.8 KB ID:	1585483
    Click image for larger version  Name:	ss5.jpg Views:	1 Size:	302.5 KB ID:	1585488

    Paper2D side-scroller screenshots:

    Click image for larger version  Name:	ss7.jpg Views:	2 Size:	122.8 KB ID:	1585489
    Click image for larger version  Name:	ss8.jpg Views:	2 Size:	110.4 KB ID:	1585481

    Top-down example screenshots:

    Click image for larger version  Name:	td2.jpg Views:	1 Size:	125.3 KB ID:	1585485
    Click image for larger version  Name:	td3.jpg Views:	1 Size:	130.9 KB ID:	1585490
    Click image for larger version  Name:	td4.jpg Views:	1 Size:	132.3 KB ID:	1585486

    //--------------------------------------------------
    Last edited by redbox; 05-23-2019, 04:41 AM.
    Rocketeer

    my portfolio
    my youtube

    Camera Volumes System
    Procedurally Instanced Meshes
    Simple Portals
    Water Flow For UDK
    Setup Swarm

    #2
    Such a badass stuff. Reminds me some Nier Automata camera system

    Comment


      #3
      I'm confused on the dependencies and why you chose to make this a bp. I have a similar camera system that is extremely flexible and all in a small bp that I just drop into projects and go. I haven't taken a look at how yours works yet but it sounds like it might be possible to thin it way down? I'm not trying to critique your work by any means though just curious is all because it seems like we both have a very similar thing but they are created very differently.

      Comment


        #4
        Originally posted by TerrorMedia View Post
        I'm confused on the dependencies and why you chose to make this a bp. I have a similar camera system that is extremely flexible and all in a small bp that I just drop into projects and go. I haven't taken a look at how yours works yet but it sounds like it might be possible to thin it way down? I'm not trying to critique your work by any means though just curious is all because it seems like we both have a very similar thing but they are created very differently.
        This is because Unreal have many possibilities to implement things.
        I choose C++ because its fast and handy for me.
        Rocketeer

        my portfolio
        my youtube

        Camera Volumes System
        Procedurally Instanced Meshes
        Simple Portals
        Water Flow For UDK
        Setup Swarm

        Comment


          #5
          Originally posted by redbox View Post

          This is because Unreal have many possibilities to implement things.
          I choose C++ because its fast and handy for me.
          Ahh yes suppose that does make more sense. I haven't worked with C++ in the engine yet myself so that may be where the confusion on my end came from. And yes I know I need to get on it and start working in that end I am terrible about learning the C++ end of this only because blueprints are so much fun and so easy to use for most of my work. I get having fun with those and then look at code and go aw do I have to lol They gave us to many fun toys.

          Comment


            #6
            Would this work to create a Link to the Past style camera for a Zelda-like?

            Comment


              #7
              Originally posted by ZServ View Post
              Would this work to create a Link to the Past style camera for a Zelda-like?
              Yes it will. The camera transition is where you get the "scrolling" effect moving from one screen to the next. Each screen should have a camera volume and when the player crosses from one screen to the next and it transitions from one camera to the next the transition is where you get the zelda style screen movement from. You should also move the character a few steps in the direction of the new screen. You might need to adjust the proximity of each camera bound as well as the transition between cameras and character movement until you get it exactly how you want but yes it will work.

              Comment


                #8
                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.
                Rocketeer

                my portfolio
                my youtube

                Camera Volumes System
                Procedurally Instanced Meshes
                Simple Portals
                Water Flow For UDK
                Setup Swarm

                Comment


                  #9
                  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.

                  2. 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:



                  Documentation will be updated in next few days.

                  I want to thank to everyone who have interest and supports this project!
                  Last edited by redbox; 05-02-2019, 03:21 AM.
                  Rocketeer

                  my portfolio
                  my youtube

                  Camera Volumes System
                  Procedurally Instanced Meshes
                  Simple Portals
                  Water Flow For UDK
                  Setup Swarm

                  Comment


                    #10
                    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.

                    Rocketeer

                    my portfolio
                    my youtube

                    Camera Volumes System
                    Procedurally Instanced Meshes
                    Simple Portals
                    Water Flow For UDK
                    Setup Swarm

                    Comment


                      #11
                      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 - https://github.com/redcatbox/CameraV...camerarotation.

                      Rocketeer

                      my portfolio
                      my youtube

                      Camera Volumes System
                      Procedurally Instanced Meshes
                      Simple Portals
                      Water Flow For UDK
                      Setup Swarm

                      Comment


                        #12
                        Hi,I am very new with unreal, so can you record a small video showing the basic connfiguration for blueprint, cause in step 3 I get stuck.

                        Comment


                          #13
                          Originally posted by Noskyred View Post
                          Hi,I am very new with unreal, so can you record a small video showing the basic connfiguration for blueprint, cause in step 3 I get stuck.
                          Please contact me in project discord channel https://discord.gg/gVexAf.
                          Rocketeer

                          my portfolio
                          my youtube

                          Camera Volumes System
                          Procedurally Instanced Meshes
                          Simple Portals
                          Water Flow For UDK
                          Setup Swarm

                          Comment


                            #14
                            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:

                            Last edited by redbox; 09-06-2019, 02:53 PM.
                            Rocketeer

                            my portfolio
                            my youtube

                            Camera Volumes System
                            Procedurally Instanced Meshes
                            Simple Portals
                            Water Flow For UDK
                            Setup Swarm

                            Comment

                            Working...
                            X