CinemaMutation

Description

Psychogeographic storytelling engine originally developed for HotelCity. The software is a kiosk application with built-in authoring functionality. By default the software is in “authoring mode” which is used to create and edit projects. The software can be converted to “presentation mode” (which disables the authoring tools) by embedding the project inside the application. Projects can contain an infinite amount of media and so can become quite large - this method allows for the project to be distributed as a single file.

Keyboard Commands

General
⌘, open preferences
⇧⌘U Toggle unified/windowed display mode
⇧⌘F Toggle fullscreen
Exit fullscreen
Project
⌘NNew project
⌘OOpen existing project
⌘IImport project
⌘EExport project to desktop
Generative
⌘G Generate and start playing a new film
⌘→ Go forward to next segment (after film has started)
⌘← Go backwards to next segment (after film has started)
⌘↓ Stop playing generated film
Authoring
⇧⌘A Open authoring palette
⇧⌘L Lock/Unlock map (allows you to reposition targets)

Authoring

Projects can be described as a map which can be annotated. Annotations can contain one or more pieces of media, and links can be described between annotations. Each media is called a segment, as in a segment of a story (or film). The application is divided into a map window and a segment window, although in unified view these are the same window (segments appear overlaid on the map).

To create a new project select “Project/New” or “Project/Import” (see section on Import/Export below for more on this). Once a map has been created, you can annotate it by right-clicking with the mouse and selecting “New Annotation.” Existing Annotations can be edited by right clicking on them and selecting “Edit Annotation.”

Adding or editing an annotation will bring up the authoring palette. On this palette you can defined strong links, weak links and associate documents with a given segment. If an annotation contains more than one piece of media you can see this under “Annotation Contains” at the top of the authoring palette. To add media, drag it to the appropriate list. To delete media, highlight it and press “delete” on the keyboard.

To re-position annotations on the map, you must first unlock the map (⇧⌘L). Each time you drag an annotation, the application will re-draw the lines. You should re-lock the map (or exit the application) to save your changes.


Embedding Projects

Projects can be quite large. During development it makes sense to keep the data and the application separate, but when it is time to present the finished product it is easier to distribute a single binary containing everything but without the authoring options.

To accomplish this, CinemaMutation can be converted to “presentation mode” by embedding a project inside the application. This allows for the project to be distributed as a single file. To embed the project:

1. Close the application (if open)
2. Locate the “CinemaMutation” application itself, right click it and select “Show Package Contents”
3. Navigate to Contents/Resources/
4. Copy the project file into this folder
5. Restart the application. It will auto load the project with authoring tools disabled.

Various startup options can be specified to control the way embedded projects are loaded.

Startup Options for Embedded Projects

Inside of CinemaMutation/Contents/Resources you will find a file called “embeddedProject.conf” You can edit this file to pass startup options to the application. These options are ONLY valid if an embedded project is also provided.

Example of embeddedProject.conf

####################################
# CUSTOM SPLASH SCREEN
####################################
#customSplashScreenAt=file:///Users/andrew/Desktop/CM%20Test%20Projects/screenshot.png

####################################
# OPTIONS (yes | no)
####################################
showHistory=no
startGenerative=no
autoPrintDocuments=no
enableAuthoring=no

####################################
# WINDOW ARRANGEMENT (uncomment ONE)
####################################
# Fullscreen unified on main monitor (identical meanings)
#windowArrangement=fullscreen
#windowArrangement=fullscreen:unified

# Fullscreen, with the map on one, segment on the other
#windowArrangement=fullscreen:map,segment
windowArrangement=fullscreen:segment,map

# NOT fullscreen, NOT unified, appears on main monitor
#windowArrangement=windowed

# NOT fullscreen, unified, appears on main monitor
#windowArrangement=windowed:unified

# NOT fullscreen, windowed with the map on one, segment on the other
#windowArrangement=windowed:segment,map
#windowArrangement=windowed:map,segment

####################################
# Secret options for testing purposes
####################################
#spoofEmbedWithProjectAt=/Users/andrew/Desktop/CM%20Test%20Projects/HotelCity%20Project.cmproj

Importing/Exporting Projects

This method of project creation pre-dates the development of the built in authoring tools but is still supported.

Projects can be imported/exported into a single text file which describes the map, it's annotations and the links between them.

When importing a project, you should include the single CONF file, the map file and all associated media in the same directory.

Example of an export file

!MAP:lausanne_fullres.png
171.mp4:Point A:7037.010742,4034.097168:91.mp4,181.mp4,141.mp4,41.mp4,32.mp4,w!63.mp4,w!31.mp4
141.mp4:Point B:6762.986328,3240.499756:171.mp4,11.mp4,131.mp4,132.mp4,w!111.mp4,w!51.mp4,w!122.mp4

The first line of an export/import file is the name of the media containing the source of the map. This should be an image file and should be located in the same directory as the CONF file.

Subsequent lines each describe a piece of media and all information related to it like this:

filename : caption/name : coordinate on map (x,y) : comma delimited list of links 

Weak links are preceeded by w! So for example, here is an entry for a picture of a dog at location 10,10 strong linked to another dog and weak linked to a cat:

dog1.png:Dog #1:10,10:dog2.png,w!cat.png
cinemamutation.txt · Last modified: 2015/12/03 13:31 (external edit)