Using Muliple Player controlled cameras and characters

So im using a new third person example project to test out an effect I want for my game.
Like skyrim I want to give the player the choice of First Person or Third Person. Its amazing how such a simple thing can change your games feel, and because I like both perspectives in Skyrim I want the same in my game.
Problem is I have the basic thirdperson example character in the template map and Ive added a second character type with just a camera in FP perspective. I have used the level blueprint to change to the different cameras through the press of a button. Because its open world I feel that should do. I would prefer to get it cleaner, but I cant set view targets for multiple cameras inside a single blueprint. Example: If I have two cameras both behind my character inside a single character blueprint, how would I change between them. All I know about is the set view target node.

Also while I can switch cameras with the first technique I still cannot move the camera. For example once Ive switched to my FPS blueprint(containing only a camera) my movement inputs only affect the thirdPersonCharacter. I have set up the inputs correctly for my FPS blueprint but only the third person character moves. I am trying to get both the camera to move aswell as the character.
I’d appreciate any and all help. Also is there a simpler way that using two character blueprints

Thanks everyone

Hi there, just tested this myself.

So there are 2 parts you need to consider.

  • Switching the cams by deactivating/activating them.
  • Changing movement and control settings of CharacterMovementComponent and ThirdPersonCharacter. Just compare the values between Third- and FirstPersonCharacter BPs. Speed and rotation settings are different too so you probably want to handle them as well.

Here we go:

hope that helps :slight_smile: Marooney

And for more than 2 cams I would use an enum and an enum-switch instead of bool and the branch.

Thanks for this. This looks like the best way yet.
Only I dont understand what is happening with the sequence then 1 branch.
What is the orient rotation to movement and the controller variables purpose

OrientRotationToMovement lets the player rotate into the direction where you are moving to which is the Setting in ThirdPerson. And UseControllerRotation enables Mouse for FirstPerson. Just remove the execution wire from “Then 1”, you will see what i mean :slight_smile:

Thanks a lot for your help

Ive been playing around with your solution. I cant see any difference with the OrientRotationtoMovement sequence, but it may be because im using a mouse only.
I do however seem to get a weird thing happening with and without it. When in first person if i am facing forward as in default and press D, i will turn right. If i press it again I will move forward in that direction. If i press A i will turn left. Press it again and i will turn left again. The third time I press it I move in that direction.
If i leave W pressed first then move around the mouse i get some free movement, as in i run forward, with forward being based on the mouse

edit: Ive noticed that while in first person it moves my character mesh but not the firstperson camera so when i switch back its following the character.

Your “I do however see” part is what I am talking about :slight_smile: That is why I’m testing these things myself before posting them. Please just look at both Example Projects (FirstPerson, ThirdPerson) and you will see the difference in Mouse and Movement.

  • With the ThirdPerson Character you rotate the Character by movement and the Camera by mouse. Therefore there is no strafing and running backwards.
  • With the FirstPerson Character you rotate the Character by mouse only. So the movement is really just about movement and allows strafing and running backwards.

Initially I just wanted to give you the camera switch solution (“Then 0” execution wire) only, which would have been a screenshot from within my actual project (where i do not change movement like in Car-Perspectives). But I know there are always some more things happening in different situation, where I can help out too.

So what you want to do is just to switch between settings configured in both Characters of the Example maps. Or you customize your movement to allow running backwards in ThirdPerson as well.
I’ve tested the FirstPersonCamara at position 0,0,0 in first place, so you will see the hands left and right of you cam. Everything should be fine.

Okay I see,
thanks for your offer to help me out with other situations, but right now i’d like to try on my own.
But to answer your question yes I want to switch between the settings of both characters in the example.
Maybe a hint as to how to approach it
Thanks for your help

You just need to plug some more Setters into the “Then 1” wire like I already started to do. The Select-Node for floats and any other types will come in handy for that.

Just figured out what was different. Turns out it was two errors I made. One I was starting in Third Person before pressing anything. and two I did not drag a wire from the NOT node and instead took it from the previous setter. Your solution is exactly what was needed.