There is a cool and very effective technique to create the effect of text being written by hand as shown in this tutorial. It utilizes a Curve, with a Bevel Object, and finally a Build Modifier.
However, there is one considerable limitation to this technique (as far as I can tell) and that is that the text is all the exact same width. But I have a cursive font that I would like to appear to be handwritten, but it needs to appear identical to the font itself. And as you can see, most handwriting and calligraphy has a great variety of width in the strokes.
So my question is: Is there a good technique to make a cursive font appear to be handwritten? (Note that, in my particular instance, there is a lot of text, and so the process would have to be semi-automated like the Curve technique. I thought of using ShapeKeys on strip that covers it up, but that would take way, way too long.)
Use a curve as Taper Object, and the thickness of each individual stroke will follow the profile of the curve. The curvature of a newly created curve is relative to the correct axis.
Maybe this counts as “too manual”, but you can set the thickness of the bevel per curve/path point by changing the Radius value in the N-panel. This is disabled if you choose a Taper Object.
Yeah, that is cool, but it’s definitely “too manual”. You can imagine the time it would take to do that for even a couple of words…nevermind a sentence or paragraph.
But it is technically an option, so thanks for sharing.
I’m not sure what you mean by “create the typographic art”.
As far as “animate the masking”, I’m guessing that that would mean something like using ShapeKeys or some other technique to progressively mask less and less of the text, thus creating the illusion that it’s being written? I would imagine that this would take more time than shaping a Curve’s Taper. For a just few sentences to match up with some stylish calligraphy, I think it would be hours and hours of work. So, although it would work (I think), it’s just time prohibitive.
The curve goes a little faster with grow radiusroto biz and gro radius.blend (152 KB)
a 2d curve looks better with the rotobezier.
If you made a mask with something following a path it would go fast.
Ideas that pop into my head.
Do you realize you can change the Radius of all selected curve points at once? It may be a bit tedious, but just a minute of clicking should cover a lot of text.
And oh! In the selection menu, there’s even “select first” and “select last”-options, to pick out the start/end of each segment.
Yes, I am familiar with being able to fatten or thin a given Curve node. You can do this by:
-Selecting it and scaling it with Alt+S, or
-Adjusting the “Radius” in the “N” tab
It is very cool when you have a Bevel Object, to be sure!
However, this is definitely still way too time-consuming to be utilized as a regular process. My hope was to find something comparable to the initial handwriting technique linked to in the initial post. I’m very happy for the suggestions, but I’m sure most of you can understand that these aren’t things that can be done all the time, because just doing a paragraph would probably take half a day.
Sorry, I didn’t read your original post closely enough. Cloning a specific cursive font with the curve technique, yeah, I see the issues there.
If you only need one good font you could recreate the alphabet and use the object-based-font-feature of blender’s Text to generate any amount of content. Probably not what you’re looking for, but I’ll probably play around with it myself.
Ah, yes: to create new fonts wholly from single-line Curves which are given different widths via their Radius. This is a very novel idea! (Although it would likely be a HUGE endeavor, unless somebody is able to somehow use a Centerline trace of existing fonts to generate it mostly through an automated process.)
But, yeah, for the present time, the problem is still unsolved.
It would be possible if you “build” (trace) the fonts from an image using a plane and playing with the build modifier in the end? That way you can control the width and length of strokes. It’s not a “quick” solution but it could work.
I’m not entirely sure what you mean here. If this involves the Displacement Modifier, then I think it might be kind of cool, but I think that it would probably take forever to achieve, which brings us back to square one.
I was asked how I achieved the effects above on the Youtube page. It’s a WIP I planned to turn into an add-on, but unfortunately I haven’t had the time to work on it. I’ll outline the technique, but be warned that it’s still a bit fidgety. (Everything can be done in Blender, but I did some of it in Inkscape, because the curve tools there are easier to use.) You convert whatever text you have to curves and make sure the direction of the curves emulates the direction of the pen strokes. Also, I cut away the beginning and end segments of each curve (there are two in the demo.) I placed empties at the first points of each curve, and as they traverse the curves, they build a mesh, progressively placing vertices and building faces along the curves. That’s the only way I found to make sure the build modifier constructs the handwriting according to the original strokes. Finally, when that’s done, you play the animation, and the mesh will be built as seen above. Naturally, the more steps (frames) you use, the smoother the mesh will be. As you’ll see above, it’s still somewhat squarish around tight bends. I guess this could be fixed by applying the modifier that let’s you control the follow curve speed. I forgot its name. I hope to get a little time off to work som more on this.
Thanks for responding, Klutz (I was the one who requested you share your technique on YouTube).
I’m sure that that would be a SUPER popular add-on (I’d definitely use it, that’s for sure) and it sounds very complex to create, but probably easy to use. I hope that you find the time to share it.
May I suggest doing this completely differently. Have your paper sheet texture with a mask texture over it. THen use dynamic paint to unmask it. remember, you don’t have to be precise with the dynamic paint, you are just wiping off the covering that hides your text, like this:
First off, I think that animation looks great. However, as to how to achieve the effect of handwriting (with a lot of text) with something like that isn’t a technique I totally grasp. So if you could be very specific about how to do this with text, or even do a tutorial, that would be great.
Initially, I tried to use dynamic paint, but for a number of reasons, it just doesn’t work for typography/calligraphy. One of the reasons is that the path in indivdual letters often intersect (see the above videos), so unmasking or revealing the text beneath would have to be done very precisely, otherwise the unmasking “spills over” to regions that come later in the stroke and shouldn’t be revealed yet. In other words “you don’t have to be precise with the dynamic paint” isn’t correct. But there are a number of other problems with dynamic paint as well, such as the fact that you can’t get good results with a very hard brush, which is what you need here. It’s a wonderful enhancement, but not cut out for this.
Bezier rotoscoping might be a way to go, though, but that’s just a manual technique, of course, and pretty time consuming.
There is one tutorial based on 3ds max on http://www.youtube.com/watch?v=KAPGRYIwefQ It shouldnt be too difficult to get an ideaof how to recreate on blender. (just follow the tutorial chain)
Now I understand the “dynamic paint” technique suggested by Walshlg. I agree with Klutz that that just runs into difficulties with overlapping strokes in writing and other areas.
I had tried something similar: I had the quality font as an Image as Plane, and then above it I had a Curve of the centerline trace. I had a Build Modifier on the Curve so that it gradually appeared, and then in the Nodes, I set everything up so that the Curve acted as a reverse Matte: so as the Curve was being “written” with the Build Mod, it was exposing the Image as plane beneath it. In the Nodes, I utilized a Dilate Node to expand the size of the Curve (or its Matte, actually) so that it would expose the whole width of the image text beneath it.
…It was fairly elaborate…but it just didn’t quite work, on a fundamental level. When a stroke would go across another letter (let’s say the cross on a “t”, you would be able to see the junction at the first mark. And there were other little things. I gave up on it, deciding it was just fundamentally flawed.
Of course, even if it had actually worked, it would never have been practical for large bodies of text. But it failed anyway, so it’s a moot point.
Another way of looking at this problem:
Who wants to watch an entire paragraph of cursive text animate onto the screen? Sounds extremely dull to me. If you have too much text to animate manually, it’s probably too much text for the viewer as well.
I know that doesn’t help you much, but it might explain why nobody has found an easy way to automate this.
I have had to do this several times in the past for logos and such. I found the best approach is to put on the headphones with some good tunes and get to work.
For times when a client has asked for a write-on of large amounts of text I advise against it. Not because I’m lazy, but because it makes for very boring viewing. I recall once demonstrating my point by actually having my client watch as I wrote the text on paper. In the end he agreed that while it seems like a good idea, it can be very boring in practice.
(BTW, a standard way of doing this in After Effects is painting a mask over the text while recording the brush strokes)