No announcement yet.

MNSI - Adding Sound To Physics - V1.0

  • Filter
  • Time
  • Show
Clear All
new posts

    FANTASTIC WORK -> Congratulations!!!! I will buy it right now!!!


      I need this where is it pls now thx


        If you don't hurry up and get this in my game


          As a short advice: Here in the comments of the following video the creator is describing a solution with c++ to edit the parent actor to have impact/collision sound in every actor in the level without adding a component to every scene actor. And he's using UPhysicsCollisionHandler in the better solutions after made the youtube video. Also this he describes in some comments.

          (Some comments have answers and the interesting things are in the answers, so you have to click them to expand them)

          Would be nice that such a "global" impact sound activation is also possible with your solution.
          Please add the code to the UE4 marketplace asset. Most plugins on the market place do this, but not all. In BP solutions also everyone can see the "code" and edit it. So we can update and edit the solution later on by ourself after bought it within the code.
          I look forward to your solution.

          I have no clue why no impact/collision-sound-solution is on the marketplace already. It's simply missing. Also no full tutorials, only very simple one. But for real and full physically based sound-environments, you have to have good algorithm and much to think about. Like you do:
          - Not too much sounds in parallel,
          - only the most important sounds when there are too much sounds in parallel, only the one with highest force
          - no sound on very very small impacts (no sound on very tiny forces)
          - different sounds for sliding & rolling, not same as impact when sliding/rolling
          - impacts which higher force have to make louder impact sounds
          - impacts which have small force have to have quiet impact sound, so impact sound volume need an algorithm related to impact force (which is related to object mass/weight and speed)
          - what's about debris, and much more to think about

          I hope for a nice solution which has implemented all this needs nicely. Also I am happy that you want to deliver also a sound library.

          I think much documentation is not needed. We can look for everything important in Code and BP by ourself. Only short documentation to make it usable. You can expand the documentation from time to time. Question will come in comments and forums.
          Last edited by TheFlow3k; 05-03-2019, 04:41 PM.
          Next Game: Project Kronos - A thrilling True-First-Person adventure game (brain-work needed! VR support planned.)


            Hey TheFlow3k, thanks for the comment ((And thanks to everyone else also patiently waiting!)) I saw that video, but currently, I don't have enough knowledge to make this as a 100% C++ plugin. Once I release this plugin, and address all the issues people'll find with it, I plan eventually start making MNSI-2 as a C++ plugin. But that's for years ahead.

            I also thought about going the "Global Actor" route, but in the end I went with the "local" mode, IE, you have to add this component plugin to every prop you want to have sounds. Honestly, it just suited my own workflow better, it allows for faster and easier optimization, at the expense of some manual work by the project authors.

            Looking at your post, here's what I already have;

            "no sound on very very small impacts (no sound on very tiny forces)" I handle that in several ways. Since every prop is different ((Different mass, size)) you can specify the minimum impulse needed for a light impact sound, and the minimum impulse for a heavy impact sound. I have also created a "Workaround" for Unreal's tendency to apply really high impulse forces between props with really high mass differences despite them being static. IE: A heavy box that's placed over a light box, will constantly apply huge impulses to the light box. I handle that by using both the impulse force and linear and rotational velocity of the objects.

            "different sounds for sliding & rolling, not same as impact when sliding/rolling" Happy to say that's done. And optimized. One of the reasons this plugin is taking me so long is that I retreated the Rolling Vs Sliding math 3 times from scratch. It will never be perfect, but I've got it in a really good place, optimization wise.
            This comes with two sub-'features' one done, the latter still in development.
            When an object is rolling but is not moving, I treat that as if it's sliding. Imagine a car wheel spinning in place, vs a car wheel spinning and moving. The sound is different in both cases.
            And Gimbal locking, believe it or not actually happens when you try to figure out horizontal movement. Imagine an object spinning in its X axis, that means it could be going in the Y axis, or Z axis. An object spinning in its Y axis, could be going in the X axis, BUT ALSO IN THE Z axis. That sort of local plane correction where I essentially transform a 3 dimensional translation problem and encapsulate it as a 2d local plane is taking me some time to do.

            "impacts which higher force have to make louder impact sounds" Done, also with its own myriad of "Fixes"

            - impacts which have small force have to have quiet impact sound, so impact sound volume need an algorithm related to impact force (which is related to object mass/weight and speed) Also done.

            - what's about debris, Also done in the form of you can toggle an even lower cost math switch to apply this plugin to many small non-important props.

            What I have not yet addressed from your post is the following;

            - Not too much sounds in parallel,
            - only the most important sounds when there are too much sounds in parallel, only the one with highest force

            Sound Priority, I thought about it, I am still solving it. I am not sure if the first release of the plugin will have the Sound Priority optimization though!

            As for the documentation remark, I actually can't agree there. Why spend 2 hours digging though sub-functions in a blueprint, when you can look at a documentation page for 5 minutes? Also let's not forget people who aren't yet fluent in Blueprint, ((Or worse, if I make this as a C++ plugin someday, how many people can honestly reverse engineer a C++ plugin?))

            That's why I will not release this before I complete the comprehensive and expansive compendium documentation. Plus. Already bought a web domain P: Gotta use it for something.

            Anyhow, all the features I talked about and more, I will showcase in an upcoming video demonstration, + a short video about thus plugin being used to actually make a "Game"

            EDIT: Speaking of features.
            I've created a very rudimentary "Node" representation to allow someone to organize their sound libraries in node form.

            It looks like this. You can treat each library as a whole library, or treat each library as a single material, really, that's up to how people use this in their projects. But in the end, all you do is drag your library in this special graph, and combine it with the other libraries in use.
            Click image for larger version  Name:	Nodes.JPG Views:	1 Size:	235.5 KB ID:	1615217
            Also, this is how the plugin settings look like. You can pretty much see it all here. ((All these will be explained in the documentation)) This is for the StaticMesh version. The SkeletalMesh version has the added benefit of allowing you to pick which bone it will operate on.

            Click image for larger version  Name:	Settings.JPG Views:	1 Size:	109.0 KB ID:	1615223
            Last edited by MischievousM; 05-03-2019, 08:54 PM.


              This looks absolutely awesome, really hoping this is coming to the marketplace or or whatever soon because I would love to use this!



                I present to you, the result of the MNSI beta. Using this plugin in a "production" environment to make some basic "game" , really helped discover some flaws and bugs in the math and optimization.

                @CaptainFalcon I am one step closer to releasing this on the Marketplace now. I will actually send it to the marketplace QA soon while I finish up the documentation.


                  The Last Video with the Train is absolutely Crazy good!!! I hope your plugin came soon to the Marketplace...


                    Thanks for the answers to my post.

                    A global solution would be nice, because if not, we have to add a component to every physically movable mesh in the game, which often are simple static meshes. Of course it is simple for BPs, where you can add the component to the BP and every BP in the game get the update. But on simple (physical movable) static meshes you have to add it to every mesh. So a global solution would be nice.

                    When you use BP instead of code, it is also Ok. As you said, the advantage is that it is easier to understand as BP.
                    But would be nice, when the performance is also great as BP solution.

                    Perhaps it would be nice to make the performance need for your solution measurable. Perhaps you can make a Video where you measures the "FPS Average" with a scene with a lot (but realistically, not too much) objects shaking and falling? One time with your impact sound solution and sometimes without? So we (and you) can see the performance impact of this solution. I think it it will be good to know.

                    Thanks a lot.
                    Next Game: Project Kronos - A thrilling True-First-Person adventure game (brain-work needed! VR support planned.)


                      i Love this Plugin and the Train Demo!!!
                      Is it possible to download this Train-Demo (exe) so that i can play with this Train too?
                      Kind regards!


                        TheFlow3k Heh, I do actually do that. I have an automated testing world and script that I run every time I do changes to calculate how they affect the performance cost of the plugin. Generally speaking I've got it running Okay with 200 objects all colliding at the same time with Rolling and Friction sounds. Disabiling the Rolling sounds for the objects, IE, the "Cheap" option for objects too insignificant to have rolling sounds, virtually renders this plugin free.. The less groups of intercoliding objects you have, the cheaper it gets too, you can have 100k physics props in your level but the way the plugin's designed, they won't add any performance overhead unless you start piling them all up in a big pile. Which isn't likely. P:

                        Also halobungie, I have no plans not do I plan to have a plan about releasing the train demo. That's a completely personal project. With all the sloppiness that entrails~
                        Last edited by MischievousM; 05-25-2019, 05:06 PM.


                          Hello MischievousM,
                          How did you do that with the payload on the wagon? If I try to do the same with myself, the payload slips backwards each time and falls off the wagon. But with you, the payload stays on the wagon? How did you do it?
                          Kind regards!


                            Hey Halobungie, try adjusting the friction coefficient of your physical materials And weight. Tell me if that works.

                            Also, in MNSI news, the documentation's nearly complete.

                            Behold, the official Wiki.


                            I've started to try and push this to the Marketplace. Will make an official release post as soon as it gets though.


                              Hello MischievousM, I have no success. Can you please show me your settings from your barrels?


                                Guys. It's done. A year after I started working on this...Pending marketplace release any day now.

                                @halobungie Send you a PM.