Hi,
the PCG Instanced Skinned Mesh Spawner node does not apply per-instance material overrides supplied through Mesh Selector → By Attribute Material Overrides. The override attribute is read correctly from the point data, but the resulting InstancedSkinnedMeshComponent is created with an empty OverrideMaterials array, so spawned instances always render the SkinnedAsset’s default slot materials.
I would expect that for each spawned instance, the material attribute named in By Attribute Material Overrides[slotIndex] is resolved and applied to the matching material slot of the InstancedSkinnedMeshComponent (i.e. written into its OverrideMaterials).
The equivalent feature on the (static) Static Mesh Spawner works as expected.
[Attachment Removed]
Steps to Reproduce
1. Create a PCG graph: Create Points → Add Attribute → Instanced Skinned Mesh Spawner.
2. Add Attribute #1: create Mesh (SoftObjectPath) = a SkeletalMesh (e.g. SKM_Banner).
3. Add Attribute #2: create OverrideMaterial (SoftObjectPath) = any Material Instance different from the mesh’s default (e.g. MI_Banner_BarbarianEmblem5).
4. On the spawner’s Mesh Selector (PCGSkinnedMeshSelectorByAttribute):
- Mesh Attribute = Mesh
- bUseAttributeMaterialOverrides = true
- materialOverrideAttributes = [“OverrideMaterial”]
5. Generate.
Evidence
- Node data view at the spawner input confirms each point carries the attribute:
- @Points.Mesh = …/SKM_Banner
- @Points.OverrideMaterial = …/MI_Banner_BarbarianEmblem5
- Generation completes with no errors/warnings.
- Inspecting the spawned component (ABM_SKM_Banner_* / InstancedSkinnedMeshComponent):
SkinnedAsset = SKM_Banner 
OverrideMaterials = [] ✘ (expected [MI_Banner_BarbarianEmblem5])
- Manually setting OverrideMaterials[0] on the same component does apply the material — confirming the material is render-compatible (the InstancedSkinnedMesh usage flag is set) and the only failure is the spawner not writing the override.
[Attachment Removed]
Hi there! Sorry for the late answer, we were on a 2 week break.
The ISKM spawner is in a weird state. It was rushed for the Witcher 4 Technical Demo and copy pasted from the static mesh spawner with options there in the settings but not implemented. Same for the descriptor, a lot of options are not forwarded (nor exist) in the descriptor.
Have a look at Main, there are a few updates there (that was required internally)
The override materials are not available in ISKM descriptor, and so it is not plugged in the Skinned Mesh Component either. So there is a little work needed there.
It would require header changes, so it can’t be done for a 5.8.2. And since we do not have a planned release at the moment before 6.0, you’ll probably have to cherry pick it when we fix it (I’ll make a Jira on our end).
If you cannot wait, I have a diff to implement it, there is not much in it, here is a quick test on my end.
[Image Removed]
Hope that helps!
Have a great day
Adrien
[Attachment Removed]
Thank you, we will look into that - thanks for the help!
[Attachment Removed]
No problem! The CL was merged in main, here is the github commit: https://github.com/EpicGames/UnrealEngine/commit/71dcaa7ac9a3001270f0bd158aa44aa366ff6463
Have a nice day!
Adrien
[Attachment Removed]