Announcement

Collapse
No announcement yet.

VICODynamics: a particle based Soft-Body physics Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    A bit more refined wind drag approximation, especially for cloth:



    Wind approximation is pretty much set for the update. Onto wrapping up the rest of the update
    Owner of VICO Game Studio LLC
    Twitter: @VICO_GameStudio
    Current Projects:
    Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
    VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

    Comment


      This might be a dumb question, but can a character's body block the wind if we want it to?

      Comment


        Originally posted by Aumaan Anubis View Post
        This might be a dumb question, but can a character's body block the wind if we want it to?
        Not dumb at all! I actually thought of adding a way to do that by allowing you to specify a max wind occlusion distance and having particles check for occluders during wind approximation. But talked myself out of it due to performance overhead when used on many soft-bodies at once.
        I think I'll go ahead and add it because it would be super cool . Not to mention useful.
        Do note that having many soft-bodies check for occluders will impact performance so this would be used sparingly.
        Owner of VICO Game Studio LLC
        Twitter: @VICO_GameStudio
        Current Projects:
        Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
        VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

        Comment


          Forgive me if this has been asked or addressed, but in the upcoming cloth update, if I were to take, say, a static mesh representing a cloth robe with a hood or something similar, could I apply cloth physics to it and have it collide with the body mesh that it's encompassing, so to speak? I have a character without any skeletal meshes, it's just a collection of static meshes; a body, a clothing item, and a mask. If the clothing item simulates the cloth physics you provide, would it work similarly to an Apex cloth piece on a skeletal mesh, colliding, flowing with motion, etc?

          AMAZING work you're doing here, thanks for your efforts!

          Cheers!

          Comment


            Originally posted by hippowombat View Post
            Forgive me if this has been asked or addressed, but in the upcoming cloth update, if I were to take, say, a static mesh representing a cloth robe with a hood or something similar, could I apply cloth physics to it and have it collide with the body mesh that it's encompassing, so to speak? I have a character without any skeletal meshes, it's just a collection of static meshes; a body, a clothing item, and a mask. If the clothing item simulates the cloth physics you provide, would it work similarly to an Apex cloth piece on a skeletal mesh, colliding, flowing with motion, etc?

            AMAZING work you're doing here, thanks for your efforts!

            Cheers!
            The biggest advantage of APEX Cloth is that it was built on the presumption of being used on skeletal meshes as clothing and because of that their system has extremely specific techniques to produce the great looking clothing results.
            My system was/is built as a general purpose soft-body system, and that presents challenges for specific use cases such as clothing where many micro-collisions have to be resolved. In-short, the results with fast moving rigid bodies will not be comparable, visually, to apex for the time being.
            With that said, however, I'm planning to add support for better handling clothing on characters. Especially since our game will be needing it soon anyway. There are two main things that need to be implemented, first being per-face collision resolve because the current per-particle setup will not be accurate enough and second being the ability to properly impart velocity onto the colliding cloth pieces. Currently, a fast moving rigid body could partially intersect a cloth piece if the piece is still. And this stems from how rigid body collision is being handled, no thanks to the inability to inject proxies into PhysX's broad-phase...

            I do want to note that in your case, you could have the bits of the cloth that are in close contact with the body mesh marked as 'fixed' and have the extremities simulate. But I'm not sure if that look would suite your needs.

            Thank you, my pleasure!
            Owner of VICO Game Studio LLC
            Twitter: @VICO_GameStudio
            Current Projects:
            Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
            VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

            Comment


              For attaching a simulating actor to the tension rope do I need to use the "Attach Simulating Actor" Node or is particle attachment also working?
              At the moment both of it doesn't seem to work for me. Rope stretches for forever and the rope only collides with the object nothing else.

              Somehow it does attach to the actor even if the actor is not actually simulating with the "Attach Simulating Actor" Node. Dunno if that's normal.

              Or does it not work when I have more than 1 particle attachment defined?
              My Artstation: https://www.artstation.com/somethingunreal

              Comment


                Originally posted by VICOGameStudio View Post
                The biggest advantage of APEX Cloth is that it was built on the presumption of being used on skeletal meshes as clothing and because of that their system has extremely specific techniques to produce the great looking clothing results.
                My system was/is built as a general purpose soft-body system, and that presents challenges for specific use cases such as clothing where many micro-collisions have to be resolved. In-short, the results with fast moving rigid bodies will not be comparable, visually, to apex for the time being.
                With that said, however, I'm planning to add support for better handling clothing on characters. Especially since our game will be needing it soon anyway. There are two main things that need to be implemented, first being per-face collision resolve because the current per-particle setup will not be accurate enough and second being the ability to properly impart velocity onto the colliding cloth pieces. Currently, a fast moving rigid body could partially intersect a cloth piece if the piece is still. And this stems from how rigid body collision is being handled, no thanks to the inability to inject proxies into PhysX's broad-phase...

                I do want to note that in your case, you could have the bits of the cloth that are in close contact with the body mesh marked as 'fixed' and have the extremities simulate. But I'm not sure if that look would suite your needs.

                Thank you, my pleasure!
                That sounds like it could work in my case, do you mark the bits of cloth by vertex I assume?

                Cheers!

                Comment


                  Originally posted by hippowombat View Post
                  That sounds like it could work in my case, do you mark the bits of cloth by vertex I assume?

                  Cheers!
                  Yep, correct.
                  Owner of VICO Game Studio LLC
                  Twitter: @VICO_GameStudio
                  Current Projects:
                  Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
                  VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                  Comment


                    Originally posted by SmthAwful View Post
                    For attaching a simulating actor to the tension rope do I need to use the "Attach Simulating Actor" Node or is particle attachment also working?
                    At the moment both of it doesn't seem to work for me. Rope stretches for forever and the rope only collides with the object nothing else.

                    Somehow it does attach to the actor even if the actor is not actually simulating with the "Attach Simulating Actor" Node. Dunno if that's normal.

                    Or does it not work when I have more than 1 particle attachment defined?
                    Are you doing the attachment from BP or in the Properties Editor?

                    Also, could you describe how your TensionRope component is set up? What properties did you set and to what?
                    Owner of VICO Game Studio LLC
                    Twitter: @VICO_GameStudio
                    Current Projects:
                    Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
                    VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                    Comment


                      Originally posted by VICOGameStudio View Post
                      Are you doing the attachment from BP or in the Properties Editor?

                      Also, could you describe how your TensionRope component is set up? What properties did you set and to what?
                      I'm doing it via Blueprints.


                      Here are my TensionRope settings:
                      Click image for larger version

Name:	ssitor.jpg
Views:	1
Size:	212.5 KB
ID:	1119168

                      Here is how I attach it in the BP.
                      Click image for larger version

Name:	2016-12-01 01_12_37-ChildOfSprinasfg - Unreal Editor.jpg
Views:	1
Size:	279.8 KB
ID:	1119169
                      My Artstation: https://www.artstation.com/somethingunreal

                      Comment


                        Originally posted by SmthAwful View Post
                        I'm doing it via Blueprints.


                        Here are my TensionRope settings:
                        [ATTACH=CONFIG]119666[/ATTACH]

                        Here is how I attach it in the BP.
                        [ATTACH=CONFIG]119667[/ATTACH]
                        Aha, ok try this: remove the second Particle Attachments entry because it is overriding the AttachSimulatingActor attachment. And you will need to set the Offset property under Tension Transfer to something so that the attachment is not to the center point of the rigid body.
                        This should solve it for you, let me know.
                        Owner of VICO Game Studio LLC
                        Twitter: @VICO_GameStudio
                        Current Projects:
                        Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
                        VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                        Comment


                          Thank you I will try it out tomorrow. Another question:
                          I want to shorten the rest length of the rope while playing. It's not really working though. I press the button, the variable of "Length" of the rope changes, but I don't see any change in the rope. It's still only tight when I'm 1000 units away from the origin of it (I set the new variable to 500 while it was 1000 before that).
                          Is it not possible to change the rest length in real-time?

                          I want the player to be able to shorten the rope when needed so it's always tight.
                          My Artstation: https://www.artstation.com/somethingunreal

                          Comment


                            Originally posted by SmthAwful View Post
                            Thank you I will try it out tomorrow. Another question:
                            I want to shorten the rest length of the rope while playing. It's not really working though. I press the button, the variable of "Length" of the rope changes, but I don't see any change in the rope. It's still only tight when I'm 1000 units away from the origin of it (I set the new variable to 500 while it was 1000 before that).
                            Is it not possible to change the rest length in real-time?

                            I want the player to be able to shorten the rope when needed so it's always tight.
                            Oh, that variable is only used during construction. I'll make a note in the code regarding that.

                            And you are right, there isn't a helper function to change the rest length without going through each constraint and shortening it. It's on my todo list now, thank you!
                            Owner of VICO Game Studio LLC
                            Twitter: @VICO_GameStudio
                            Current Projects:
                            Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
                            VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                            Comment


                              Originally posted by VICOGameStudio View Post
                              Not dumb at all! I actually thought of adding a way to do that by allowing you to specify a max wind occlusion distance and having particles check for occluders during wind approximation. But talked myself out of it due to performance overhead when used on many soft-bodies at once.
                              I think I'll go ahead and add it because it would be super cool . Not to mention useful.
                              Do note that having many soft-bodies check for occluders will impact performance so this would be used sparingly.
                              Seems like another feature that would benefit from a "LOD" type thing where soft bodies only check for occluders when they're close to the camera.

                              I figured the base system would not be for the performance minded, I myself didn't really intend to use it during actual gameplay, but instead use it in sequencer and render the cut-scenes
                              (if it did work well in gameplay, then awesome! but it's not important enough to slave yourself over it)

                              Comment


                                Originally posted by Aumaan Anubis View Post
                                Seems like another feature that would benefit from a "LOD" type thing where soft bodies only check for occluders when they're close to the camera.

                                I figured the base system would not be for the performance minded, I myself didn't really intend to use it during actual gameplay, but instead use it in sequencer and render the cut-scenes
                                (if it did work well in gameplay, then awesome! but it's not important enough to slave yourself over it)
                                And voila:



                                Real-time wind occlusion! Notice the small gap at the bottom of the walls, it actually lets a draft through if you look carefully at the rope and cloth. So you should be able to create pretty intricate setups with that level of precision.

                                And you are correct about having this use an "LOD" type setup, but I think I'll leave that up to the developer since toggling it simply involves setting a bool. I will however add a coarser grain, high perf, alternative which will only use the bounds for checking wind occlusion of the entire object.
                                Owner of VICO Game Studio LLC
                                Twitter: @VICO_GameStudio
                                Current Projects:
                                Action Arcade Wrestling in collaboration with Dave Horn (@Action937) - https://www.actionarcadewrestling.com/
                                VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                                Comment

                                Working...
                                X