Announcement

Collapse
No announcement yet.

[Tutorial Preview] Gore Mesh & Dismemberment Tutorial

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

    #16
    Originally posted by n00854180t View Post
    @Jeff - Maybe you can figure out how to take the basics I have of the L4D2 system to the next level, since you seem to have a handle on building gore caps and the like

    Check this out: https://forums.unrealengine.com/show...-Dismemberment
    Mind blown. That's my next hours reading set.

    Jeff will you do a write up on your blog about this stuff? Your dissolve material write up was well put together. A bit off topic but if anyone is interested http://martiancraft.com/blog/2015/02...ating-baddies/.
    twitter: @NaveedHIQ

    Comment


      #17
      Glad to see people are excited about this.

      So, to answer the questions:

      - Yes, you use this just like the old UDK BoneBreak. Typically, you'd have one or more gore meshes that have the limbs separated, the vertices weighted so that the severed parts are entirely weighted onto a single bone, and at the point of dismemberment, you add new topology to cover the holes, typically textured with bloody meat-like textures. Upon death or dismemberment, you hide the regular mesh and show the gore mesh and then call Break Bone.

      - I've read the L4D2 paper. IIRC, they do most of their cool stuff in the shader. I'm curious to see how you've done that in UE4, but I definitely can't promise I can go further than you have.

      - My current plan is to do a series of video tutorials showing how to do the dismemberment - one for C++, one for Blueprint with the plugin I posted, and one showing how to prepare a gore mesh. I hope to have the first one done by the end of the Thanksgiving break, but no promises - it's a hectic time of year. Unfortunately, doing these as posts for the company blog would just be a much longer process. It would take several weeks, possibly months, to get through the editing and approval process and get it scheduled in with the other posts.

      Comment


        #18
        Sounds super. I'll stay tuned to this thread for sure.
        twitter: @NaveedHIQ

        Comment


          #19
          hey there,
          I'm the author of the original UDK tutorial so I'm obviously interested in this

          I'm glad to see that this is partially there in UE4 because any other method I've heard of doesn't seem satisfactory. the L4D2 method seems to always completely destroy what you chop off - sever the head and then there's no head to be found, which is good enough if you have weapons that explode, but not for blades that just 'cut'

          you mention preparing the gore meshes, how does that work?
          in UDK it was super nice because there was this partial mesh weight swapping, which means that for multiple cuttable body parts the rest of the parts remain intact. for example in a model that you can chop off the arms and head from the body, if you chop one arm the other arm and the head are still properly stitched. are you accounting for this?
          Follow me on Twitter!
          Developer of Elium - Prison Escape
          Local Image-Based Lighting for UE4

          Comment


            #20
            Originally posted by Chosker View Post
            hey there,
            you mention preparing the gore meshes, how does that work?
            in UDK it was super nice because there was this partial mesh weight swapping, which means that for multiple cuttable body parts the rest of the parts remain intact. for example in a model that you can chop off the arms and head from the body, if you chop one arm the other arm and the head are still properly stitched. are you accounting for this?
            To be perfectly honest, I'm still researching the gore mesh. From what I've seen, very little UE3 functionality was removed when they moved to UE4. Some things were - where they relied on a third party library, or where they completely rewrote something - but a lot of the underlying core functionality is nearly identical (at least in terms of API calls) to UE3. So, I need to figure out if the partial mesh weight swapping is available and just not exposed to Blueprint, or if it's simply not available in the engine period. From there, I'll figure out an approach.

            If the partial mesh weight swapping isn't available, I'll need to see if it's something that is within my ability to add. If not, the only way to properly deal with it that jumps to mind would be separate gore meshes for each dismemberable limb, which is inefficient and less than ideal.

            tl;dr: Still researching, don't know for sure yet.

            Comment


              #21
              Originally posted by Chosker View Post
              hey there,
              I'm the author of the original UDK tutorial so I'm obviously interested in this

              I'm glad to see that this is partially there in UE4 because any other method I've heard of doesn't seem satisfactory. the L4D2 method seems to always completely destroy what you chop off - sever the head and then there's no head to be found, which is good enough if you have weapons that explode, but not for blades that just 'cut'
              Yeah in the L4D2 system you would have to just spawn those things as static meshes separately.

              you mention preparing the gore meshes, how does that work?
              in UDK it was super nice because there was this partial mesh weight swapping, which means that for multiple cuttable body parts the rest of the parts remain intact. for example in a model that you can chop off the arms and head from the body, if you chop one arm the other arm and the head are still properly stitched. are you accounting for this?
              So yeah that's I guess the part I was wondering about as well, though it seems Jeff answered this already.

              Originally posted by jeff_lamarche View Post
              Glad to see people are excited about this.

              So, to answer the questions:

              - Yes, you use this just like the old UDK BoneBreak. Typically, you'd have one or more gore meshes that have the limbs separated, the vertices weighted so that the severed parts are entirely weighted onto a single bone, and at the point of dismemberment, you add new topology to cover the holes, typically textured with bloody meat-like textures. Upon death or dismemberment, you hide the regular mesh and show the gore mesh and then call Break Bone.
              Ahhh right, so if I understand completely, it doesn't have the full functionality of the partial weight swapping
              - I've read the L4D2 paper. IIRC, they do most of their cool stuff in the shader. I'm curious to see how you've done that in UE4, but I definitely can't promise I can go further than you have.
              Kind of. The main thing their shader did was mask out part of the character via the material in an ellipse shape. What I have now does the same, though it doesn't yet use the ellipse, just a sphere.

              So you're able to feed in a 3D hit position and that area will be masked out in a sphere.

              Aside from that, it was all about spawning a gore mesh into the wound cavity. They pre-prepared a bunch of low res wound meshes based on a high-res internal organs setup, and then spawn those into the hole made by the ellipse-mask. The wound meshes are also weighted to the skeleton so that they would deform right. Their wound meshes covered, AFAIK, the entire inside of the body cavity, so that they can mask any area out and have it work properly. That's for the torso, at least. Legs/arms and the head were different and used caps.

              Not being an artist, doing the wound meshes is not something I think I can do with any quality, and there are places I can make more progress on my project, so that's why I just uploaded it as is.

              As far as extending it to use the ellipse, that's not a *huge* deal to get a proof of concept working, but it's not hard either, it's just a matter of passing in the forward/right/up vectors and size parameters for the ellipse instead of just leaving it as a circle/sphere.

              After going through the white paper and also finding some slides that showed the art side of it, ultimately IMO the real "magic" of the L4D2 system is all in the wound meshes themselves, the masking, which is really all the shader seems to do, is actually really really simplistic.


              Edit: The last thing is that for skinned meshes there's a bug with my implementation such that the mask-sphere doesn't follow the skeletal mesh animation, which of course is a problem.
              Last edited by n00854180t; 11-25-2015, 03:41 PM.
              Storyteller - An immersive VR audiobook player

              Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

              Comment


                #22
                Originally posted by jeff_lamarche View Post
                To be perfectly honest, I'm still researching the gore mesh. From what I've seen, very little UE3 functionality was removed when they moved to UE4. Some things were - where they relied on a third party library, or where they completely rewrote something - but a lot of the underlying core functionality is nearly identical (at least in terms of API calls) to UE3. So, I need to figure out if the partial mesh weight swapping is available and just not exposed to Blueprint, or if it's simply not available in the engine period. From there, I'll figure out an approach.

                If the partial mesh weight swapping isn't available, I'll need to see if it's something that is within my ability to add. If not, the only way to properly deal with it that jumps to mind would be separate gore meshes for each dismemberable limb, which is inefficient and less than ideal.

                tl;dr: Still researching, don't know for sure yet.
                thanks for the info.

                even if the partial weight swapping is there somehow, UDK had the plus of handling the alternate weights within the same asset, and the importing of it happened in the editor.
                for me the ideal solution would be without having different versions of the mesh as assets based on X and Y or spawning new actors for the pieces that fall (in UDK it's all the same actor), but I guess in the end I'll work with whatever there is.


                Originally posted by n00854180t View Post
                After going through the white paper and also finding some slides that showed the art side of it, ultimately IMO the real "magic" of the L4D2 system is all in the wound meshes themselves, the masking, which is really all the shader seems to do, is actually really really simplistic.
                it does sound like a time hog

                Originally posted by n00854180t View Post
                Edit: The last thing is that for skinned meshes there's a bug with my implementation such that the mask-sphere doesn't follow the skeletal mesh animation, which of course is a problem.
                for this the only solution I see is to make the equivalent of UDK's HitMask, i.e. painting the mask-sphere into a texture (that converts world coordinates into local UV coordinates).
                otherwise I don't really see a viable solution to make the mask-sphere follow all animation and deformation.
                Follow me on Twitter!
                Developer of Elium - Prison Escape
                Local Image-Based Lighting for UE4

                Comment


                  #23
                  Originally posted by Chosker View Post
                  thanks for the info.

                  even if the partial weight swapping is there somehow, UDK had the plus of handling the alternate weights within the same asset, and the importing of it happened in the editor.
                  for me the ideal solution would be without having different versions of the mesh as assets based on X and Y or spawning new actors for the pieces that fall (in UDK it's all the same actor), but I guess in the end I'll work with whatever there is.
                  This is where I am stuck at. The alternate weights are part of my enemy mesh and it supports bonebreak, but the current plugin is not giving proper results for organic joint weight blending. We have it partially working, but without that feature it might give limited results vs the old UDK method. And agreed having it feed from same mesh was a nice feature and saved the annoyances of having variations to import.

                  Once it was exposed in UDK, EPIC had this setup real nice from adding it for Gears of War. It was also used heavly in Killing Floor 2.

                  Jeff if you want to use my enemy skelmesh and animations/blueprint to test any mesh weighting system you wanted to try adding, let me know and i can zip that over. Having it working on organics is defiantly where this feature shines.
                  Last edited by -SP-; 11-25-2015, 08:03 PM.

                  Comment


                    #24
                    Originally posted by Chosker View Post


                    for this the only solution I see is to make the equivalent of UDK's HitMask, i.e. painting the mask-sphere into a texture (that converts world coordinates into local UV coordinates).
                    otherwise I don't really see a viable solution to make the mask-sphere follow all animation and deformation.
                    That's what it's already doing, actually - there's just a bug in that the position is not being converted into the local space of the actual mesh, but instead the character's local space.
                    Storyteller - An immersive VR audiobook player

                    Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

                    Comment


                      #25
                      Originally posted by Aesthetic Games View Post
                      Jeff if you want to use my enemy skelmesh and animations/blueprint to test any mesh weighting system you wanted to try adding, let me know and i can zip that over. Having it working on organics is defiantly where this feature shines.
                      It wouldn't be bad to have a good test case. You can send it to my e-mail or using an IM here and I'll see if I can get it working.

                      Comment


                        #26
                        I know it has been said. But Jeff you are the man! This is fantastic. And I look forward to any tutorials you put out.

                        Comment


                          #27
                          Shameless lurker here.. Just wanted to let you guys know I check this thread at least every day to see if there's anything new.
                          Alas I'm not really proficient in Blueprints or C++ so I can't really contribute in any way but if you ever need a textured character or some other model or let me know.
                          I'm an eternal optimist so I won't assume this project is forsaken.

                          Cheers!

                          Comment


                            #28
                            @Silpher - Would you possibly be interested in helping make generic (e.g., can work with many characters) wound meshes for the Left 4 Dead 2 style system I've been working on?

                            https://forums.unrealengine.com/show...-Dismemberment
                            Storyteller - An immersive VR audiobook player

                            Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

                            Comment


                              #29
                              Originally posted by nmm131
                              Is this now possible using strictly blueprints with the BreakBonePlugin?
                              As far as I know this does not currently work with weighted meshes. Maybe im missing something but in my project the joints that can be dismembered remained broken as shown below altough they get cut off just fine. Any thoughts on what could be going on here Jeff?



                              Last edited by -SP-; 12-29-2015, 06:15 PM.

                              Comment


                                #30
                                Yeah I think it doesn't have the code it needs in the engine to determine which skeletal meshes should be used in the unbroken state.
                                Storyteller - An immersive VR audiobook player

                                Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

                                Comment

                                Working...
                                X