Announcement

Collapse
No announcement yet.

Dynamic Rope/Cable Plugin

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

    Dynamic Rope/Cable Plugin

    Check out the evolution of this plugin: http://bit.ly/1N4Oxs1

    Hello Everyone, I'm very excited to show off something I have been working on for our next game, Action Arcade Wrestling 3 (AAW3): which is being developed in collaboration with Dave Horn (Action937) who is the originator of the Action Arcade Wrestling series.

    We needed a better system for our ropes around the ring which are currently simple SkeletalMeshes with Animations for the bounces and so on. But we wanted something better that would be more interactive.

    I set out to research and implement such a system. I started with the CableComponent which comes with UE4 and it had the look and physics we wanted but it did not interact with any other actors. Long story short, I ended up completely rewriting the physics, including wind and force interaction, and implementing collision. The rendering was also optimized to further push performance.

    This was all well and good except for the fact that we lost the ability to have precise animations on the ropes for special moves. For this I implemented the SkeletalRopeComponent, it allowes us to specify a SkeletalMesh and an Animation to which the rope will conform too if enabled. We can now easily switch between a "fixed" animated rope and a fully dynamic simulated one as we wish. Really awesome feature for us!

    Purchase pre-UE4 Marketplace release:

    This page also has a more in-depth dev blog on how the core of this Rope System was created.
    Link: https://www.vicogamestudio.com/devel...system-for-ue4

    The result can be seen here (First demo, many features added after this one):
    http://youtu.be/lshwBUBpMBg

    Getting Started video:


    Please let us know your thoughts and post features you would like implemented.

    Thank you.

    Updates released:
    Update 1: https://forums.unrealengine.com/show...l=1#post200258
    Update 2: https://forums.unrealengine.com/show...l=1#post200987
    Update 3: https://forums.unrealengine.com/show...l=1#post203219 Mac support added!
    Update 4: https://forums.unrealengine.com/show...l=1#post206239 Very big update with a lot of new features!
    Update 5: https://forums.unrealengine.com/show...l=1#post231969
    Changelist:
    1.0:
    Initial Release
    1.1:
    Added binaries for Unreal Launcher version of UE4
    1.2:
    Fixed RopeComponent Blueprint Node not showing up.
    Refactored SkinnedRopeComponent properties to properly work in the Components Tab in Blueprints.
    1.3:
    Added Mac binaries, now works on Mac!
    Added GetTrueLength to calculate the length of the rope including stretching.
    Further improved SkinnedRope Properties.
    1.4:
    Added CollisionShape Property to control the rope segment collision. (Sphere, Capsule or Box)
    Implemented Collision Shape Scaling as the rope stretches to not introduce gaps between segments.
    Differentiated Static and Dynamic collision, now CollisionEnabled and CollisionResponse are split into Static and Dynamic variants. This allows for fine tuning of character collision.
    Improved Collision Projection algorithm to reduce spikes in corrections when penetrating other Actors.
    Fixed RenderDebugData bug that created a memory leak due to DrawDebug* calls.

    1.5.1:
    Updated to 4.7.1.
    Implemented property widget for easy customization of collision settings/filtering.
    Completely reworked collision code, unified static and dynamic collision. Now a single concept.
    Collision with dynamic objects improved greatly.
    WIP SplineRopeComponent added, though not yet fully tested in 4.7.
    Collision Shape property disabled for this version, the whole shape collision code is still WIP so the shape defaults to Sphere.

    If you run into any trouble please post here. If it's order specific please email me directly: ujen@vicogamestudio.com

    Thank you.
    Last edited by VICOGameStudio; 08-10-2015, 04:44 PM. Reason: Updated changelist
    Owner of VICO Game Studio LLC
    Twitter: @VICO_GameStudio
    Current Projects:
    CHIKARA: Action Arcade Wrestling in collaboration with Dave Horn (@Action937) and CHIKARA Pro Wrestling - WIP Thread
    VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

    #2
    Awesome stuff!

    Comment


      #3
      Very nice, i need this in my life.


      Twitter - @TheCSilverman

      Ancient Cistern | Advanced Material Pack Ed. 1 | Advanced Material Pack Ed. 2 | Advanced Material Pack Ed. 3 | Texture Pack Ed. 1 | Container Pack Ed. 1 | Road Sign Pack Ed. 1

      Comment


        #4
        Stiffness, Tensile Strength in BP. I would love to see a rock climbing demo.

        Comment


          #5
          Originally posted by xXxFishAndChipsxXx View Post
          Stiffness, Tensile Strength in BP. I would love to see a rock climbing demo.
          I actually just implemented stiffness. And everything is already exposed to blueprints. Doing something like rock climbing would require an Actor or Component to govern where the end point is because in the current implementation the End points must be static.

          I'm looking to post a new video update tomorrow with a few new features and improvements.
          Owner of VICO Game Studio LLC
          Twitter: @VICO_GameStudio
          Current Projects:
          CHIKARA: Action Arcade Wrestling in collaboration with Dave Horn (@Action937) and CHIKARA Pro Wrestling - WIP Thread
          VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

          Comment


            #6
            Will you be able to change both start and end location of an rope at runtime? So I can "shoot" out the Rope until it hits a surface, and then move around and the start of the rope follow me and the rope can collide with collisions inbetween the start and the end while moving?

            EDIT: Oh didn't read your reply before.

            Originally posted by VICOGameStudio View Post
            Doing something like rock climbing would require an Actor or Component to govern where the end point is because in the current implementation the End points must be static.
            So it is possible to dynamicly change the end point when inside an Actor/Component?
            Last edited by Nobody; 12-30-2014, 06:11 AM.

            Comment


              #7
              Originally posted by Nobody View Post
              Will you be able to change both start and end location of an rope at runtime? So I can "shoot" out the Rope until it hits a surface, and then move around and the start of the rope follow me and the rope can collide with collisions inbetween the start and the end while moving?

              EDIT: Oh didn't read your reply before.



              So it is possible to dynamicly change the end point when inside an Actor/Component?
              Yes, exactly! Both end points can be controlled at runtime however you wish. Currently, you cannot have a "free" end point but that is something I can look into if it becomes a requested feature.
              Owner of VICO Game Studio LLC
              Twitter: @VICO_GameStudio
              Current Projects:
              CHIKARA: Action Arcade Wrestling in collaboration with Dave Horn (@Action937) and CHIKARA Pro Wrestling - WIP Thread
              VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

              Comment


                #8
                Originally posted by VICOGameStudio View Post
                Yes, exactly! Both end points can be controlled at runtime however you wish. Currently, you cannot have a "free" end point but that is something I can look into if it becomes a requested feature.
                Awesome looking forward for this Hopefully Code Based Plugins will be functional soon on the marketplace.

                Comment


                  #9
                  Amazing! Really interested on it. So, with the current features I could do a gun that fires a projectile with a rope, the projectile hits a surface and becomes fixed, I can then apply force to this rope in order to climb, for example? Something like Batman...

                  And you could turn it available in your website, for example or even other simple selling systems - before Unreal provides a final solutions for this.

                  Kind Regards.

                  Comment


                    #10
                    Originally posted by Nobody View Post
                    Awesome looking forward for this Hopefully Code Based Plugins will be functional soon on the marketplace.
                    Thank you. I'll be talking to someone at Epic after the holidays.

                    Originally posted by Rafa Angeline View Post
                    Amazing! Really interested on it. So, with the current features I could do a gun that fires a projectile with a rope, the projectile hits a surface and becomes fixed, I can then apply force to this rope in order to climb, for example? Something like Batman...
                    Not exactly. The flow would be more along these lines: You would fix the start point to the end of the gun, use a "projectile" (could be an actual projectile or any Actor, ideally a RigidBody for a more natural look) to guide the other end (possibly adjusting some rope variables along the way such as RopeLength if needed), once the end "projectile" hits the target you would Fix that point at the Hit location and fix the start point somewhere by the fired location or leave it loose to swing around. Lastly, you would not apply force to the rope to climb it, but instead use it as a path and a visual effect.

                    Does this make sense? I think I will setup a test case for making grappling hooks since it seems to be a popular feature.


                    Originally posted by Rafa Angeline View Post
                    And you could turn it available in your website, for example or even other simple selling systems - before Unreal provides a final solutions for this.

                    Kind Regards.
                    That is true, if interest is high I can certainly take the time to set something up.
                    Owner of VICO Game Studio LLC
                    Twitter: @VICO_GameStudio
                    Current Projects:
                    CHIKARA: Action Arcade Wrestling in collaboration with Dave Horn (@Action937) and CHIKARA Pro Wrestling - WIP Thread
                    VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                    Comment


                      #11
                      Thank you for the reply, I got it now.

                      I would recommend http://selz.com for selling it easily, with just a link and accepting PayPal as well.

                      I'll keep looking this tool, I hope it's available soon!

                      Kind Regards.

                      Comment


                        #12
                        Originally posted by Rafa Angeline View Post
                        Thank you for the reply, I got it now.

                        I would recommend http://selz.com for selling it easily, with just a link and accepting PayPal as well.

                        I'll keep looking this tool, I hope it's available soon!

                        Kind Regards.
                        Thank you for the link, I'm looking into it now.
                        Owner of VICO Game Studio LLC
                        Twitter: @VICO_GameStudio
                        Current Projects:
                        CHIKARA: Action Arcade Wrestling in collaboration with Dave Horn (@Action937) and CHIKARA Pro Wrestling - WIP Thread
                        VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                        Comment


                          #13
                          awesome.. me too,, take my money

                          Comment


                            #14
                            Updated Demo with the near finished codebase. Includes improved collision with Non-Simulated Objects, improved constraint algorithm, optimized performance, Blueprint support near-finished, added new parameters for tweaking all the settings and lots of bugs fixed.

                            Performance so far:
                            My PC is a Core i7 3930k 6-cores with 16gb RAM, GTX 970.
                            A single rope with 20 segments, 8 constraint solver iterations, .005 as Substep TimeStep (nearly max settings basically): Simulation update takes .036ms, Collision Checks take .114ms and rendering is .017ms



                            I spent nearly all day testing distribution options and currently the DLL distribution can be used for loading the plugin and using the RopeComponents through Blueprints. You will not be able to access anything from C++ unfortunately. Epic needs to fix this for DLL plugins. To give you guys access to the Rope System from C++ I would have to distribute the source, which introduces complex licensing and copyright issues.

                            If anyone is interested in getting the current version now, I will offer a free update once Epic allows DLL plugin access from C++. Let me know if that works for you and I'll get it setup.

                            As always, any feedback, suggestions and comments are welcome!
                            Last edited by VICOGameStudio; 01-02-2015, 10:12 PM.
                            Owner of VICO Game Studio LLC
                            Twitter: @VICO_GameStudio
                            Current Projects:
                            CHIKARA: Action Arcade Wrestling in collaboration with Dave Horn (@Action937) and CHIKARA Pro Wrestling - WIP Thread
                            VICO Dynamics Physics Library - Details: https://www.vicogamestudio.com/projects/vico-dynamics

                            Comment


                              #15
                              Very nice progress.

                              I would be interested in this, does it support attachment to skeletal mesh bones by chance?


                              Twitter - @TheCSilverman

                              Ancient Cistern | Advanced Material Pack Ed. 1 | Advanced Material Pack Ed. 2 | Advanced Material Pack Ed. 3 | Texture Pack Ed. 1 | Container Pack Ed. 1 | Road Sign Pack Ed. 1

                              Comment

                              Working...
                              X