I tested a bit with destructible meshes.
I tested also some UE4 marketplace assets.
I have a problem that I am not able to get (dynamic) impact sound from the collision of the fractions / debris when a mesh collide.
I talked to a market place assets creator also, he confirmed that it is not possible to add sound th the collisions of the debris. (for example when they hit the floor or collide with them-self)
I think for game feeling this is very bad. Sound is important. I can’t believe, that it is not possible to add impact sound to those fractions/debris. Perhaps we simply don’t know how.
Any one here, who has get it done to assign (dynamic) impact sound on collision of debris/fractions when peaces fall out of a destructible mesh to the ground?
Or do you have any workarounds without using normal destructible meshes?
Fractures do generate hits and hits give you the hit location.There is a “play sound at location” node which you can feed the location of the hit results.
the pic is just a quick test that shoots a line trace in the air every time a fragment is hit.
I know the general procedure for making impact sounds, because I have made some assets which makes sound on throw and collide by myself. But perhaps I need a bit more information about how the “debris on hit” reacts" work. And how the engine is separately handle debris parts from the original full and intact asset.
In your screen-shot you show a on hit event, I guess its for a normal asset, like a wall. When you configure this with an destructible mesh, then **every **part of the debris/fractions makes the on hit action after breaking into peaces? every single fraction inherit the full functionality? (Looks so in your 2nd screen-shot, but i want to be sure if I understand correctly.)
Do we have a possibility to get the new mass or sizes of the debris/fraction part after breaking? (So we could configure bigger parts of the debris louder, by getting sizes or mass of debris-part)
It seems like it is as I described in in my last post. Onhit-events are working also in chunks of debris/fractions.
Thanks for your help. I tested it now and get some sound on debris impact.
If someone has a tip regarding getting mass/size of the chunks (and not the whole intact object) to change sound volume of impact sound - and about how to be sure in the blueprint if a function/event is called on a chunk of debris or if it is still the full intact asset - your very welcome to help.
I don’t know of a way to directly read information from chunks. There may be work arounds depending on what you’re trying to do.
Note: the following is just what I expect to work from doing similar things:
For example if I was making a player with a wooden shield that I wanted some big chunks to fly off as it is hit. I could make the rigidbodies of the shield in the modeling program then import it as a skeletal mesh. Then I could generate a physics asset and make a pseudo destructible mesh. The logic would be something like: on hit get bone name> if the bone isn’t the root > break the physics constraint. You would have access to the specific rigid bodies with this method, but it may be cumbersome to work with.
Another work around, if I had a wall which partially blew up. What I could to is add a volume to surround the wall and have the rigid bodies respond differently based on whether they are inside or outside the volume. Most fragments should have fallen outside of the volume. and if you make sure the fragments are about the same size you could hardcode the mass.
I think most games just make precanned shatter sounds on the initial fractures since playing sounds on each chunk could result in an unpredictable audio experience. (and it’s easier to do it that way)
btw if you use a precanned sound generally you would want it to have 1 sound triggered at the initial break followed by a looping sound starting at the next hit. Make a countdown variable(or timeline) that resets everytime a hit is registered and make the looping sound only stop if the countdown is at 0. in most cases you can just play the sound at the initial break location.
That way if the time it takes for the fragments to settle varies your audio will still be in sync.