5 Minute Countdown?

I need to make a 5 minute countdown for my church.

All I can think of is some kind of node setup or a python script.

If Python script, I would make a new object type that could be animated according to a given rate, but I have no clue how to set that up in python.

EDIT: Something like this:

Any ideas?

Also I have no clue what forum this would fall under, sorry. :frowning:



In TV broadcast we occasionaly need count-ins from tape. One way is to animate a bar that shrinks down to the end from one side (labeled 5mins) to the other (0mins). This acieved with a simple wipe from graphic with bar to braphic without a bar.

Another way would be making a clock, animate the hands over time with rotation keyframes.

Or animate a series of changing text fields for each digit in a digital clock ie. 00.05.00 (hrs. mins. secs) all you have to do is animate the change of numerals 9-0 at different speeds. Then copy them across to the next slot and slow the change down.

If you are willing to do a little math, here is a setup that changes text dynamically based upon the frame number.


ras_dynamic_text_1c.blend (292 KB)

Atom thats very cool thanks for sharing.

Thanks for your work on that!

However, to put it in 00:00 form manually like that would be painful. XD

Is there a more automatic method? Perhaps some python function that dynamically change text?



In the Render buttons is a Framestamp with quite a few options. The result is a bit small but maybe you could use a node to crop and scale it. Or just render out a really small 25X100 sequence of images, and if that don’t work, map them to a plane and put your camera close enough (or use Alt-B for passout) to crop out only the numbers.


That’s good, except I need it going in reverse.

Also it would be nice to have more control over it, and not have it stuck in the lower left corner.

It really needs to be smack dab in the middle.

I think I may try something with creating a GIF or something in GIMP.

not have it stuck in the lower left corner

That’s why I sugested:

Or just render out a really small 25X100 sequence of images, and if that don’t work, map them to a plane and put your camera close enough (or use Alt-B for passout) to crop out only the numbers.

except I need it going in reverse.

You can reverse a Sequence Strip in the N Tab in the NLA Editor.


If I understand you correctly, what you were suggesting is highly manual labor intensive correct?

Um, are you saying I should actually create by hand all the images from 5:00 - 0:00?:eek:

Or am I misunderstanding something?

That just seems like a ton of manual work.

You can reverse a Sequence Strip in the N Tab in the NLA Editor.


Cool, did not know that, thanks!

Um, are you saying I should actually create by hand all the images from 5:00 - 0:00?

No, if you make a sequence of rendered images (of nothing but with Stamp running) then you will have 25 X 60 X 5 = 7500 images running the numbers. Now take those images and figure out a way to get your camera to snap only the numbers - ie; crop and scale) them using an Image Editor (Gimp?), use Nodes to Scale them bigger and re-render, map them to a plane and use your Camera settings to make them fill the screen. Another way would be to find the original Stamp plugin in the Python and Plugins forum (or the plugins repository) and either change the code (or bribe someone to do it) to increase the size and position of the number field.


I would use photoshop for this. In the time spent thinking about how to do it, I would have simply changed the number manually and save each one, 300 frames is all you are talking about, maybe 20 minutes of work. File save as, change number, File save as…easy and done.

See what I found.


I rendered this one out and just reversed the frames. you’ll need a text object called text2.

from decimal import *
from Blender import *
import Blender

def Format (x):
    if x &lt; 10:
        return str (0) + str(x)
        return str (x)
def Countdown(m,s):
    fps = 27 #frames per second
    msecs = Blender.Get("curframe")*100/fps
       secs = Blender.Get("curframe")/fps
    min = Blender.Get("curframe")/fps/60

    if msecs &gt;= 100 :
        msecs = msecs%100

    if secs&lt;=60:
        secs= secs%60
    txtobj = Object.Get("text2")
    txt = txtobj.getData()
    txt.setText(Format (min) + ":" + Format(secs) + ":" + Format(msecs))
#txtobj = Object.Get("fontled")
#txt = txtobj.getData()




countup.blend (160 KB)

@laughing cheese: What a whiner. 3D is about lots of work. There are no shortcuts.

So, I’m a whiner because I want to find a better way to do something? Because I don’t want to spend a half hour or an hour of my life tediously copy pasting HUNDREDS of numbers?

I understand 3D is a lot of work, but it doesn’t have to be useless and unproductive work like manually creating the image sequence from 5:00 to 0:00.

To suggest that I’m a whiner for not wanting to do such manual labor when there’s a chance of finding a better, more automatic method is absolutely absurd, and its really infantile to be name calling someone for asking a harmless question, who just wanted to find a better way of doing something.

When posting this thread, I knew that IF Blender could do the effect it would have to be a Python script, and I know nothing about Python, and I doubt I could learn it effectively in a week.

I’m very sorry if my matter-of-factness offended you, or if perhaps you felt I was ignoring the thread, I wasn’t, but that’s what discussion boards are for, so posters can reply on their own time.

Can we all try to be civil from this point forward?

Thanks to all who posted, there are some great ideas here.

EDIT: I think perhaps you were upset that I came across as demanding.

I suppose I was a little demanding, and I apologize that I came across like that. However there is also nothing wrong with seeking a different solution.

I will try to watch my words more in the future.

Thanks all!


I was trying a mesh solution with 0-9 printed verticaly, then keyframing the move down thru frame, and applying a step modifier in f-curve to strobe the movement.
I render and lay up this scene in the VSE, then duplicate it to the right sped up and loop it for seconds and frames etc.

But a python aproach is much neater.


Well I got it working with AviSynth!

Thanks all for your replies.

I would still like to get it working with Blender, and I know the answer is in Python.

Thanks to the both of you who posted Python scripts, some really great stuff there.


Hey everyone, I have a similar situation and I’ve downloaded the countup.blend thatAMDBCG posted but it’s complaining.

I’m using Blender 2.58a

• First it complained about indentation but I think I fixed that.
• Now its highlighting this line but not returning an error: from Blender import *

Any ideas?