eMuse - PowerPoint PPT Presentation

About This Presentation
Title:

eMuse

Description:

Characters. Props. Settings. Each of these is typed (e.g. ... Characters and Props mentioned in the actions should be defined. Juliet: (hits Romeo with Book) ... – PowerPoint PPT presentation

Number of Views:96
Avg rating:3.0/5.0
Slides: 14
Provided by: ElenaAF7
Category:
Tags: emuse

less

Transcript and Presenter's Notes

Title: eMuse


1
eMuse
  • Rapid Screenplay Prototyping Language

Mark Ayzenshtat Elena Filatova Kristina
Holst Vlad Shchogolev
2
Motivation
  • Screenplays can succeed on paper but fail on
    stage.
  • Screenplay is the natural blueprint or source
    code for a play.
  • Writers and directors couldnt care less about
    loops, functions, scope, etc.

3
Overview
  • eMuse is 2 things
  • a language
  • screenplay-like syntax
  • allows more-or-less free-form English
  • a 2D animation framework
  • simple stick figures with superimposed images
  • extensible custom behaviors

4
Source Structure
  • Title / Author
  • Definitions
  • Characters
  • Props
  • Settings
  • Each of these is typed (e.g. Romeo
    LovesickTeenager)
  • Exposition
  • Dialogue
  • Actions

5
Syntax
  • As close to the syntax of a play written in
    natural language as possible, e.g.
  • Authors names
  • All possible formats can be accepted
  • Stephen A. Edwards, Sasha, etc
  • Action format might include any combination (all
    combinations are parsed by one rule)
  • Direct object
  • Preposition
  • Indirect object
  • Adverb
  • Francisco (appears on stage), Bernardo (takes
    sword),
  • Francisco (appears away quickly)

6
Semantics
  • eMUSE has quite simple semantics
  • No scoping
  • All variable names must be unique

Romeo ltYoung noble guygt
Romeo ltOld peasantgt
Juliet (kisses Romeo)
7
Semantics (contd)
  • eMUSE has quite simple semantics
  • Characters and Props mentioned in the actions
    should be defined

Character Romeo ltYoung noble guygt Prop
Book ltThe Dragon Bookgt
Definitions
Juliet (hits Romeo with Book)
Exposition
8
Compiler
  • Two halves
  • Lexer, Parser, Semantic Checker
  • Back end OutputGenerator
  • Just an API an interface lots of different
    implementations possible
  • Default Implementation Java source code

9
Java Output Generator
  • A Java Model API
  • Models classes, methods, modifiers, etc. as Java
    objects.
  • Not This writeSource(public class Foo )But
    This Class c new Class(Foo) c.addModifier
    (Modifier.kPublic)
  • sourceWriter.write(c)
  • Advantage generated source is readable,
    consistent

10
Java Output Generator (contd)
  • What does the generated Java source do when
    compiled and run?
  • Answer Animates the screenplay using our
    Animation Framework

11
Animator Design
  • Two basic entities derived from parse tree
  • Actions
  • Stage objects
  • Actions occur over discrete time intervals
  • Stage objects are organized in a class hierarchy

12
Animator Design (contd)
  • Affine Transformation
  • Composition of matrix multiplications define
    transformation of local to global coordinate
    system.
  • used to construct scene graph in which individual
    objects can be manipulated from any node in the
    scene graph

Global
Local
13
Actual Screenshot
Dubya shares a serene moment with Prof. Edwards.
Write a Comment
User Comments (0)
About PowerShow.com