I have run into an issue with camera blocking volumes and I’m hoping someone knows the interaction I’m having. I’m setting up the camera to work in two fundamental ways:
- Bound to the player character, with some zoom in and out controls adjusted via spring arm length and pitch changes.
- Freestyle camera, similar to the one used in the editor where you use WASD to move and the mouse to change direction.
I have not set all the functions of the cameras up fully, but have some basic movement working and wanted to stop the camera from clipping through the ground and walls. I tried to use the camera blocking volume to prohibit it from moving through the terrain. The blocking volume worked great for the first camera mode when it was bound to the player character. It doesn’t allow the spring arm length changes to move the camera past the wall but it does let the camera move up and change pitch accordingly, so everything seems to work as intended with this. However, the freestyle camera completely ignores the wall when you adjust the camera location directly. I figured the spring arm component was doing the actual collision, and so changed the code to adjust the spring arm’s location instead (leaving the player character behind). Now, when it interacts with the camera blocking volume it stalls the movement for half a second or so before continuing through the volume unhindered. Oddly, only the first interface it contacts interacts with the camera at all; if you move through the volume and then attempt to move back through it, the camera will pass clean through the back wall of the volume and stall at the first wall it contacted. I tried to surf the web for troubleshooting but nothing I found helped (mostly revolved around making sure the right settings were checked but everything seemed to be in order).
I was wondering if anyone knew what interaction was happening here. It works fine for adjusting the spring arm length but adjusting its location only stalls it for a moment. I am contemplating changing the freestyle movement to be based on changing the spring arm length but that seems like an inelegant solution. Is anyone familiar with this issue or know a better way of implementing the freestyle camera? Any help would be appreciated!
(I’ve attached the blueprints that I’ve been using to control the camera for reference)