I add this post to get feedback about a development that I’m doing as a proof of concept in my PC and if this tool can fit inside Blender or not. The development was done in C/C++ and python.
Currently, the grease pencil team is working to create a good workflow for storyboarding using grease pencil and the video sequencer (Daniel was doing demos of these tools in Annency). During this development we have seen that sometimes is necessary to share the storyboard in a portable format and maybe print the whole Storyboad. This tool is a common feature of many storyboarding programs.
In previous Blender versions we added the option to export grease pencil drawing to Portable Document Format (PDF), and to do that we integrated libharu
library in Blender, so we have all required libraries already for any PDF exporting.
With all the above points, I was investigating the possibility of creating Contact Sheets in PDF format for Storyboards, but this can be used for many other things in Blender and not only Storyboards.
The creation of the PDF requires a new operator that handles the internal libharu handling. This a video example of the current operator I have created.
The video has been compacted to be able to upload it with the 10 MB limitation, so it is cut off in some parts of the process, but you can see the basic idea.
Note: All images and videos of this post are base on preliminar designs and could be changed in the future.
Creaye a contact using the operator is valid, but this is not the main use of the operator. The main use is when is handled by an add-on.
The basic usage can be done with these python lines:
# Example command with extra info
bpy.ops.wm.contact_sheet_pdf(filepath="C:/Bluecat/contact_sheet.pdf",
files=[
{"name": "C:/Users/Antonio/images/0001.png|0001|00:00:00:00|Camera 2"}],
logo_image="C:/Users/Antonio/logo_bluecat.png",
title="Bluecat Studio",
columns=3
rows=2)
To manage more complex examples, we can use an script like this.
import bpy
images = {"C:/Users/Antonio/03_Scene/03_Scene.0001.png",
"C:/Users/Antonio/03_Scene/03_Scene.0031.png",
"C:/Users/Antonio/03_Scene/03_Scene.0036.png",
"C:/Users/Antonio/03_Scene/03_Scene.0044.png",
"C:/Users/Antonio/03_Scene/03_Scene.0054.png",
"C:/Users/Antonio/03_Scene.0063.png",
"C:/Users/Antonio/03_Scene.0073.png"
}
file = []
for i in images:
frame = {"name": i}
file.append(frame)
bpy.ops.wm.contact_sheet_pdf(
filepath="C:/Users/Antonio/mycontact.pdf", files=file)
I have already created an add-on that it can be used to create a contact sheet base on a Storyboard in the video sequencer.
For example, for this VSE scene:
The following PDF documents can be created.
Or in a more compact layout.
For each frame, a maximum of 5 lines of text can be defined using a pipe (|) separator. Also a custom logo can be included to customize the document for a production.
To see how the pipe command works, see example python command above.
If you want to look at the PDFs, here the links:
My plan is to develop add-ons to create not only contact sheets based on storyboarding, but also in videos, keyframes, markers, etc. The possibilities are endless.