Daz Draping a dForce gown over primative.

xer.0

Member
Feb 7, 2018
250
2,072
Screen Shot 2021-01-17 at 11.35.54 AM.png

Trying to get a dForce gown to work within a scene. I was able to get it to drape properly with the legs by adjusting the pose in the animation timeline. But the gown doesn't properly drape around the edge of the primitive that I added that she's sitting on.

Any advice on how to fix this?
 

probably_dave

Member
Jun 3, 2017
133
361
I tend to use a Mesh Smoother.

With the clothing selected, under the Parameters Tab, under the clothing, select General > Mesh Soothing. If it does not exist, you can go to Edit > Object > Geometry > Add Smoothing Modifier

Once you have the option, there should be a field called Collision Item. Clicking the drop down box will give you a list of objects in the scene. Select the privative that you want it to collide with and it should then resolve your problem:

Without Mesh Smoother:
NoMeshSmoothing.PNG

With Mesh Smoother:
MeshSmoothing.PNG

Be aware though, this method does not always work, especially if the clothing is already smoothing over the model. Usually with dForce, it's not always needed, so you may be able to get away with it.

Another option is Mesh Grabber where you can move individual faces on clothing. This works fairly well for smaller tweaks.

I'm sure there are many other ways (and probably better ways), however, this method has worked for me so far.
 

Rich

Old Fart
Modder
Donor
Respected User
Game Developer
Jun 25, 2017
2,490
7,035
X3RO - For draping to work correctly over primitives, the primitive has to have a fairly fine mesh. As in "lots of divisions." If you have only a coarse mesh for the primitive, then dForce has a tendency not to "see" it, and to let things penetrate through it. One way to get an idea for how small you need to make the mesh is to look at the mesh of the garment (Wireframe or Wire Texture Shaded view) and make those on the primitive at least as small, if not smaller.

Of course, probably_dave 's "afterward fixups" are a good alternative.
 

xer.0

Member
Feb 7, 2018
250
2,072
X3RO - For draping to work correctly over primitives, the primitive has to have a fairly fine mesh. As in "lots of divisions." If you have only a coarse mesh for the primitive, then dForce has a tendency not to "see" it, and to let things penetrate through it. One way to get an idea for how small you need to make the mesh is to look at the mesh of the garment (Wireframe or Wire Texture Shaded view) and make those on the primitive at least as small, if not smaller.

Of course, probably_dave 's "afterward fixups" are a good alternative.
Interesting.

I did try the above, it worked some but since it was a clothing piece, it seems that changing the collision item made it so that the model didn’t properly “wear” the piece. I’ll try playing around with the mesh of the primitive next. Thanks for the tip!
 

Rich

Old Fart
Modder
Donor
Respected User
Game Developer
Jun 25, 2017
2,490
7,035
Interesting.

I did try the above, it worked some but since it was a clothing piece, it seems that changing the collision item made it so that the model didn’t properly “wear” the piece. I’ll try playing around with the mesh of the primitive next. Thanks for the tip!
Ya - a piece of clothing (or anything else, for that matter) can only have one smoothing modifier with one collision target. So if you change the collision target, then the clothing might have "poke through" with the figure.

If you're going to try probably_dave 's technique, you will do a bit better if you run the dForce simulation with smoothing turned off - that will kind of force dForce to deal with intersections with the figure on its own, without the smoothing modifier "helping."
 

recreation

pure evil!
Respected User
Game Developer
Jun 10, 2018
6,272
22,421
You can also up the collision iterations in the dforce settings, but it will take longer time then.
 

probably_dave

Member
Jun 3, 2017
133
361
I did try the above, it worked some but since it was a clothing piece, it seems that changing the collision item made it so that the model didn’t properly “wear” the piece. I’ll try playing around with the mesh of the primitive next. Thanks for the tip!
I've just done a few experiments based on what Rich and recreation mentioned.
My setup was like so:
R2_setup.PNG

I also upped the collision iterations to 10 as per recreation, however, because of the difference in resolution, it would still cut through. Unfortunately, switching the mesh smoother didn't help as I then got poke through on the model (this was less as I increase the collision iterations however).
With Mesh Smoother on cube:
R2_SM_Cube.PNG
With Mesh Smoother on Model
R2_SM_G8F.PNG

As Rich mentioned, the main problem is the mesh resolution of the primitive so probably changing the resolution of the primitive to be greater than that of the clothing would be your best option:
R2_HR_Cube.PNG

This seemed to fully fix the problem.

However, it might not always be practical to do this, because you might be using props that have a lower resolution as standard. Therefore, another option would be to 'fake' it by using a high resolution object for your collisions and then remove it.
For example, I added a High Resolution plane to the top of the cube. This was scaled to be just over the length and width of the cube:
R2_SM_FakePlane.PNG
The dforce simulation would then interact with this, rather than the cube. Once done, I could hide this and the effect is similar, without having to change the resolution of the original object:
R2_SM_FakePlane-Result.PNG
Of course, it won't work for complex shapes, however, most complex shapes will have a higher resolution anyway so you might not get the same issue
 

xer.0

Member
Feb 7, 2018
250
2,072
Ya - a piece of clothing (or anything else, for that matter) can only have one smoothing modifier with one collision target. So if you change the collision target, then the clothing might have "poke through" with the figure.

If you're going to try probably_dave 's technique, you will do a bit better if you run the dForce simulation with smoothing turned off - that will kind of force dForce to deal with intersections with the figure on its own, without the smoothing modifier "helping."
Gotcha.

You can also up the collision iterations in the dforce settings, but it will take longer time then.
Just a hobbyist here, so technically I've got all the time in the world :LOL:

I've just done a few experiments based on what Rich and recreation mentioned.
My setup was like so:
View attachment 991189

I also upped the collision iterations to 10 as per recreation, however, because of the difference in resolution, it would still cut through. Unfortunately, switching the mesh smoother didn't help as I then got poke through on the model (this was less as I increase the collision iterations however).
With Mesh Smoother on cube:
View attachment 991193
With Mesh Smoother on Model
View attachment 991192

As Rich mentioned, the main problem is the mesh resolution of the primitive so probably changing the resolution of the primitive to be greater than that of the clothing would be your best option:
View attachment 991196

This seemed to fully fix the problem.

However, it might not always be practical to do this, because you might be using props that have a lower resolution as standard. Therefore, another option would be to 'fake' it by using a high resolution object for your collisions and then remove it.
For example, I added a High Resolution plane to the top of the cube. This was scaled to be just over the length and width of the cube:
View attachment 991191
The dforce simulation would then interact with this, rather than the cube. Once done, I could hide this and the effect is similar, without having to change the resolution of the original object:
View attachment 991190
Of course, it won't work for complex shapes, however, most complex shapes will have a higher resolution anyway so you might not get the same issue
Woah... This is amazing!!!! Thank you so much for going through all of this, it helps so much. I'm a CPU only guy so you just saved me so much time.

You guys are all awesome!