Animated Chasing Lightbulbs


Hello,

I am fairly new and starting to work with Keyframes.

I have about a hundred lightbulbs that I want to light one after another.

Any suggestions or tutorials as to how to do this?

I am sure that there are MUCH SIMPLER ways to do it than this:

  1. Assuming your light bulbs are arranged along some path, create a curve that connects them and give it some geometry:


  2. give all of your light bulbs the same Geometry Nodes modifier, which computes the distance to the curve geometry and sets a new attribute “Light” to 1 for all vertices if some vertex of the mesh comes close to the curve geometry


    (Be sure to handle the case of the curve geometry being empty)

  3. Use the “Light” Attribute in the shader setup:

As you can see, only those objects close to the curve geometry are lit.

  1. use the Start/End controls in the curve to define which lights are on:

  2. You can animate the start/end values of the curves with keyframes (not shown)
    Light_on_Curve.blend (112.4 KB)

Again, there are probably much simpler ways to to this, but I am too stupid to come up with one.

1 Like

Another way- give them all the same material, an Emission shader with the strength connected to a Color Ramp set to Constant. Into that Color Ramp, plug a Math node set to Multiply. Input 1, connect a Separate XYZ node. Whichever direction the lights are - X, Y, or Z, use that. Lastly, connect the Separate XYZ to Object Info > Location and crank the second multiply input up as needed. Add an Math > Add node between the Separate XYZ node and the existing math node. Put #frame in the second input of that Add node

Moved to Animation and Rigging.

1 Like

Light objects, or just meshes with emission shaders?

1 Like

I am lost after math plug in set to multipy.
https://drive.google.com/file/d/1DwVi3PvA3rvd0_fAN-Utl-9ykW397Tdl/view?usp=sharing

Your math values will vary for your use case, but try this:


Okay, so emission mesh. Here’s what I would do:

  1. Make a UV map for each light. Easiest way to do this here is join all lights, create UV map on joined object, then separate by parts:

  1. U->project from view all objects to UV map them:

  1. Arrange them roughly linearly, in the order in which I want them to light up:

  1. Scale to 0 in individual origins, then scale into UV bounds:

  1. Use the material to compare #frame with UV.x:

Test:

To control the timing of the lights precisely, we can just edit their UV coordinates. Because the UV coordinates for each individual light have been shrunk to a single point, each will light up all at once. Here, because I am dividing my frame count by 250 and comparing to a UV.x in the 0,1 range, all lights will light up over the course of frames 0-250.

1 Like

Yet another solution: Use geometry nodes!

chasing lights.blend (885.8 KB) - cc0 license

1 Like

First of all, Thank you All Very much for you taking the time to reply to my post.

OK I am apparently too new to this.
I am trying to accomplish any of these suggestions with no luck yet.

At this point I am not able to view my bulbs in UV Editing. Anyone know why this is?

You haven’t unwrapped them- select all, edit mode, U > project from view

Anyone open to zoom Tutoring with a project a little more indepth than what I have posted here.
What would the cost be?

Currently I have been creating my objects in sketchup then importing to blender.

My goal:
Along with this post.

I will also have text filled with bulbs that I would like to have speratic lightbulb flashing. Also the entire text with flashing bulbs to rotate on z 360 degrees.

You can make a post in #jobs:paid-work if you want, but I don’t think you need it. Bandages provided a step by step tutorial already, if you follow it you’ll get what you’re looking for :slight_smile:

This is where i get lost.
Not understanding this step

I create a value node in the shader. In the value field, I type “#frame”, no quotes, which creates a driver for that value node, such that the value node outputs the current frame count. I use math to compare this with the output of a UV map node’s separated X channel (with UV map->separate XYZ.)

bulb on curve.blend (1.0 MB)
This shape was imported from sketchup.
How to i convert this to a curve?
I want to array the bulb on that shape of a curve.

It says it is a face.
I try to right click. Convert to curve.

You managed to convert it to a curve, the objects name is ‘Face 1.001’ which is a little confusing.

I set up a quick geometry nodes setup to array the bulbs on the curve. First I applied the scale of your curve by pressing ctrl+a in object mode, then I added the nodes as shown:

to get this result:

bulb on curve-gn.blend (1006.6 KB)

let me know if you have any other questions

This is Great!! Thank You!
is there a way to set the bulbs on the outside of the curve? So that they are just touching it.

Sure thing, first, I modified the bulb object so its origin is at the bottom of the bulb, rather than the center:

Then I added a normal input node, plugged through an align euler to vector node as the input for the rotation parameter on the instance as points node:

tada:

You can then adjust your bulb mesh as needed if you want to have your bulb stood off further from your curve.

Wow, after numberous tries. I finally accomplished this.
Thank You Very Much for your help.

Great way to understand some geometery nodes as a beginner.

Now I am going to attempt to illuminated them on this curve.

2 Likes