In this modeling tutorial we are going to go through the process of creating a strand of Christmas lights that are easily adaptable to any scene. The tutorials covers modeling and how to use array and curve modifiers to create a strand of lights that will automatically lengthen as needed.
Support the site – Download includes:
- High resolution .mov Video
- .blend file at the state of the tutorial








wth…. ANOTHER new tut??? You guys are crazy
My Citizenship paid off already… within 1 week!
Thanks for this tutorial. I had dissected you extendable chain model and tried to use the same technique for something similar, and it took a long time. This cleared up some problems I had with it. One thing I found is that the object centers of the curve and the object with the curve modifier have to be at the same spot, or it goes crazy and doesn’t match the curve.
When you were modeling the female plug, couldn’t you have just filled in between the plug-ins, then done a “skin face/edge loops” to save a lot of manual work?
Again, thanks for this great tutorial. This has now become my primary website for learning new things.
Well done. I love how you guys just keep pumping them out! Its almost like waking up every morning and heading into a Blender Class to learn some thing new
Very nice tutorial! As Joshua told, the quality of the tutorials here can be consider a real class. Congratulations!
WOW – amazing what you can do when you know what you are doing. Before this I would have had to model all the lights individually.
I think I’m going to have to make my very own light strand today. I really didn’t know curves were capable of so many things. Excellent tutorial, great job, as always!
It’s great tutorial. I just love it!
I noticed new quality of sound
Thanks once again Jonathan! Another rocking tutorial! Would be great to if we can paint the vertices of the mesh that are affected by the curve modifier, this way we avoid the squash\stretch problem with the lights!
thanks again!
Thanks for yet another fun-to-watch tutorial Jonathan! One quick tip for other users though:
I found that if your lights do deform considerably, you can solve this quite nicely using simple Lattices. =)
Wow more tutorials than I have time to do, I’m in heaven. Thank you
Wow, you guys are just awesome! I love you guys! Thanks!
Hi Jonathan, I’m running into a strange problem in Blender 2.49. For some reason my light strand won’t fit to the length of the curve. It will only do a fixed count. Any ideas?
Thanks in advance!
Excellent tutorial!
Very good
First post on BC, yea! Been watching all the videos and finally decided to get a voice.
Loved this tutorial, as I do every one.
One question though:
Why did you go into edit mode on the default cube and delete the vertices then add the plane while still in edit mode?
Couldn’t you just have deleted the default cube in object mode and then added the plane?
Thanks for this great tutorial Jonathan Williamson. Cant wait till you next one.
–InsanePenguin
I’ve been looking forward to seeing more tutorials on curve and path usage combined with modifiers and this one definitely extended my knowledge of this area nicely. Thanks Jonathan.
@Andy P.: This might be a dumb question but are you sure you have set the Array modifier type to “Fit Curve” from the drop-down list?
Nice work, congratulations!
Ok, that’s what i call tutorial ! Amazing ! Thank you and waiting for another tutorial tomorrow
I like it very much ! Thank you !
Wow, great tutorial!!! I didn’t know that Blender is such powerful! I was working with Cinema 4D a long time (and just sold it…), but now as I see this, Blender seems to be a real alternative!!! And for free!!! Please do more great tutorials!!! And thanks very much for enlighten me!!!
Just did the tut and im having the same issue as Andy P.
Using 2.49.2 on windows. I’ve selected ‘Fit To Curve Length’(seems to have changed to ‘Fit Curve’ in 2.5).
Anyone been able to get this to work in 2.49?
Great job once again Johnathon!
You’re a great Ambassador for Blender.. I think you’re starting to open a lot of people’s eyes as to how powerful Blender is.
Can someone get this guy a medal? ha ha
When you have scaled down the mesh you have to aplie the scaling by hitting CTRL A, that did the trick for me.
Great tutorial!!.. I have a doubt: when I used the “Array” modifier, i needed set “Z” to 1.000, to the objet stay in “queue” with original in “X” axis. On tutorial, when applyed the array modifier, wasn’t necessary to do this. Why ? Is there something wrong on Blender options ? Thanks.
Try applying the location of your arrayed object by selecting it and pressing “cntrl + A”. If this does not solve the problem a screenshot of your setup would be helpful.
Hi Jonathan!! I tried to use CTRL+A, but doesn’t work yet (or I don’t know how to use..). I made a plan on right view, rotate on 90º on “Y” and extrude them. Then, I applyed the “array”, and the problem continues. Look that: http://i46.tinypic.com/345ke1h.jpg . Could you help me?
Yeah!!..I found the solution (and I learned to use the “Apply” (CTRL+A)…)
I had to “Apply the Rotation” (not Location) after rotate the object!! I think that “refresh” the objetc “properties”!!… Thanks a lot, Jonathan!!!..
Best regards,
William
How would you go about doing a Christmas tree? Curve to tree script? How does that work with the pine needles?
Thanks for all the tutorials. Great stuff. Learning tons with each tutorial.
Will
@Jonathan
Just in case you were curious, To edit the twist of a curve simply push the Tilt button in the toolbar. It looks like they just changed the name, its still the same old feature.
BTW. great tutorial!
Thank you for the tip
I’m having a problem following the tutorial. when i apply array modifier it goes in negative z direction instead of x direction. I have have followed the steps exactly as told…
You should be able to fix this by what was outlined above. Select your arrayed object and hit “cntrl + A > Apply Rotation”
Jonathan, why didn’t you need to “Apply Rotation” like us??..is any option in Blender ?…i didn’t understand this…
This probably has to do with the view I added my object from. If you have “Align to View” enabled under the User Preferences this can mess up your rotation.
Hey Jonathan, great tutorial! I think a good idea for a Part 2 for this tutorial would be setting up materials in such a way as to get Blender to assign a colour from a handful of predefined colours to the light bulbs so that you didn’t have to hand colour each one. Cheers.
Since the object is arrayed you will actually only need to apply the materials to the original objects.
Actually I had some problems setting up the materials on mine. I wanted to use a green material for the cord and bulb holder, and a glass material for the bulb. But when I assign the materials to the vertices in edit mode the second material wouldn’t show up in the render. (it did show up in the 3d viewport in multitexture and in GLSL)
My assumption is that is a bug in the renderer, but if I am missing something I would appreciate the help.
Now that I actually have time to sit down and follow this tutorial, I had a question:
As your starting point, why do you go into edit mode, remove the vertices, then add a new plane? Why not just delete the cube object, then add a new plane that way?
No reason actually. It could be done either way just as effectively.
Oh, okay. Thanks… yeah, being a new user to 3D in general, I got curious.
Please help!
English isn’t my native language and sometimes I fail to understand 100%.
I don’t get what is being said at about 08.45:
“… it’s always going to be coming around this way and then flip directions. And that’s just because we mirrored the object. So if we hit _______ on our keyboard and hit “s” and negative 1 we can scale to mirror it again and then we rotate around the x axis 90 degrees and now it fits perfectly …”
Please fill in what Jonathan Williamson said where I placed “_______” above.
“_____” should be “A” I believe to select everything. What you are doing at this point is mirroring your model along the x axis and then rotating along the x axis 90 degrees.
Hope this helps!
Must be something else, because everything IS already selected.
But thanks anyway for stepping in & congrats for all the great tutorials you provide here.
Mr. Williamson, Hi I’m trying to learn blender from scratch and this is a great tutorial so far. But I’m having a problem. I’ve followed everything correctly and it’s working out for me, but I’m experiencing the same problem LoopCut had earlier. When you’re trying to flip that light strand so that way it would flow through without flipping another direction, you said, “so if we hit _________ on our keyboard and hit s -1….” it wasn’t A because (for one), it sounded more like alt but I couldn’t make it out and the vertices were already selected.
I’m really wanting to get pass this part. could you watch the video yourself and see if you can remember what you said.
Thank you so much again for answering our questions.
Hi,
First off, great tut. Learned some intersting modeling techniques yet again!
But i also wanted to take this one step further. When i added the lights to a room scene of mine, i wanted the lights to be lit.
Now, I’m rendering with luxrender, as far as i know it does support multiple materials set on a mesh.
What i’ve done is I gave the wire and lightcasing a green plastic material. The bulb part of the light got a plain white material with the emit value set to 1.00 and it translates correctly to a luxrender material, namely a light.
But when i render this setup, the whole mesh acts as a light. Does anyone had this problem too or is it me? If so, what could i be doing wrong?
Thx for any comment on this.
Again, to close my comment, great tut and thumbs up with blendercookie.com
Grts.
@LoopCut: Didn’t review the tut, but from what i’m reading the most possible keystroke would be “a” to select all the vertices, the hit “s” to scale to negative 1 to mirror. Hope this helped.
I am not sure that LuxRender supports multiple materials on a single object… I wouldn’t quote me on that though. I would suggest asking on the LuxRender forums or you could test it by separating the bulb out to its own mesh and see if it renders that way.
@Jonathan: Many thanks on your fast response. Ofcourse, i’ve been told on many fora by now, if you have a problem with a product, post your question on the product’s forum. /*Slaps Forehead*/
Anyway, i’ve done some testing by now. Luxrender does support multiple mats on a single object, hence thats what the button ‘Filter’ next to the material name in the luxblend exporter is for according to its tooltip.
But, nonetheless.. It seems when you have such a case there is no problem when there are no mesh lights are involved. From the moment you give part of you object a meshlight materials it goes beserk and the whole mesh acts as a lightsource.
However, like Jonathan suggested, when separated in multiple objects this oddity disolves and the mesh gets rendered as intended.
But this solution created a difficulty in the managability of the whole string. Luckily, the same good result occurs when the bulb part is only splitted from the plastic part leaving it one object.
So, i think that solves my problem. Maybe this can come in handy if one bumps into the same issue
Grts
First, thanks a lot to Jonathan for his very helpful tutorials !!!
QUESTIONS
1- How to create a nice lit effect to the bulb lights ??
2- How to make them lit a random color (only bulb for sure) ??
3- I tried the Lattice trick of Patrick “9th post” and it didn’t worked. I didn’t apply my last array modifier and curve.
Here my [url=http://jmcteam.xoo.it/image/46/1/5/d/deformed_lights-167e0aa.jpg.htm][img]deform problems[/img][/url].
Here are some [url=http://jmcteam.xoo.it/image/26/6/8/4/christmas_light1-167e082.jpg.htm][img]problems solved[/img][/url] by myself.
PS. Noel means christmas in French
ANSWERS
1- ANDY P. & InsanePenguin : In 2.49, you can’t use “Fit To Curve” with a Relative or Constant Offset value, you have to use the Object Offset. It worked for me.
2- Afalldorf : you should check this, goto the Scene Button (F10) then select the “Render Layer” tab rather than the “Output” tab. Search for the text field titled “Mat” and be sure there is nothing in this filed.
* Be sure to have your lighting setup layer render !!! Select all the layers to be render.
Hope this could be helpful.:)
@LoopCut: He says “comma” to set the pivot for the rotation to the right position.
Well I encoutered a problem when trying to create the array for the curve. Every time I set the offset objet to the empty the arrays are huge. I tried it with a brand new empty but somehow blender does allways use the same scaling. I also tryed the ALT+S but nothing happens (A new empty shouldn’t have any scaling information right?). I tryed to scale the empty but it won’t fit the grid and the ends are overlapping themselfs. Any ideas to solve the problem? You can get the *.blend at http://www.blamenet.de/emptyxmas.zip. Thanks for the help!
@Solineoz
Forgot to mention that I was using the latest 2.5 build, most of the instructions wont work for it, still I was able to find renderlayers under output and There is nothing in the Material field.(it is blank)
Strangely I tried using vertex applied materials in another file and it worked fine.
I believe it is just a bug. Possibly related to the array modifier. I will do some more testing and then if it still doesnt work I will submit it in the bug reporter
Ha I take that back, looks like its fixed in the newest revision 25410. Now it works fine.
@echelon just select your object and press Ctrl+A and apply the scale and rotation… voilà your done
PS. This is a 2.5 blend file and I opened it in 2.49 with only key info and animation lost.
Good retrocompatibility here
Before asking questions here, (cause I didn’t knew about it) I asked Jonathan. Here are the response I had from him that I want to share with you.
His answers:
1- Fixing the deformation is always a bit finicky, but what I have found to work best (and that I should have covered in the tutorial) is to place a point of the curve at the same location of each bulb. This way the normal of the curve handles is pointing in the same direction of the bulb, reducing the deformation. If this is confusing let me know and I can illustrate it.
2- I am in the midst of trying to find a way to do this myself. You could do it by using a blend texture with a color ramp to create bands of color, which then when mapped in space would cause the bulbs to be different colors. However, this is not an accurate method at all and would only suffice in some situations. I will be creating a rendering tutorial for the Christmas Lights in the next few days and I will do my best to come up with a solution to this
3- You can make the lights illuminated by increasing the Emit value in the materials properties for the lights.
I’ve used this technique all the time. When I modeled a bike I used this to model the bike chain, the brake wires, and even the wheels. For the wheels just use a nurbs circle in stead of a bezier curve.
THANX!
Great to learn new things…This is pointing me into buying the course for 2.5.
It also makes me sad…I made chain for a motorcycle without using this technique….
Best regards
sir.tooby
I had 2 wonderfull days learning. I add some lovely pictures of the xmaslights on my site, thanks a lot
Maria (Sarponita.blogspot.com)
Nice set Maria, with beautiful colors
hey, Jonathan, I was wondering if I could translate this video tutorial and post it in my blog, with all considerations, of course!
Hi! look at my results!!
Blender 2.49a
Indigo 1.1.18
Tonemaped in Photomatix
Postpro Photoshop.
http://i74.photobucket.com/albums/i274/daxma/navidadcontraste.png
Hi i just finished a project with these Christmas lights … thank you care to take a look at
http://www.youtube.com/watch?v=w3AsltefATE
thank you
Nice job to both of you
@Enrique Flores – How did you achieve the lighting coming from each xmas light ??
Did you put an individual lamp in each one or did you put an halo in them ??
@Agiofws – Result are nice, but at the begining (close-up) we can barely see the glass of the xmas light.
Maybe it was for rendering time purpose I think
Btw thanks for the present and for sharing your achievements with us
Well since its render on Indigo (Unbiased Renderer) it comes naturally, its just a small cube with light emitions properties and Aperture Diffraction its enabled con the camera, and also some photoshoped help to achive glow.
I just tried to follow the tutorial today and when I add subsurf and make set the view at 2, One of the tubes is a little smaller and it makes an opening in one of the tubes. Is there a fix for this? This is a really cool tutorial
Love your tutorials!
How were you able to select the whole wire section with one click at 19:26? I’ve been looking everywhere but I can’t find how its done!
Thanks
This would likely have been done by hovering your mouse cursor over one of the vertices and pressing “L” to select everything linked to the vertex under you mouse.
Thanks alot! I’m really surprised that I haven’t heard about it anywhere else; it’s very useful shortcut.
This is the best website about blender tutorials I know. I am trying to do most of tutorials here. If anybody interested check out my blog http://ucimsekreslit.blogspot.com/. There are some works done by watching theese tuts.