Description

When adding a niagara system that reproduces a skeletal mesh and a skeletal mesh as components to a blueprint, the niagara system immediately updates its skeletal mesh to the most recently updated skeletal mesh component in the blueprint. This occurs even when the user hasn't added the Set Niagara Skeletal Mesh Component node to the Blueprint's Event Graph or Construction Script.

Since the niagara system's skeletal mesh updates directly after the user updates one of the skeletal mesh components on the blueprint, it will affect the niagara system every time, even if the other skeletal meshes in the blueprint aren't meant to be used with the niagara system. This seems like this would prevent the user from effectively being able to use a niagara system in a blueprint with more than one skeletal mesh.

This also may cause confusion for the user while viewing the blueprint in their level in the editor viewport as it gives the impression that the system will use a different mesh than it will actually be using in the level (depending on how the system and blueprint are setup).

If the user has the Set Niagara Skeletal Mesh Component node executed in their construction graph for the blueprint, I think it makes sense to update the view of the system in the editor since that's how the blueprint is being initialized. If the user isn't using that node or has it implemented in the Event Graph to be executed at runtime, the system should show it's default value to indicate that the blueprint is initialized using that default value until it is changed during runtime (or not changed at all, as the case may be).

Steps to Reproduce
  1. Open the Niagara map from ContentExamples in the editor
  2. In the Content Browser, search for and open the SkeletalMeshReproductionSystem_Demo niagara system
  3. In the SkeletalMeshReproduction Emitter stack, delete Event Handler - Source LocationEvent
  4. In the SkeletalMeshInfluencer Emitter stack, enable Requires Persistent IDs (Emitter Spawn > EmitterProperties)
  5. In the SkeletalMeshReproduction Emitter stack, set User.Mesh's Default Mesh to ProtoOwen
  6. Click the Fix Now button that pops up above in the Errors section
  7. Set User.Mesh's Default Mesh to Owen
  8. Click the Fix Now button that pops up above in the Errors section
  9. Set User.Mesh's Default Mesh back to SK_Mannequin
  10. In the Content Browser, create a new blueprint class based on Actor and call it niagaraSkelMeshBP
  11. With the Default Scene Root selected in the Components pane, add the following components to the Blueprint:
    • SkeletalMesh
    • Niagara Particle System
    • SkeletalMesh (name it owen)
  12. Select the Niagara Particle System component and set the Niagara System Asset to SkeletalMeshReproductionSystem_Demo
  13. In the Details pane for the SkeletalMesh component under the Rendering heading, disable Visible
  14. Under the Mesh heading, set the Skeletal Mesh to ProtoOwen
  15. In the Details pane for the owen component under the Rendering heading, disable Visible
  16. Under the Mesh heading, set the Skeletal Mesh to Owen

Expected Result
The skeletal mesh rendered by the Niagara System is still the default value (SK_Mannequin mesh) regardless of what skeletal mesh components are added to the blueprint

Actual Result
The skeletal mesh rendered by the Niagara System updates to the last updated skeletal mesh component of the blueprint

REPRO RATE
5/5

Have Comments or More Details?

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

2
Login to Vote

Won't Fix
ComponentUE - Niagara
Affects Versions4.23
CreatedApr 4, 2019
ResolvedAug 27, 2021
UpdatedAug 27, 2021