Announcement

Collapse
No announcement yet.

NVIDIA GameWorks Integration

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

    I was trying some tests with the flex and I found a cool effect it can be used for. I noticed that soft bodies can be attached to multiple shapes. This means you can take a skeletal mesh, convert it to a soft body and attach it to skeletal shapes. Then if you use a script you can move the shapes with a animated skeletal mesh. It's probably overkill for gameplay but could be useful for cut scenes or maybe a modeling program.

    Benefits
    Looks more realistic
    Maintains volume e.g twists, bends.
    Jiggle effect / fat. The effect increases the more space there is between the bone shape and the skin.
    Self collision. When bending the arm the mesh doesn't intersect (creates a fold)
    Interacts with other flex effects e.g cloth, water. Does have some intersecting issues.
    Easier to set up for a novice user. Only need a few bones and no weight painting. e.g created a pelvis / thigh bone and two shapes. It was then easy to set gymnastic style poses (normally I need a lot of helper bones).

    Issues
    Can create a bit of an uncanny valley effect.
    Doesn't work well on detailed areas like the face or hands (keep as separate meshes).
    Cloth can pass through character when moving fast.
    Can't set rigid parts attached to soft body parts e.g metal shoulder pads would look like rubber, need a separate mesh.
    Slow performance (would probably be ok for about five characters).

    Funny side effects
    Because the soft body maintains its volume and the skeletal mesh bone area is fixed it can create overlapping shape issues e.g if there's a cube shape that the character walks though then the character will inflate to match the volume of the box.
    The soft body parts attached to the skeleton will not be affected by flex while the other parts are e.g a character's skeleton won't float in water (can walk through water) but any other parts will (belly fat)

    Possible tool extensions.
    It would be cool if I could create the flex particles in a program like blender. Then I could create a more accurate shape (maybe even use muscle shapes) and maybe set the strength between particles (bone / clothing / armor / muscle / fat areas).
    I'd also like to be able to stitch pieces together e.g model muscle areas in a compressed state. Then stitch them together on the skeleton (stretch the muscle to match the skeleton). Then when the character bent their arm it would change from the stretched state back to the modeled compressed state.

    I hope this method hasn’t already been mentioned and that it was useful to someone. I'd really appreciate any suggestions for the issue of clothing passing though a soft body attached to a moving shape.

    Comment


      Originally posted by emanuel.may View Post
      Hi Alexey,

      We are currently running Galaxyman's latest 4.9 build, so I'm not sure if this one is already handled or not, but anyway: We have noticed that VXGI only voxelizes regular meshes, not instanced meshes. For optimization purposes we are currently converting a lot of meshes to Hierarchical Instanced Static Meshes, but just noticed, that VXGI doesn't seem to voxelize them at all. Which is obviously really unfortunate. Is it possible to add voxelization of HISMs in the future or has it already been done in an earlier version?

      Thanks!
      I don't think something was done specifically for instanced meshes. There were some fixes for voxelization of particles though. I'll see if instanced meshes work.

      Comment


        Originally posted by Alexey.Panteleev View Post
        There's no way. Voxel density is one for all objects, but there are multiple levels of detail, so regions of space further away from the camera / anchor have lower voxel density.
        It's controlled by a combination of r.VXGI.MapSize and r.VXGI.Range console variables. And you can use a "VXGI Anchor" actor to place the region with highest density around your special mesh.


        It doesn't matter for VXGI.


        Try reducing Tracing Sparsity, or enable Temporal Filtering - both in VXGI Diffuse section of PPV.


        Not really. The only special cases are - objects with size comparable to a voxel or smaller, which will flicker when moved, and large objects that are far away, which may be out of the voxel space and thus not affecting the scene at all.
        Thank you Alexy for reply.but i am currently running Galaxyman's latest 4.9.1 build there is no "VXGI Anchor" component.

        EDIT:I found that Galaxyman's latest 4.9.1 build doesn't have "VXGI Anchor" component.
        Last edited by ZAxis; 01-24-2016, 04:00 AM.

        Comment


          Originally posted by ZAxis View Post
          Thank you Alexy for reply.but i am currently running Galaxyman's latest 4.9.1 build there is no "VXGI Anchor" component.

          EDIT:I found that Galaxyman's latest 4.9.1 build doesn't have "VXGI Anchor" component.
          Well, it is there in our official VXGI-4.9/4.10 branches.
          You can try merging the required changes manually, it's just one commit: https://github.com/NvPhysX/UnrealEng...c25c2725c8cc2d

          Comment


            Originally posted by DivideByZero View Post
            I was trying some tests with the flex and I found a cool effect it can be used for. I noticed that soft bodies can be attached to multiple shapes. This means you can take a skeletal mesh, convert it to a soft body and attach it to skeletal shapes. Then if you use a script you can move the shapes with a animated skeletal mesh. It's probably overkill for gameplay but could be useful for cut scenes or maybe a modeling program.
            Does this mean you are able to use flex softbodys with an animted skeletal mesh? I am trying to do this for so long now how did you do it? Please explain I am realy interessted

            Comment


              I posted a tutorial about the soft body rig

              Comment




                I'm trying to model muscle. In the video I created muscle meshes in the contracted state and stretch them to the bone anchor points. Although it's probably possible to link the particles to the troll mesh after the muscle bones are in place it is a bit awkward to setup.

                The FleX docs say voxels can be used for soft bodies. I might try creating a Blender plugin that takes multiple meshes (muscle, fat, bone, clothing, accessories) and creates a single voxel of particles. All particle in a single mesh (e.g muscle, bone) would be linked. There could also be attach shape areas e.g link muscle to bone, clothing to skin, shoulder pad (solid) to skin. Each group could have parameters like link type (solid, cloth, soft body). Soft bodies could have spring settings so you could model a muscle in the stretched state and make it contract by default (don't need weird muscle bone stretching animation as shown in the video). It could also add non voxel particles for joints (hinge joint => four particles).

                I might just use the FleX SDK directly. I'm not sure how the FleX particles move the mesh (soft body). Does anyone know which class controls the soft body mesh?

                Just a random thought, but is it possible to change link constraints when the game is running e.g if I have two particles, can the spring force between them increase? If it can then it could probably be used to create motors. It might also be possible to create muscles that move the skeleton.

                Comment


                  Originally posted by DivideByZero View Post
                  I'm not sure how the FleX particles move the mesh (soft body). Does anyone know which class controls the soft body mesh?
                  I don't know the answer to your question, but I just wanted to say that what you're doing is wicked cool. I will eagerly watch your progress.

                  Also, I did notice that Nvidia seemed to update flex to ue4.10 a couple of days ago. Perhaps they've also incorporated additional functionality? I didn't get a chance to peruse the commit list yet.

                  Comment


                    Originally posted by DivideByZero View Post


                    I'm trying to model muscle. In the video I created muscle meshes in the contracted state and stretch them to the bone anchor points. Although it's probably possible to link the particles to the troll mesh after the muscle bones are in place it is a bit awkward to setup.

                    The FleX docs say voxels can be used for soft bodies. I might try creating a Blender plugin that takes multiple meshes (muscle, fat, bone, clothing, accessories) and creates a single voxel of particles. All particle in a single mesh (e.g muscle, bone) would be linked. There could also be attach shape areas e.g link muscle to bone, clothing to skin, shoulder pad (solid) to skin. Each group could have parameters like link type (solid, cloth, soft body). Soft bodies could have spring settings so you could model a muscle in the stretched state and make it contract by default (don't need weird muscle bone stretching animation as shown in the video). It could also add non voxel particles for joints (hinge joint => four particles).

                    I might just use the FleX SDK directly. I'm not sure how the FleX particles move the mesh (soft body). Does anyone know which class controls the soft body mesh?

                    Just a random thought, but is it possible to change link constraints when the game is running e.g if I have two particles, can the spring force between them increase? If it can then it could probably be used to create motors. It might also be possible to create muscles that move the skeleton.
                    I looked a bit closer at the latest commit, and it might address what you're looking for:

                    https://github.com/EpicGames/UnrealE...4a78fa322164da

                    "Add support for Flex collision and attaching to skeletal mesh ragdolls, bMultiBodyOverlap must be enabled on the component."

                    Comment


                      Question: Is anyone working on integrating IRay into UE? If I can get my hands on an academic license I want to give it a crack, but don't want to reinvent the wheel if there are already people working on it.

                      Comment


                        Originally posted by noobgoldberg View Post
                        I looked a bit closer at the latest commit, and it might address what you're looking for:

                        https://github.com/EpicGames/UnrealE...4a78fa322164da

                        "Add support for Flex collision and attaching to skeletal mesh ragdolls, bMultiBodyOverlap must be enabled on the component."
                        Thanks for the link, the update sounds promising. I’ll try upgrading soon.

                        Comment


                          Hi there,

                          is it possible to get an Overlap or Hit event when a FleX particle enters/collides with an area? I cannot get these events, are there any flags I am forgetting to set?

                          Thanks, Andrei

                          Comment


                            is there a tutorial or walk though on Game works Integration yet?
                            The only documentation we can find is the artist workflow.

                            Comment


                              Originally posted by ionbordura View Post
                              Hi there,

                              is it possible to get an Overlap or Hit event when a FleX particle enters/collides with an area? I cannot get these events, are there any flags I am forgetting to set?

                              Thanks, Andrei
                              I don't think it's possible to get hit events with particles. FleX docs
                              Flex's strength lies in enabling interesting secondary effects that enhance the visual experience. It is not designed to build gameplay affecting physics because it lacks functionality such as trigger events, contact callbacks, ray-casting, serialization, etc. Although it is possible to build these capabilities on top of the core solver, they don't come in the box. For this reason it is recommended to use Flex in conjunction with a traditional rigid-body physics engine, such as PhysX.
                              Originally posted by DreamDarkStudio View Post
                              is there a tutorial or walk though on Game works Integration yet?
                              The only documentation we can find is the artist workflow.
                              I've only tried the FleX part of Game works. I found that the samples, nvidia docs and UE4 doc (UnrealEngine-FleX/FlexProject/Documentation/index.html) covered the main topics.

                              Comment


                                Is Nvidia Gameworks (Flex, VXGI, FireWorks) going to be available as a plugin outside a private Github?

                                Comment

                                Working...
                                X