VCloth 2.0 is the cloth simulation feature of CRYENGINE. Using VCloth, your character’s cloth can be simulated and animated automatically, according to their actual movement. This can make it look much more realistic.
Cloth simulation is generally an expensive process. To reduce performance impact while preserving visual details, CRYENGINE separates the simulation process from the rendering process. A simulation of a lo-res mesh in combination with skinning of a hi-res mesh, which is used for rendering, a fast yet high quality and detailed cloth simulation can be achieved.
Pic1: Separation of render and simulation mesh for cloth simulation
A homogeneous edge flow improves plausibility.
In general, cloth simulation is an expensive task. Therefore, you should consider some of the following remarks before designing your character’s cloth to improve run-time performance, visual behavior as well as the controllability of your cloth. In-game simulations, such as cloth, always shift a certain kind of controllability from the animator into the simulation environment, which - in some circumstances - might result in unwanted behavior. So think through the following remarks before designing your character and characters cloth:
|In these cases , consider not using a simulation at all, since a standard skinning approach might result in similar but more stable results, while being much faster.|
To improve performance and stability, it might sometimes be beneficial to use a combination of skinning and cloth. E.g., if you need the end of trousers to swing back and forth, you might skin most of the trousers and simulate only the ends. If the simulation area is small, you might even consider using the PRow-Attachments of CRYENGINE or simply a joint attachments with a pendulum simulation, which is shown in the following image:
Pic2: Simulation of the end of torn trousers
In this case, the whole trousers are skinned, only the end is simulated/animated with a few pendulum simulations.
To set up your cloth efficiently, a basic knowledge of cloth-simulation principles is crucial. One important concept of cloth in computer graphics is the use of stretch, shear and bend forces. Applying these three forces in combination with different strength, plausible cloth and different kind of textiles can be modeled.
|In computer graphics, cloth behavior is modeled using three forces: stretch, shear and bend forces. Using these forces, simulated cloth keeps its shape and will move plausibly.|
Pic3: Stretch, shear and bend forces
To set up your cloth running at good performance, one more simple concept is important: the time-stepping of simulation. In between 2 rendered frames, there might be several physical sub-steps, propagating the cloth in time. This sub-step size, is set by the parameter Time Step. For example, if your game is running at 20 FPS, each frame needs 1/20 s = 0.05s; with a time step of 0.01s there will be 5 sub-steps per frame.
Additionally, per sub-step you can define the number of Collision Stiffness Iterations - e.g., if you set it to 3 iterations per sub-step, in the above-mentioned example with 20 FPS there will be 3 iterations * 5 sub-steps = 15 iterations per frame.
This is mentioned here, to point out that low values for Collision Stiffness Iterations are crucial, since the number of executions per frame might increase strongly according to your frame rate, increasing the costs for the cloth simulation. On the other hand, the higher the number of Collision Stiffness Iterations, the stiffer your cloth can be - so at the end of the day everything is a trade between performance and elasticity/stiffness.
Pic4: Per frame several sub-steps are executed - whereas each sub-steps contains several collision/stiffness iterations
|The 20 FPS mentioned above are only used as an example to make the calculations easier; in reality, most games would require a minimum of 30 FPS to run smoothly.|
For more information on how to use VCloth, check the following pages:
How To - Export VCloth from Maya to CRYENGINE
VCloth 2.0 properties
Tutorial - VCloth 2.0 Setup
Make sure to load a level, or the VCloth attachment may not render properly.