Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snow and rain particle objects disappear after reload #343

Closed
TheDuckCow opened this issue Sep 28, 2022 · 5 comments · Fixed by #384
Closed

Snow and rain particle objects disappear after reload #343

TheDuckCow opened this issue Sep 28, 2022 · 5 comments · Fixed by #384
Assignees
Labels
Milestone

Comments

@TheDuckCow
Copy link
Member

TheDuckCow commented Sep 28, 2022

This is a known issue, ironically first uncovered by the winning submission of the MCprep version artwork contest. The mesh objects for the rain and snow particles after spawning particle weather is not marked as a fake user nor added to scene, thus after restarting or reopening the blend file, the objects are lost. Really, blender should be better about knowing the objects are used in particle systems and not think they are unused, but alas here we are.

Affects v3.4.1 and v3.4.0

The solution can be one of a couple approaches:

  • Automatically mark any objects referenced in just-imported particle systems as fake-users (so the objects are not removed)
  • Add the objects into the scene, but to a disabled collection (like other aspects of MCprep does). This would also make it easier to edit the particle, and even better, potentially avoid creating new meshes for each particle import (not that this would happen often or that the mesh is dense to necessitate it).
@TheDuckCow TheDuckCow added the bug label Sep 28, 2022
@TheDuckCow TheDuckCow added this to the v3.4.2 milestone Sep 28, 2022
@TheDuckCow
Copy link
Member Author

For anyone seeking an immediate workaround, see how to mark the particle as a Fake User:

demo-fake-particles.mp4

@StandingPadAnimations
Copy link
Collaborator

What if we add some force reload system as mentioned in #378?

@TheDuckCow
Copy link
Member Author

TheDuckCow commented Mar 6, 2023

To be honest, I'm not sure I'm totally following what the force reload script is fixing for.

In this case though, really the thing that needs to happen is marking the object as a fake user and/or adding it to the scene so it's not garbage collected, any other solution would probably solving a symptom versus the cause. Should be a simple enough fix, just need to get to it.

Edit: Alternatively, we could add the particles to the already used "MCprep exclude" collection that gets created, that way there's an easy enough way for someone to edit the mesh or clean it up if they really want to (more opaque if it's not added to the scene).

@StandingPadAnimations
Copy link
Collaborator

To be honest, I'm not sure I'm totally following what the force reload script is fixing for.

In files where assets have been loaded in, it's not possible to reload assets, hence force reloading

@TheDuckCow TheDuckCow self-assigned this Mar 10, 2023
@TheDuckCow TheDuckCow linked a pull request Mar 10, 2023 that will close this issue
@TheDuckCow
Copy link
Member Author

Marking this as closed as assigning fake user is working. It is true it won't fix existing files that were saved before, but it's a one-time fix for users to reload, and there would be a ton more code (which could itself have bugs) in trying to automatically re-connect a particle object to an empty particle system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants