I was wondering if it is possible to pin a group of vertices only in one direction? So I'm trying to do a cloth simulation of a skirt. When I stitch it on the avatar, the skirt starts to slide down. I tried switching off gravity and then simulating the stitching in the first simulation and then switch on the gravity for the second simulation for the skirt to settle. This works to a decent extent but this also results in a slight amount of slip below the waist. I was wondering if I can restrict the movement of the top edge vertices of the skirts only in XY plane so that there is no movement in the Z direction (no sliding or slipping movement)
Yes, this is possible - in a limited way - using 'sewing springs'.
When you create a mesh for a cloth simulation, any 'faces' act as cloth but any edges (without faces) are considered 'sewing springs'. These are edges that connect two vertices that can be 'constricted' by applying a force to draw those vertices together. The idea being that you could create a garment in multiple parts and then use the springs to effectively sew the pieces together around your model.
One useful feature of these 'sewing springs' is that they resist being stretched beyond their original length and we can use this to our advantage.
To demonstrate... starting with a cylinder, in Edit mode, remove the top and bottom faces and use the 'Loop Cut and Slide' tool to subdivide the edges. Select all the vertices at the top edge. You should now have something like the following :
Extrude the selected edges upwards (EZ1Enter). Now remove the faces from the extruded region (select those faces then press X and choose 'Only Faces'. Select the top 'rim' and press Alt+M and choose 'At centre' to merge them to a single point. You should now have something like this :
Add the top vertex to a new vertex group named 'Pin' and set up your cloth sim to enable Pinning, pinned to the new group 'Pin'.
Running the simulation should now result in the 'edges' remaining at a fixed length, thereby preventing the rest of the mesh from falling. The 'cloth will still fall a small distance but this will now depend on the radius formed by the length of the 'edges' - the longer the edges, the less the cloth will 'fall' - therefore, move the 'pinned' vertex further above the cloth (in Edit mode). You should now have something like the following :
Note that this can interfere with Self Collision, causing strange results. This can be overcome by setting the 'pinned' vertex and the connected top row to an additional Vertex Group and use that in the Self Collision settings to exclude those vertices.
Obviously, due to the nature of the pinning and sewing springs this technique will only work when pinning against the direction of gravity.