Pre-viz/3D Storyboard

How far is Blender from doing something like this?

(If I had any time and python skills I would like to go deeper into additional tools for pre-viz’ing/storyboarding in Blender)

'nuff said


for pre-viz blender has all tools you need and it works fast and renders fast.

with python scripting you can create many expressions and character relationships.

Along the same lines… is there some kind of (for lack of a better word) wizard environment for Blender for pre-viz (like MakeHuman)? I know quite a few genius storyboard artists who I bet could do some fantastic compositions, but they definitely don’t have the technical know-how to tackle Blender as-is.

No wizard and I can’t really imagine one which wouldn’t be extremely limitative: IMO, your genius storyboarder’s better to get up to speed with technology if he/she wants to have success.


@ Leemur - this is what I’m thinking too. It really could be nice if the wizard/plugins could be that simple that non-3d people could work with it. Atm. I’m working with a cinematographer from another country and in this pre-production fase it could be great if I could be mailing him a blender file with my suggestion on blocking out a scene - and then he could improve it by changing the camera moves - ect. and in the end we could render an animatic(with a voice reading the dialog) of it and print the camera setups as a storyboard(with ground plans).

In this sense it is not only a question of illustrating instead of drawing the storyboards - but as an actual tool to work out better ways to block out a scene(decide where to place the camera at what moment of the scene).

With a realtime cameracutter it is very fast to see what works and what doesn’t. Sort of instant editing of a film before it’s even shot.

And the ability to print directly from a 3d pagage would make it a powerful in-production tool for us live-action-filmmakers.

I went over some questions at the cgtalk forum here:

But a simple connection between a realtime camera editor and a print-to-storyboard(with text descriptions would be great) - and if it would be that simple that non-computer-wiz’ could work with it - it would be really super!!

I been doing my 3d pre-viz’es in max and filmbox/motionbuider previously - but a simple Blender solution would be even better for collaboration with cinematographers who doesn’t have these softwares.

All for now,

Here’s an example of simple previz for live action:

It’s done in max. No groundplanshots in this one. But the characters has the first letter of their names written in their heads(for closeups) and on the ‘feets’(for groundplanshots).

I read the script into a wav to which I animated the whole scene - and then rendered the variations of the different camerasetups - shot by shot. And used Storyboard Tools to set it up with.

The cool thing would be if the export to html/printing could be done from with in blender in collaboration with a live camera cutter(so the in and out of the edits could be used for rendering specific images to the storyboard).

Camera grip tools - looks very interesting:

Here’s the interface for the max version of a ‘cameditor-export to html-storyboards’ I’m working on:

It would be great with a Blender version of something which could do this.

The idea of additional tools for pre-viz/storyboarding is certainly interesting. I’ve been looking at the python side of it, and I don’t see a reason why it can’t be done.
I’ll have a try at creating a python tool that will create something similar to what you posted on May 31, but then with an optional groundfloorplan and sideview. However since I’m just starting with python, and also busy with a lot of other things this might take some time.

Sounds great Crouch!!

Here’s a link to a html export from max - shot-by-shot(=frist frame of a new cut back to a camera usede before (ex. 7A 7B)) and not cut-by-cut(in the order of the editied animatic).

Storyboard demo

(there is a page break for printing in the end of the html file)

Maybe this html-file can be used as an inspiration - though I haven’t added the groundplan rendering option yet.

Let me know if I can help :smiley:


I’ve been thinking about this for a while and was planning on using Blender to storyboard my next short movie. What timing!

Unfortunatly, I don’t know Python. Aside from some simple organizing of different views and assembling them into a familiar storyboard format, I think a nice interface would help with simple posing and duplicating of models.

Does anyone have time to work on this. I’d be more than happy to help orgainze the effor and do some modeling.



Previsualization Blend/Python File

Okay, I created a blend file and a little Python script that demonstrates in a very simple manner how one might go about creating previsualizations of the very basic quality you expressed an interest in.

It should probably be said in advance that Blender has been used for pre-visualization before (e.g. Spiderman 2) and can be used in any variety of ways for pre-vis purposes.

The blend file below is just a simple template, one basic example of many different methods the results you desire can be achieved in Blender.

The file contains a sample scene and two files: a Frame Description text file and the Python script (shown below).

As it is set up, you can use this to create pre-vis scenes that are individually annotated. Frame number is reported and can be rendered with current frame.

Also, script below can be customized to change to any camera view
at any frame.

Important: the script runs itself through a World script link activated
by frame changes.

Just use the internal text editor to edit frame descriptions and the script window to make any necessary changes. You can render individual frames or animations and add/model things as usual.

Once again, this is just an example :wink:

Download the file here (small file: 37k, compressed in .zip format)

Here’s a look at the script:

# Blender Pre-visualization Script Example
# by RobertT
# Last Updated:  June 14, 2005
# Created in/tested in: Blender 2.37
# About this blend file and the script:
# This script demonstrates how Python and
# Blender can be used to create very simple
# annotated pre-visualization frames completely
# within Blender.  As this is JUST AN EXAMPLE,
# you will likely need to make adjustments
# to this script in order for it to meet
# your precise needs.
# This Python script is executed upon frame
# change through a World script link.
# Cursor left/right/up/down change frames.
# Using Blender's internal text editor,
# go to the frameNotes.txt file to edit/add
# a frame description.  Each numbered line
# in the text file corresponds to the same
# numbered frame in the current .blend file
# so keep each frame description on one line.
# When frame changes, information in 3D view
# (description and frame number) is updated.
# This text render with scenes.
# You can adjust the conditionals at the
# end of this script to activate different
# cameras.  Alter this, like everything else,
# as necessary.
# Simple placeholder human figures are in
# this file, which can serve as a template
# you can alter and build upon (just remember
# to keep this file intact and save changes
# to a new filename).  For example purposes,
# characters have Text Objects above their
# heads which are parented to the characters
# so you can see "who is who" and the name
# moves with the character.  Names align to
# current camera.
# You can use the File:Append
# feature to include other Objects
# needed for your pre-visualization.
# As for the rest, all you have to do is set
# Location/Rotation Keys for objects in your
# scene at certain frames and position and
# add cameras as necessary.
# This blend file is provided as is with
# absolutely no warranties or support.
# You may freely use and adapt it however
# you wish.  Just be sure to keep the
# original source intact.

import Blender
from Blender import *

# Get Current Scene
s = Scene.getCurrent()
c = s.getRenderingContext()

# Determine Current Frame 
curFrame = c.currentFrame()

# Read in Frame Descriptions
d = Text.Get("frameNotes.txt") 
des = d.asLines()

# Write Current Frame Description to Screen
tobj = Blender.Object.Get("textDescription")
t = tobj.getData()
if curFrame<len(des):

# Set Active Camera Based on Frame Number
# Alter this section as necessary by
# changing the frame numbers and Camera
# Object name references below:

o = Object.Get("Camera")

if curFrame<100:
	o = Object.Get("Camera")
if curFrame>99 and curFrame<150:
	o = Object.Get("Camera.001")
if curFrame>149 and curFrame<200:
	o = Object.Get("Camera.002")
if curFrame>199:
	o = Object.Get("Camera.003")

# Determine Current Camera and its
# corresponding Empty (CamEmpty) Object
# that is used to align text information
curCam = s.getCurrentCamera()
#objs = Object.Get()

# Place frame/description text in front of current camera
textBackground = Object.Get("textBG")
textBackground.LocX = curCam.LocX
textBackground.LocY = curCam.LocY
textBackground.LocZ = curCam.LocZ-.4
textBackground.RotX = curCam.RotX
textBackground.RotY = curCam.RotY
textBackground.RotZ = curCam.RotZ

# This section is just an example of how,
# if you had character names above the
# figures, you could have those text objects
# track (align to) the current camera.
# Modify this section for your project
# if necessary.  Remember to save to a new
# file name if making any changes so as to
# keep this template clean for the next
# project.
characterNameA = Object.Get("Name1")
characterNameB = Object.Get("Name2")
characterNameC = Object.Get("Name3")

# Write Current Frame Number to Screen
tobj = Blender.Object.Get("currentFrame")
t = tobj.getData()
cftext = repr(curFrame)

# Update Screen

I hope that helps!

Now do with it what you will :slight_smile:


That’s really great work. Especially since I started the work by writing the html-export part.
I’ll merge the two as soon as possible (might take more than a week though, because I’m in the middle of exams).

Great stuff Robertt and nice to hear Crouch - good luck with your exams.

Now we just need some kind of realtime cameracutter UI like this:
Or maybe thare are some better ways/idears.

Well, you guys ROCK!!

we call that a sequencer editor. and we can, in a way, already change camera in this editor. Though a python script (again linked, reacting to frame change) could take care of camera switching and at the same time provide a nice UI to cut camera. If anyone know if this script already exist, let me know, if no, I guess I’ll have to write it 8) , cause it look like a so fabulous idea that so many pp asked for, and yet seem so easy to do (for me).

Robertt: didn’t know you could code. :slight_smile: I highly respect artist that can create their tools. They always have an advantage.

Hi Gabio :slight_smile: There’s a basic camera switcheroo thing in my script above at the end.

Yes I like to code too (c/c++, assembly, java, prolog, javascript, python, perl, php, css, pascal, xml/xhtml…). At Elysiun I’ve been known to post some scripts from time to time :wink: (that last one was not THE script most known from that thread, but maybe it helped get things rolling)
In the past I’ve also submitted small cvs patches/new proposed functions/features for consideration via bf-commiters (I think some got into tuhopuu - alignment?) It’s been a while since I updated my cvs and checked out tuhopuu. I do hope to get back into cvs again, probably not soon though as I’m focusing on some current and upcoming projects.


Here’s a link to one of my prev. attempts to get software to render animatics out of storyboard-stills/drawings - with transitions, zooms ect.

DVD slideshow GUI

It’ll render mpg, m2v, ac3, and even an iso for dvd-burning. It’s coded with wxbasic and uses avisynth, Quenc, Media Player Classic, dvdauthor and a lot of other commandline tools therefore the GUI word. It works only with XP.

Have fun,


I’ve finally found some time to work on the python script, and I’ve come to the point where I think it’s safe to release an alpha version. It’s by far not in the league of what I’ve seen so far in this thread of other programmes, but it’s a start at least.
Since I’m going on vacation for a month, I won’t be able to continue work on it right now, but I’ve still got a lot of things to change in the future. So expect more to come.
For more information, an example and the code (included in a blend-file), go here.

Wow Crouch that’s really cool. I’m just back from vacation myself and I’m really looking forward to try i t out!!


$ blender
Traceback (most recent call last):
  File "GUI", line 22, in ?
ImportError: No module named BSC_camera

Tested on Ubuntu (i386) in Blender 2.36, 2.37a; Python 2.3 but maybe I need to install optional libraries?