avatar

Vertical writing in Blender


Published
Tags
blender video

Blender doesn't support vertical writing. So what should I do when I still want to use it?

2021-07-08: I've now published the method below that emulates vertical writing with newlines as an addon on Blender Market. Here's its page on my website.

Convert Text to Mesh or Curve then rotate it myself

You can do anything to the polygons and vertices after converting to a Mesh or a Curve.

This is not a solution: you have to do it for every single character, and if you're doing it for eg. lyrics, you're going to spend all your time simply to turn the text to vertical.

Type the text in something else with support for vertical writing, save as an image, then import into Blender

GIMP and Inkscape actually support real vertical writing. You can type your text there, export, then bring it into Blender.

(Krita doesn't support vertical writing 🙁)

Emulating vertical writing with newlines

This is what I did in the cover of ăƒăƒ«ăƒŽćŻ‚ćŻž.

The goal is to do this with newlines:

https://d33wubrfki0l68.cloudfront.net/d97d9f5c27c489436609baea1f117f2b1d8e5062/dcec1/vertical-writing-goal.png

You could do this yourself (the image above was done manually), but Blender's Python API is also useful here. This is what I did for the cover:

from itertools import zip_longest
import bpy

def add_newlines(_scene):
    body = bpy.data.curves["Lyrics"].body
    lines = reversed(body.split("\n"))
    columns = ["".join(x) for x in zip_longest(fillvalue=" ", *lines)]
    newbody = "\n".join(columns)
    if body.count("\n") < 3:
        bpy.data.curves["Lyrics"].body = newbody

bpy.app.handlers.frame_change_pre.clear()
bpy.app.handlers.frame_change_pre.append(add_newlines)

https://d33wubrfki0l68.cloudfront.net/4ff8807d2af4524821e060b1f23b0b3b3d8f042c/a71c9/blender-vertical-text-example.jpg

I hope to make it an addon, so that a user can do this conversion to pseudo vertical text in one click, and also convert it back in another.

Pray that Blender actually gets better at typesetting and build support for vertical writing into itself

I hope Blender becomes a tool that can do all of motion graphics, but right now I'd imagine the lack of vertical writing support is a deal breaker for many in East Asia. I don't know how this could be done either, so I can only hope somebody implements it.