Today we’ll be making an animated wire logo in Blender with bounce splines. I was inspired by the Blender Intro – Text Animation Wire Logo Effect in EEVEE [Blender 2.8] video on Kev Binge, which is a great Blender channel on YouTube.
I created a similar bounce splines logo for each of my YouTube channels. Here I’m going to show you how I created the animation for my Prospero Blender channel. I use it as an intro to each of my videos.
I’ll be using the 2.93 version of Blender. You will find the blend file and the images and video clips that I’m using here on Github.
Here’s what it’s supposed to look like:
So, let’s do it. Here are the steps for you to follow:
Table of Contents
Step 1 – Add and Edit the Text Objects
Let’s start by deleting the default cube. We don’t need it here. Now, we can add the text. So, hit Shift + A and select Text. Then hit R X 90 to rotate the text on the X axis. Go to front view (Num 1):
Go to edit mode and edit the text. Just use the Backspace key to remove letters and then type new letters or other characters. You can also hit Enter to move to a new line, just like in any ordinary text editor. I’m using the text ‘PROSPERO CODER’:
Go to the Object Data tab (A) and select a font of your choice (B). The thicker the font the better, I chose the SegoeUIBlack font. Set the font size to 3 (C). In the Paragraph section set Horizontal Alignment to Center (D) and Character Spacing to 1.2 (E). Some of the values may differ if you’ve chosen a different font or would like to achieve a different effect.
Go back to object mode, front view:
Add another text, rotate it (R X 90) and move it down (like G Z -5 for example):
This text should read ‘BLENDER’ and should be bigger than the previous one. Its width should be the same as the width of the first text.
Let’s go to edit mode than and change the text to ‘BLENDER’. I used the same font and the same settings as before, with one difference – the size of the font is now 6.
When you’re done editing the text, go back to object mode and position the text closer to the first one. I moved it slightly up (G Z 0.8):
Finally, there’s one more text object to add. This one should read ‘prosperocoder.com’, which is the address of my website. Add another text in object mode, rotate it (R X 90) and move it up (like G Z 4):
Enter edit mode and set the text to ‘prosperocoder.com’. Set the font to ArialMT, Size to 2.5. Center it horizonatlly like before, but leave Character Spacing at 1. Then go to object mode and position the text slightly closer to the first text. I moved it slightly down (G Z -0.5):
To keep things organized, let’s rename the three texts in the Outliner: the first text to ‘prosperoText’, the second one to ‘blenderText’ and the last one to ‘websiteText’:
Step 2 – Convert Text to Mesh
In order to be able to work with the text objects we must convert them to mesh. So, select each of the three text objects one by one, right-click on it and under Convert To select Mesh. This option is also available in the Object menu.
Step 3 – Extrude the Text Objects
Now select blenderText (which is now a mesh), go to edit mode, face select mode, select all and extrude ( E Y -0.5). Go back to object mode, select prosperoText, go to edit mode, select all the faces and extrude them too (also E Y -0.5):
Go back to object mode, select websiteText, go to edit mode, select all the faces and extrude, but not so much as the other two text objects. You can hit the sequence E Y -0.15.
Go back to object mode when done.
Step 4 – Separate the Letters
Now we want each letter in each text object to be a separate object. To keep things organized, let’s create a collection for each text object. So, we’ll have three collections altogether. To create a collection right-click on the top part of the Outliner (The Scene Collection line) and select New Collection (A). Repeat the step two more times. Then rename the three collections after the text objects (B):
Now drag each text object into its corresponding collection:
Now we can finally separate each text object into separate letters. So, let’s start with prosperoText. Select it, go to edit mode and hit A to select all. In the Mesh menu, under Separate select By Loose Parts:
Now each letter is a separate object, which you can clearly see in the Outliner:
Now repeat this step for blenderText, but not for websiteText because the latter will be used as a whole.
Step 5 – Enable the Add Curve: Extra Objects Plugin
We’ll need the Add Curve: Extra Objects plugin to use bounce splines. You get it out of the box when you install Blender, but it’s probably disabled if you never used it before. So, go to the Edit menu, the Preferences… and in the window that opens, under Add-ons find and check the plugin.
You can now close the window. The plugin is enabled.
Step 6 – Add Bounce Splines
The next step is tedious because you have to repeat it for each and every letter in both texts. We’ll be adding bounce splines. So, let’s start with the letter B in blenderText. Select the letter B and then in the Add menu under Curve find Knots and select Bounce Spline:
Now expand the panel on the left and set Bounces to 600 (A). You may also want to try different random seed values. For me 6 works fine (B). Now the letter B is filled with bounce splines.
In the Outliner find the object that represents the letter B and hit on the eye icon to hide it (A). Then go the the Object Data tab (B) and under Geometry -> Bevel set Depth to 0.03.
Now select the letter L and repeat all the steps above to add bounce splines. You may want to use a different random seed for each letter, but don’t change the other values. Continue until you reach the end of the word BLENDER:
Now repeat the steps for all the letters in the ‘PROSPERO CODER’ text, but this time set the Depth under Bevel to 0.015. After you’re done with all the letters adding bounce splines , you should get something like this:
Step 7 – Add a Plane
Now we’re going to add a plane in which the letters will reflect. So, hit Shift + A and under Mesh select plane. Scale it (S 50) and position it about one unit under blenderText. Move it slightly to the back (G Y 25):
Step 8 – Animate the Camera
Our animation is going to last 10 seconds, so set the End Frame in the Timeline to 240 (A), assuming we’re at 24 frames per second. The animation is actually going to include several elements. One of them is the motion of the camera from one side of the scene to the other. But it should be done in such a way that the camera follows the objects.
An easy way to do it is to create an empty, so an object that will not be rendered, and add a Track To constraint to the camera. As the objects (by this I mean the particular letters) are all arranged around the world origin, it’s a good position to add the empty at. So, make sure the 3D cursor is still at the world origin, hit Shift + A and under Empty select Plain Axes. Hit S 5 to scale it up so that we can see it better (B):
Let’s reset the camera. This way we’ll set its location to (0, 0, 0) and it will be facing down. So, select the camera first. To reset the location hit Alt + G. Then, to reset the rotation, hit Alt + R:
Hit R X 90 to rotate the camera on the X axis. Then hit G Y -40 to move it to the back:
Now let’s add the constraint to the camera. With the camera still selected, go to the Object Constraint tab (A), click on the Add Object Constraint dropdown (B), select the empty you just created as the target (C), set Track Axis to -Z (D) and Up to Y (E):
If you now look closer, you will see a blue dotted line between the camera and the empty. This means the camera is tracking the empty. Try it out. Select the empty and move it around. If you watch the camera, you’ll see it move along with the empty. Hit Escape or Ctrl + Z to undo if you already confirmed the new location of the empty. Make sure it’s still at the world origin.
We’re ready to insert keyframes. Make sure you’re at frame 1 in the Timeline (A). Go to camera view (Num 0). Hit N to open the sidebar. In the sidebar open the Item tab and set X to -30 (B). This will move the camera to the left. It will auto-rotate because it’s now following the empty. Then hover your mouse cursor over the Location section in the sidebar and hit I to insert a keyframe. You can tell a keyframe has been inserted by the color of the three value slots in the Location section and also by the little orange diamond-shaped marker on the Timeline:
Now go to frame 240 and change the value of X in the sidebar to 30. Hit I to insert another keyframe:
Let’s test the animation. Go back to frame 1 and hit the Play button. The camera should be sliding from left to right.
Step 9 – Add a Material to websiteText
Now let’s make it look better. We’ll start by adding materials to the letters. Let’s start with websiteText. But the very first thing to do if we want to work with materials is switch to the Shading workspace (A). Then, let’s switch to Rendered shading (B) so that we can see what the materials really look like. Select the websiteText (C). At the bottom of the Shader editor open a new editor window and set it to Timeline (D). You can do it by hovering your mouse cursor near the bottom-right corner of the former until a plus sign appears and then clicking and dragging up. To set the editor type use the dropdown in the top-left corner of the window you just opened:
Now, with websiteText selected hit the New button in the Shader editor to add a new Principled BSDF shader. In the shader node set Base Color to hex E71A15 (A), which is a nice shade of red. Draw Metallic all the way up to 1 (B) and set Roughness to 0.3 (C):
Step 10 – Render Settings
Now, before we move on and add materials to the other two texts, let’s take care of some general render settings. You will find them in the Render tab (A). Check Bloom (B) and drag Intensity all the way up to 0.1 (B). Check Screen Space Reflections (D) and uncheck Half Res Trace (E). Finally, check Motion Blur (F):
Step 11 – Set Up the Lighting
We’re going to take care of the lighting now. First, let’s make the background color black. To do this go to the World tab (A) and drag the color all way down to black (B):
Now select Light in the Outliner (A) and in the Object Data tab (B) change its type to Area (C). Set Power to 5000 W (D), Shape to Square (E), Size to 33 (F) and check the Shadow box (G). Hit N to open the sidebar. Let’s first reset the Light. Hit Alt + G to reset its location and then change the Z location to 5 (H). Hit Alt + R to reset the rotation. There should be no rotation on any axis (I):
Step 12 – Add a Material to prosperoText
Next, let’s add a material to prosperoText. Select the first letter of prosperoText, which is ‘P’. Hit the New button in the Shader editor to add a material. Name the material ‘prospero_material’ (A). Set Base Color to hex DA891D (B). Set Metallic to 1 (C) and Roughness to 0.3 (D):
Now, you don’t have to repeat all these steps for the other letters. Just select the letters one by one (A) and from the dropdown (B) select prospero_material for each of them (C):
When done, you should see all the letters in prosperoText with their beautiful golden material:
Step 13 – Add a Material to blenderText
The process of adding a material to blenderText will be very similar. Select the first letter of blenderText, which is ‘B’ and add a new material. Rename it ‘blender_material’. Use the same settings for Metallic and Roughness. As for Base Color, set it to hex E76C46. Then select all the letters one by one and select blender_material from the dropdown. When you’re done, blenderText should look like so:
Step 14 – Add a Material to the Plane
The last object we need to add a material to is the plane below the three texts. Select the plane and hit the New button in the Shader editor to add a new material. This material should be slightly reflective.
Set Base Color to hex E7904C, Metallic to 1 and Roughness to 0.2:
Step 15 – Tune Up the Lighting Settings
Before we start our text animations, let’s watch the scene one more time now that all the materials have been added. If you want to change something about the lighting, you can do it now. I will make just one small change. With the Light selected, in the Object Data tab I changed Power to 10,000 W. I just think it looks better.
Step 16 – Add the Lighting Up Effect to the Letters
The letters should not be visible all at once when the animations starts. The letters in prosperoText should light up one after another and the whole blenderText should light up at once after prosperoText is fully visible. As for websiteText, it won’t be visible at all at the beginning of the animation and it will only slide in towards the end of the animation. But now let’s take care of prosperoText and blenderText.
To see things better, let’s switch to the Layout workspace (A), Rendered Shading. Now select the first letter in prosperoText (B) and go to the Object Data tab (C). There, under Shape, set Resolution Preview U to 64 (D). Repeat this step for all the letters in both prosperoText and blenderText because it’s easy to forget. This will make the effect look better.
What are we actually going to animate? Select the first letter in prospeoText. Under Geometry, under Bevel expand the Start & End Mapping. There you can see Factor End. This is what we are going to animate. Before that, though, play with it so that you understand how it works. Click on the slot and drag left and right between the values 0 and 1. Watch the first letter. When the value is 0, you don’t see the letter at all. When it’s 1, you can see it fully. As you slide from o to 1 the shape fills in.
Good, now that you understand how it works, we must insert keyframes for each letter. Let’s start with the first letter and then you can do the same with the other letters. So, go to frame 20 (A), set Factor End to 0 (B), hover your mouse cursor over the slot and hit I to insert a keyframe:
Each letter will need 20 frames to become fully visible and they will overlap. So, go to frame 40 (A), set Factor End to 1 (B) and hit I to insert another keyframe:
Now all you have to do is insert keyframes for the other letters. They will appear in 10-second intervals and then, after the last letter of prosperoText is visible, all the letters of blenderText will start appearing simultaneously (so you will insert keyframes at the same positions for all the letters one by one).
Here are the frames where you should insert the keyframes:
text | letter | frame (Factor End = 0) | frame (Factor End = 1) |
prosperoText | P | 20 | 40 |
prosperoText | R | 30 | 50 |
prosperoText | O | 40 | 60 |
prosperoText | S | 50 | 70 |
prosperoText | P | 60 | 80 |
prosperoText | E | 70 | 90 |
prosperoText | R | 80 | 100 |
prosperoText | O | 90 | 110 |
prosperoText | C | 100 | 120 |
prosperoText | O | 110 | 130 |
prosperoText | D | 120 | 140 |
prosperoText | E | 130 | 150 |
prosperoText | R | 140 | 160 |
blenderText | all letters | 150 | 170 |
Step 17 – Animate websiteText
The last piece of the puzzle is the websiteText animation. At the beginning of the animation it won’t be visible at all, they it will slide in from the left and come to rest above the other two texts.
So, select websiteText. We must move the text outside the visible area, so make sure you’re in camera view (Num 0). Hit N to open the sidebar. Under Location set X to -35. The animation should start at frame 200 and finish at frame 220. So, go to frame 200 (A), hover your mouse cursor over the Location section in the sidebar and hit I to insert a Location keyframe (B). We’re also going to animate the rotation, so hover your mouse cursor over the Rotation section and hit I to insert a Rotation keyframe (C):
Now go to frame 220 (A). Under Location set X to 0 (B) and under Rotation set Z to -360 (C), which corresponds to one full rotation on the Z axis:
Step 18 – Render the Animation
We’re more or less done with our project. It’s time to render the animation. Go to the Output tab (A). Select a folder where you want to save the animation (B). Set File Format to FFmpeg Video (C) and under Encoding set Container to MPEG-4 (D). Under Video set Output Quality to High Quality (E):
Before we start rendering the animation, let’s make a test render. Select a frame near the end of the animation where all elements are visible. Then go to the Render menu and select Render Image:
This is what I got:
As you can see, it’s not what we hoped for. This is because the original letters were only hidden in the viewport. We must also hide them in the render. To do it, hit on the first camera icon in each collection and drag down to quickly disable the visibility in render:
Make another test render:
Now it looks good, so go to the Render menu again and select Render Animation. This will take a while. And after that… watch and enjoy.