= Overview =
Welcome to **Mutable**! Mutable is a middleware to create character customization systems for games and other applications using Unreal Engine 4. At development time you can create objects and decide how they can be modified inside your project. Then Mutable builds instances of these objects at runtime based on options selected by the user or by your application. With Mutable you can clip and merge meshes, morph them, change texture colours, project images, and more. Mutable focuses on building these objects at runtime at the maximum performance, while giving your artists all the flexibility they need. This middleware is built from the experience of developing character customisation systems for games like PUBG (PlayerUnknown's BattleGrounds), KUF2 (Kingdom Under Fire 2), or All Points Bulletin Reloaded (APB).
The most important starting point to learn about mutable is the documentation [[ /w/mutable/unreal-engine-4/ | Table of Contents ]].
We recommend you to also read the [[ /w/mutable/unreal-engine-4/faq/ | Frequently Asked Questions ]].
When you are ready, you can follow the [[ /w/mutable/unreal-engine-4/getting-started/step-by-step | Step-by-step Guide ]] to set it up and get it working in a project.
= Licensing =
Mutable for Unreal Engine 4 can be licensed directly from Anticto. It is offered under several different licenses to try to cover all needs:
* Per-project per-platform license
* Studio-wide license, with an unlimited number of projects and platforms
It is not allowed to ship any product with Mutable or containing Mutable-created assets unless one of the licenses above is obtained. Don't hesitate to [[ mailto:contact@anticto.com | contact us ]] if you need more information.
= Demos =
You can download the latest demos ready to run here:
| Demo | Version | Last update| Platforms |
|----------|-------|-----------|-----------|
| Cyborg | [[./changelog|1.1]] | 21th September 2020 | [[ /w/mutable/unreal-engine-4/download-windows/candidate/ | Windows ]] |
| Village | [[./changelog|1.1]] | 21th September 2020 | [[ /w/mutable/unreal-engine-4/download-windows/candidate/ |Windows]] |
The source code and data for these demos is available with each released version of the plugin.
= Download =
Please follow the [[ /w/mutable/unreal-engine-4/getting-started/step-by-step | Step-by-step Guide ]] if it is the first time you set up a project with Mutable.
| Unreal | Mutable | Date | Updated platforms |
|----------|-----------|-------|-----------|
| 4.25 | [[./changelog|1.1]] | 21th September 2020 | [[/w/mutable/unreal-engine-4/download-windows/candidate/|Windows]] [[/w/mutable/unreal-engine-4/download-windows/candidate/|Linux]] [[/w/mutable/unreal-engine-4/download-windows/candidate/|MacOS]] [[/w/mutable/unreal-engine-4/download-windows/candidate/|iOS]] [[/w/mutable/unreal-engine-4/download-windows/candidate/|PS4]] [[/w/mutable/unreal-engine-4/download-windows/candidate/|Switch]] [[/w/mutable/unreal-engine-4/download-windows/candidate/|Stadia]] |
Each platform release has several files, including:
* The plugin zip : It contains the source and binaries of the Mutable plugin. You can unzip it in your project's **Plugins** folder.
* Engine patches: Some engine versions and platforms require source code patches to unlock all the features and performance. The patches are in standard format and they can be applied with standard patching tools like the ones included with //git//.
* Demo projects: Full source and data for the demonstration projects, which is also used for documentation and howtos in this site.
= Status and support =
Support for Mutable is provided through this site. Create [[ /maniphest/task/edit/form/1/ | new issues for bugs or questions ]], however be aware that other users in the site may be able to see your items. For private inquires you can [[mailto:support@anticto.com | contact us]] directly.
We offer dedicated premium support for integration and optimisation in your project as well as development of new specific features or support for additional platforms that you may need.
== Supported platforms ==
These are the supported platforms and their status. If your platform is not listed here, contact us for support. It may mean we are developing support for it but cannot be listed for legal reasons.
<table>
<tr>
<th scope="row"></th>
<th scope="col">Planned</th>
<th scope="col">Testing</th>
<th scope="col">Implemented</th>
<th scope="col">Mature</th>
</tr>
<tr>
<th scope="row" style="text-align: left;">Windows 64 bit</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Windows 32 bit</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Linux 64 bit</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Linux 32 bit</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">OSX</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">XBox One</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Playstation 4</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Switch</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">IOS</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Android</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Stadia</th>
<td/><td/><td>✔</td><td/>
</tr>
</table>
== Feature development ==
Mutable has many features, but not all are at the same level of maturity. Please check the following table. If you require improvements in one specific feature, don't hesitate to contact us.
<table>
<tr>
<th scope="row">Feature</th>
<th scope="col">Planned</th>
<th scope="col">Testing</th>
<th scope="col">Implemented</th>
<th scope="col">Mature</th>
</tr>
<tr>
<th scope="row" style="text-align: left;">Mesh merging</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Mesh removal of hidden parts</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Mesh texture layout packing</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Mesh morph baking</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Texture layer blending</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Texture projectors</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Hierarchical object system</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Object interaction variations</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Data driven user-interface</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">Object States optimization</th>
<td/><td/><td>✔</td><td/>
</tr>
<tr>
<th scope="row" style="text-align: left;">LOD Support</th>
<td/><td/><td/><td>✔</td>
</tr>
<tr>
<th scope="row" style="text-align: left;">Data streaming</th>
<td/><td/><td/><td>✔</td>
</tr>
</table>
= Source code access =
If your organization has access to the development source code, you can find instructions [[ ./source | here ]].