3D Camera Help Zelda Breath Of The Wild 2

My goal is to recreate the camera in breath of the wild

Breath of the wild camera functions not like a normal lock on camera would

It rather calculates a point between you and the enemy and focuses in on that. Then if something collides with the player it will zoom in on the player but keep the same rotation.

My glitch I get is that it treats the new mid point like the player so if something gets between the mid point and the player the camera will zoom in on the mid point and not the player. Does anyone know how to fix this in an elegant simple way. Right now I am using target offset but I am experimenting with socket offset.

TLDR; Camera rotate around spot X but if something gets between player and camera the camera crashes in on the player and not Spot X while keeping the same rotation




One of the vidoes in the series shows you how to run bounce traces and get a camera position that works.
Apply the same concept to your scenario.

You have the 2 locations. A little socathoa gets you the position the camera needs to have.

After moving the camera, if the camera is still part of the player it will move along with it retaining the new offset.
During “lock on” movement I would make it a point to only adjust the rotation so as to keep a specific point in view.

likely:
You want the mid point between the 2 objects of interest to be kept in view with the camera at a fixed position within the character blueprint (over shoulder).
I wouldn’t really suggest moving the dept or x/y position of the camera independently here. Could make some awkward situations.

However if you do, the series should show you a quick and dirty way to detect what is in the camera view and how to toggle things between camera(s) when you “loose” the character…

1 Like

My apologies I never got back to you, I actually found a very elegant solution an hour later :grin:

If anyone else is having the same issue let me know and ill upload a screenshot of my bp

Hey @Alonzitto! Welcome to the Forums!

Would you mind sharing your solution just in case anyone else has a similar problem or can learn from your example? It would be greatly appreciated!