Use Cases - anticto/Mutable-Documentation GitHub Wiki
What is Mutable for?
Mutable generates skeletal meshes at runtime in your game. If your project needs content that can change dynamically, then Mutable is a good candidate to do that for you. It is always referred to as a "Character customization system", however it can generate any kind of skeletal mesh, including animls, props and weapons.
It is designed to run efficiently using as little resources as possible and without framerate hitches for in-game use, however it is also useful as a content pipeline tool for some projects that just require the flexibility to create many variations of data inside the Unreal Engine editor.
Unreal Engine already contains many tools that allow the creators to modify content at runtime. In some simple cases it is better to use those tools instead Mutable. See this great presentation for a summary of alternatives: https://www.youtube.com/watch?v=7IUpa3Pxqug
In short if you just need some body part swapping and texture effects that can be done in a material, you are much better off using standard Unreal tools. However, Mutable can help you greatly if you need to:
- support deep customization involving many parameters and texture layers
- support complex mesh interactions
- support texture effects that are not gpu-friendly (wrapping projections, many planar projections)
- optimize memory usage
- reduce shader cost
- reduce the draw call count
Using Mutable translates some of the CPU and memory cost at character generation time: characters will be generated in the background using some CPU time and working memory, and once generated they will use only the resources of a pre-generated Skeletal mesh.
Features
General
- Integrates well with Unreal Engine.
- Flexible parameter system to connect customizable objects to multiple effects.
- Split customizable characters un multiple assets for concurrent technical artist work.
Mesh
- Remove hidden parts for performance and avoiding z-fighting.
- Bake morphs at character generation time.
- Merge meshes to reduce draw call count.
- Deform meshes based on interaction between characters parts.
Textures
- Bake images at runtime combining multiple effects.
- Support multiple type of projectors: planar, cylindrical and wrapping.
- Support multiple texture blending modes: multiply, soft light, hard light, burn, dodge, etc.
- Manage UV layouts to remove unnecessary texture parts dynamically.
Animation And Physics
- Combine animation graphs of multiple parts.
- Merge and deform collision physics assets together with the meshes.
- Manage cloth simulation data at character generation time.
Performance
- Flexible instancing of customized characters.
- Support LOD management at runtime.
- Support multiple states for to adjust character generation to the different game use cases.
- Texture streaming with on-demand generation integrated with UEs.