How to keyframe all the objects viewport/render visibility inside the selected collection via python code? And there's a boolean there that you can just type "False" or "True" to decide whether unhide or not. I only have a little bit of knowledge of scripting, especially in blender python library. I was thinking of this after knowing collections viewport/render visibility can't be keyframed, because I want to keyframe the object collections that aren't needed in certain camera shots. But trying to make it myself takes long time now, that I have to meet a certain deadline to pass my project.
1 Answer
After several moments I just got it, but I know there maybe a cleaner approach
import bpy
for ob in bpy.context.collection.all_objects:
ob.keyframe_insert(data_path="hide_render")
ob.keyframe_insert(data_path="hide_viewport")
if ob.hide_render == True:
ob.hide_render = False
else:
ob.hide_render = True
if ob.hide_viewport == True:
ob.hide_viewport = False
else:
ob.hide_viewport = True