I am confused about the Player Manager Class in UE4. There is very little documentation about it online. I want to make a camera that lags behind my character’s movement only in the Z direction. I’ve tried using a spring arm, but it doesn’t work the way I want it to. I could hard-code the camera movement into my character, but that would be hard to do, since the camera follows the character since it is a child component. From what I understand, the Player Camera Manager takes the camera in the possessed pawn and moves it to its world transform. (as opposed to its transform relative to its parent) Is this true?
From what I understand, one is supposed to make their own class inheriting from Player Camera Manager, and then set that class as the Player Camera Manager class inside your Controller class. Then you can override the “Blueprint Update Camera” function to actually set the world transform of the current camera. However, this alone doesn’t seem to make the function execute. I have a node between the input and output that prints a message to console and that message never shows up. I have tried toggling Auto Manage Active Camera Target (not sure what this does), but that doesn’t seems to help.
Can anyone help explain what is going on or link me to some video/article that explains these classes/functions/variables?
The camera manager is literary both, a brand new camera & its manager. Disabling *Auto Manage Active Camera Target *will make the controller ignore any cameras that might be attached to the controlled Pawn and give full control to the Camera Manager (and its own camera).
From now on, you need to provide methods for your own camera movement, this is done by returning values from the overridden *Blueprint Update Camera - *the Return Value tickbox there is key!
In order to pull off a Springarm-like Z-only camera lag, you’d do something like this: (you can use *fInterp To *if you do not like the built in Ease)
I hope I did not mix anything up; as you mentioned, the documentation here is rather scarce so the above are observations & trial and error. Quite a bit of the latter.
Well I just realized part of my problem. My Player Camera Manager Class in my controller was set to the default class. (genius, right?) Either way, you explanation makes it very clear on what this class is and how it’s used, something which I have yet to see online. Thank you very much!
Hello, I apologize for bumping this but I have an important question. Where did your base “ZInterp” and “FixedCameraLocation” variables come from? I’m writing this out in C++ using UpdateCamera() and I would like to see where you came up with these defaults.
I dig into the source code of PCM, and it turns out the class intend to find the POV of camera on controlled pawn. So put a camera on character should be the standard thread and “BlueprintUpdateCamera” is a viable interception. PCM was usually used for cosmetic function like CameraFade and CameraShake, unless you want to modify how PCM find camera POV.