I am trying to move particles around using python (specifically set their position each frame programmatically), however it seems there is no way to directly access particle data in 2.8. Creating a default particle system on the default cube and using
len(bpy.context.active_object.particle_systems[0].particles)
always returns 0, even if you scrub through the timeline and can see particles on screen. I had hoped to use
particle_system.foreach_get()
and
particle_system.foreach_set()
but these functions always error out with “internal error setting the array” unless you pass in an array with size 0.
If there is something I am missing it would be great if someone could help me out. Eventually I would like to be able to execute my script for N frames and save all the positions in the point cache, but for now I would just like to be able to manually read and write particle positions if possible. I was able to do this successfully in 2.79 so perhaps API changes are to blame.