SIMULATION RESEARCH

Cloth Simulations:

When choosing the Sylvanas rig, I was acutely aware of the fact that her cape was going to be the potential cause for problems down the line. Either I spend an awful amount of time hand animating the cape, or I find a simulation solution. I didn't have much experience with simulations within Maya, however thankfully, once again Kiel Figgins website had a write-up regarding n-cloth for simulations.

Essentially, the method consists of using the proxy geo for simulations and collisions, and then using the rivet constraint to apply the simulated data back onto the original rig controls.

This looked promising in theory, however my frustration with simulations comes from not being able to view them in real time. Having to let a simulation play out, cache it and go back to tweak a little settings over and over again makes it very difficult to get the desired output.

After some attempts, this was the best result I was able to produce with Kiel Figgins method. It was promising, but I couldn't help but feel that there was a simpler solution.

This is what led me to begin researching Unreal Engine as a possible simulation option. I knew that I wanted to use UE as a rendering solution anyways, so it would actually be more efficient if I could use it to perform my simulations as well.


Playblast of one of my Maya ncloth simulations

I quickly came across this short but informative tutorial which helped me get started with cloth simulations. The process is actually fairly simple for the most part.

You simply define a piece of mesh as a cloth object, and then enter the cloth painting tool which allows you paint how much each vertex is affected by the cloth sim; akin to weight painting. Then after some tweaks to the characters collision boxes the sim is ready to go.

The main issue I had was whilst I could get the cloth to collide with the character just fine, getting it to interact with the environment was much trickier.

Although the cloth would not be colliding with the environment at all times, there would certainly be instances (such as during a roll) where it was important for there to be environmental collisions. After extensive research, I was still struggling to find an adequate solution, and was worried that perhaps I may have to give up and go back to Maya to figure out nCloth properly.

However, thankfully, I discovered that whilst environmental cloth collisions are limited in UE4, UE5 is able to handle them. And so after updating my scene to Unreal Engine 5, I was able to produce an accurate cloth simulation with environmental collisions.

These tests also doubled as research into my Maya to Unreal Engine pipeline, which needed examination if I wanted to use UE as a rendering solution. It was lucky I did these early tests, as the process revealed several issues and difficulties that I will discuss in a future section... 

Destruction Simulations:

Since I had decided to do my cloth simulations in Unreal, I figured I should look into its viability regarding destruction sims too.

Unreal Engine 5 ships with Chaos, a physics engine that allows for realtime destruction simulations. I began my research by looking at some tutorials in order to get a feel of what's possible and how easy it would be to achieve the desired look.

By the look of it, Simulations were incredibly easy and so I set off building a test scene. Destruction in unreal works by taking a satic mesh and fracturing it using an array of fracture tools. These smaller pieces can then be simulated to respond to various collisions or forces. There are also anchor volumes which allow you to allocate certain parts of the mesh that you want to remain stationary and not be affected by the simulation.

I did a quick hammer swing animation and got it into unreal.

Using some stock unreal assets I built a basic scene and used the fracture tool to segment the pillar. There are multiple ways to fracture geo in unreal. I found the most useful tools were planar and Voronoi. Planar lets you make a simple cut through geometry whereas Voronoi uses a cell pattern to randomly shatter the mesh.

This can then be an iterative process where you shatter each fragment even further, assigning damage values so that certain chunks break at certain thresholds. 

Unlike the cloth simulations, Chaos destruction can be cached using a cache manager. This allows you to play a simulation through until you get a result you like, cache it and play it back in the sequencer. Here you can keyframe the playback times, allowing you to speed up or slow down the sim.