I have many cylinders duplicated with an array.
The material emits light.
I need to make the cylinders light up and turn off one after an other in a loop.
Any idea on how to do this?
- 65
- 5
-
1Related: How to control many tiny lights – Jul 06 '19 at 00:36
-
1https://blender.stackexchange.com/questions/94699/animating-running-lights https://blender.stackexchange.com/questions/121629/how-would-one-animate-blinking-lights-in-viewport-opengl-render https://blender.stackexchange.com/questions/73792/light-blinking-objects-in-cycles-render – Duarte Farrajota Ramos Jul 06 '19 at 02:20
2 Answers
since the array is an exact copy of the first object, I don't think there is a way to do what I understand you wanna do. What I suggest is copying the object with array (to keep it in case), then apply the array.
Without separating your object and materials, you can animate the light changes with a texture that, depending of the UV, will either light up or not your objects only by keyframing the texture coordinate. So UV unwrap all your cylinders from the front: 
Then you have to make a texture that looks like that:

Finally in your material, set it up a bit like that and move the X value of the mapping node to align the white part of the texture over the cylinder you want to light up:

OR you can always have multiple objects with different material that are animated independently (probably more time consuming).
- 76
- 2
-
Thank you! I ended up just keeping them in the array and adding a driver to the mapping x axis, making the white square jump every ten frames. in my case: 0.2+0.25*int(frame/10) – 3ifdj30 Jul 06 '19 at 02:59
-
@3ifdj30 - if this answer helped you, please do not post "Thank you" comments, instead mark it as accepted – metaphor_set Jul 06 '19 at 07:20
I could be way off but once you apply the array modifier, I believe you'd manually have to key frame the emission strength per copy of the cylinder. I'm curious what others recommend.
- 75
- 10
