BlendText 1.0 Python Script Release!

Hi All,

I wanted to drop a note in this forum for all you coders.

I have created a new script for Blender that allows you to create, animate and effect text over time.

You can find the full source code here in the BLEND file:

It is 1.0 release so I’m hoping some of you will try it out and offer feedback. Feel free to post bug reports here in this thread.


Hey, thank you for your work Atom.
I’m not using the 2.49 anymore, but I’ll take a look at the script it looks promising, Any effort to have motion graphics tools in Blender it’s very welcome!

WOW, this is great! Includes much more of a functionality about texts I can think of :smiley:

Dunno if this are bugs, but look like bugs…

  1. When I click to add a new phrase, the text “Phrase 2” appears with ALL letters overlapping at first. Then, when I select the material or any other parameter, letters are re-located at their place as per the pitch and other values of text characteristics. This happens in the very beginning when you have “BlendText” as text. Seems that 3D window (objects) are not updated when first added…

  2. Text is normally centered. When I click “L” button" I expect it to see the text going to the left of my screen while it goes to the right. This is LEFT for the text indeed but I think the setting should work as in WORD - left = LEFT of the viewer, i.e. RIGHT of the object.


@Abidos: Yeah, first generation of new text seems to be a bit jumbled. I’m not sure why and we can certainly call it a bug. But, as you discovered, after a new event is generated, it all pops into place. The text alignment is based upon the origin of the BlendText empty. So your observation is correct. You click L for left justification and it jumps to the right so the left most portion of the text is aligned with the BlendText empty. Just move the empty to the left side of the screen.

@ Atom - Take a look at proc generateCharacters(passedObjectName) from LIBRARY. More specifically @ row 1075 rg_font_spacing = registryFetch(“font_spacing”)… I think, in the beginning ALL letters are one over another cause it is expected to take some values for font_spacing from REGIRSTRY but it is apperantly empty at that moment… :eek: Im not an expert in REGISTRY, I simply havent used it so far… sooo you need to trick it to get the initial values there BEFORE the first-time showing the object or think of another solution for that. I noticed that if the object exists already (for example, after running the script once and exiting w/o any other action = ALL letters already shown overlapping), it redistributes them as per the initial values! :spin:

There’s another issue with font size, for example… And may be again with font spacing??? If you start the script and move the font spacing slider a bit - say - to the right several times, at the first move font size/spacing and everything else will be corrected (see above paragraph) and at each next the letters will grow and the space between then too (proportionally). Now, after 3-4 step to right, try 3-4 steps to the left… Font size goes down but you will notice that at the first step to the left size gets smaller but NOT the spacing… Now after 3-4 steps to the left, try some steps to right again! You will surely notice that size goes up and the spacing too, BUT at the first step after the change decreasing to increasing the spacing remains the same leaving bigger letters closer… I think it is again a problem with updating the values for font spacing, may be due to some improper interaction with the REGISTRY. It looks like font spacing (as in the beginning) updates 1 step behind the schedule… I am no sure though… What I am sure is that generateCharacters says (in the console) that

    ->[bt_base_0001_B] has a width of [0.0].
    ->Align Center produces an initial LocX:0.0.
    ->WARNING: No material specified.
    ->[bt_base_0002_l] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0003_e] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0004_n] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0005_d] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0006_T] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0007_e] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0008_x] has a width of [0.0].
    ->WARNING: No material specified.
    ->[bt_base_0009_t] has a width of [0.0].

In the beginning it may be related to non-existing objscts (each letter B l e n d T e x t) but later on - why font spacing updates 1 step after the other updates? Im not sure…

I have released a new version of the BlendText script. New features and bug fixes along with a new tutorial that shows how to use all the features.

You can get the script and or view the tutorial here:

It is inside the BLEND file.