Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Ultimate Rope Editor - New powerful rope physics for Unity3D [RELEASED]

Discussion in 'Assets and Asset Store' started by UGTools, Feb 11, 2013.

  1. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    [EDIT] The Editor has finally been released! get it here!

    Hi guys!

    We are about to release our Ultimate Rope Editor for Unity. The Ultimate Rope Editor is a powerful tool to add rope based physics to your games.
    It can generate procedural ropes and also apply rope physics to your existing meshes.
    The editor is fully what-you-see-is-what-you-get, physics included, because everything can be created and configured using the Unity Editor in play mode.
    As there is no need to stop and re-run to see the changes, setting everything up becomes a much faster process. The rope editor allows each rope state to persist when exiting from the play mode, something extremely useful when keeping the current state to finish editing later or to make it to to the actual game.

    Some key features
    • Can create procedural ropes from scratch with no need to author any meshes.
    • Can assign rope physics to already existing models.
    • Ropes can snap due to physics if desired.
    • Rope length can be increased/decreased at runtime.
    • Full physics interaction with itself and other objects.

    Edit 2: Link to a webplayer with 5 sample scenes.
    Edit 1: A video showing some of the main features:


    The following days we'll upload a webplayer showcasing features, and some more material. Hopefully next week the editor will be available at the asset store. Video and documentation will also be available soon at our site.

    Meanwhile, here are some screenshots:

    Fully procedural crane rope physics

    Actual application using the rope editor (a mining simulator)

    Full procedural rope with coil physics

    Adding rope physics to the hair and hairbands of an existing model
     
    Last edited: Mar 1, 2013
    Stiefo.o likes this.
  2. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,081
    Nice stuff.
    A video would be nice as well :)
     
  3. emergki

    emergki

    Joined:
    Oct 15, 2007
    Posts:
    420
    This will be very usefull for me... I want to use the rope for Cranes, and, with the loads in the rope. I'm telling this because I bought another rope physics but are not good to use some load in the rope :(
     
  4. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Video will be ready In a couple of days :)

     
  5. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Some more screenshots:

    Setting up rope physics on an existing model:

    Attaching a procedural rope to a lamp to make it dynamic:

    Creating procedural ropes and ropes with custom links:

    Video will be available tomorrow :)
     
  6. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Video has been added to the first post
     
  7. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    728
    Fantastic tool ...applied . especially in a mining context (my current projects are in this field)...nice!
     
  8. kenshin

    kenshin

    Joined:
    Apr 21, 2010
    Posts:
    935
    Bookmarked!
    Now I just wait for the release. :)
     
  9. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    If everything goes right it should be available next week. During the weekend we'll upload a webplayer with different use cases, it is almost finished :)

     
  10. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Webplayer link has been added to the first post! Click here
     
  11. emergki

    emergki

    Joined:
    Oct 15, 2007
    Posts:
    420
    Hi UGTools,

    Your system can make something like this? (I mean, with a load with another ropes (like in the image, four points for the rope))



     
  12. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Yes, it would be perfectly possible to set up a system like that. We haven't tried though, so I can't talk about the stability or the physics fidelity.
    As soon as I try I'll give you my impressions
     
  13. emergki

    emergki

    Joined:
    Oct 15, 2007
    Posts:
    420
    Ok, I'll be waiting, thank you!
     
  14. kenshin

    kenshin

    Joined:
    Apr 21, 2010
    Posts:
    935
    Any news about release date?
     
  15. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Yup, it has been sent to the Asset Store for approval. Should be available tomorrow or the day after tomorrow I hope.
     
  16. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
  17. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
  18. emergki

    emergki

    Joined:
    Oct 15, 2007
    Posts:
    420
  19. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    I managed to set it up using 5 ropes. The main one ends at a dynamic object (an empty gameobject with a rigidbody attached), while the other 4 go from this object to 4 other objects (again, empty gameobjects with a rigidbody) placed at the corners of the cargo. Then the corners are linked through fixed joints to the cargo.
    So, it is possible, but it is difficult to say if the behaviour can be used on a simulator that fully depends on these physics... it would be a matter of spending a good amount of time on finetuning :)


     
  20. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Good news!

    The Ultimate Rope Editor has been selected as part of the Asset Store Madness Sale. You can get it now with a 25% discount until March 31!
     
  21. bernardfrancois

    bernardfrancois

    Joined:
    Oct 29, 2009
    Posts:
    373
    Interesting - does it work on iOS?
     
  22. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Yes, it works on any platform supported by Unity
     
  23. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Heya, just dropping by to say I purchased this asset today.

    I'll be trying to use it in our 7DRL game The Aurora Wager, which features simulated balloon flight and grappling hooks. I developed a stable custom spring joint for it last week since Unity's joints didn't cut it, but I really want to get actual rope behavior in there. :)

    $TheAuroraWager_2.png
     
  24. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Cool! if you need any help/support just ask :)
     
  25. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    651
    You mentioned it works on all Unity target platforms...
    What sort of limits should we expect on mobile platforms? (e.g. on a Tegra 3, you can do 4 x 20-link ropes/chains)
    Thanks!
     
    Last edited: Mar 19, 2013
  26. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Yes, it works because it uses standard Unity physics features which are available on all platforms.
    Unfortunately I can't give you exact numbers because I haven't had the possibility to do in-depth tests on mobile platforms other than to check it worked on Android and iOS as expected. Also because there's a lot of scenarios and fine tuning possibilities (number of links, type of colliders, using colliders each n links, number of physics sub-steps...) which can be configured separately.
    But I agree it would be very interesting to have some basic numbers to start with. I'll see what I can do but it will definetly take some time :)
     
  27. lod3

    lod3

    Joined:
    Mar 21, 2012
    Posts:
    660
    Could you create static coils of wire/cabling to be used as scene detail? In other words, can the meshes created by this tool be used strictly as meshes if there's no need for the physics component?
     
  28. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Well, physics in Pitfall and platform games in general are a bit unrealistic. No matter how/where you grab the rope you'll always swing to the other side in the same way. But that's what you want, a realistic rope would make your game unplayable :)
    If you need it for swinging only I'd try a simpler scripted solution that would make playability more fun and less realistic.
     
  29. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    I'm currently working on it since there's more people interested and I found it a very cool feature. You will be able to use the editor and physics in play mode to model everything and there will be an option to make the mesh static and remove all physics components.

    I'll keep you posted! It shouldn't take long :)
     
  30. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    728
    Great! I'm interested too.
    Could be very useful. In my projects at 99% I don't need physical interaction but I would like to place the ropes phisically to give a best natural looking.
     
  31. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Yes, besides size and performance optimization you also get the possibility to bake lightmaps on them and all features that static objects have, like perfect mesh colliders and the list goes on :)
     
  32. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    728
    Just what I need now...have you any ETA of this?
     
  33. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    If everything goes right I hope to have it available by the end of next week

     
  34. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    728
    Just bought...very easy and solid tool!
    If you want a beta tester for the "static mesh option" I'm here.
    Max
     
  35. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Sure! I will have a beta available in some hours. If any of you wants to try it just mail me your invoice # and I'll send it to you :)

    (info at ultimategametools com)

     
  36. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Hello everyone!

    First of all, thanks for the support. We've had amazing feedback and we've done everything in our hands to give the best possible technical support back to you.
    This is why we now release the version 1.10 of our Ultimate Rope Editor with some new cool features and changes.

    Here's the list:


    • Added the new "Convert to static mesh" button that will make the rope static. This will allow the rope editor to be used as a modeller for static ropes for your scenarios.
      Static ropes can also benefit from lightmaps, perfectly fitting mesh colliders and many more cool features.
    • Added new parameter "Lock Start/End ZAxis" to procedural ropes.
      This parameter will force each first link of a segment to exit in the direction of the start node Z axis and the last link of segment to enter in the direction of the ending node Z axis. Also, both links will be fixed and won't move.
      This will help in some cases where you don't want the rope to exit bent down due do to gravity or ending the same way.
    • Links can now be changed manually to kinematic through the rigidbody component.
    • Tangents are now also created when building the procedural rope mesh.
    • Fixed bug that caused UltimateRope.Regenerate() to create joints incorrectly when executed at runtime.
    • Fixed bug that caused coils to be generated incorrectly at start.
     
  37. PrettyFlyGames

    PrettyFlyGames

    Joined:
    Aug 30, 2012
    Posts:
    74
    Hey guys!

    Well done and good job!

    I've started to use this in a new project and it works pretty good. However there is one issue that I have. In my suitation I have a weight attached to the end of the rope. The weight is about 100kg and I've managed to get the physics to be stable with tweaking the values. But the rope is acting like a bungy cord and extends a lot. I've put the rope joint spring to zero and link damper to a very high value but still it bounces a lot. Is there anything you can do at your end to make sure that it doesn't stretch as much? In the editor its becomes very visible that each link is extended.

    Also it would be nice if you uncheck the "Has coil" checkbox that you didn't still expect a coil object as it spams the log files with UnassignedReferenceException: "The variable CoilObject has not been assigned"
     
  38. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Hi Dweebster!

    The more the spring and max force the less bungy it should behave. Spring and maxforce control how much each joint wants to go back to its rest position, low values will affect negatively in this case.In fact you could try with very high values first if it works better.
    Also, try playing with the link mass value.

    The values I've got for the crane demo are these:
    -The hook has mass = 100
    -Rope links have mass = 5
    -Solver iterations set to 255
    -Link joint spring set to 1e21
    -Link joint damper set to 0
    -Link joint max force set to 1e21

    Is it spamming when the "Has a coil" is unchecked or when it is checked? Please tell me which line of UltimateRope.cs is giving the warning on the console window as this shouldn't happen when it is unchecked.
     
  39. PrettyFlyGames

    PrettyFlyGames

    Joined:
    Aug 30, 2012
    Posts:
    74
    I thought I answered this but the answer seems to have gotten lost :)

    Thanks for the advice that improved things!

    The spam in the log file happens when the "Has a coil" is unchecked. And its around code line 2512.
    I've done this to fix it:
    if(Mathf.Approximately(fActualRopeIncrement, 0.0f) == false)
    {
    if(HasACoil)
    {
    CoilObject.transform.Rotate(GetAxisVector(CoilAxisRight, 1.0f) * fActualRopeIncrementAngle);
    SetupCoilBones(m_fCurrentCoilLength - fActualRopeIncrement);
    }
    }


     
  40. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Thanks! it seems I was always using the extensible ropes with coils and didn't check that :)
    I've fixed the line in question in my code too for the next update

     
  41. koochy_rat

    koochy_rat

    Joined:
    Oct 26, 2011
    Posts:
    34
    Hi, I'm trying out your rope editor for my game and I ran into a problem. As shown below is my 'rope' (hose rather)

    $Screen Shot 2013-04-02 at 4.22.12 PM.png

    The player would typically apply a force on the hose by dragging it and it would detach (break). However, I am only able to get it to detach from either the left or right end, but never both. What happens is that once an end is detached, the player can pull on the hose again. But the other end refuses to budge and the hose goes crazy. I have set the Link Joint Break Force to 100. It would seem that it can only break once. Any way I can get the hose to break again?
     
  42. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    I'll probably add this to the next version. A checkboxing saying something like "break only once".
    Meanwhile if you want to override this setting, edit the UltimateRope.cs script (lines 909 and 910) commenting the following lines:

    So that:
    Code (csharp):
    1. node.linkJoints[nJoint].breakForce  = Mathf.Infinity;
    2. node.linkJoints[nJoint].breakTorque = Mathf.Infinity;
    3.  
    Becomes:
    Code (csharp):
    1. // node.linkJoints[nJoint].breakForce  = Mathf.Infinity;
    2. // node.linkJoints[nJoint].breakTorque = Mathf.Infinity;
    3.  
     
  43. koochy_rat

    koochy_rat

    Joined:
    Oct 26, 2011
    Posts:
    34
    Thanks for the tip and fast reply! It works, but now it breaks too many times and feels like chopping sausages instead :) It would be more realistic if there was a way to just make the ends break or have a lower break force than the rest of the rope.
     
  44. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Yes, I think it's important for the next version to add a custom list of joints that can break. I've already added it to the wishlist.
    For the moment what you can try is setting the rope to unbreakable and adding your own 2 joints that connect the start node with the tube and the end node with the heater. What do you think?

     
  45. koochy_rat

    koochy_rat

    Joined:
    Oct 26, 2011
    Posts:
    34
    Hey thanks, I tried that and it works just fine! Using Unity's FixedJoint with a break force to connect both ends of the hose.
     
  46. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Nice! The screenshot looks cool btw :)
     
  47. Max83

    Max83

    Joined:
    Apr 11, 2013
    Posts:
    1
    When changing parameters in the rope-script from playmaker (start point etc), the rope itself doesn't seem to update? What would be the sollution? Clicking "reset rope" in the editor fixes it, but how to do a "refresh" of the rope from "within" the system or playmaker?
     
  48. lod3

    lod3

    Joined:
    Mar 21, 2012
    Posts:
    660
    Wow. Thank you! Anxious to try this out!


     
  49. UGTools

    UGTools

    Joined:
    Oct 10, 2012
    Posts:
    738
    Hi Max,

    To be honest I haven't tried PlayMaker so I am not really sure how it works. But in any case when some parameters change, the rope needs to be partially or completely recomputed. The editor, and not the component, takes care of that, so if you change parameters like the rope thickness for example, then the mess will be recalculated. My guess is PlayMaker just changes the parameter in the component, but there still needs to be a recompute call.
    One solution would be scripting additional logic, where the Update() would somehow store its parameters for the next call, and each call check one by one if they changed and update the rope. It's not very clean though, I would prefer a better option :)

     
  50. Alex-Chouls

    Alex-Chouls

    Joined:
    Mar 24, 2009
    Posts:
    2,576
    Playmaker has Get and Set Property actions that can be used to interface with any component on a game object. It also has Send Message and Invoke Method actions. Is there a method that Playmaker users can call to update the system after setting properties?