Foundational 3rd Person Camera to Shoulder Camera Toggle

Howdy All!

I’ve seen a few questions on AnswerHUB as well as on the forums on how to get a toggle shoulder-type camera for the Blueprint Thirdperson Template. While this is in no means perfect, it should be able to get you started so that you can tune/tweak it to your liking (as I said, this is a foundation for you to play with). There are some things like adding camera constraints while over-the-shoulder cam is active as well as making the character pawn animate and turn towards the camera when switching to the shoulder cam, but it’s a start.

Character Blueprint
Inside the Character Blueprint, you’ll need to create two reference points for the FollowCamera to move between, so I’ve created a Scene Component and called it DefaultCamera where the Default Camera should be.
Then I created another Scene Component called AltCamera and placed it where I wanted the shoulder camera to be. Both of these are children of the CameraBoom SpringArmComponent.

Blueprint Network
Essentially what I’ve done is create a Custom Event called ShoulderCam which is tied to an Event Tick. This feeds my Gate and whenever I hold (right mouse button) AimMode I transition to the AltCamera and automatically rotate my pawn in the direction of the camera which is controlled by the mouse (as noted, the character pops to the camera rotation but you get the idea). When I release right mouse, the camera moves back to the default camera location.

Blueprint Network

The end result looks something like this:

Default Camera

Shoulder Camera

Like I said, it still needs some work but should point you in the somewhat right direction. :slight_smile:


This is awesome, it’s exactly what I’m trying to get working. Do you think it’d be possible to upload a slightly higher resolution version of the blueprint? The image is a bit blurry right now and I can’t make out all of the text in the nodes :frowning:

Seconded, this is way too small for me to read (No, im not THAT old) :wink:

Broke it up into 3 screens:

1 :
2 :
3 :

Note, I’ve since made a change and added a FlipFlop Node so that the camera stays over the shoulder without having to hold the button down (you can replace this as seen in the first image if you’d like it to be a hold to switch).


Thank you, this is very helpful!

How would I tie an event tick to the custom event?

Awesome, thank you! So mine kind of just jumps to the location and isn’t smooth as you seem to say it’s supposed to be? Also When i make a timeline, i don;t get the “Movement” as an output option, only direction. Could this be why?

Can you join multiple cameras together to view through the single default camera at the same time without dropping the frame rate, like in stereoscopic 3d setup, would the above blue print work for this type of set up. Can you link them all together so when you adjust them they all move together, also where does the pixel pattern sit in the render plane say like in the Unity type engine.

Great tutorial! One thing worth noting is that it can be disorientating, and frustrating in shooters, if the camera changes its relative X and Z positions and / or rotates whilst moving position. Ideally both cameras would have the same focal point.

Otherwise, when you aim at something with one camera, you lose that aim when you zoom in / out.

I was having some trouble figuring out how this all went together without knowing what was in the Timeline node so I came up with a different method that’s a little cleaner.

Blueprint Network:

This network uses the reverse execution on the Timeline node creating a clean blend. For all I know I could have just recreated what the VInterp node actually does…

need some help with this, it works when camera moving to aim camera but no the other way around some advice would be helpful

I have a simpler way of doing this by just setting the field of view. The effect is so much smoother imo. It does not require any toggle, multiple cameras, or any math. Basically, you press the aim button and if the player has a weapon equipped in my setup then I allow the timeline to play forward. Then when I release I just reverse the timeline. I’m not using the play from reverse pin. I actually reverse the values in the timeline and play again from start. I’m also setting my player movement to switch between strafe movement when aiming and then back to full player rotation when not aiming. I do that in my equip weapon nodes. Enjoy. Hope this helps.

EDIT: the starting default field of view value is 90. I believe when i zoom in i’m setting it to 45. Play around with the value to find something you like.

The point of 3rd person, is to show the character while aiming, not turn it into a first person scenario.