From the User Submission:

I spent some time poking through the FComponentInstanceDataCache code and noticed that there is no component instance data saved/applied for 'native' component types, so since the static mesh components for static mesh actors(and my custom actor I'm trying to use as well), are defined in native code with CreateDefaultSubobject<UStaticMeshComponent>(), as is pretty typical, this non child actor non "IsCreatedByConstructionScript" component appears to be ignored by the component data, which I think is the reason why the vertex color data is lost.

In the case of harvesting components, the harvested components are created as part of the blueprint, and aren't 'native' components, so the necessary color data is maintained.

This functionality is not available in //UE4/Release-4.23 cl 10478456 so I am not marking this as a regression.

Steps to Reproduce
  1. Create an empty project
  2. Import a static mesh(anything will do)
  3. Create a super simple material that utilizes vertex color to see the results, assign to mesh
  4. Create 1-2 instances of the mesh in the map
  5. Use the vertex paint tool to paint one or both of the meshes.
  6. Select all the actors
  7. At the top of the viewport toolbar, click on the dropdown arrow next to Blueprint
  8. Select "Convert Selection to Blueprint Class" tool at the top of the viewport. Use "Child Actors" mode.

The meshes within the created blueprint lose their vertex colors

Meshes do not lose paint data when converted to a blueprint

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-97519 in the post.

Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.244.254.26
CreatedAug 25, 2020
ResolvedSep 1, 2020
UpdatedSep 1, 2020