I’m generally opposed to functions that overload on parameters. But seeing as how Blender functions do it all the time, I figured I’d go nuts for this updated text animation function.
So What’s New?
The first time around, I added if clauses to account for the different sizes of the letters because I am 36 times an idiot (yes, I’m six hours into a Poirot binge). Blender has object dimensions that you can call as variables. That’ll tell you how far over you need to move each character to make the letters readable. That’s this guy by the way:
bpy.context.object.dimensions.x
Adding that shortened my first version considerably.
Onto the parameters! I want to be able to set the start location, end location, start frame, end frame of the first object, frame increment, start rotation, and end rotation. Since locations and rotations all have three values for the x, y, and z axis, this is ever so slightly busy. But cool because you can customize the hell out of it.
Here’s the breakdown.
Change up the parameters to get different effects. Rotation, sliding about, or some combination of the two.
The Code
import bpy #tx = start x, ty = start y, tz=start z #ex = offset x, ey = offset y, ez = offset z #sf = start frame of all letters #ef = first letter stop frame #inc = frame increment def movetext(string, tx, ty, tz, ex, ey, ez, sf, ef, inc, sxr, syr, szr, exr, eyr, ezr): sl = list(string) x=0 while x < len(sl): bpy.ops.object.text_add(location=(tx,ty,tz), rotation=(sxr,syr,szr)) ob=bpy.context.object ob.data.body = sl[x] bpy.context.scene.update() ob.keyframe_insert(data_path="location",frame=sf) ob.keyframe_insert(data_path="rotation_euler", frame=sf) ob.location.x = ex + tx ob.location.y = ey + ty ob.location.z = ez + tz ob.rotation_euler=[exr, eyr, ezr] ob.keyframe_insert(data_path="location",frame=ef) ob.keyframe_insert(data_path="rotation_euler", frame=ef) ef += inc x+=1 tx = tx + bpy.context.object.dimensions.x movetext("Eat-Sleep-Rave-Repeat", 1, 10, 0, 2, -10, 0, 0, 2, 8, 0, 0, 0, 1.57, 0, 0)
weird question
but to make this script execute in blender?
meaning where?
LikeLiked by 1 person
Not weird at all! That tripped me up too–Blender has two places you can execute scripts. One is the Python Console (if you want to enter in scripts line by line), and the other is the Text Editor (that’s my preference for larger blocks of Python).
There are screenshots in this old post of how to get to the Text Editor:
https://gifguide2code.wordpress.com/2016/10/01/python-how-to-cipher-in-blender/
Or you can just hit Shift + F11.
LikeLiked by 1 person
thanks a lot
LikeLike
buy windows 7 download for mac best price windows 7 professional Maxon Cinema 4D Studio R17 adobe premiere elements 11 tutorial purchase photoshop cs6 mac
LikeLike
Again, another helpful tutorial. Thx!
LikeLiked by 1 person