Is Overlapping Component works only when the character moves?

I have this third person character blueprint in which I’m trying to hide the character mesh if the CameraVisibilitySphere component overlaps the character. It actually works, but only if the character moves.

If simply I move the character close to an object, rotate the camera so that it collides with the object and gets closer to the character, the mesh won’t disappear. But if I just move the character a bit, no matter in what direction and so that the sphere still overlaps with the character, Is Overlapping Component returns true as it should and the mesh is gone.

When the mesh is not visible, without moving the character, and I rotate the camera so that the visibility sphere doesn’t overlap anymore, nothing happens. If then I move the character, the mesh reappears.

What should I do to make this work?

1 Like

UPDATE: I also tried using the component begin/end overlap events, but the result remains the same.

Not entirely sure what you are trying to do here, but the attachment of the object you want to overlap, being attached to the other component seems odd. This is because as the player moves, the object you want to overlap will move with it. The same with if you rotate the camera, the attached collider will rotate, but it will still be attached to the capsule?

I was following a tutorial to make the character mesh disappear when too close to the camera. To make it work, the tutorial guy attached the sphere to the camera, so that when the camera hits an object and gets closer to the player, at closer distances the sphere would overlap with the capsule component and make the mesh disappear.
I’m sure there are other ways to do it and the tutorial was a bit old, but I’m still learning and I don’t know how to do this otherwise.
I asked in a facebook group and another guy noticed the same behaviour, so I guess this is just the wrong solution after all.

And yes, it always remains attached to the capsule.

Having the same issue, anyone have any answer to this yet? I’m assuming this is a new issue due to a version update.

This didn’t work either, but it did seem to be a step in the right direction? Hidden in the advanced physics portion of each collider is a toggle called “Should Update Physics Volume”. This judges which objects movements can trigger an overlap event.

For anyone curious, this is the tutorial we’re following:

It didn’t work for me either, but I guess it’s a step forward at least.

I’m getting the same results even when using begin and end overlap :confused:

Yep, same here. I also added the component by code, but the result is the same. I don’t know if this is a bug or simply this cannot be done anymore, but I can’t find any documentation about it and there are no other questions on this topic around. I guess we just have to wait for somebody to answer this. It’s just frustrating though…I don’t think the logic behind this is wrong.

I thought about that too. It may be heavier on performances than the collision method, but atm that won’t work apparently, so yours is the best solution. Thank you!

Based on this, here’s what I got. Works for 90% of the model and I’m using the boom location rather than the mesh location. Mesh location is at the base of the model making the behavior less than desireable, but the boom location is in the middle of the chest giving a more centralized bounding sphere.

Here’s an alternative method:

You could try using the distance between the camera and the mesh as the determining factor for whether the mesh is visible or not. You won’t have to deal with collision then.

I’ll lay out the basics.

• Get the location of the mesh and the location of the camera.

• Subtract the two location vectors and then get the length of that.

• Check if the length (distance) is less than any arbitrary number like 10.

• If it’s true, that means your camera is too close and you need to hide your mesh.

[Here is the Reddit link to that.][1]

Hello everyone, if someone is still having trouble with this, here’s the solution.

Go into Mesh, search for Mesh Component Update Flag and change it to Always Tick Pose and Refresh Bones.

Changing this allow to On Begin/End Overlap events to fire even if the Character is not moving.

Cheers

This is old but I hope it helps others as I figured this out recently:

Any component that is attached to the camera is not going to trigger overlaps unless the player moves, so the workaround is to detach it from the camera component and, in the event graph, use a tick to set it’s world position to the camera’s location. It will then react to any overlap you want, even when the character is not moving. I’m using this to play an underwater sound when the camera gets inside water volumes and show water drops when it comes out.

2 Likes

thanks buddy, i only had this problem on Client mode, but now it’s working well on clients too when i set
Always Tick Pose and Refresh Bones.

Very late to this, but this was the solution for me too. Not sure why objects attached to the camera component don’t update overlaps unless the player is moving, but it is what it is. I’m also using it for the same thing (water volumes) so this was very helpful.