I noticed that we couldn't multi-select particle system, so I could not use copy_to_select button. Is there a way to select multi particle systems and modify their properties together(e.g. render_step)?
Any help will be appreciated.
This is a use case for Custom Properties/Drivers.
You'll notice this little "Custom Properties" tab at the bottom of almost every panel in the Properties Menu.
Where you put these Custom Property is dependent on how high you want to the "scope" of the property to go. If you put it in the Particle Property panel, that value will be limited to that particle system (not what we want), if you put it at the bottom of the Object Properties panel it will be limited to the current object, if you put it in the Scene panel it will work with all objects in the scene etc.
It depends on the situation, but for this example and for longevity I'll use the Scene Panel.
So, add your Custom Property and edit the name of prop (has to be a Python friendly syntax, i.e. no spaces, snake case, all lower is typical), as well as the format and Min/Max values. The Time Step property in particle systems uses float so we'll stick with the default.
Then once thats done, right click the value and select Copy as New Driver.
Then go to whatever values you want it to control in both particle systems and right-click > Paste Driver.
If you want you can split the Properties pane into multiple versions, and have one with your properties open, which makes for easy editing.
Result:
You can write a script in the Text Editor
and make a list of all the materials and assign an ID
to them. In this script ID=1
relates to Material.001
. So if you want another material to be assigned to all the particle systems, just assign another value for ID
and click Run Script in the Text Editor. show_emitter
is the same for all particle systems assigned to the same object so you don't really need to drive it. You can do similar script for all the other properties in the particle system. Just right click a property and select Copy Full Data Path and paste it into Text Editor to see the property that needs to be manipulated. Let me know the full list of properties that you need to control and I will update the answer.
import bpy
ID = 1
show_emitter = True
obj = bpy.data.objects["Cube"]
material = ""
match ID:
case 1: material = "Material.001"
case 2: material = "Material.002"
case 3: material = "Material.003"
for particle in bpy.data.particles:
particle.material_slot = material
obj.show_instancer_for_render = show_emitter
Alt
while pressing enter to confirm the input. Do u have tp repeatedly change values and how many particle systems are there? python seems like the only way. just loop throught the particle systems list and set each value. $\endgroup$