Category: Troubleshooting & FAQ

Character / Skeletal Mesh FAQ

Getting Started

Before reading this article it may be helpful to review the following articles first:

This FAQ will focus on commonly asked questions and a brief resolution for them.



Q1) How do I get started with Character painting?

You will need a lightmap UV (UV1) for your character and a physics asset that closely approximates the mesh.

Once done, you can simply use the Mesh Space UV1 material node to start receiving paint in your materials.

Effect creation is usually achieved via the Paint Stroke node while umg text can be stamped via the Paint Text nodeAdditional paint and text nodes are also available for specific usecases.



Q2) How should I prepare a Lightmap UV for my character and why?

How: For our purposes a Lightmap UV simply means a UV map with no overlapping faces; in other words, every pixel on your character needs to occupy a unique coordinate on your UV map. Here the size of the UV islands, etc does not matter as much as it would for a regular lightmap, because we’re using this map for lookups, not for rendering.

Why: For skinned meshes, a lookup texture is generated to determine which pixels are eligible for receiving paint on the mesh’s active animation pose.

Unlike static meshes which can support face-to-uv lookup (via Collision UVs enabled in project settings), skinned meshes do not support such a feature, so it is compulsory to create a Lightmap UV for them. Another advantage of Lightmap UVs is seamless painting, which cannot be achieved with a simple face-to-UV lookup.



Q3) Why are my Decals and UMG Text bleeding/spilling over across the character?

Why: This happens when your decals are projected across multiple UV islands, thus causing spillover to occur. The best way to mitigate this for decals/text is to carefully prepare your UV map (we’re talking about UV0 here, not the lightmap) such that important areas like a character’s torso occupy a contiguous UV layout, meaning a single UV island with faces unwrapped at a mostly 1:1 scale.

Alternatives: Seamless painting in a Mesh Space workflow  is fully supported for painting strokes/effects, but not for decals/text.

1) Consider using a premade effect texture (wrapped to your UV0) which you can them “peel off” or reveal by simply masking off the painted areas to reveal the effect texture below. This technique is ideal for damage effects/etc and will work seamlessly across multiple UV islands.

2) World-Space and Local-Space workflows fully support seamless decal/text projection (even for characters). You are limited to planar projection (XY/XZ/YZ) in this technique, but you could use for example, a Local Space YZ node to project a decal image or tattoo onto a character’s shirt. This will also perform several times faster than mesh-space painting.


Q4) How do I increase the quality/resolution of my painted effects?

See the article Changing the resolution of paint textures.

Q5) How many textures are you generating when I paint on my character?

For a mesh space workflow, a unique texture is created for every material that is using a Don UV material node. If you are using multiple effect layers then an additional texture will be generated for each extra effect layer as well. Finally, one small reserve texture is also created (per material) for baking positions data from your Lightmap UV.

Special Note for Master Materials: If you character is using a master material then adding a Don UV node to the material material will instantly make all the children eligible to receive paint. This is not always what you want. If you have tiny meshes like eyes / chest logos with a unique material of their own (deriving from the master), then you should promptly disable texture generation for those materials as described in the article Disabling Paint Layers on Material Instances.

Q6) How do I increase the accuracy of my paint strokes?

Accuracy of your paint strokes is entirely governed by the accuracy of your Physics Asset. You do not need per-poly collision for this, you do need to to take the time to carefully line up your collision bodies along the character’s bones/limbs. Some amount of careful tuning may be needed to achieve best results.

If you have any large WPO effects active on your character then ensure the physics asset accounts for those too, because the accuracy we require is per-pixel rather than per-vertex.

Q7) Why is nothing happening when I try to paint on certain parts of the mesh?

The most common reason is either a missing Lightmap UV (on UV1) or overlapping faces on your lightmap UV.

To see this issue in action, just try painting on the default Unreal mannequin with a “Don Mesh Paint UV0” node. You will notice that you are simply not able to paint on certain parts of the mesh (either the left or right side depending on how the faces were mapped).

Overlapping UVs prevent position lookup from happening and that is why you need a lightmap UV1 (in fact, UV0 will also do fine if it doesn’t have overlapping faces, but for most characters this is typically not the case).

Q8) I want my character to interact with painted areas in the world for gameplay

This belongs to the realm of Paint Blob Collisions. See this article for a quick starting point: Using Paint Blob Collisions.