Is Mutable right for my project?
Many projects could use a system of interchangeable parts for characters and use some real time shader effects for colors. For those projects, Mutable may not be necessary. Mutable aims more at solving the case for games where deeper customisation is required and performance is critical.
What does Mutable offer?
Mutable provides a completely flexible mesh customization system for Unreal Engine, 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 have to be a biped or an animal, you could also make customizable trees or objects) with the control parameters and degrees of freedom you want, and Mutable will create a standard and efficient UE 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 Unreal Editor. This gives you the ability to use Mutable as another powerful art pipeline tool.
Customizable characters are developed with the Mutable graph editor, which is completely integrated into the UE editor and is very comparable to the material editor. Mutable also has both a C++ and Blueprint API to control the character customization in-game.
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 these 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, a sample project will be available in the Fab Marketplace. What is the idea behind the node system? Is it like an array of different parts to include as body and then add the modifiers on top? The purpose is to give developers maximum flexibility with no pre-defined templates, and to let non-programmers design and implement complex customizable characters.
The graph is a base object node, to which child objects can be hierarchically attached. All these objects can add meshes and materials, be replaced, cut, extended or have their materials transformed by other nodes.
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 does not have any hardcoded features for "color", "normal", "metallic" or any material property.
What kind of assets does Mutable create for its characters? Are they a special or customized kind of skeletal meshes? Do they have any drawbacks or performance penalties?
Mutable creates standard skeletal meshes and textures. Once they have been created, they are the same as assets created by artists. They can be baked to UE assets and exported to projects that do not use Mutable.
What is the core structure of the skeleton, is it based on the UE Mannequin for example?
Mutable does not have a pre-defined skeleton. The developer sets a reference mesh with an arbitrary reference skeleton in the Mutable graph, and then it will generate characters with the provided reference skeleton structure. You can use your own skeleton, and create humanoids, animals, robots or objects.
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 skeletal mesh with a standard skeleton so that you can use the full animation system.
Does Mutable provide a crowd system?
Yes, Mutable provides a built-in out-of-the-box example system for generating crowds. Its customization features combined with LOD support is used to create populations. These kinds of systems are very tailored to each project, so you can use this one as an example to create your own. Check the Populations page for more information.
Is it possible to connect the solution to any Navigation System, IK solver, and Crowd System?
Mutable generates standard UE meshes with UE skeletons, so if these systems work with regular UE assets, they should work with assets generated by Mutable.
How many simultaneous characters does Mutable support?
There is no hard-coded limit in Mutable. Since it generates standard UE meshes that aren't different from meshes directly created by artists, it can generate as many as your target system supports depending on how costly your characters are (polygon count, texture resolution, etc). The limiting factor for UE is the animation cost rather than memory or rendering costs.
Does Mutable generate a fixed Atlas at runtime or is it always possible to modify?
The answer is that you can set it up as you wish. You can have a fixed atlas used by all character variations, or you can have a variable atlas that changes as you put on or remove clothing parts to or from the character in-game. It's even possible to have different atlases or materials for different kinds of character parts (one atlas for body, another for jackets, another for helmets, etc).
It's also possible not to have an atlas at all, and make all character parts use their own independent pre-defined layouts, textures and materials, which makes sense for some kinds of games.
How live is the decal system? Is it limited in what kind of customization we can add if we use that system?
Decals can be baked into textures during production or can be set and updated in realtime. Artists can use it in their art pipeline to create and bake interesting textures, or players can change the position of decals and tattoos in realtime in-game. For realtime editing, it's recommended that Mutable's State functionality is used, so that only the decal is updated in realtime and the rest of the character is not.
The decal system projects over a Material channel or channels chosen by the developer, so there aren't many limitations to what can be achieved. The only limitations may be organizational. For example, if you want a single projector to affect any switchable part, all these switchable parts must be children of a single group node.
Does Mutable include a Dynamic System (Hair, Cloth etc)?
Mutable does not provide any additional dynamic system on top of what UE provides. Some UE hair and cloth systems are supported (see other questions in this FAQ).
Does Mutable support the hair grooms and hair rendering system released in UE?
There is support for Unreal Engine's Grooms.
Does Mutable support morphs?
Yes, Mutable can read morphs present in the source skeletal meshes. It is 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 UE 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.
Does Mutable support facial animation?
Yes, Mutable supports bone-based animation, realtime morphs and facial animation based on morphs.
Can Mutable handle cloth animation?
There are several cloth animation systems in Unreal Engine:
- UE Clothing Tool: Supported from Mutable 1.3 and above.
- nVidia Apex Cloth: Mutable does not support it, and it will not support it. This uses opaque data in binary blobs that Mutable cannot interact with.
- Anim Dynamics: This relies on bones to deform the meshes and is supported without any special requirement. See Creating Dynamic Animations for an overview of anim dynamics.
- Panel Clothing: Mutable does not support it.
Does Mutable support Anim dynamics?
Yes, it does.
How do I set a physics asset for characters generated by Mutable?
By default, Mutable doesn't touch it, but you can activate an option to make it automatically use the body asset of the reference mesh in the root Customizable Object. Call UCustomizableObjectInstance::SetReplacePhysicsAssets(true) using C++. Alternatively, you can use the Physics Asset Override property in the skeletal mesh component.
Does Mutable have any special hair rendering features? Is it possible to physically simulate long hair and ponytails?
No, it doesn't have any hair-specific functionality. Since Mutable uses and produces standard UE meshes, materials, and textures, any hair effect that you can do using Unreal Engine you should be able to integrate into Mutable characters.
Mutable respects the skeletons it is provided as reference, so it will maintain UE anim dynamics bones which can be used to have physically simulated ponytails.
Can I change the height of a skeletal mesh using morphs, baked or real-time?
Mutable morphs, baked or real-time, have the same limitations Unreal Engine morph target have. One of the limitations you can find when using morph targets with skeletal meshes is that skinning may break. Since bones are not affected by morph targets, after the morph is applied, vertices in the mesh could end up in positions where the bones are not correct and will cause unwanted deformations. Changing the height of a character using morph targets is a case where this limitation will probably be encountered, so its use is discouraged. A better option would be to use Bone Transforms, which is an operation fully supported by skeletal meshes generated by Mutable.
How does Mutable handle 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 changed using configuration options. These options let the developer specify how big the files can be, so if the developer sets a high limit, all the data will be stored in a single large file which will be modified after each content update.
Conversely, a 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 changed. UE's pak system will take over from here, with the possibility of packaging all the Mutable files in a single pack file. This will split them into several pak files or possibly not put them in a pak file at all.
Can I examine or debug Mutable characters? What if something doesn't work the way I expect to?
Mutable outputs error messages to the message or output log during editor sessions or in-game. In the graph editor, it also highlights nodes that have problems.
During a Mutable editor session, apart from being able to see the results in realtime in the preview viewport, you will find a hyperlinked thumbnail of the skeletal mesh currently displayed in the preview viewport. You can double-click it and a UE skeletal mesh editor window with this skeletal mesh will open. Here it is possible to inspect the meshes, materials, texture layouts and textures used by the meshes.
How can you implement transparent skin-tight clothing with Mutable?
You can use a combination of texture blending plus a morph.