Announcement

Collapse
No announcement yet.

Motion Matching for UE4

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

    [PLUGIN] Motion Matching for UE4

    Hello everyone!

    I've been Implementing Motion Matching into Unreal Engine, If you are unfamiliar with what Motion Matching is I highly suggest checking out this great GDC talk by
    Kristjan Zadziuk: https://www.youtube.com/watch?v=KSTn3ePDt50

    Early implementation results:


    I am sharing what I've done so far to see if more people get interested in working on this technology.

    Github Link: https://github.com/Hethger/UE4_MotionMatching-

    Cheers.

    #2
    Very impressive! Motion Matching is baller.

    This would be awesome to use with VR for the leg animation, since all you really know is the direction and velocity.

    Storyteller - An immersive VR audiobook player

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

    Comment


      #3
      Cool!
      I did a few studies some time ago, but this is looking promising!
      | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

      Comment


        #4
        Awesome!! very cool plugin!

        Comment


          #5
          Is that working for another project?

          Comment


            #6
            Just heard about Motion Matching, looks incredible The GDCs talk are highly instructive.
            LinkedIn | Link custom Shaders | Atmosphere Modelisation & Procedural Planets | Distance Matching Locomotion | Nvidia GameWorks builds - 4.19.2 : VXGI2.0, Blast, HairWorks, Flow - Plugins: VictoryBP

            Comment


              #7
              Hi Hethger,
              thanks for sharing your work.
              here seems to be a need to install your previous plugin which is 60$ on the market place..
              I really like the tech and would love to learn more or try implementing it myself but it seems like a big pricetag just to try.

              I already watched
              Kristjan Zadziuk's video but he doesn't show how you can implement it. You have to get a lot of motion capture data, ok. but how do you plug the "cards" before your state machine? Could you point me in the direction?

              Comment


                #8
                Originally posted by thebenjiman View Post
                [B]Hi Hethger,
                thanks for sharing your work.
                here seems to be a need to install your previous plugin which is 60$ on the market place..
                I really like the tech and would love to learn more or try implementing it myself but it seems like a big pricetag just to try.
                I didn't notice that, sorry for the mistake, you do not need to have the Mirror Animation System installed, I just merely had it enabled in the project settings when uploading the project.

                I updated the "UE_MotMatch.uproject" file with the correct settings. You can just copy paste that.

                Cheers, Theodor.

                Comment


                  #9
                  Hey this is really great!

                  I was wondering, i see right now you apply the motion matching result as Root Motion, is there a way to modify the system so the capsule is the main driver?

                  Comment


                    #10
                    Originally posted by Highflex View Post
                    Hey this is really great!

                    I was wondering, i see right now you apply the motion matching result as Root Motion, is there a way to modify the system so the capsule is the main driver?
                    The Anim Blueprint has "Root Motion From Everything" as the Root Motion Mode. Simply setting that to "Ignore Root Motion" or any other would allow you to play the animations in place.

                    Cheers, Theodor.

                    Comment


                      #11
                      Originally posted by Hethger View Post

                      The Anim Blueprint has "Root Motion From Everything" as the Root Motion Mode. Simply setting that to "Ignore Root Motion" or any other would allow you to play the animations in place.

                      Cheers, Theodor.
                      Ah cool, i played around with the motion data you provided, i noticed the big issue is that the locomotion loop itself always tries to weight between two motions which make the loop look a bit odd, would this be corrected with better initial data?

                      Comment


                        #12
                        Originally posted by Highflex View Post

                        Ah cool, i played around with the motion data you provided, i noticed the big issue is that the locomotion loop itself always tries to weight between two motions which make the loop look a bit odd, would this be corrected with better initial data?
                        That would certainly help, but with this early implementation it would still look odd as the blending method is something I couldn't quite nail down, using a blendtree like they do in For Honor would yield far better results.

                        Comment


                          #13
                          Originally posted by Hethger View Post

                          That would certainly help, but with this early implementation it would still look odd as the blending method is something I couldn't quite nail down, using a blendtree like they do in For Honor would yield far better results.
                          Ah okay, can you explain what you mean with "blendtree" ? would that look like dividing or tagging specific motion areas like looped runs/walks, so the system is not always considering them for lowest cost?

                          EDIT: i watched the presentation Simon gave for motion matching in For Honor, it seems they resolve sliding feet by locking the IK when the toe has not a lot of movement, and another interesting thing is that you can play the whole game without any Art so it just runs a capsule, interesting is also when he talked about simulation space, it appears like if you were to translate this to the capsule it would mean that uses the default ue4 movement logic so pretty much normal velocity and then the character mesh tries to follow it, there was a video where he showed the character itself lagging behind trying to catch up with the player capsule / simulation, then his solution was to clamp the mesh to the capsule/player component and just allow a little bit of drag or fall off.

                          This is all very interesting and i am hoping to put some work into , i have been planning to make a tool to create dance cards inside motionbuilder from animation clips ( for when you want to translate your legacy assets ).
                          Last edited by Highflex; 07-07-2018, 07:47 AM.

                          Comment


                            #14
                            This guy figured it out.



                            Seems to be a product to be released, so super excited to take a closer look at it.

                            Comment


                              #15
                              Hethger it's really great you shared your project with the community, thanks man!
                              LinkedIn | Link custom Shaders | Atmosphere Modelisation & Procedural Planets | Distance Matching Locomotion | Nvidia GameWorks builds - 4.19.2 : VXGI2.0, Blast, HairWorks, Flow - Plugins: VictoryBP

                              Comment

                              Working...
                              X