Now released on the marketplace for 10$
How does it work?
Its implemented as a custom PlayerCameraManager. To use it, simply open up your PlayerController and set the “PlayerCameraManager” property to FinalCameraManager.
This also means, no fiddling around with cameras for each and every character you may have to possess, since the PlayerCameraManager works through the PlayerController and not through the Character.
And the features?
For now it can do the following:
- Zooming in and out, with smoothing and min and max zoom distance
- FreeCam Mode where Yaw and Pitch are changed through mouse/joystick (i.e. with middlemousebutton)
- Min and Max Yaw and Pitch for FreeCamMode to prevent unwanted view angles
- Smooth Snapback from FreecamMode back to the original Rotation (i.e. like in Starcraft) with configurable values for speed
- Offset from Target Actor Location (i.e. for making a shoulder view, this would be something like Offset=50,0,60)
- Configurable camera lag
- Border Scrolling (RTS Camera style, configurable border-width and scroll-speed), also possible through i.e. right thumbstick
- Possibility to set any Target Actor at runtime, i.e when you click at an actor the camera then follows this actor
- Position Locking (=stationary camera following target actor through rotation only)
- RTS like Edge Scrolling with configurable speed and edge-area with configurable speed
- RTS like scrolling through input axis (i.e. Thumbstick) with configurable speed
- Basic Collision (similar to Springarm)
- and of course everything is configurable!
A feature for all the people that need different cameras for different situations, or need to switch dynamically between them: CameraPresets
You can always switch to a preset and are able to define if the switch should be smoothed (location and rotationwise) or just instant.
Presets that are already defined in the package:
Sample PlayerControllers are included for ThirdPerson, FirstPerson, TopDown, RTS; Also one PlayerController combining all of the features into a single one (the one used in the video).
One more thing
Also included is a sample PlayerController showcasing a cameramode which always keeps all players on screen while still respecting min and max zoom levels, pushing back the players if they are trying to run out of the maximum zoom level of the camera.
If you got any feature requests or have any issues, just contact me at my support address firstname.lastname@example.org!