You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NGnius d630bb5827 Implement instruction parser (untested) 3 years ago
src Implement instruction parser (untested) 3 years ago
.gitignore Initial commit 3 years ago
Cargo.toml Implement instruction parser (untested) 3 years ago
LICENSE Initial commit 3 years ago
README.md Implement instruction parser (untested) 3 years ago

README.md

FilmScript

The best Canadian camera technology since IMAX.

Syntax

FilmScript uses a simple function syntax which you will be familiar with from most modern programming languages like C and Python. The end of an operation is denoted by a new line \n. Multiple operations can be performed simultaneously by placing them on the same line. Lines are executed sequentially starting from the top of the file until the end.

Here's a generic example of the syntax:

operation1(operand1, operand2, operand3)
operation2(operand1, operand2)
operation3a(operand1) operation3b(operand1, operand2)

Operations

FilmScript is a set of commands that can be used to describe a camera and it's movements in time. Supported operations and their operands are outlined below.

Here's an example of a functioning FilmScript file using some of the supported operations:

#version 0.1.0
look(0, 0, 0), move(0, 0, 0)
track(20, 0, 20, 5), rotate(0, -5.5, 0, 5)
rotate(0, 5.5, 0, 2)
track(-20, 5, 0, 5)

TRACK(DISTANCE_X, DISTANCE_Y, DISTANCE_Z, TIME=0)

Move the camera relative to the current position and rotation. Use a negative value to move backwards. This operation supports linear interpolation through the optional TIME operand (seconds).

MOVE(X, Y, Z)

Move the camera to an absolute position.

ROTATE(DEGREES_X, DEGREES_Y, DEGREES_Z, TIME=0)

Rotate the camera clockwise around the axes, relative to the current rotation. Use a negative value to rotate counter-clockwise. This operation supports linear interpolation through the optional TIME operand (seconds).

LOOK(DEGREES_X, DEGREES_Y, DEGREES_Z)

Rotate the camera to an absolute rotation.

MULTI(OPERATION1, OPERATION2, ...)

Perform multiple operations simultaneously. This is implicitly used whenever more than one operation appears on a single line.