I have been thinking of a more elegant way to do this as with the build modifier the faces just suddenly appear. You can get around this by drastically increasing the curve resolution but I do not think it is ideal.
Another way to do it is with a mix shader node mixing the shader of your choice with a transparent shader.
It is more complicated but gives a smoother transition.
This greyed out bit is not really necessary see the edit at the end
First you have to convert your curve to mesh and unwrap it using the follow active quads option.
If your curve is closed (it looks like it is)
1 mark a seam in the position you want to start the effect from.
2 select a face next to the seam you want to use to start the animation then select all other faces, so that the first face is the active one.
3 Press U to unwrap and select “reset”
4 Press U again and select the “follow active quads” option.
5 Scale the resulting UV’s to fit the Uv space (the UV Magic addon that comes with blender has a nice “pack UV extension – pack UV” that with do this for you). This step is important so that the start/end frame numbers will be correct in the shader.
Then you can add a texture and mix the transparent texture with the texture you want for the curve. I used a custom node group instead of the colour ramp for the mask, as it has inputs for the position slots.
You can add a value node and type #frame in the value box, this will give you a driver that outputs the frame number. (note the value input that has the driver is pink)
The rest of the setup is like this.
I added the colour ramp to the emission shader just for fun
Depending on the orientation of your UV’s you may have to swap the separate xyz from y to x for it to work.
I know this is a lot more complicated but the result is a more pleasing and easy to control.
Here is an example file, I made a unique copy of the material for the circle and the 9 so that I could control the effect separately. You can append my material if you do not want to copy the nodes.
Here is the file:
BuildCurve3.blend (129.2 KB)
EDIT: Silly me, it is not even necessary to convert the curve to mesh or unwrap it, the material setup I posted will work with the default UV’s that curves have assigned to them!
Edit 2
I have updated the file to include a curve that does the same animation with no unwrapping (or curve to mesh) needed.
There are other ways to do all this (not to mention Geonodes).