In this article we will take a deep dive into the text object, what options and features we have as well as some common 3D effects that we may want to use our text for in Blender.
To create 3D text, go to the add menu in the 3D viewport and choose text. Press tab, erase the text and type what you want. Next, go to the geometry section in the object data tab and increase the extrude value. Press tab to go to object mode and right click and choose convert to mesh.
Let’s continue to explore.
Introduction to text in Blender
When we talk about text in Blender, we may refer to multiple things.
We may refer to text in Blenders text editor where we write scripts. It can also be text for the video sequence editor in the form of text on screen or perhaps subtitles just to name a few examples.
Here, we focus on the text object, as part of our 3D scene. Whenever I refer to text, it is in the context of the text object if nothing else is mentioned.
We will start with some basics.
How to add or change text in Blender
To add a text object, we press Shift+A in the 3D viewport and choose text. To change the text we then press Tab to go into edit mode. We can now erase the default text and write anything we want.
Something important to understand, is that text objects are based on curve objects. Therefore, many settings are inherited from curve objects. Each letter is made up of one or more curves. Just keep this in mind as we continue to learn more about text.
We only have two modes available with a text object. Object mode and edit mode. In object mode we have our regular transformations available. Move, rotate and scale. We can use these transformations to make basic changes.
Note though that just like with any other kind of object, if we scale or rotate we may have to apply the scale and rotation. This is if our tools and modifiers don’t work as expected.
Related article: How and why do we apply scale in Blender?
When a text object is scaled, applying the scale will readjust the text size to whatever size that fits the scale of the object. Any uniform scaling will be lost and the font will regain its default ratio.
We can also change the text size directly. Find the object data properties in the properties panel, represented by a green lower case “a” icon. Here you will find the text settings.
In the font section we will find the transform subsection. The first property here is the size. This is the value Blender will adjust after we apply a scaled text object.
In this section we also have a shear slider to angle the letters.
Writing text in edit mode
When we press tab and enter edit mode, creating text is just like any other text based application. We can write and move the cursor with the arrow keys.
To select text, we can hold shift while pressing the arrow keys to select more letters forward or backwards.
While in edit mode we also get four extra buttons in the font section.
- Small caps
To use any of these features on our text, we first need to select the text in edit mode. Hold shift and an arrow key to select.
But clicking any of these buttons, even with selected text, will have no effect on the text though. This is because by default, the bold and italic fonts are the same as the regular.
How fonts work in Blender
You have probably already seen where we change the font, right in the font section. There are four input widgets.
- Bold & Italic
By default, all is set to Bfont, Blenders default font. This is why nothing happens when we tried to make part of our text bold or italic.
Whenever we change a font from regular to bold, italic or both, we really change font for the selected portion of the text. Most fonts we use have multiple versions to account for these different styles.
In Blender, we have to browse for these fonts and input them for each text object. This also means that we can input any font we want for the italic or bold version. So if we use multiple fonts in the same text object and know that we don’t need a bold or italic version, we can just insert any font we want and use bold and italic to switch between them.
Press the folder icon in either of the font slots and browse for your font file. You can also click the “F” to choose any font that is already loaded into the blend file.
On Windows, the browser will automatically open to “c:\windows\fonts”. You can change this folder in the preferences. Go to “Edit→Preferences” and find the “file path” section. At the top is the font folder setting.
While using the browser, if you know the name of a font you can search for it in the top right corner. Searching for a font will filter the view in real-time and generally, you will find all versions available with slightly different names. A trailing “B” often represents the bold version and a trailing “I” the italic.
I will input the Arial font into the bold slot to test. However, the buttons to change style still don’t work. Currently, there seems to be a bug in Blender where pressing these buttons don’t work. But if you are still having problems with the current Blender version as you read this, you can use the shortcut keys.
- Ctrl+B, Bold
- Ctrl+I, Italic
- Ctrl+U, Underline
- Ctrl+P, Small caps
You can change these shortcuts by going into Edit→Preferences and find keymap. Select name and search for “toggle style” and you will filter to only these four keymaps.
The underline and small caps styles don’t have dedicated fonts. These are just style changes. In the transform subsection we also find three related settings. The underline position will raise or lower the underline while underline thickness, increases or decrease the thickness.
The small caps scale changes the size of text with this effect. We can change the slider from 0 to 1, but any number can be typed in. Even negative.
Let’s move on to explore the Paragraph section. Here we will find settings for text alignment. The alignment is in relation to the object origin, and we can change both the horizontal and vertical alignment.
In the spacing subsection we have options to adjust spacing between letters, words and lines. There is also an offset for X and Y. The offsets here probably have more to do with alignment than spacing since it just moves the text in these directions.
Next we have the Text boxes section. For longer texts we can use this to layout our text into different boxes. Text that is so long that it spans multiple boxes will overflow into the next box.
In edit mode we can see an outline of each box making it a bit easier to understand.
The overflow setting will decide what happens to text that does not fit in the boxes. We can have it overflow in the vertical direction of the last box, truncate it, just removing text or size the text to fit inside.
How to make 3D text in Blender
So far, all our text is still 2D. To convert our text into 3D there are two sections in the object data properties that we need. The shape section and the geometry section.
The easiest way to get started is to go straight to the geometry section and increase the extrude slider. As we increase the slider, geometry will be added equally in the local positive and negative Z direction of the text.
You may think that the offset slider will offset the text in the Z direction but this is not the case. Instead, it is offset in the local X and Y direction for each letter. Be careful with this setting as it may quickly create overlapping geometry.
The taper is a bit odd. My understanding of tapering is that we take one curve, add geometry to it and use another curve to tell the thickness along the first curve.
Blenders text object is based on curves behind the scenes, but we can’t decide where each curve that make up a letter start or end. Therefore, each curve making up the letter gets a taper from start to end according to the taper object. But we can’t control the outcome very much.
If you want some cartoon looking text, try it out. In all other cases, I can’t find a use for this currently. But it helps to deepen the understanding of how letters are built, and that is interesting I think.
The bevel settings are pretty straight forward. The depth parameter decides the thickness of our bevel. Careful here, it is easy to get overlapping geometry with too high values.
The resolution tells Blender how many loop cuts to put along each bevel, making it smoother with higher numbers. But going beyond 5 or 6 is probably overkill.
Next we have an object slot. This takes a curve object as input. We can use this to shape the profile of the bevel. But not in the way you might think. This is an example of what we can create with a bevel object and a closed curve.
In this case we also have to go to the shape section and change the fill mode to none.
In this case when we use it together with a curve object we have to be careful with artifacts though. This can be pretty difficult to deal with depending on the shape and scenario.
In the shape section we also have the resolution setting. The resolution preview u parameter will increase the amount of geometry in the letters. For instance this is a text with a resolution of 2 compared to a resolution of 12.
We can change the render U resolution, but with a value of 0 it will inherit the resolution from the preview.
The fast editing will hide the text in edit mode in order to speed up the typing experience. This is generally not needed in my experience.
We already touched on the fill mode. It essentially decides if we want to fill the front, back, both or no part of the surface. In the curve example above we choose to only let the edges remain, and then we created the geometry through the bevel alone.
Convert text to mesh object
To convert a text object to mesh we select the text object in object mode, right click and choose Convert to mesh.
This is a common practice because most times we want to have control over the mesh. A few examples are that we may want to use a different set of modifiers that isn’t available for text object. We may also want to simulate the text. For instance, have the letters fall in a pile with rigid body simulation.
Often, the best way to create and modify the text may be to just write it in a text object, then immediately converting it to mesh just because of the large variety of tools and precise control we get access to.
For example, we can use the bevel modifier and get much more control compared to the bevel feature on the text object.
Before we can start to use all mesh tools, we generally have to create a better topology on our text.
How to create even mesh for a converted text object
In my article on 30 Blender modeling tools I suggested a combination of “beautify faces” followed by a “tris to quads” operation. You can find it in this article.
Related content: More than 30 Blender modeling tools explained
This is a fairly quick way to get a more even geometry in many cases without increasing the amount of geometry. However, if this does not work in our case. For instance, we could have a very complex font to work with. We may try another method. Most likely remeshing or manual retopology. We will look into remeshing here since it will be the way to go in almost ever case, where the above does not work.
In Blender, we have two ways of remeshing. There is a remesh modifier and the remesh tools we find in the object data tab.
In this case I find the remesh modifier easier to work. That is because we get much better feedback on our changes, so we will look into that.
Keep in mind that in order for this method to work we need some depth to our text. We can create it with the extrude setting while our object is still a text object. But if we already converted we can use the extrude tool in edit mode or add a solidify modifier above the remesh in the modifier stack.
Change the mode to sharp and deselect remove disconnected pieces. In my case an Octree depth of 6 worked well and then I adjust the scale.
Here is an example where I animate the scale value between 0.2 and 0.990.
From here we have a much better starting point. But remember to not add more geometry than you need for your text to be even. If you need denser geometry you can always add a subdivision surface modifier set to either simple, or catmull-clark if you want the curvature.
Blender text effects
There is an endless variation of text effects and animations that we can create in Blender. I will show a few simpler ones here that you can use to get your mind spinning.
When doing this we are quite dependent on modifiers and if you are unfamiliar with them you can read more about them here:
Related content: How modifiers work in Blender, an overview
You can also learn some of the most common modifiers here:
Related content: Top 10 Blender modifiers and how they work
Let’s start by looking at some block text. Here is an example:
We can achieve this style with a few modifiers.
We will start with an object that has some thickness and is converted to a mesh object. Then we will start by adding modifiers to this object. First we add the remesh modifier to get a workable mesh as described above.
After that we add a bevel modifier. Make sure that clamp overlap is deselected. At this point it does not matter if our topology is a bit overlapping. I changed the width to about 0.05 and set the limit method to “angle”.
Next I add another remesh. This time I set it to the blocks method. In my case an octree depth of 8 and a scale of 0.35 worked well.
Another type of effect we can create is boolean. This is when we make a text carve into another object. This is the example:
As you can see I used the block text from the example above to carve into a cube object. Another fairly simple but common effect.
In this case we intersect the text with the cube. Then we add a boolean modifier set to difference to the cube object. In my base I used the bool tool add-on to automatically change the draw mode of the text to bounding box. This allow me to see the effect.
Find out more about add-ons here.
Related content: 30 Blender addons (install, manage, free and paid)
You can change the draw mode manually if you go to the object properties tab in the properties panel. That is the yellow icon. Go to viewport display and find “display as” and set it to bounds.
Next I added a bevel modifier to get some better lighting. I also had to check “harden normals” on the bevel modifier and activate auto smooth in the object data properties.
To have an object follow a curve we don’t need to convert the text to mesh.
- Add a curve with the origin exactly on top of your text objects origin.
- You can select the text object, press Shift+S and set cursor to selection, this way the curve will be added to the exact same origin as the text object.
- Go into edit mode for the curve and adjust it to your liking
- Go to object mode and select your text object.
- Go to the font section and find “text on curve”, select your curve object here.
- You may have to adjust your spacing. Go to the Paragraph section and find the Spacing subsection. Here you will see Character, Word and line spacing. You likely have to adjust character spacing.
Add text to a surface of another object
The last effect we will look at is how we can take a text and project it onto the surface of another object. Here is the example.
To create this effect, I created a flat text object and converted it to mesh. Then I used the “beautify faces” and “tris to quad” tools in edit mode to even out the geometry.
Next I positioned the text in front of the sphere so that It covered the area I wanted the text to be from an orthographic view.
Then I added a shrinkwrap modifier to the text and set the sphere as the target. Then I set the mode to “target normal project”.
From here we add a solidify modifier and increase the depth of the text.
Note that the text is prone to getting skewed a bit when projected on a sphere. If you have a very long text to project such as in my case, the start and end will be visibly smaller when viewed from certain angles.
Another way to do this is to take a string of edges from the sphere and copy those to its own object and convert it to a curve. Then use that as a curve object for the text to follow. It is a bit more involved though.
Create your own font in Blender
We can create our own font in Blender, or at least kind of. The font we create won’t be usable in another application. There are other workflows to achieve that. But if we want to type out our own objects we can do that.
Create a text object and go to the text object properties panel. Find the font section and expand the transform subsection.
Here you will find a setting called “object font”. Here you can type the name of your font. I will go with “font-“.
Create a new mesh object and call it “font-a”.
Select your text object again, go to the object data properties and find the instancing section. Here, select verts and deselect display instancer.
Now enter edit mode and type “a”. Note how your object is displayed instead of the letter “A”. We can continue to create the whole alphabet.
If you keep the display instancer setting on, you will get both the letter from the font, and your object. This way we can create kind of an extension to the letters.
If the objects you create are too large, you can increase the spacing between letters. Go to the object data properties and find the paragraph section. In the spacing subsection you will find “character spacing”. Increase it to space the objects further apart.
By now you should have a solid understanding of how to use text objects in Blender. A key to mixing text and 3D is to have a good topology as we convert text to mesh. But understanding how the text object works and what different tools we have available as we move from text object to mesh object is also key.
Thanks for your time.