# How to Use dForce: Creating a Blanket, Draping Clothes on Furniture, and Much More [Commercial]

• Posts: 9,476
RGcincy said:

L'Adair had a clever idea - using a circular transparency map on a square plane and draping it as cake icing. You can see the result here.

Hey! Thanks for the shout out. Your thread here has been helpful on so many levels. Thank you.

• Posts: 2,695
edited January 2018

27. Creating a Kite from Primitives - Part 1

I used primitive planes and cylinders to assemble a kite and dForce to animate it.

a. Create a 3 foot primitive plane with 4 divisions and primary axis Y positive (from main menu Create/New Primitive). Name it “kite”.

b. Create a 4 foot long 1 inch diameter Y positive primitive cylinder. Be sure to position it so it is at the center point of the plane.

c. Y translate the plane so it is slightly above the cylinder (see image below).

d. Add a dForce dynamic surface modifier to the plane.

e. Run the dForce simulation. You should get a curved plane similar to what is shown below. Two factors affect the amount of curvature: how far the plane is from the cylinder and what Stabilization Time you set in the Simulation Settings pane (I think I used 0.5).

f. I found the curvature more than I wanted so I set Y-scale to 50%:

g. Now that you’ve curved the kite, set Freeze Simulation to On in the Parameters pane. Also, you can hide or delete the support stick as its job is done. IMPORTANT: although frozen, if you hit the Clear button in the Simulation Settings pane you will restore the plane to flat. If you need to reset another object in the scene after running a simulation, select it and use Ctrl+Shift+D to clear it.

h. Create another cylinder of 4.2 feet and 0.5 inch diameter. Name it “cross spar”. Parent it to the kite. Add a dForce dynamic modifier to it. Position it so it is above the curved kite as shown below. Run a dForce simulation.

Here’s the result:

Y-translate the spar down so it’s on the underside of the kite. Adjust the scale as needed. Set Freeze Simulation to On in the Parameters pane.

i. Create a second cylinder of 4 feet but only 0.25 inch diameter. Name it “cross tie”. Parent it to the kite. Do not add a dForce modifier to it. Position it so it runs from one tip of the curved spar to the other. Adjust the scale as needed so it fits. This serves as the rope that keeps the cross spar curved.

j. Create a third cylinder of 4.2 feet and 0.5 inch diameter. Name it “strut”. Parent it to the kite. Do not add a dForce modifier to it. Position it so it’s perpendicular to the spar and also on the underside of the kite. The back side of the kite should now look like this:

k. Create a 4th cylinder of 2 feet and 0.25 inch diameter. Name it “bridle”. Parent it to the kite. Do not add a dForce modifier to it. Position it so it is on the front side of the kite at an angle with one end near the bottom tip of the kite.

l. Repeat step k but attach it at the upper tip of the kite. The front side of the kite should look like this:

m. Create a plane of 4 feet with 15 divisions. Give it the name “tail”. Add a dForce dynamic modifier to it.

n. Go to the Tool Settings pane and select the Geometry Editor. Select the middle 3 columns of polygons. Then right click in the viewport and select Geometry Visibility/Hide Un-Selected Polygon(s).

o. Right click in the viewport again and select Geometry Editing/Delete Hidden Polygon(s).

p. Parent tail to bottom tip of the kite. Add a dForce dynamic modifier to it. Set the Dynamic Strength in the Surfaces pane to 0.90 so the tail doesn’t get all wrapped up.

q. Add a dForce weight map to the tail and remove the influence on the polygons next to the kite (see gray area in image to right). This will keep the tail attached to the kite.

Continued in next post

Post edited by RGcincy on
• Posts: 2,695
edited January 2018

Creating a Kite from Primitives - Part 2

r. Create a small cube and position it away from the kite. Create a 20 foot long 0.25 inch cylinder. Name it “string”. Embed one end inside the side of the cube. This will serve to anchor the kite string.

s. At the other end of the string, move the camera and adjust it so you can see the polygons on the end of the string. Go to the Geometry Editor and select one polygon on the end. Right click in the viewport and choose Geometry Assignment/Create Rigid Follow Node from Selected… Give it the name “string tip”.

In the Scene Pane, you will see the rigid node, showing an I-beam icon, parented to the string.

t. Move the kite so the tip of the bridle is near the rigid node on the end of the string. I found better results when I left a small gap between the two (so small you will usually not see it – if you can, just close the gap after the dForce simulation and before rendering.

u. This completes the setup of the kite which should look something like this:

v. To summarize, dForce was used to curve a plane to make the kite itself. dForce was also used to curve a cylinder to match the shape of the kite. Both these simulations were then frozen to keep them from changing shape. dForce was used at a reduced dynamic strength to make a plane into a tail. dForce was also used on a long, very narrow cylinder to make it into the kite string. The tip has a rigid follow node so the kite will follow the movement of the string.

w. I did a Current Frame simulation with Stabilization Time set to 1.5 and Gravity to -1.5 (note that’s negative gravity, which is needed for the kite to rise instead of fall). The result is shown at the below:

I also tried an animated simulation, but I found wild behavior of the kite (unusual twisting, momentary flipping, and a slack wavy string near the kite). Not sure why they simulate differently.

I also got somewhat better results if I hid the bridles during the simulation and turned them back on after the fact.

Before I ran the simulation above, I also tilted the kite string towards the sky at a 30 degree angle. If I started with the string horizontal, I got a shape that flattened in the middle as shown below:.

Here are two finished renders:

I tried using a wind node but it didn’t really add anything to the simulation, negative gravity is enough.

Post edited by RGcincy on
• Posts: 394
edited January 2018
RGcincy said:

g. Next you need to add the weight map. On the Tool Settings pane, in the middle of the pane, check that dForce Simulation::Influence Weights is showing and click on Add Map.

You will now see a map listed (Influence Weights):

RGcincy said:

In the viewport, the plane (towel) will turn solid red. A red color means that area of the map has a value of 1 and that area will participate fully in the simulation.

h. When the Weight Map tool is in use, you will see a paint brush with two concentric circles. Move it around and it will add weight (add color) to the map. In this case, you won’t see any added color because it already fully red.

Hold down the Alt key and the brush removes weight (color). How much it removes depends upon the size of the circles and the Sensitivity slider setting. A blue color means those areas will still participate in the simulation but at a much lesser or slower rate. A gray value means it won’t be affected at all. The map below shows the small area that has been modified: gray right around the clothes pin with a little blue surrounding it. The influence is on the vertices, so if you have too few polygons, you have to paint over a larger area.

In the image below, you will see two small areas of blue at the top of the plane. Those are areas where red was removed (described in the next step) so they are less involved in the simulation.

i. Now when you simulate, the area of the towel under the clothes pins will be held in place and the rest will drape under the influence of gravity.

Edit: By the way, after adding the influence map you no longer need the clothes pin, rope or other object to hold the towel. That small area of blue/gray influence weight will hold the towel in place.

A finished render of the towel:

Thank you for posting all of this.  It's been very helpful in an animation I'm trying to create.  However I now need to add the weight map to the bottom of a plant to keep it from blowing away.  I followed the instructions but when I got to G step I could not get the drop down to work at all.  Is this because the item has no bones?  I'm including an image for reference

Post edited by freni-kyn on
• Posts: 2,695

@frenikyn  You don't need to have a bone to add a map. I did notice in your image you have the wind node selected in the scene pane. Select the weight node higher up and you should be good to go.

• Posts: 394
RGcincy said:

@frenikyn  You don't need to have a bone to add a map. I did notice in your image you have the wind node selected in the scene pane. Select the weight node higher up and you should be good to go.

Ahhhh.  Dur.  I did an undo and must have gone too far.  Did not even notice.  That worked.

• Posts: 688
edited January 2018

I have a general question about dForce. I am trying to make a long dress work properly. The issue I am encountering is, that when the dress falls on the floor and shrinks back, a few points remain pinned on the floor and are causing major distortions. I did set the floor as statik object and then increased its collision offset to 1. This seems to work. My question is, are there some other "secret" settings to avoid the pinning on the floor?

Post edited by Ralf1958 on
• Posts: 2,695
Ralf1958 said:

I have a general question about dForce. I am trying to make a long dress work properly. The issue I am encountering is, that when the dress falls on the floor and shrinks back, a few points remain pinned on the floor and are causing major distortions. I did set the floor as statik object and then increased its collision offset to 1. This seems to work. My question is, are there some other "secret" settings to avoid the pinning on the floor?

Usually when a few points pin like that if they are either protruding slightly below or even directly touching the floor mesh. One way to check is to use a front or side view zoomed into the dress at the floor to see if any polys are touching or extending beyond. If so lift your figure slightly (just enough to see a small gap at the floor). You can do the lifting in an animated simulation (have the figure higher to start than lower it at around frame 15) or run a current frame simulation and lower the figure post simulation. That may not be your problem though, as it sounds like the dress is above the floor to start (you said "the dress falls on the floor").

Polys can also stick if they get trapped between two surfaces. That would depend upon the pose and dress and whether it is static during the simulation or animated.

It may be possible to hide the misbehaving polys using the geometry editor (run the simulation, hide the offending polys, and rerun the simulation). I've never tried that so it may not be a help or just extend he problem to some nearby polygons.

What you did with the collision offset is perfectly fine too - whatever works.

• Posts: 893
edited February 2018

freni-kyn Great information. the demo of the towel is really relevant to a project I am working on. I am going to need to figure this weight mapping out to fix the top of a flap skirt in a similar way while the rest of it participates in the simulation. Timely!

^__^

Post edited by Rakuda on
• Posts: 2,438

I have a question. In this post about the bag and fruit, you said

"A second try. Same setup as before, but during the simulation I scaled the fruit up and moved it down"

How do you scale/move things during a simulation? Once a sim starts, I can't touch anything in the scene.

• Posts: 9,476
maclean said:

I have a question. In this post about the bag and fruit, you said

"A second try. Same setup as before, but during the simulation I scaled the fruit up and moved it down"

How do you scale/move things during a simulation? Once a sim starts, I can't touch anything in the scene.

Using the timeline animation setting. You can't change it while it's simulating, but you can tweak almost anything along the timeline and have that change applied the next time you Simulate.

• Posts: 2,695

Just as L'ADair said. I started with the fruit smaller, enclosed in the bag at frame 0. At frame 15 I enlarged it and moved it lower. Then ran the simulation out to frame 30. During the simulation the bag than expands along with the fruit. I'll be writing up and posting the details on how to do it later this weekend.

• Posts: 2,438

Ah, right. Thank you both for clarifying that.

• Posts: 789
RGcincy said:

My most sincere thanks for this. With technical subjects, the written word can be hard to come by these days. I don't take this doc for granted.

• Posts: 1,735
Rottenham said:
RGcincy said:

My most sincere thanks for this. With technical subjects, the written word can be hard to come by these days. I don't take this doc for granted.

Echo what Rotterham said.  I value this information sincerely and am very grateful for the time and guidance that Rich has put into this.

• Posts: 2,695

Thanks Rottenham and sapat! I like the written word myself - much easier to keep track of where I'm out and faster to learn from for me.

• Posts: 2,695
edited February 2018

28. Creating a Bag of Fruit

There’s many occasions for putting items into a soft-sided bag. As the items settle to the bottom, the bag distorts to wrap around them. This tutorial uses fruit as an example but you can use many other objects.

a. Start with some type of bag. I have several in my runtime from various sets. For this topic, I used a trash bag from Trash Stash.

b. To make it easier to see what’s going on, I changed the color of the bag to a medium gray and set the opacity to 50%.

c. Add a dForce dynamic modifier to the bag.

d. Add a dForce Modifier Weight Node to the bag. Use the Node Weight Map brush to remove the color from around the bag’s knot (hold the alt key while painting). This will lock the knot in place so the bag doesn’t fall to the ground during simulation.

e. Add the fruit. I used MHE:Fruit. I started with the bowl of fruit and added an extra apple, banana, peach, and orange on top.

f. We don’t want the bowl, so go to the Tool Settings pane and pick the Geometry Editor. Right click on the bag in the viewport and choose Geometry Selection by surface, choose the bowl surface, then hide the selected polygons using Geometry Visibility, then delete the hidden polygons with Geometry Editing.

g. Create a group with all the fruit in it. This will make it easier to scale the fruit during the dForce simulation.

h. You’ll see that some of the fruit pokes through the bag.  We want the fruit to be this size at the end of the simulation, but in order to stretch the bag during simulation, we need to shrink the fruit so it all fits inside the bag at the start. Set the scale of the group to 60% at Frame 0. Also, move the fruit up to Y-translate 6.5 so it can drop down as the bag simulates.

i. The bag needs some time to drape before the fruit expands too much, so add a keyframe at frame 15 and keep the group scale at 60% but drop the fruit to Y-translate 1.

j. At keyframe 30, restore group scale to 100%. Let the simulation run to frame 60.

k. Here are the results. As you can see, the bag now conforms to the fruit.

Frame 0:                                                Frame 15:                                       Frame 22:

Frame 30:                                                        Frame 60:

A 3DL render of the bag of fruit:

l. You can use any shader on the bag. Some fruit and vegetables come in mesh bags, so I used a shader from Super Shaders – Mesh Magic to create that effect. Here’s the render:

Post edited by RGcincy on
• Posts: 1,735

So cool!

• Posts: 789
RGcincy said:

Thanks Rottenham and sapat! I like the written word myself - much easier to keep track of where I'm out and faster to learn from for me.

"The spoken word flies away. The written word endures."

• Posts: 893
edited February 2018

Going to post this here too. Hope nobody minds...

So, I have this rug and I am trying to simulate it on a cube but there are several issues. One is it appears that it is having some geometric anomalies in the  front edges as it falls. Also, the bigger issue is that even though I painted zero influence on the dForce weight map where the, the tassels join the rug, they do not stay put. They detatch from the edges. I wonder how to handle this? Need to read up on this and do a little research, Perhaps I have to make them physically attach to the geometry of the rug body instead of depending on the weight map to try to hold them in place during simulation?

Post edited by Rakuda on
• Posts: 75

@ RGcincy -- thanks very much for this dForce guide!

• Posts: 21
edited February 2018

I would like add an additional tip regarding dForce. Whatever you do, DO NOT use integrated graphics nor your CPU to simulate physics. The end product would be a bunch of spikes going all over the place. I highly recommend you only use your GPU to run your simulations. I've used my GPU to run a simulation where a duvet covered my character perfectly when he was lying in a bed. On the other hand, my integrated graphics rendered my Daz Studio session to be irresponsive while a bunch of spikes emerged on the duvet as it was covering my character.

Post edited by Ohgun the Awakened Prodigy on
• Posts: 3,143

I have intergrated graphics and am CPU only, and dorce works fine for me. Slowly, but fine. It helps to add a smoothing modifier or even convert the item to sub-d to get nice smooth wrinkles. And that had nothing to do with a graphics card.

• Posts: 2,695
edited February 2018
Rakuda said:

So, I have this rug and I am trying to simulate it on a cube but there are several issues. One is it appears that it is having some geometric anomalies in the  front edges as it falls.

Can you post an image with the mesh showing?  The anomalies might come from a mesh with too few faces. I didn't have a rug with tassels, so I used a banner that has a coarse mesh. As you can see, because there's only 4 polygons across the length of the banner, it doesn't drape in a smooth fashion and it cuts into the box.

Before simulation:                                                                                        After:

Rakuda said:

Also, the bigger issue is that even though I painted zero influence on the dForce weight map where the, the tassels join the rug, they do not stay put. They detach from the edges. I wonder how to handle this? Need to read up on this and do a little research, Perhaps I have to make them physically attach to the geometry of the rug body instead of depending on the weight map to try to hold them in place during simulation?

Are the tassels a separate mesh or non-attached geometry? It looks like they are because the zero influence is holding them in place while the rest of the rug drapes away. For the banner I used, the edges are part of the mesh, so if I add a weight map to them, they hold the banner in place. If the tassels are non-attached, you may need to use a dForce dynamic add-on modifier.

Post edited by RGcincy on
• Posts: 893
edited February 2018

RCGincy Here is an image of the rug geometry. It is possible that I could add a bit of resolution to the geometry running across the rug side-to-side. The tassels are unattached geometry. I am not sure  how the  dForce dynamic add-on modifier would apply here, it may be easier to try to just attach them. Naturally, attaching them, would add more geometry to the rug itself.

I created a new rug with attached tassels but dForce didn't like it at all. Here it is below.

Second try:

When I added dForce Modifier: Dynamic Surface and simulated it, it went completely wonky and shrunk down to a simplified geometry square.

Possibly, I should move this to a technical support thread instead of this Instruction tutorial.

Post edited by Rakuda on
• Posts: 2,695
Rakuda said:

I created a new rug with attached tassels but dForce didn't like it at all. Here it is below.

When I added dForce Modifier: Dynamic Surface and simulated it, it went completely wonky and shrunk down to a simplified geometry square.

Possibly, I should move this to a technical support thread instead of this Instruction tutorial.

Your new rug with that many polygons and attached tassels looks like it should work. Not sure what's with the shrinking though. I have seen items at times fly away or disappear - not sure what causes dForce to do that. Does the rug shrink instantly or over time during the simulation? One thing you might try to see what's going on is to set Dynamics Strength to 0.9-0.95 which will reduce the amount of deformation applied.

Moving it to a tech support thread might get additional input. If you do, I'll look it up over there.

• Posts: 893
RGcincy said:
Rakuda said:

I created a new rug with attached tassels but dForce didn't like it at all. Here it is below.

When I added dForce Modifier: Dynamic Surface and simulated it, it went completely wonky and shrunk down to a simplified geometry square.

Possibly, I should move this to a technical support thread instead of this Instruction tutorial.

Your new rug with that many polygons and attached tassels looks like it should work. Not sure what's with the shrinking though. I have seen items at times fly away or disappear - not sure what causes dForce to do that. Does the rug shrink instantly or over time during the simulation? One thing you might try to see what's going on is to set Dynamics Strength to 0.9-0.95 which will reduce the amount of deformation applied.

Moving it to a tech support thread might get additional input. If you do, I'll look it up over there.

I will move the discussion. It did instantly fly away, and then I altered the geometry a bit and it did seem to fly away when calculationg the first frame. I realized however, that it was actually tiny and inside the cube.But anyhow.. Moving it... Will post a link.

• Posts: 893
edited February 2018
RGcincy said:
Rakuda said:

I created a new rug with attached tassels but dForce didn't like it at all. Here it is below.

When I added dForce Modifier: Dynamic Surface and simulated it, it went completely wonky and shrunk down to a simplified geometry square.

Possibly, I should move this to a technical support thread instead of this Instruction tutorial.

Your new rug with that many polygons and attached tassels looks like it should work. Not sure what's with the shrinking though. I have seen items at times fly away or disappear - not sure what causes dForce to do that. Does the rug shrink instantly or over time during the simulation? One thing you might try to see what's going on is to set Dynamics Strength to 0.9-0.95 which will reduce the amount of deformation applied.

Moving it to a tech support thread might get additional input. If you do, I'll look it up over there.

I will move the discussion. It did instantly fly away, and then I altered the geometry a bit and it did seem to fly away when calculationg the first frame. I realized however, that it was actually tiny and inside the cube.But anyhow.. Moving it.... Thanks RCGincy!

The link is here dForce issue: Flyaway and nonsensical behavior during simulation

Post edited by Rakuda on
• Posts: 2,695
edited March 2019

29. Deflated Soccer Ball.

Applying dForce to a primitive plane is pretty straightforward but if you apply it to a primitive sphere you get wild results. I was finally able to find some surface settings that help and also made a big learning about scale in the process.

a. Create a primitive sphere with 10 foot diameter, 64 divisions, and 64 sides (I’ll come back to why 10 feet later).

b. If you use the default surface parameters, you’ll get a result like this: a fully deflated, stretched out mesh.

c. Reduce Bend Stiffness from the default of 0.5 down to 0.1. It’s still deflated but not stretched out as much.

d. Next reduce Stretch Stiffness from the default of 0.8 down to 0.1. The upper surface of the sphere retains its shape while the lower part starts to pull in. Now you have a ball that looks deflated.

e. Add a soccer ball texture and it looks like someone forgot to pump up the ball.

f. You’ll notice in the previous image the ball is sitting on a plane but I did not have it collide with the plane during the simulation. It was lowered afterwards. In this image the ball was allowed to collide with the plane and you get a different look. Either works but the one above appears to me more like the ones I’ve seen in real life.

g. This is where it gets interesting. No one plays with a 10-foot ball. So here’s a 1-foot diameter ball with the same 64 divisions and 64 sides after simulation using default surface values. It explodes instantly when you start the simulation.

h. Set the Stretch and Bend Stiffness to 0.1 and it holds together, but this smaller ball collapses in on itself much more than the 10-foot diameter ball. I could not find surface settings that gave the results I got with the 10-foot ball.

i. Another way to get to a smaller ball is to scale down the 10-foot ball. This series does it BEFORE simulation.

50% scale (5-foot):                                                              25% scale (2.5 foot):

10% scale (1 foot):

The 10-foot ball with 10% scale makes it equal in size to a 1-foot ball and it has a somewhat similar simulation result as the 1-foot ball without scaling.

Clearly dForce is affected by scale!

So the best way to get a smaller ball with the look of the deflated ball in step e is to start with a 10-foot ball, run the simulation, then scale it down.

Since dForce is affected by scale, what works on one size object will not necessarily work on a larger size object. That makes it more difficult to predict your result when scale also plays a role.

Post edited by RGcincy on
• Posts: 33

Very helpful thread - lots of effort and I know what a static modifier is now also