Hybrid camera with FoV 1st person camera zoom and 3rd person camera toggle

So, hi there people of earth. And if you have modded dawn of war then you should already know who i am :smiley: :smiley:

This is my first post and I thought it would be something helpful. I know there is many ways to do cameras and this may not be the type of camera you need for your project.
But as i looked around, I didn’t see any that really did what i wanted it to. And what better way to learn things by making your own?

So, what this camera does:

It allows you to toggle between 1st person and 3rd person views using only one camera.
You can also zoom in and out to each view with just the mouse wheel.
You can limit how far the zoom goes in and out.
In 1st person view, it uses the Field of view, while in 3rd person uses the camera spring arm component.

This camera is ideal for similar games to World of tanks and most shooters or RPG’s. (Morrowind camera for example)

How this camera interacts with your character, such as 1st person view changing how your character mesh (Like rotating the turret and camera against the tank) is something i haven’t implemented yet, but may try to do in the future.

Toggling the camera:

This checks what camera state it is, and then resets the field of view and position.

Zoom In/out

this checks what state the camera is in and what to use when zooming. It also checks whether the camera is in its neutral position and whether to toggle its state that way.

Variables:

Min camera distance: 20.0
max camera distance: 320.0

Min Field of View: 30.0
Max Field of View: 90.0

Zoom Increment: 10

The string values shown in the pics are debugs so i can see where the actual camera position or field of view is and make adjustments. You should bypass them once you don’t need them or make a debug bool for them.

Hope this helps somebody.

Cool, thanks for sharing! And welcome. :slight_smile:

I’m moving this to Community Content, Tools and Tutorials.

that is very interesting though i do have 1 question

which class/blueprint have you put this into ?

ps nice to see you here

HorusHeretic,

This is very nice. I was curious if you had intention on expanding this system?

I was planning a First-Person Control Module that offers Player’s options to adjust their First-Person* Point-In-View* during game-time. The initial goal was simply: do more with the First-Person perspective. I appended support for Third-Person Perspective so the module would be a well-rounded solution. Any mode can be independently enable/disabled. The Targeting Reticule, Camera, Pawn can all be decoupled from each other for independent control. The system would handle smooth transitioning (interpolation) from several First-Person Point-In-Views (to other Third-Person Perspectives) in the following order:

  • First-Person Modes
  1. No-Reticule
  2. Reticule Only
  3. Reticule + Weapon-in-View (Corner|Center)
  4. Reticule + Weapon + Arm-In-View
  5. Full-Bodied Awareness
  6. 1/3 Body-in-View (Corner)
  7. Translucent|Wireframe 2/3 Body (Center) {ie: Crossed-Swords, Punch-Out}
  8. Third-Person Modes
  • Third-Person Modes
  1. Behind-The-Back (Standard)
  2. Behind-The-Character (Decoupled Rotation)
  3. Orbit-The-Character
  4. Side-Person
  5. Top-Down
  6. Isometric

Anyways, You have a great start here and I’m interested in your plans to expand on it and would assist if possible. Thank you for your contribution.

This was put in the character blueprint, though i guess you could put it somewhere else and reference the camera from the character source.

@Techlord

If it’s a single camera for one game being able to toggle/cycle through them, i think that would be a bit too much.
However if its a resource for future games, you will probably be better of having each one as a bool setting so you can just turn on/off what views you want in a game and then have some secondary options that effect that camera.

As for the camera plans, you could probably implement a smoother transition or add logic to get the camera to stay behind the character at all times etc.

At the moment I am sorting out some major assets for my projects, making sure they are all up to scratch (my standards at least heh.) and getting some other mechanics functional. I have lots of ideas, but there is a lot i need to figure out.

@HorusHeretic Thank you for this, very helpful. How would you go about implementing a smoother transition? This is something I am wanting to use as well.