26
$\begingroup$

In the movie clip editor, I've been able to easily add movies and sound as well as adding special effects using keyframes. That's all great, but I'd like to add some text hovering over the heads of the characters in the film. Up until now, I've been making a .png image containing the text I want and then importing that for manipulation. It works, but it's a painfully slow process, especially if I want to edit the text later.

Is there an easier way to add text overlays to a movie for manipulation?

$\endgroup$
2
  • $\begingroup$ I am working on this also. So far, I've written a GIMP plugin to generate the frames out of images. github.com/jacobq/gimp-create-subtitles Nothing fancy, but better than by hand. I'd like to learn how to script Blender so that it inserts these as image strips from a start frame to a stop frame and sets and opacity animation curve to fade them each in and out. This way the text & cue frames define the behavior, but Blender renders it. If I can't figure this out in time I may just allow the GIMP script to generate every single frame then create a single image sequence in Blender... :S $\endgroup$
    – jacobq
    Commented Feb 11, 2016 at 1:42
  • $\begingroup$ Related: blender.stackexchange.com/q/29042/2843 $\endgroup$
    – Samoth
    Commented Apr 11, 2016 at 9:05

5 Answers 5

17
$\begingroup$

As of 2.76, we now have a text tool in the VSE. See 3pointedit's answer.

Pre 2.76 Answer

(Also for more advanced control over the text)

First, make sure you're in the Blender Internal Renderer. enter image description here

Then add a text object, and change the font settings to your liking.

enter image description here

Then add a new material, set the color to your liking, and set it to shadeless (this can be changed, but a lot of the time, this is basically what is wanted).

enter image description here

In the Properties panel (N), switch the shading from Multitexture, to GLSL.

enter image description here

Then make sure that your camera is aligned properly, and that in the shading settings, alpha is set to transparent.

enter image description here

In the VSE, add a scene clip, and choose your scene.

enter image description here

Then change the Blend mode to Alpha Over.

Then in the N Panel of the viewer, set the render type to textured.

enter image description here

In the viewer, you'll notice that the text isn't aliased properly, but when the text is rendered, it should render correctly, but if it doesn't, rendering at double the resolution and then down grading should fix the issue.

$\endgroup$
4
  • $\begingroup$ How can I do this with multiple fonts? $\endgroup$ Commented Feb 11, 2017 at 15:38
  • $\begingroup$ You would just use multiple text objects with different fonts. Only the material for the new text object would change. The rest of the stuff I talked about is global and shouldn't effect it. $\endgroup$ Commented Feb 14, 2017 at 0:04
  • $\begingroup$ How would you do this when you need multiple different titles? would you keyframe the visibility on different objects or make an entirely new scene? $\endgroup$ Commented Jan 15, 2019 at 19:14
  • $\begingroup$ @DeveloperACE I haven't touched this in forever, but I would probably use keyframes as long as they all happened at about the same time. I would separate opening titles and ending credits to separate scenes. $\endgroup$ Commented Jan 21, 2019 at 3:24
16
$\begingroup$

In recent versions of Blender (2.76) there is a caption or text tool. You add it as an effect strip over your footage.

enter image description here

There are some downsides to this though. For example, there is no control over the font. This makes it more suited to subtitles, instead of a title at the beginning of a video.

$\endgroup$
2
4
$\begingroup$

To add text to a movie, you can use SVG to render the text, then add it as an overlay. To do that, first put the text into an SVG, e.g.,

<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080">
  <text x="960" y="300" text-anchor="middle" font-family="Impact" font-size="120"
    fill="white" stroke="black" stroke-width="3">Title</text>
</svg>

then render it. (You can view it in your web browser as you write it to make sure it looks right.) You can render the SVG with ImageMagick, e.g.

convert text.svg text.png

Then, add it to the movie as an Image and set the effect to Alpha Over so the rest of the movie shows where there isn't text. (Conveniently, SVG automatically has a transparent background, perfect for overlays.)

This has the advantage of being fast to render, unlike using a 3D model, and more flexible than the built-in text effect, which only has 1 fixed-width font and doesn't currently allow having a border to make the text legible despite the background.

$\endgroup$
1
$\begingroup$

Times change and Blender has a new feature. Thus the edit. Blender 2.76 has a simple text feature in the VSE.

On the date of this edit, I find the feature lacks expressiveness for frequent use. Its rather like cell phone texting. I would still use the Blender 3D View to create text.

Lastly other free video editors have more expression for text overlays. In the Windows OS at one point, the free movie editor Windows Movie Maker had moderately expressive titling. This might be valuable for some limited number of people. I have not used that software years. Lowly recommended.

Blender is for unlimited expression, not ease of use. Well the techniques below are probably easier than hand painting them in a primitive painting program.

I have not searched extensively or recently for scripts or add ons for this task. I have written scripts to process text sequences in blender which I might later discuss here. Consider searching for scripts and add ons. More adventurously you might write one.

Below the techniques are assuming that

  • 3D rendering was time intensive and thus you might want keep repetitious renders to a minimum
  • Desired text might be subject to many edits
  • The text is meant to overlay the primary video only. There is no 3D interaction to the primary video. Its desirable to render the text separately and quickly, knowing further placement can be achieved in the Blender VSE.

Techniques

  • Technique 1. Write your text paragraphs or phrases in a single blender text object and animate vertical movement to only show one paragraph at a time. Render png sequence.

  • Technique 2. Create many different text objects and animate their visibility with the render icon or layer switching. Render PNG sequence.

  • Technique 3. Locate a script to render text sequences existing in a typed text file or similar for a range of frames with post processing. This script would register an on frame change event. Result is a sequence of PNG files.

By using Blender 3D view you have ultimate control over style such as glowing and lattice warping and post processing. Whether you want it or not.

If your timeline is stable and your text is changing you can change the data files for the VSE strip with no position placement necessary.

$\endgroup$
2
  • $\begingroup$ I have to say though, the Blender VSE has multiple layers, a feacher not in Windows Movie Maker. Although the Blender VSE is often a real pain to edit with, it gives the editor ludicrous amounts of control over the footage. $\endgroup$ Commented Jul 16, 2016 at 4:54
  • $\begingroup$ @AnsonSavage. I did not understand your comment. Post edited. $\endgroup$ Commented Jul 16, 2016 at 17:54
0
$\begingroup$

If you don't mind paying for an AddOn and you want quick and awesome 3D Text effects, you might consider the "IK Text Effects" AddOn. https://cgcookiemarkets.com/all-products/ik-text-effects/?ref=2

IK-Text Effects

$\endgroup$
2
  • $\begingroup$ This no longer exists. $\endgroup$ Commented Jan 18, 2019 at 12:17
  • $\begingroup$ Hmm, that's sad... for more information one might ask Issanou directly or use Text FX instead... $\endgroup$
    – Samoth
    Commented Jan 31, 2019 at 11:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .