Easy Skeletal Mesh Merge Async
EasySkeletalMeshMergeAsync is an Unreal Engine plugin that lets you merge skeletal meshes asynchronously at runtime, making modular characters easy and efficient.
Many modular character solutions are hard to manage or cause extra draw calls, hurting performance. While Epic’s Skeletal Merging plugin solves this, it can be tricky to use and manage hard references or replication.
This plugin builds on Epic’s system, but offers a much simpler API and workflow.
Features
- Async Skeletal Mesh Loading: Merge meshes without blocking the game thread.
- Component-based: Add merge capability to any actor or override the default skeletal mesh component on characters.
- Task-based: Loading and merging are handled as background tasks. Which is cancelled whenever a new request comes. Ensuring stability.
- Network-ready: Replicate merged meshes so all players see the same result.
Installation
From Epic Marketplace
- Install the plugin to your engine.
- Enable it in Unreal Engine’s plugin settings.
Manual
- Copy
EasySkeletalMeshMergeAsync
to your project’sPlugins
folder. - Regenerate project files and build.
- Enable the plugin in Unreal Engine.
Usage
Adding the Component
- Add the
UEasySkeletalMeshAsyncMergeable
component to any actor. - Or, replace your actor’s default skeletal mesh component with
EasySkeletalMeshAsyncMergeable
.
C++ Example
#include "Component/EasySkeletalMeshAsyncMergeable.h"
How It Works
- The plugin uses a background task (
LoadSkeletalMeshesAndMergeTask
) to load and merge meshes on every client. - The main component, UEasySkeletalMeshAsyncMergeable, manages the tasks and ensures stability between clients.
Runtime Merging
Most settings work out-of-the-box. Advanced parameters are inherited from Skeletal Merging.
You can override the base skeletal mesh via the component if needed.
The Base Skeletal Mesh
parameter is set from the first mesh at begin play, but can be changed with Set Base Skeletal Mesh
.
Do not use the default Set Skeletal Mesh
on the component. It can cause inconsistency between clients.
You’ll find several merge methods in the component:
Most functions focus on currently equipped meshes, with parameters for custom effects.
MeshMergeOverrideParams
matches Epic’s Skeletal Merging options.
You don’t need to touch Mesh Merge Override Params
for basic use—meshes will merge with correct materials.
For advanced users: you can customize UVs for single-material meshes or further customization (see this video by Prismatica).
Example: Inventory Integration
When an item with a mesh is added to a slot, merge it with the base mesh—perfect for inventory systems!
This example function runs whenever an inventory slot changes content.
Support
If you use this plugin, please consider leaving a review or feedback!