=General=
==Is Mutable right for my project?==
Many projects can get away with a system of interchangeable parts for their characters, and use some real time shader effects for colours. For those projects, Mutable is not necessary at all. Mutable aims more at solving the case for games like APB, Kingdom Under Fire 2 or PUBG, to put examples we know very well at Anticto, where deeper customization is required, and performance is critical. If you contact us and tell us more about your project, we may be able to evaluate the suitability of Mutable better.
==What does Mutable exactly offer?==
Mutable provides a completely flexible mesh customization system for UE4, with no pre-determined meshes, skeletons, textures or morphs that force you into a particular template, look or functionality. You can create the customizable mesh or character you want (doesn't even have to be a biped or an animal for that matter, you could even make customizable trees or objects) with the control parameters and degrees of freedom you want, and Mutable will create a standard and efficient UE4 skeletal mesh for you to use. These skeletal meshes can either be created in realtime in-game, or can be baked into standard assets during production in the UE4 editor. This enables you to use Mutable as another powerful art pipeline tool.
Customizable characters are developed with the Mutable graph editor, which is completely integrated into the UE4 editor and very comparable to UE4's own material editor. Mutable has both a C++ and Blueprint API to control the character customization in-game.
==What is the licensing cost and how can I try it?==
Please visit https://mutable.games/mutable-licensing/ .
==Does Mutable include a character library we can use in our games?==
No. Mutable is not a character library and you will still need artists to create assets for your game. Mutable will let you decide how this assets are combined into the final optimised game characters, and create parameters to customize them.
== Does Mutable provide an initial example project of a character customization system?
Yes, in fact at least two of them. All our own customizable characters seen in the promotional videos and website, cyborg and bandit, are available to Mutable users for them to study and modify.
==We use a non-standard material or rendering pipeline, can we use Mutable?==
Yes. Mutable can handle any number and type of materials and textures. It doesn't have any hardcoded features for "colour", "normal", "metallic" or any material property.
==Can Mutable adapt animations?==
No. Mutable only builds meshes and textures for your static or skeletal objects, it doesn't modify animations. Mutable generates a standard UE4 skeletal mesh with a standard UE4 skeleton so that you can use the full UE4 animation system.
==Does Mutable provide a crowd system?
No, Mutable doesn't provide a built-in out-of-the-box system to generate crowds with a couple of lines of code. But its customization features combined with LOD support can be used to easily create one.
==How many simultaneous characters does it support?
There's no hard-coded limit in Mutable. In fact, since it generates standard UE4 meshes that aren't different from meshes directly created by artists, it can generate as many as your target system will support depending on how costly your characters are (polygon count, texture resolution, etc). There are production games using Mutable with 100+ characters. In our own experience, the limiting factor for UE4 is the animation cost rather than memory or rendering costs.
=Using Mutable=
==How do I set a physics asset for the characters generated by Mutable?==
By default Mutable doesn't touch it, but you can activate a flag to make it automatically use the body asset of the reference mesh in the root Customizable Object. Just call UCustomizableObjectInstance::SetReplacePhysicsAssets(true). Alternatively you can use the "Physics Asset Override" property in the skeletal mesh component.
==Does Mutable support morphs?
Yes, Mutable can the read morphs present in the source UE4 Skeletal Meshes. Then it's up to the developer to choose whether to bake them into the created meshes (to have zero realtime cost for the morphs) or leave them as standard UE4 GPU morphs (for realtime animation).
==Can Mutable simulate the "aging" of characters?
Yes, morphs and normal map texture operations can be used to achieve that effect. In fact it's used in the "Cyborg" promotional videos.
==Can Mutable handle cloth animation?==
There are several cloth animation systems in Unreal Engine, as far as we know:
* nVidia Apex cloth: Mutable does not support it, and it will not support it. This is a method that we believe it is being phased out, and it uses opaque data in binary blobs that we cannot interact with.
* Anim Dynamics: This is the method used by Epic in Paragon. It relies on bones to deform the meshes, so it is supported without any special requirement. See https://www.youtube.com/watch?v=5h5CvZEBBWo for an overview of anim dynamics by Epic. This is the recommended method when using Mutable.
* There is a new cloth system in Unreal Engine since 4.19 (Clothing Tool). We don't have support for it yet, but it will be supported very soon.
==How Mutable handles content updates and binary differences==
All the data Mutable generates after a successful compilation of all the customizable objects in the game (typically a few hundred MBs for a complete game, which are streamed and cached in-game) is stored in a number of files in a folder inside the game project. Both the folder and the number of files can be easily changed via some configuration options. These options let the developer specify how big the files can be, so if the dev sets a really high limit, all the data will be stored in a single big file which will be modified after each content update.
Conversely, a very low size limit will pack every single object in its own small file. This will generate a ton of files, but will handle content updates more gracefully, modifying only the files that have really changed. UE4's own pak system will take on from here, with the possibility of packaging all the Mutable files in a single pack file, splitting them into several pak files or even not putting them in a pak file at all.