I know this is a common issue, but I can't believe there isn't a better way to hide/reveal objects in an animation, besides moving them far into the distance from camera, scaling to 0 or keyframing the hide_render value, but all of these pertain to single objects, and require adding animation data to each object. It also appears you can no longer keyframe the viewport hide property either in 2.8 but I need a solution that applies to render and viewport display.

All I want is to make a collection of objects invisible with a single property in 2.8 that can be animated/keyframed, but I cannot find an elegant solution. I could parent all objects to an empty and apply 0 scale/move far away the empty, but this is hacky and inefficent with regards rendering.

Just wondering if there's a simpler, more elegant solution that I've missed.

  • $\begingroup$ Good question, indeed a basic feature for animation which should be implemented. $\endgroup$ – brockmann Apr 1 '19 at 11:36
  • $\begingroup$ Again, this may be a hassle and probably a little inefficient for renders but could you add a mix node to your object and hook it to transparency node. Then when you want it to disappear, set the mix to only use transparency, and when you want to see it, the other way. Maybe a little pointless but there you go. $\endgroup$ – Bigfoot Blondy Apr 1 '19 at 11:56
  • $\begingroup$ @BigfootBlondy only ideal for very specific scenarios where the objects all use the same material, but when you just want to toggle visibility a load of different objects with different/multiple materials it's even more hassle. $\endgroup$ – hedgehog90 Apr 1 '19 at 13:50
  • $\begingroup$ Is it down to compositing and View Layers, in 2.8x? $\endgroup$ – Robin Betts Jan 10 '20 at 12:17

You could make a link to object animation data.

First step: Keyframe single object visibility

Select one object and in Object Properties under Visibility keyframe property Show in Viewports. This can be done by hovering cursor over the checkbox and pressing i . Keyframe will be placed in your timeline to current frame. For example you can keyframe object visible at frame 0 by checking the checkbox and keyframing it and make it disappear at frame 100 by unchecking the checkbox and keyframing it.

Second step: Link other objects animation data

Select all the objects you want to keyframe and last select the object that was already keyframed. Press Ctrl + L and select Animation Data. Now all selected objects will appear and disappear at the same frame.


One solution for this animation behavior with object collections is:

  1. Instance to Scene the collection you want to animate. enter image description here

  2. Insert Keyframes to your new instance in Disable in Viewport or in Disable in Renders from the outliner. enter image description here

Then you can repeat the last step in different frames (changing the visibility before add a new Keyframe)

Also note: you can not animate single objects that were in the original collection, the collection instance is treated as a single object.

  • $\begingroup$ This seems to work, but the limitation that you can no longer animate single objects seems really strange. Is there really no way to access the individual object's animation data after instancing the collection into the scene? $\endgroup$ – Bauxite Jan 1 at 9:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.