Cinecred

3. Credits Spreadsheet

The Credits spreadsheet in the project folder houses your credits alongside some important metadata. It may either be a local xlsx/xls/ods/csv file or an url/webloc shortcut that points to a Google Sheet.

To change the format, simply switch out the Credits file. For example, to change from a local to a cloud project, just upload your local Credits.xlsx/xls/ods/csv file to Google Sheets, put a shortcut named Credits.url/webloc to the Google Sheet into the project folder, and delete the old Credits file.

Towards the top of the spreadsheet, you’ll find the table header, which defines the following columns:

@Head @Body @Tail @Vertical Gap @Content Style @Break Match @Spine Position @Page Style @Page Runtime
 

This article explains the meaning of each column, as well as all other aspects of the spreadsheet. For conciseness, the example tables omit columns that are irrelevant.

Head-Body-Tail Blocks

A person’s name often times doesn’t stand alone. Most likely, it’s accompanied by a role name, job title, or some other prefix or suffix. Sometimes, multiple people share the same job title (for example in a list of extras).

Cinecred models all this via so-called head-body-tail blocks. Such a block consists of an optional head text, an arbitrary number of body texts, and an optional tail text. Here are some example blocks as they would appear in the spreadsheet.

@Head @Body @Tail
Alex
@Head @Body @Tail
Gaffer Gustav
@Head @Body @Tail
Drivers Dominic
Detlef
Dora
@Head @Body @Tail
Loremium Ipsumium Written by Cicero
Dedicated to Brutus
Pilfered by Some 60s Typesetter
@Head @Body @Tail
A Dirc Film

Tags

Sometimes, it’d be nice to insert a blank body cell. Simply leaving an empty cell would however split the block in two. Instead, use the “{{Blank}}” tag:

@Head @Body @Tail
Ada Amazing
{{Blank}}
Ben Baffling

A render of the Blank tag example

As you will learn later on, the look of text is governed by letter styles. To change the letter style of the head, body, or tail mid-text, use the “{{Style}}” tag. It either applies a specific letter style (“{{Style X}}”), or resets to the initial style (“{{Style}}”):

@Head @Body @Tail
Copyright © 2023 {{Style Name}}Callie Cash{{Style}} and {{Style Name}}Molly Money

A render of the Style tag example

Pictures

Instead of text, a body cell can also contain a picture from the project folder or any subfolder. For example, to insert Cinecred Large.svg, write:

@Head @Body @Tail
{{Pic Cinecred Large.svg}}

A render of the Pic tag example

Be Cautious About Formats

For logos, always try to use files with the extensions svg/pdf/ai/eps/ps. These are vector graphics that can be scaled arbitrarily without any quality loss. If you don’t have a vector version of a logo at hand, ask for it. Only fall back to png/gif files if absolutely necessary, as these are raster graphics, which may look bad upon rescaling.

Do absolutely never use jpg/jpeg files for logos. While JPEG compression appears visually lossless for organic photos, it badly messes up high contrast edges, of which there are plenty in typical logos. The result will look very amateurish:

Cinecred Logo encoded as PNG
PNG
Cinecred Logo encoded as JPEG
JPEG

Resize and Crop

By default, pictures are shown in their original size. To resize them, append either “[width]x” or “x[height]”. For example, to make the picture 200 pixels wide, write:

@Head @Body @Tail
{{Pic Cinecred Large.svg 200x}}

You can crop the empty space around vector pictures (svg/pdf/ai/eps/ps) by appending “Crop”. For example:

@Head @Body @Tail
{{Pic Cinecred Large.svg Crop}}

Cropping can of course be combined with resizing.

A render demonstrating the effect of the Crop keyword

Videos

Analogously to pictures, a body cell can also contain a video from the project folder or any subfolder. For example, to insert Blooper.mov, write:

@Head @Body @Tail
{{Video Blooper.mov}}

In the credits, the video will start playing as soon as it comes into view:

A moving render of the Video tag example

The still preview shows the video’s first frame:

A still render of the Video tag example

Image sequences are also supported. Suppose there’s the following sequence in the project folder:

To include it, refer to the name of the sequence folder:

@Head @Body @Tail
{{Video Vanity Card}}

Resize

By default, videos are shown in their original size. To resize them, append either “[width]x” or “x[height]”. For example, to make the video 200 pixels wide, write:

@Head @Body @Tail
{{Video Blooper.mov 200x}}

Temporal Margin and Fade

By default, the video starts playing as soon as it comes into view and stops once it goes out of view:

A render demonstrating the standard playback behavior

To start playback a bit later and end it a bit earlier, append “Margin”, followed by a timecode specifying how much time should remain free at the start and end. For example, to start one second later and end one second earlier, write:

@Head @Body @Tail
{{Video Blooper.mov Margin 00:00:01:00}}

A render demonstrating the effect of the Margin keyword

To control the start and end margins separately, specify two timecodes:

@Head @Body @Tail
{{Video Blooper.mov Margin 00:00:01:00 00:00:00:00}}

A render demonstrating the effect of the Margin keyword with two timecodes

To have the video smoothly fade in and out, append “Fade”, followed by the fading duration(s) in the form of again one or two timecodes:

@Head @Body @Tail
{{Video Blooper.mov Margin 00:00:01:00 Fade 00:00:00:12}}

A render demonstrating the effect of the Fade keyword

Trim

By default, the video plays from its beginning until it’s no longer visible. You can trim the range that is played by appending “In” and/or “Out”, followed by a timecode (for video files) or frame number (for image sequences). The “Out” point is exclusive.

For example, to trim the first 2 seconds and 10 frames off a video file, and to only play frames 0000042 up to and including 0000199 of an image sequence, write:

@Head @Body @Tail
{{Video Blooper.mov In 00:00:02:10}}
{{Video Vanity Card In 42 Out 200}}

A render demonstrating the effect of the In and Out keywords

Of course, all the video options can be freely combined:

@Head @Body @Tail
{{Video Blooper.mov x200 Margin 00:00:03:12 Fade 00:00:01:00 In 00:04:20:00}}

Audio

Cinecred only processes video streams and discards any accompanying audio. If you want to retain the sound, you need to bring it back manually in finishing. To do this, export the Timeline of Embedded Videos as a CSV or EDL from the delivery window, and use it to precisely align the audio of each embedded video clip.

Color Management

The colors of videos are correctly converted to the delivered color space. If a video doesn’t have color space metadata, Rec. 709 is assumed.

Be aware however that Cinecred is not a proper color management system and will, for example, just clip colors to the delivered gamut if they surpass it. If you’re noticing artifacts like this, be sure to use suitable software to conform videos to the target color space ahead of time.

Vertical Gaps

You declare vertical gaps between blocks directly in the spreadsheet. An empty row automatically constitutes a vertical gap of 1 unit. Alternatively, you can manually enter a vertical gap in between two blocks, which overrides the automatic gaps:

@Head @Body @Tail @Vertical Gap
Crew
1.5
Sarah Supervisor

A vertical gap of 1 unit corresponds to some amount of pixels. You can configure this amount in the project settings. We advise you to set it to your main font height, but other choices are also valid if they aid your design.

A render of the vertical gap example

Sometimes it might be necessary to specify vertical gaps directly in pixels. This can be done by appending “px”:

@Head @Body @Tail @Vertical Gap
Crew
10px
Sarah Supervisor

Content Styles

Cinecred needs to know how you want each block to be rendered. For example, while a job-person-block usually has the head (job) to the left of the body (person), a song has the head (song title) above the body (song details). And if there are multiple body cells, should they be put in a grid or flown dynamically? Should the body be interpreted as paragraphs? Which fonts should be used? And so on…

All these aspects and lots more are defined by content styles, which you configure in the styling window. You then put the name of such a content style in the spreadsheet to assign it to all following blocks:

@Head @Body @Tail @Content Style
Crew Heading
 
1st Assistant Director Sarah Supervisor Gutter
2nd Assistant Director Sandro Scheduler

A render of the content styles example

Spine Position

The spine is the vertical cyan line in the preview. Cinecred strings together blocks along it, one below the other. The spine is centered by default, but you can move it using the @Spine Position spreadsheet column.

On scroll pages, you move the spine left or right by specifying a horizontal pixel offset from the screen center:

@Head @Body @Tail @Spine Position
I’m a lefty! -150
Me too!
 
I’m a righty! 150
 
I’m dead center! 0

A render of the scroll page spine position example

On card pages, you can move the spine to any position by specifying a horizontal and optionally vertical pixel offset from the screen center. This position will be marked as a small cyan diamond. By default, the spine will be vertically centered around the position, but you can append “Below” or “Above” to put the spine below or above it:

@Head @Body @Tail @Spine Position
I’m a lefty! -150
 
I’m a top-righty! 150 -50
 
I’m below y’all! 0 50 Below
Me too!

A render of the card spine position example

On both scroll and card pages, you can have the spine run parallel to the previous one by specifying a horizontal offset from the center and appending “Parallel”:

@Head @Body @Tail @Spine Position
I’m a lefty! -150
Me too!
 
I’m a righty! 150 Parallel

A render of the parallel spine position example

In cases where a simple “Parallel” is too limited, you can also arbitrarily arrange the spine in relation to a previous one. To do this, write “Hook”, followed by how many spines we have to walk back to reach the spine that the new one will be attached to. Then specify which point in the other spine (“Top”, “Middle”, or “Bottom”) should be connected to which point in the new spine. For example, write “Bottom-Top” to glue the end of the other spine to the start of the new one. Optionally, append a horizontal and vertical pixel distance between the connected points:

@Head @Body @Tail @Spine Position
I’m the root! -50
Hi,
me too!
 
I’m right beneath! Hook 1 Bottom-Top
 
I’m a bit offset! Hook 2 Middle-Top 250
 
I’m with my friend! Hook 1 Bottom-Top 0 200

A render of the hook spine position example

Notice that with both “Parallel” and “Hook”, the whole compound is positioned as one big unit, not just the root spine. For example, when you look at the cyan diamond in the image above, you see that the whole compound is vertically centered around the position (-50, 0).

Page Styles

Cinecred supports both title cards and rolling credits. The umbrella term for both is page. Your credits are simply composed of a sequence of pages. The behavior of each page (that is, whether it’s a card or a scroll, and details like the fade duration and scrolling speed) is defined by a page style, which you configure in the styling window. The default template ships with two aptly named page styles: “Card” and “Scroll”.

In the spreadsheet, you indicate the start of a new page by putting the name of a page style there:

@Head @Body @Tail @Page Style
A Dirc Director Film Card
 
Executive Producers Callie Cash Card
Molly Money
 
Cast Scroll
(in order of appearance)

A render of the page styles example

Break Match (Advanced)

To understand this column, you need to be familiar with the family of match settings found in content styles; namely Match Column Widths and Match Row Height for grid layouts, Match Cell Width/Height for flow layouts, and finally Match Head/Tail Width for heads and tails. As you know, these settings harmonize blocks all throughout the credits in various ways.

Now, what if you want the harmonization to not reach beyond a certain point? Say you’ve got two sections of gutter blocks on your page. While you’d like all head and body cells within either section to have the same width, this harmonization should not happen between the two sections. Well, simply put a space-separated list of “Head”, “Body”, or “Tail” into the @Break Match column:

@Head @Body @Tail @Break Match
Director of Photography Peter Panner
 
1st AC Paul Puller
2nd AC Charly Clapper
Head Body
Gaffer Gustav Gluehbirne
Key Grip Detlef “Dolly” Driver
Best Boy Francesco Foreman

A render of the break match example

Page Runtime (Advanced)

You might already be familiar with the Runtime Fine Adjustment project setting, which shrinks or grows vertical gaps to slightly tune the runtime. While that setting affects the entire credit sequence, it’s also possible to tune only a single page directly in the spreadsheet. This might be interesting when you’ve got more than one scroll page:

@Head @Body @Tail @Page Style @Page Runtime
A Dirc Director Film Card
 
Tom Johnny McRonny Scroll 00:01:23:45
John Ronny von Tommy
 
Gaffer Gustav Gluehbirne Scroll
Key Grip Detlef “Dolly” Driver

You may also jointly tune any group of pages. To do this, specify the runtime only for the group’s first page, but prepend a group name that you then reference from the group’s other pages. Notice that if you include card pages in the group, their runtime will count towards the group’s runtime, but they themselves are of course not modified.

@Head @Body @Tail @Page Style @Page Runtime
A Dirc Director Film Card Blub 00:02:42:24
 
Tom Johnny McRonny Scroll
John Ronny von Tommy
 
Gaffer Gustav Gluehbirne Scroll Blub
Key Grip Detlef “Dolly” Driver