Download

How would I get a simple cloth simulation working on mobile?

Hello everyone.

I have been studying the 3DS game “Fire Emblem Fates” to determine how they got their cloth and other items on the character to move naturally.

One very popular method they use is, to put it basically, juggle physics. They have the cloth segment rigged out, and the bones simply jiggle back and forth. This can be done in Unreal with a ‘spring controller’ (and a ‘look at’, if you want to have it rotate and not translate)

What the game also does, albeit sparingly, is actual simulation. One of the spears that characters use has a banner coming off of it. This is very obviously a proper cloth sim (although it seems to be 12-16 quads), instead of the method mentioned above.

The question I have is how do I do this for unreal 4 mobile? Does apex cloth even work? And if so, I use blender to create assets, and apex isn’t supported in blender.

Keep in mimd I am not a mobile dev but do have experience with hair and cloth and crappy hardwarw. From what I understand vertex operations are very expensive on mobile hardware.

That said I had a look at Fire Emblem Fates on youtube. I don’t think they are simulating in game. The cloth animations are always the same for each character animation and they unnaturally return to idle between turns. Simulating cloth, even simple cloth with spring solvers can be an expensive proposition. I’m fairly certain the animation is canned.

So there’s three ways off the top of my head to do this considering the cloth doesn’t need to interact with anything in the game other than the character it is attached to.

  1. Simulate the cloth in your 3D app. Bake out the geomtry use it as frames or morph/blend targets in game. You’ll get nice fluid cloth, but it can make for a much larger asset depending on the vertex density of the cloth and number of frames. Also, can be expensive to compute in game if your hardware is slow with vertex calculatuons.

  2. Rig the cloth and animate it just like the rest of your character. This will be the cheapest way to go, and you can use simple rigid body physics and spring solvers in your 3D app to help the animation look more natural. You’d set keys on the bones at intervals to translate that simulation to simple joint animation for your game.

  3. full cloth sim in your 3D package, bake frames, rig the cloth rest pose, match bones to the baked frames, keyframe bones to export simple joint animation to game. Depending on your level of expertise and choice of 3D package this method can be simple or extremely labor intensive. It may produce better visual results than option 2 while be as inexpensive at run time.

The problem with baked animation is, obviously, it isn’t dynamic. The project I am working on requires cloth to have dynamicy to it.