FAQ - anticto/Mutable-Documentation GitHub Wiki

It is 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 where deeper customisation 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 of Mutable better.

What does it exactly 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 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 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 UE 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 UE editor and very comparable to UE's own material editor. Mutable has both a C++ and Blueprint API to control the character customization in-game.

Does it 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 it provide an initial example project of a character customization system?

Yes, a sample project will be available in the Unreal Marketplace soon.

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 point is to give the developer 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, where children 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 doesn't have any hardcoded features for "colour", "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 UE skeletal meshes and textures. Once they have been created, they technically the same as assets created by artists and can even 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 UE skeleton in the Mutable graph, and then it will generate characters with the provided reference skeleton structure. Just 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 UE skeletal mesh with a standard UE skeleton so that you can use the full UE animation system.

Does Mutable provide a crowd system?

Yes, Mutable provide a built-in out-of-the-box example system to generate crowds. Its customization features combined with LOD support is used to easily create populations. These kind of systems are very tailored to each project, so you can use this one as an example to create your own. Check this page for more information.

Is it possible to connect the solution to any Navigation System, IK solver, and Crowd System?

Mutable just 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 it support

There's no hard-coded limit in Mutable. In fact, 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 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 UE is the animation cost rather than memory or rendering costs.

Does it 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 will change as you put on or remove clothing parts to/from the character in-game. It's even possible to have different atlases/materials for different kinds of character parts (one atlas for body, another for jackets, another for helmets, etc).

Finally, it's 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 will project over a Material channel or channels chosen by the developer, so there aren't many limitations to what can be achieved. Just connect projection nodes to the Material channels over which you desire to project. The only limitations may be organizational, for instance, if you want a single projector to affect any switchable part, all these switchable parts must be children of a single "group" node.

Does it 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 experimental support for Unreal Engine's Grooms.

Does Mutable support morphs?

Yes, Mutable can the read morphs present in the source UE 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 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. In fact it's used in the "Cyborg" promotional videos.

Does it support facial animation?

Yes, Mutable has always supported bone-based animation, and now that it supports realtime morphs it supports facial animation based on morphs.

Can Mutable handle cloth animation?

There are several cloth animation systems in Unreal Engine, as far as we know:

  • There is a new cloth system in Unreal Engine since 4.19 (Clothing Tool) which is supported from Mutable 1.3 and above.
  • 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.
  • Panel Clothing is not currently supported, but some support for it is in our roadmap.

Does it support Anim dynamics?

Yes, it does.

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 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 in standard UE 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 any Unreal Engine morph target would have. One of the limitations one 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 a position where the bones aren't correct and 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, given the use case, would be to use Bone transforms (https://docs.unrealengine.com/en-US/AnimatingObjects/SkeletalMeshAnimation/NodeReference/SkeletalControls/TransformBone/index.html) 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 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. UE'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.

Can I examine or debug Mutable characters? What if something doesn't work the way I expect to?

Mutable will output error messages to the message/output log during editor sessions or in-game. In the graph editor it will also highlight nodes that have problems.

During a Mutable editor session, apart from being able to see the results in realtime in the preview viewport, below the current preview instance properties you will find a hyperlinked thumbnail of the skeletal mesh currently displayed in the preview viewport. You can double-click on it and a UE skeletal mesh editor window with this skeletal mesh will open, where 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?

With a combination of texture blending plus a morph.