Dynamic rope that holds its form?
Rakuda
Posts: 931
Anybody know of a dynamic rope that can hold its form while simulating? As in it does not collapse or flatten like a noodle and is poseable?
Comments
Don't know of any dynamic rope, but a rigged rope, one with plenty of bones, can be moved and placed into position. https://www.daz3d.com/strings
Thanks for the link Fistbastion! can't believe I missd this product
A dForce Dynamic Surface Add-On could be used to provide internal structural support for a rope mesh (to prevent it from collapsing on itself) that is set as a dForce Dynamic Surface. The premise is basically the same as one of the reasons the dForce Dynamic Surface Add-On feature was originally added; pseudo volumetric internal structures; e.g., spaghetti straps on a dress, rope-like necklaces/bracelets, drawstrings, etc.
Hear hear! @FirstBastion Thank you likewise for the link. I will definitely be checking that product out! That bramble looks fantastically cool!
@CrisPalomino That sounds like something that I should figure out. Because posing a rope and letting it fall is less work than spending a lot of time positioning a gazillion bones. Each technique could have its applications. In the case of a posed rigged rope, a varied set of pose presets would come in handy.
^__^
I haven't found any instructions for using Dynamic Surface Add-On. Can you post a link, please.
I don't think there is any more information, beyond a brief note that an Add-on collides only with vertices in the change log or the Start Here thread. I'd like to know how they work too (wondering if they could be used to make a clasp for items that fall open when dForce is applied).
I don't remember where I read this, but I seem to recall that any vertex of an Add-on which coincides with a vertex of a normal dynamic surface will be welded to that vertex for the simulation. Edges are used as d-force springs but do not collide, so they can pass through other objects.
I've been trying to experiment with the Add-On feature and having no luck. So far in every test adding the Add-On modifier causes the item to fail to be recognized as a dynamic item by the engine. It just throws an error message. I tried it:
-On a cylinder prop from DS's primitives
-On a cylinder prop I meshed in Blender
-On a prop from a preexisting dForce set, in case it was a geometry issue
-On that same prop made into a figure with one bone, in case it only works on figures
-Applied over an existing dForce modifier
-Applied by itself on an item with no existing dForce modifier
The Add-On adds dForce material settings like the regular dForce modifier, but it still seems not to work. I'd love to know how it's meant to be used. I definitely have an investment in doing dForce ropes. ;)
Well, if SickleYield can't figure it out, I have no hope! I hope she gets the necessary help from Daz to get it working, because I sure would like to buy those ropes.
Have you just been trying these things on their own, or in combination with ordinary dynamic surfaces? I suspect that add-ons may need to actually be added on to something.
Edit: I just tested. With a dForce add-on item alone in the scene, I get the "nothing to simulate" error. When I put another item in the scene with a standard dynamic modifier, there's no error.
Edit 2: With the add-on item parented to the standard item, they're simulated as a unit. This seems to be the key.
Hence the name "Dynamic Surface Add-On"
Would you care to share your steps? My attempt yesterday failed - as in my rope blew up and filled the screen when simulated with an add-on of discs at each joint (the cylinder draped, but collapsed, without the add-on).
My tests never got to the point of doing anything useful; they were just proof of concept.
Primitive cylinder, 1 meter length, 1 meter diameter, oriented horizontally, dynamic surface modifier.
Primitive plane, 1 meter side, oriented vertically along the diameter of the cylinder, dynamic add-on modifier.
Without parenting, the cylinder fell in simulation, and the plane did not move.
With parenting, the cylinder and plane both fell.
Hi guys! In view of the difficulties encountered using “STRINGS”, I would suggest you here how you can move these props easily, using two different approaches. Basically, you can use the ActivePose tool (combined with the Parameters pane) or dForce.
About ActivePose tool: maybe I’ll tell the obvious, but for those who don’t know, you can select items in the Scene pane in two different way. You can use LMB+Ctrl for a multiple selection (item by item), or LMB+Shift for a multiple selection of all the items between two selections. In the latter case, this is very helpful when you need to select a lot of adjacent bones at once (and I know we have plenty of bones in these strings!). So, once you fix the base point of your string, using the ActivePose tool you can choose the bone from which you want to start pulling the string (let’s call this bone X). Then, you can lock the movements (Parameters pane -> LMB on Active Pane Options -> Lock -> Lock selected node(s)) of all the bones between the base point and the X bone, and start pulling the string from a new bone. In doing so, you can move your string quickly and easily around the obstacles, with a hint of natural movement. And if you need a very tight string, I suggest you use the Parameters pane only, rotating those bones in contact with an obstacle.
About dForce: sure, you can use it on “STRINGS”. In this respect I would invite you to follow this brief example, step by step:
And finally you can see your string bent around the cube by dForce physics. Now you can play with the material and physics options situated in the Surface pane -> selected item -> Simulation. Remember: the more the bones and details, the more the time for your simulation.
Can you elaborate? Is this different from just having both objects set as a dynamic surface?
This is about trying to figure out how dynamic add-ons work by trial and error. I don't know what exactly is going on, other than that this has a dynamic add-on in the scene, without an error, and apparently interacting with a normal dynamic surface. Further testing may reveal more, or it may turn out to be a dead end.
I made a cylinder in modo, then seelcted each edge loop around its girth in turn, created a polygon, and used the "Spikey" command to triangulate it (which did give each disc a high-valence vertex in the centre, I suspect that was the - or at least a - issue). I then split the discs from the original cylinder, exported both as OBJ, made the cylinder a dynamic surface and the dics a dynamic surface add-on.
Have to follow up on this line of thinking again as I am working on another project that has similar constraints trying to simulate a mop. I also have to solve a pass-through issue as shown.
Adding some more geometry to the clasp and using a simulation preset that was similar to the sweatshirt fabric seemed to work in this case. The strands seem to retain their round tubular form.
Has anyone got any further insight on this?
I've been experimenting on and off (when time allows) - trying to simulate rigid objects (or at least rigid enough to keep their shape after falling), and also interested in being able to simulate string / rope etc.
I tried a hollow sphere parented to a sphere but without apparently any difference - i.e. - i can simulate free-falling spheres and cubes - but the presence of the parented add-on doesn't [seem to] make any (visible) difference to the result.
FWIW ; (at least on my system) for free-falling self-contained objects (e.g. a sphere or cube), it seems important to keep the starting spring lengths (i.e. geometry edges) pretty even and not too far off 1cm .. although, in principle, the initialisation phase should cope with being told that the frame 0 lengths are "correct", it still seems to explode most times. It also means picking geometry forms that have reasonably even distributions of quads.
So a variation on Richard's experiment. I cooked these up in Hexagon
1) A series of discs with no center section joined by a geometry tube
2) a Cylinder
1+2 fused (a hollow cylinder)
1+2 where 1 is parented to 2
two cases shown here
left to right
Inner (dynamic-add-on) | cylinder | Cylinder+Inner (parented dynamic add-on) | hollow cylinder (the inner as a separate material zone)
A) Other than making the inner a dynamic add-on (in the parented case) this is just default simulation values.
B) The inner, and inner material in the case of the hollow cylinder is set to a very light, but stiff material.
I can't honestly see what difference making the inner a dynamic add-on makes compared to the case of a single fused object.
====
I think we need some expansion from a knowlegable DAZ person about the intent; understanding the physics, and the concepts of modelling is not enough - one needs to know how those things are mapped into the "knobs" we can turn from outside.
Do the vertices match? As I understand it (and it's the only bit i do feel confident of) Add-Ons collide only with vertives, not with edges or faces.
Yes (in so far as I can determine).
I first created the inner and then the cylinder outer was created by bridging the outer loops of the inner discs;
that copy makes the "hollow cylinder".
The final cylinder was made by deleting the inner portion of that.
Of course, if things are saved to text - and re-parsed, maybe some conversion rounding error could move them off ... but I assume (maybe incorrectly, of course) that the hexagon bridge sends binary... [ definign the precision needed to qualify as "co-incident" would also be helpful].
DS is using the actual vertices and edges of the mesh in the simulation (apparently some systems generate an even proxy mesh and run the simulation on that, then project into the real mesh). As a result the results do depend on topology, with an uneven mesh giving uneven/lumpy results.
The Add-on geometry is defining extra springs, it doesn't need to be especially good as geometry. For this job the suggestion I've been given is a series of radially arranged rectangles each of which has one edge aligned with an edge of the cylinder on one side and another with the opposite edge of the cylinder, like a disc of cards bridging the width, then use the standard dynamic properties to get that to hold the cylinder open; each card is disconnected from the rest and the edges criss-cross, but that's OK as they aren't going to collide. It's too late here to try, but I think that makes things clearer if I've conveyed it adequately.
(without knowing the details of DS's impl. speculative statements here based on previous physical simulation experience :-) ) From the numerical stability point of view, there are attractions to controlling the mesh spacing (i.e. the reprojection method) since it allows one to reason more easily about convergence crtiteria etc. - the down side is potentially large increases in the geometry to equalise feature sze.
=== on the non-specultive side ...
At the moment, lumpiness isn't the main issue ;-) it's trying to find recipes for the geometry and settings that allow simulation of objects (i.e. that don't explode during simulation) with real-world structural behaviour that's more complex than straight cloth - ropes. chains, beads hanging from the hem of a dress, things where the solid object can't be "not participating" since it needs to move with the cloth, and should also be affected by gravity.
If I remember correctly, the optitex cloths were generally quite regular-sized triangular meshes. I should go looking for cases with buttons etc.
I believe I understand what you're saying about the geometry; I did two experiments - one with 8-sided cylinders and 4 crossed rectangles per inner support - and one with two crossed squares.
One thing that we should clarify is whether the add-on geometry is meant to be parented (as discussed earlier in this thread) - or whether the add-on geometry is supposed to be "picked up" by the collision with the straight dynamic part.
Neither experiment proved terribly convincing - it's actually quite tricky to make the second in hexagon but one can at least see that the vertices do match over part of the object, since where that fails the inner shows... green = cylinder, white = cylinder + parented crossed squares support, blue = welded cylinder+crossed squares, top shows the crossed squares support.
addendum: there may be some issues with matching vertices when transfering between apps .. trying a second version of the 4 rectangles/support.
So .. here is a re-run of the four crossed rectangles.
front (red) cylinder; middle (green) cylinder with parented dynamic-add-on; back (blue) support mesh fused to the cylinder
support mesh is shown.
At the moment, it also seems rather hit and miss, and based on a lot of supposition - perhaps it would be an idea to raise a ticket asking for a concrete (no pun intended) example ..
Two more thoughts (not solutions to how to do it - but possible suggestions for the evolution of the physical modelling in Studio)
1. The idea of having separate geometry for the supports seems quite error-prone (depending on the "capture range" for vertex equality). It's also kinda icky to have support geometry that's a whole bunch of disconnected frameworks.
- suggestion; make it possible to have a material zone in an object that is "dynamic add-on" so that there is one "supported" geometry (and the vertices are therefore shared, and therefore definitively co-incident). So one would construct something like fused case above, except that the internal framework would be declared as a "dynamic add-on" and the outer cylinder material zone as "dynamic".
2. Perhaps it's just forcing things too much and, for "string-like" geometries, it would be better to have a mathematical string (i.e. has zero dimensions orthogonal to its length) and parent that to the dynamic geometry - the string can then be modelled as a string - but having the properties (mass, diameter, stiffness etc.) of the parent geometry.
I am advised