So I’d like to make the actor I have (which is a plane with a water material) execute a splash whenever the player which is inside the actor moves, or for example, a rock falls on the water, I’ve been messing around with the Hit and BeginOverlap components and emmiters and sounds, but I can’t seem to get what I want.
I’ve made it so when the player enters the actor the sound emits, but it’s just once, and once the player is inside the water moving around, nothing happens, anyone knows a good way to solve this problem?
“begin overlap” only fires when the overlapping first occurs - and as you noticed that is only once - so if your character stays in water that event will not fire again. if you constantly wanna fire effects or particles you could use “tick”, but I’d probably use a delay of a few ms to keep the resource use rather low. And keep a variable (vector) with the last player character coordinates, so you only fire more particles if the X/Y has changed (moved).
See this FAQ (Different action, but similar problem):
I would set a boolean indicating that the Character is in water whenever the Begin Overlap is fired. Then sync the sounds with your animations with Events rather than using Vectors or similar. This way you will get a proper handling without “weird logic” laying around.
For Static Actors such as a Stone, the Begin Overlap should be enough since there really is not much sound going on while a Rock is descending in water with Gravity. Otherwise in this case I would use the same method setting a Boolean indicating change of state and then looking at the Velocity to increase Sound Amplitude or similar. Ofc depending on what you try to achieve here.
In this case you would know that the Character is in water (the boolean is true since you passed BeginOverlap) and you should check the Speed which is zero in this case.
However syncing the sound effects with your Swimming animations (as proposed) would still handle this if you traverse to a Idle animation without OnNotify Events when Character stops moving.
The sounds would only fire whenever the Character does the Swimming Animation in this way.