I’ve been working on a third person exploration and adventure game called ‘The Nomad’ for the past 6 – 8 months, and I wanted to share some of the techniques I had learned in this time.
The topic we are going to explore today is Cloth, and how to implement it in Unreal 4. Before we do that, let us examine some of the purposes that cloth is applied to within games.
Cloth is an extremely important part of a game developers toolbox. It is a material that exists in abundance in reality, and regardless of scenario and settings, every game can probably make some utilization of cloth, or use cloth physics to achieve some convincing visual effect (I’ve seen it used for hair as well).
The screenshot below is of the game ‘Journey’, a personal favorite of mine, and a wonderful game that takes cloth simulation and applies it to creatures, mechanics, architectural flourishes and even the main characters entire body.
How Unreal 4 implements cloth is using the APEX Physics SDK. The technical details of this implementation are beyond the scope of this post, but suffice to say that in order to bring cloth into Unreal 4, you will need to use either the standalone APEX cloth tool or the APEX cloth plugin built into Max or Maya.
https://developer.nvidia.com/gameworksdownload#?dn=physx-apex-sdk-1-3-0
You will need an NVIDIA developer account to download it. It’s a quick and free registration thankfully.
This article isn’t a tutorial on how to implement cloth, only a demonstration of it, but here’s a link to the tutorial I used:
https://www.youtube.com/watch?v=uTOELBNBt04&t=1003s
He makes use of Blender to attach, rig and skin the cloth mesh, before exporting it into the APEX cloth tool.
In the cloth tool, the cloth simulation is defined by painting the max displacement values directly onto the cloth mesh. The character model must also have collisions generated for it so that the cloth can collide with the character model.
The simulation can be previewed and the environment settings tweaked to observe how it reacts under different parameters. The simulation asset can then be exported and saved as a separate file.
Import this asset into Unreal and then apply it at the Material level. The cloth should be working now.
Some important tips that hopefully will save you the time I spent tearing my hair out when I couldn’t figure out why the cloth mesh disappeared as soon as I applied the physics asset:
- Skin the cloth mesh. If you don’t, bad things will happen.
- Make sure the cloth mesh is rigged to the appropriate bone. If you don’t, bad things will happen.
- Make sure to disable “Add Leaf Nodes” in the Armature tab of the .FBX export settings in Blender. If you don’t, bad things will happen.
Hope this is helpful to someone!