VirtualCinema Authoring

Document Sample
VirtualCinema Authoring Powered By Docstoc
					                           VirtualCinema Authoring

VCAuthor is the authoring tool used to create VirtualCinema titles. VCAuthor provides a
graphical authoring interface that is tightly integrated with the VirtualCinema concepts,
terminology and methodology defined in the VirtualCinema Bible. All information for a
VirtualCinema title is stored in database files created by VCAuthor. These database files are
read by VCEngine in order to execute a VirtualCinema title.



Main VCAuthor Window
VCAuthor consists of 5 main windows that can be moved, resized, and minimized. These
windows include the Main VCAuthor Window, Asset List Window, Preview Window, Current
View Window and Interface List Window.

The Main Window describes structural information about a title. The left pane of the Main
Window contains a tree representation of the title, nodes, locations, viewpoints and views that
are in a title. This tree representation is called the Node Tree. The right pane displays
information about the currently highlighted item in the Node Tree (Figure 1).

The screen shot in Figure 1 is of The X-Files Game database. The X-Files title contains 10
nodes. In VirtualCinema, a node contains a collection of locations that a player can visit at a
particular stage in the game.

The Node3: Astadourian node contains 3 locations: Wong’s Boat, Tarakan, and Coroner’s
Office. A VirtualCinema location represents a place in the physical world that the player can
explore.

The Wong’s Boat location, contains 11 viewpoints (excluding the AI viewpoint, which will be
discussed later). A viewpoint is a place where the player can “stand” within a location.

Viewpoint 1 (Mendoza) at Wong’s Boat has 5 views. A view is what the player sees as they
spin about a viewpoint. At Viewpoint 1 (Mendoza), the player can spin about the North, East,
South or West views. There is also another view which is a close-up view of the North view.

In the Figure 1, the view, Wong’s Boat:1 (Mendoza):West, is highlighted in the left pane so the
right pane shows information about that view including the view name, view description,
characters in the view, and the asset displayed when the player is at that view. The right pane
additionally contains 3 buttons: Variables, Triggers, and Enabled. These buttons are common
to many VirtualCinema objects and will be described in detail later.
2
Figure 1 Main VCAuthor Window
Adding/Deleting Title, Nodes, Locations, Viewpoints and Views
The title, nodes, locations, viewpoints and views are added/deleted using the Add and Delete
items under the Edit Menu (Figure 2). The Edit Menu‟s Add and Delete item text changes
depending on what is currently highlighted in the node tree. For example, if the 1 (Mendoza)
viewpoint is currently highlighted, a new view can be added to 1 (Mendoza) or 1 (Mendoza)
(and all it‟s viewpoints) can be deleted. Alternatively, the Add and Delete buttons on the
toolbar menu can be used instead of the Edit Menu.




Figure 2 Node Tree editing


When a node, location or view is added, a simple dialog with name and description input fields
appears. When adding a new viewpoint, the view compass interface can be used to
automatically create default views initialized with navigation connections (Figure 3).

In Figure 3, VCAuthor will automatically setup North, East, South, and West views for the new
viewpoint. These default compass-based view names and navigation connections can be
modified later if needed. Customizing navigation connections will be discussed in more detail
under the Current View Window section.




                                               3
                                                              Figure 3 Adding a ViewPoint


                                                              Node Tree Data
                                                              All objects in the Node Tree have
                                                              the following fields:

                                                              Name: A fairly short description of
                                                              the title, node, location, viewpoint,
                                                              or view. The name entered here is
                                                              the name shown in the Node Tree.

                                                              Description: Further details and/or
       notes about the Node Tree object.

       Neo ID: For some Node Tree objects, there will be a Neo ID field. A Neo ID is a
       unique internal database identifier for the current Node Tree object. This field was
       added for use in The X-Files. The field will not be needed in future versions of
       VCAuthor and will be removed.

       Variables Button: Each Node Tree object (and many other objects in VirtualCinema) can
       have variables associated with them. Variables will be described in more detail in the
       Variables section of this document.

       Triggers Button: Triggers associated with the current Node Tree object. Triggers are
       associated with many VirtualCinema objects and will be described in more detail in the
       Triggers section of this document.

       Enabled Button: Enabled state of the current Node Tree object. Enabled properties are
       associated with many VirtualCinema objects and will be described in more detail in the
       Enabled State section of this document.

In addition to the standard Node Tree objects fields, the title, locations, viewpoints and views
contain object-specific information.


Title Specific Data

       Code Name: Code name for the title.

       Copyright Information: Title copyright data.

       Release Date: Date the title was released.

       Version: Versioning information.


                                                 4
Location Specific Data

       Disc: The disc field is no longer used and will be removed from future versions of
       VCAuthor.

       Floorplan Asset: A floorplan asset can be assigned to a view as a graphic representation
       of the location layout.


Viewpoint Specific Data

       Coordinates: Each viewpoint can be given mapping coordinates that define the
       viewpoint position in relation to other viewpoints in the location. This coordinate
       information is used for 3D sound placement.


View Specific Data

       Characters: Lists characters defined in the view. Adding characters to a view will be
       discussed in more detail in the Current View Window section of this document.

       View Assets: Letterbox assets associated with the view. Assigning assets to an asset list
       will be described in the Asset List Window section of this document.



Asset List Window
The Asset List Window contains a list of all assets used in a title (Figure 4). An asset is any
kind of media used by VirtualCinema—movie files, PICT files, text files, text resource files,
embedded text, sound files, etc.




                                                 5
Figure 4 Asset List Window


Adding/Deleting/Editing Assets
New assets can be added/deleted from the current title‟s database, by clicking the Add/Delete
buttons („+‟ symbol and „X‟ symbol respectively) on the Asset List Window toolbar. An asset
can be edited by double-clicking it from the list (or by clicking the magnifying glass toolbar
button while the asset is selected).


Asset Properties
Fields contained in the Asset frame of the Asset Information dialog are common to all assets.
The style field selection determines what fields are available in the Details frame of the Asset
Information dialog. In Figure 5, the Asset Style is file. Therefore, the Details section contains
fields specific to file style assets.




                                                6
                                                                            Figure 5 Asset
                                                                            properties for a file
                                                                            style asset


                                                                            Common Asset
                                                                            Properties

                                                                            Name: Author
                                                                            defined descriptive
                                                                            name of the asset.
                                                                            This name is
                                                                            displayed in the first
                                                                            column of the asset
                                                                            list window.

                                                                            Description: Any
                                                                            extra text describing
                                                                            the asset.

                                                                          Category: Drop
      down list of categories preset by the author under the Custom:Asset Categories menu.

      Style: File, Text, Resource or Color. When a style is selected, the Details portion of the
      Asset Properties dialog will change to show information specific to the asset style.

      Db Id: Unique database id of the asset. Will be removed in future versions of
      VCAuthor.

      Type: General type of asset. This field is automatically filled in by VCAuthor and
      cannot be edited. Asset types include Video, Audio, Animation, Text and Still.

      Format: Specific file format of asset (e.g. PICT, MOV, BMP, etc.). This field is
      automatically filled in by VCAuthor and cannot be edited.

      Used By: The Used By button is not currently implemented. In the future, it will list all
      objects to which the asset is assigned.


Detail Information for File Style Assets

      File Path: File assets contain a path to the selected file. Note that this path is a relative
      path (the root portion of the path is setup in File:Preferences). The Browse button can be
      used to select a file asset.




                                                7
      From/To: The From and To fields supply offset information for a file asset. For
      example, if the file asset is a movie file, the From and To field could be used to specify
      that the asset should only play starting at 3000ms into the movie and end at 6000ms.

      Loop: The loop flag is currently only used by view assets. If the view asset is a movie
      that should loop (for example a character loop view), the Loop box should be checked.

      First Frame Only: This flag is currently only used by view assets and should be
      checked if the view asset is a still.

      Status: An asset‟s status can either be Placeholder or Final. The selected status has no
      effect in how the asset will be used and is just information for the author.

      Cache: The Cache flag is not currently supported in a generic manner and will be
      documented later once it is.

      HotSpots: QuickTime Movie assets can have a corresponding .HOT file that defines
      where and when moving hotspots occur within the movie. If an asset has a
      corresponding .HOT file, the author should check the asset‟s HotSpots box. This flag is
      used to help performance in the engine. When this flag is set, VCEngine will look for a
      corresponding .HOT file when it loads the asset. If the flag is not set, VCEngine won‟t
      bother looking for a .HOT file. Setting up moving hotspots will be discussed under the
      Preview Window section.

      Nodes/Links: In The X-Files, the Nodes and Links checkboxes were used by the CD
      Image creation tool to copy assets to their appropriate disc images (there were 7 CDs in
      The X-Files). This interface will be changed to work with generic VirtualCinema titles.

      Disc Files: The Disc Files button is also currently specific to The X-Files and will
      change in future versions of VCAuthor.


Detail Information for Text Style Assets

      Text: When a text style is selected, the author can type the text that displays when the
      asset is loaded.

      Rectangle: The rectangle details are not currently used, but will be used in future
      versions to define the bounding rectangle for the text.

      Color: Text color details are not currently used, but will be used in future versions of
      VirtualCinema to describe the foreground and background colors for the text asset.

      Font: Font details are not currently used, but will be in future versions of
      VirtualCinema.




                                                8
Detail Information for Resource Style Assets

        Resource Type: Only text resource files are currently supported. Other resources that
        may be supported in the future include Cursor, Icon, Bitmap, and Font.

        Resource ID: ID of the resource to use. In The X-Files, all text resources were in the
        file XFilesT.dll. In future versions of VirtualCinema, resource assets will probably also
        include a resource file name.

        Status: Placeholder or Final.


Detail Information for Color Style Assets

        Color: Color to use (select from the Windows default Color dialog interface)

        Rectangle: Bounding rectangle for the color.


Asset Search
Clicking on the binocular tool button in the Asset Window will bring up a dialog for searching
the asset list (Figure 6). When a search is performed, only assets matching the search criteria
will be displayed in the asset list. To return to a complete listing of all assets in the title, click
the *.* toolbar button.




                                                   9
                                                        Figure 6 Asset search options


                                                        Search criteria currently supported
                                                        includes:

                                                        By Location: Search on assets used in a
                                                        particular node/location/viewpoint/view.

                                                        By Category: Asset categories can be
                                                        setup by the author and each asset can be
                                                        assigned to a category. By Category
                                                        brings up all assets assigned to the
                                                        selected category.

                                                        By Type: Search based on the type of
                                                        asset (e.g. video, audio, animation, text,
                                                        still).

                                                    By Format: Search by format is a more
       detailed search than By Type. Example asset formats include AIFF, ASCII, AVI,
       Binary, BMP, etc.

       By Name: Textual search on the asset Name field.

       By Selection Criteria: This search option is not currently implemented. The intention
       is to expand it to be a user-definable search option where the author can setup a search on
       any desired field.

       By Properties: Current search properties include Cached, Not Cached, Hot File, No Hot
       File. This search is performed based on the state of the Cached and HotSpots
       checkboxes.


Assigning Assets To Virtual Cinema Objects
Several objects in VirtualCinema have assets associated with them: Views, Cursors, Icons,
Conversations and Interface Items. Each object that supports assets has an asset edit box that
can be expanded to an Asset List dialog box (Figure 7) by clicking the “>>” button to the right of
the asset edit box.




                                                10
                                                         Figure 7 Standard Asset List dialog


                                                         Assets are assigned to VirtualCinema
                                                         objects by dragging them from the Asset
                                                         List Window to either the VirtualCinema
                                                         object‟s asset edit box or Asset List dialog
                                                         box. When the asset is dropped onto
                                                         either, it gets added to the list of assets that
                                                         are associated with the VirtualCinema
                                                         object.

                                                          From the Asset List dialog, assets can be
                                                          removed or reordered. At run time, only
one asset will be used at a time. The engine picks which asset to use based on the asset priority
in the list box and the enabled state of assets in the list—it will pick the first enabled asset in the
list (enabled states for VirtualCinema objects will be discussed in more detail in the Enables
States section). This allows the author to switch which asset a VirtualCinema object will use at
various points in a title.



Preview Window
The Preview Window can be used to view, play back, assign selections and setup .HOT files for
assets (Figure 8).




                                                   11
Figure 8 Asset Preview Window


Asset List Window and Preview Window Relationship
Assets can be previewed by either using the Preview Window Open toolbar button or by
dragging an asset from the Asset List Window to the Preview Window.

A new asset can be added to the Asset List Window by opening the asset in the Preview
Window, clicking the Preview Window image and dragging it to the Asset List Window. When
the asset is dropped, the Asset Properties dialog will be initiated and the new asset‟s properties
can be edited. The new asset will appear at the end of the asset list.

An existing asset‟s start and stop selection points can be edited by dragging the asset from the
Asset List Window to the Preview Window, updating the selection using the Preview Window
tools, and then holding down the Control key while dragging the asset back onto itself in the
Asset List Window.


Preview Window Toolbar
The Preview Window toolbar provides the following functionality:

       Open: Brings up the standard Open dialog for loading an asset into the Previewer.

       Play: Starts playing the asset if the asset if it is a “playable” asset like a movie.



                                                 12
       Stop: Stops the asset from playing.

       Previous Frame: Jumps to the previous frame of the asset.

       Next Frame: Jumps to the next frame of the asset.

       Start Selection: Marks the current asset position as the start selection for the asset.
       This start position will be saved off as an asset property. When an asset is loaded by
       VCEngine and a selection is setup, only the selected part of the asset will play. If the
       full asset should play when loaded by VCEngine, the start and end selection should be
       empty.

       End Selection: Marks the current asset position as the end selection. This selection will
       be saved off as an asset property.

       Previous Mark: Moves the Preview Window slider bar and sets the current asset
       position to the previous Start or End asset selection mark.

       Next Mark: Moves the Preview Window slider bar and sets the current asset position to
       the next Start or End asset selection mark.

       Video Hotspots: Clicking the Video Hotspots toolbar button will put the Preview
       Window into hotspot mode. When in this mode, hotspot rectangles can be created by
       clicking and dragging the mouse. Each hotspot rectangle has a time duration and an id.
       While the asset is playing back in the engine, actions can be taken as the player interacts
       with the hotspots. For The X-Files, specialized code was created to handle hotspots
       based on their id. In the future, a more generic method of coding hotspot actions will be
       implemented.

       Save: After hotspots have been added to the asset, the Save toolbar button will become
       active. When clicked, a .HOT file will be created with the same path and prefix name as
       the asset. When VCEngine loads the asset, it will also load the hotspot information from
       the .HOT file as long as the HotSpots checkbox is set in the Asset Property dialog.



Current View Window
The Current View Window is used for authoring navigations, explorables and character action
from within a view. It is also used for testing navigations and authoring interface layouts. The
mode of Current View Window is altered by selecting one of the mode toolbar buttons. Figure
9 shows the Current View Window in character mode with two character hotspots setup.




                                                13
Figure 9 Current View Window in character mode


Navigation Mode
When the compass crosshair toolbar button is selected, the Current View Window is in
navigation mode. Once a navigation hotspot is drawn (by clicking and dragging the mouse),
double-clicking the hotspot will bring up the hotspot‟s Navigation Properties dialog (Figure 10).

The Navigation Properties dialog contains 5 different pages of navigation properties. Each page
can be accessed by clicking on the appropriate Navigation Properties tab.

       Hot Spot: The hotspot tab contains cursor and rectangle information for the navigation
       hotspot. The author can predefine hotspots that will be used throughout the game using
       the Tools:Standard Hotspots menu. These predefined hotspots are listed in the Name
       field of the Hot Spots tab. When a predefined hotspot is selected, the Cursor and
       Rectangle fields will automatically be filled with the predefined hotspot information.
       Alternatively, the author can select Custom in the Name field and setup a cursor and
       rectangle specific to the hotspot. When possible, predefined hotspots should be used.
       Using predefined hotspots saves database space (because the same hotspot gets reused)
       and facilitates making global hotspot property changes (e.g. the author later decides to
       use a different cursor for left navigations).




                                                14
       Destination View: Navigations generally have a destination view. The destination view
       is where the player will be taken when the navigation hotspot is clicked. The destination
       view for a hotspot can be any view within the current node.

       Variables: Each navigation can have variables associated with it. Variables are
       discussed later in the Variables section.

       Triggers: Each navigation can have triggers associated with it. Triggers are discussed
       later in the Triggers section.

       Enabled: Each navigation has an enabled state. Enabled states are discussed later in
       the Enabled State section.



                                                      Figure 10 Navigation Properties dialog


                                                      Explorable Mode
                                                      When the Lightning toolbar button is
                                                      selected, the Current View Window is in
                                                      explorable mode. Explorables are often
                                                      used to show a close-up of an object in a
                                                      view, but can be used to implement other
                                                      actions such as playing a sound or setting
                                                      up a pseudo navigation. Explorables
                                                      have the same properties as navigations
                                                      except they do not have a destination
                                                      view property.


                                                      Character Mode
When the Character toolbar button is selected, the Current View Window is in character mode.
Double clicking a character hotspot brings up the Character Properties dialog, with pages for
entering character data (Figure 11).




                                              15
                                                Figure 11 Character Properties dialog


                                                The Character Properties dialog contains
                                                the following property pages:

                                                Acknowledgements: When the
                                                Acknowledgments tab is selected an
                                                asset list edit box appears in the body of
                                                the Character Properties dialog. The
                                                engine will play the first enabled asset in
                                                the list when the parent view becomes
                                                active. If there are no acknowledgment
                                                assets in the list or they are all disabled,
                                                no acknowledgement asset will play.

                                                Variables: Each character can have
                                                variables ,which are discussed in the
                                                Variables section of this document.

Triggers: Each character can have triggers, which are discussed in the Triggers section
of this document.

Enabled: Each character can have and enabled status, which is discussed in the Enabled
Status section of this document.

Character Selection: The Character Selection tab allows a character to be assigned to
the hotspot. Characters must be setup using the Custom:Characters menu first then can
be selected from within the Character Selection page.

Hot Spot: Character hotspot properties work the same as navigation hotspot properties.
See the hotspots description under Navigation Mode.

Conversation: Under the Conversation tab, character conversation items are listed.
When run from the engine, a “speech” dialog box will appear when the player clicks on a
character and that character has one or more enabled conversations. The speech dialog
will be filled with text from all conversations that have been setup under the VCAuthor
Conversation tab and are currently enabled. Figure 12 shows the Conversation tab.
Conversations can be moved up and down to change the order in which they will appear
in the engine‟s speech dialog




                                       16
                                                Figure 12 List of character
                                                conversations


                                                The conversation entries shown
                                                in Figure 12 are author-defined
                                                descriptions of the conversations
                                                (i.e. this is not necessarily the
                                                text that shows up in the
                                                character dialog box). When a
                                                new conversation is added to the
                                                list (or a previously defined
                                                conversation is edited), the
                                                Conversation dialog appears
                                                (Figure 13).


                                                        Figure 13 Conversation
                                                        dialog


                                                        In the Conversation
                                                        dialog, Text, Question,
                                                        Reply and Atom assets
                                                        are assigned. Each asset
                                                        list in the Conversation
                                                        dialog works like all
                                                        other assets in
                                                        VCAuthor. When
                                                        played back in the
                                                        engine, the engine will
                                                        only play the first
                                                        enabled asset in the list.

                                                        Dialog: The text asset
                                                        that appears in the
character speech dialog within the engine.

Question: Asset that plays when the text is clicked in the engine speech dialog
(generally a movie of the “player” asking a question).

Reply: Character‟s response to the question. If the question and reply are built
into one asset, just the Question asset should be assigned and the Reply asset
should be blank.

Atom: If the conversation is clicked from history tab in the speech dialog box,
the atom asset will be inserted between the question and the reply. A more


                                17
               complex atom system is currently authorable through user defined functions;
               however, it is integrated with The X-Files code to some degree. In the future,
               standard support for complex atoms will be available from within this dialog.

               Support History: This flag should be set if the conversation should be moved to
               the history tab once the conversation has played once. If this flag is not set, the
               conversation will remain in the talk tab unless it is disabled through a Disable
               action.


       Idea Response: The Idea Response property page works similar to the Conversation
       property page. In the engine, character idea icons appear above the letterbox in the
       upper left corner and can be dragged onto characters. When an idea icon is dropped onto
       a character, a conversation will ensue similar to conversations that are initiated from the
       character conversation dialog.

       Figure 14 shows the Idea Response property page. The Question, Reply and Atom asset
       lists work the same as they do in the Conversation dialog. The idea response
       conversation is associated with an idea icon by selecting an idea icon from the Idea
       Response drop down list. Idea icons are predefined under the Custom:Icons menu.


                                                                     Figure 14 Idea Response
                                                                     dialog


                                                                     Floorplan Mode
                                                                     When the Floorplan toolbar
                                                                     button is selected, the
                                                                     Current View Window will
                                                                     display the floorplan asset
                                                                     assigned to the current
                                                                     location.


Interface Mode
Interface mode is used to design interface layouts. Interface Mode will be described in detail
under the Interface List Window section.


Test Mode
Test mode provides a way of navigating through environment in order to test navigation links.
Test mode navigation works as it does when navigating in the engine.


                                                18
Interface List Window
The Interface List Window contains a list of all interface layouts currently defined for a title.
Interface layouts are designed to enhance VirtualCinema titles with custom graphical interfaces.
In The X-Files, interface layouts were used to implement features like a desktop computer with
various computer programs, a cellular phone, a journal, etc. In the future, features like the main
menu, preference screen and help screen will be authored using interface layouts (currently they
are implemented mostly in the engine code and are specific to The X-Files).

New interface layouts can be added and deleted using the add and delete toolbar buttons.
Double clicking an interface layout will allow the layout to be edited. The interface layout
properties currently include a name, a database id and a disc location. Of these three properties,
only the name field will be used in the future and VirtualCinema will expand interface layouts to
support triggers, variables and enable status data.

Each interface layout contains an unlimited number interface items. An interface layout and its
items can be edited by selecting the layout then clicking the Interfaces toolbar button in the
Current View Window. Figure 16 shows the Current View Window in Interface mode with the
cell phone interface layout from The X-Files loaded.

When in Interface mode, the Current View Window contains 2 extra tool bar buttons and status
information at the bottom of the window.

       All Z-Orders (Images): When this button is pressed, all graphics for the current interface
       layout will be displayed. When this button is not selected, only graphics at the current
       Z-order will be displayed.

       All Z-Orders (Hot Spots): When this button is pressed, the bounding hotspot rectangle
       for all interface items in the current interface layout will be shown. When this button is
       not selected, only hotspot rectangles for the current Z-order will be shown.

       Z-Order: Spin button for selecting the current Z-order. New interface items will be
       added at the Z-order level specified here.




                                                19
Figure 16 Cell phone interface layout from The X-Files


Interface items are drawn in the Current View Window by clicking and dragging the mouse.
Interface items can also be created by dragging an asset onto the Current View Window while an
interface layout is selected and the Current View Window is in Interface mode. Double clicking
the interface item will bring up a dialog for editing the interface item‟s properties. Interface
item properties include:

       Image: An asset list. The first enabled asset will be displayed when the interface item
       is activated.

       Db Id: Will be removed in future versions of VCAuthor.

       Style: Not used and will be removed.


                                               20
       Z-order: Each item has a Z-order so interface items can be layered on top of each other.
       Interface items at Z-order 0 are closest to the player and interface items at z-order 255 are
       furthest away.

       Transparent: If the transparent flag is set, the asset assigned to the interface item will be
       displayed transparently (true blue being the transparent color) or translucently (if the
       asset has an alpha channel setup).

       Hotspot: Contains rollover cursor and rectangle information like hotspots found in other
       VirtualCinema objects.

       Variables: Interface items can have variables associated with them. See the Variables
       section for more information.

       Triggers: Interface items can have triggers associated with them. See the Triggers
       section for more information.

       Enabled: Interface items can have an enabled status. See the Enabled Status section for
       more information.


Interface layouts are displayed through the Display Interface trigger action. When an interface
layout is displayed, all enabled interface items are activated and displayed as well. When an
interface item is unshown, all interface items in that layout are deactivated and unshown.
Between the display of an interface layout and the unshowing of the interface layout, the
interface executes by acting on triggers assigned to the interface items. For example, an
interface item might have a Mouse Click trigger that disables (and unshows) some of the current
interface items and enables (and shows) other interface items.



Triggers
Most VirtualCinema objects have triggers associated with them. In VCAuthor, triggers are
setup for an object by clicking the object‟s Triggers button.

Triggers are a combination of events and actions. The author defines what actions will take
place when certain events occur. For example, a click event on an explorable could “trigger” a
sound to play.


Adding/Deleting Triggers
Each VirtualCinema object that supports triggers can have 0, 1 or multiple triggers associated
with it. Triggers are named by the event associated with the trigger (Mouse Click, Object


                                                21
Activation, Key Press, etc.). When an object‟s Trigger button is pressed, a list of all triggers
currently setup for the object is initiated (Figure 17). The author can add, delete, or edit existing
triggers.


                                                                     Figure 17 Trigger List
                                                                     dialog


                                                                     When a new trigger is added
                                                                     or an existing trigger is
                                                                     edited, the Trigger event and
                                                                     action data can be modified in
                                                                     the Trigger dialog (Figure
                                                                     18).

                                                                 A trigger‟s event is specified
                                                                 by selecting an event from the
                                                                 Event drop down list. Events
                                                                 currently supported by
VirtualCinema include Mouse Click, Right Click, Key Press, Roll into, Roll out of, Drop, Timer
Expiration, Object Activation and Object Deactivation.

Actions for the selected event can be added, deleted, edited, and reprioritized. The screen shot
in Figure 18 shows the Object Activation trigger for the Comity Inn location in The X-Files. In
The X-Files, when the player goes to the Comity Inn, the actions in Figure 18 are evaluated in
the order shown.




                                                 22
Figure 18 Actions for Object Activation of an X-Files location


Assigning Actions to a Trigger
When a new action is created for a trigger event or an existing action is edited, the Action dialog
is displayed (Figure 19).

An action can optionally have an expression. An action with no expression will always be
executed when its trigger goes off. An action that has an expression will only be executed if the
expression evaluates to TRUE.

Expressions are presented via a drop down listbox interface where the listboxes are formatted as
shown below:

       <Left-hand-side> <Expression> <Right-hand-side>

The left-hand-side (LHS) of the equation can be any variable that is within the object‟s scope.
(Variables and scope will be discussed later in the Variables section of this document). The
right-hand-side (RHS) can also contain any variable within the object‟s scope and may
additionally be a constant typed in by the author. Depending on the type of event being
modified, event parameters are available in both the LHS and RHS lists.

Events and their corresponding event parameters are described below:


                                                23
       Mouse Click: X and Y mouse position

       Mouse Right: click: X and Y mouse position

       Key Pressed: Key that was pressed (IsCtrlDown, IsAltDown, IsOptionDown in the list,
       but not currently supported)

       Roll Into: X and Y mouse position. (IsDragging, DragObjClass, DrabObjId in the list,
       but not currently supported)

       Roll Off: X and Y mouse position. (IsDragging, DragObjClass, DrabObjId in the list,
       but not currently supported)

       Drop: Z and Y mouse position. (IsDragging, DragObjClass, DrabObjId in the list, but
       not currently supported)

       Timer Expiration: ID of the timer that went off

       Object Activation: ObjClass and ObjId in the list, but not currently supported

       Object Deactivation: ObjClass and ObjId in the list, but not currently supported


Action expression operators include:

       =      TRUE if LHS equals RHS
       !=     TRUE if LHS and RHS are unequal
       >      TRUE if LHS is greater than RHS
       <      TRUE if LHS is less than RHS
       <=     TRUE if LHS is less than or equal to RHS
       >=     TRUE if LHS is greater than or equal to RHS
       and    TRUE if both LHS and RHS are TRUE
       or     TRUE if LHS or RHS is TRUE




                                              24
Figure 19 Setting up an action


An action can be one of eight types. When an action type is selected from the Action Type drop
down box, the fields within the Action Type frame will change to allow input of data specific to
that action type. Action data for each action type is described below.

       Statement: Entering statement data is similar to entering expression information. When
       the selected action type is Statement, the Action dialog will contain 3 drop down boxes
       for entering an equation in the form:

              <Left-hand-side> <Expression> <Right-hand-side>

       As with expressions, the LHS and RHS of the equations can consist of variables which
       are in the scope of the current object. The RHS of a statement can include event
       parameters, but not the LHS. In addition to the standard VirtualCinema object variables,
       statements support the use of local variables. Local variables are scratch variables that
       have the scope of the current action list. Both variables and local variables are described
       in more detail in the Variables section of this document.

       Statement expression operators include:




                                                 25
       =       Assign what‟s in the RHS to the
       +       Increment LHS by 1 (there will be no RHS)
       --      Decrement LHS by 1 (there will be no RHS)
       +=      Add RHS to LHS and store result in LHS
       -=      Subtract RHS from LHS and store result in LHS
       *=      Multiply LHS by RHS and store result in LHS
       /=      Divide LHS by RHS and store result in LHS
       %=      Mod LHS by RHS and store result in LHS

Asset: When the action type is Asset, a drop down box with a list of asset actions is
displayed. A standard asset list box for defining the asset to act on is also displayed.
Asset actions include:

       Preload: Not currently implemented. In the future, will load an asset into
       memory for quick startup when Play/Display is later called.

       Play/Display (once): Play a movie or sound once through or show a graphic. If
       the asset is a movie, the screen will be refreshed upon completion of the movie
       with whatever graphic or movie loop displayed before the Play/Display action
       was called. If the asset is a graphic, it will remain on the screen until
       Stop/Unshow is called.

       Play/Display (loop): Plays asset (movie, sound, or animation) repeatedly until
       Stop/Unshow is called.

       Stop/Unshow: Stops a movie asset or unshows a graphic.

       Unload: Not currently implemented. Will unload a preloaded asset from
       memory in the future.

Timer: Timer actions start or stop a timer. Timers can be set to go off once after a
certain amount of time or can be periodic and keep going off at a set time interval until
stopped by the author. There are 25 timers available for use in a VirtualCinema title.
All objects share and reuse these 25 timers. When a timer goes off, all objects waiting
on that timer get a “timer has gone off” message.

Enable: Several VirtualCinema objects have an enabled status. When the Enable
action type is selected, a tree view of objects in the title will be displayed. The enable
action is applied to the selected tree object. Note that only objects that are defined with
an enable status of Initially Enabled or Initially Disabled will show up in the tree.
Always Enabled objects will not be available for selection. See the Enabled Status
section for further details on the how the enable status of an object works.

Set View: The Set View action type is used to force a jump to a new view. The new
view can be in a different node and location than the current view. Most view changes




                                         26
       are setup through navigation hotspots; however, with navigations, the destination view
       must be within the current node.

       Interface: The Interface action type either displays or unshows an interface layout.
       Interface layouts are discussed in the Interface List Window section of this document.

       C++ Function: A C++ function can be called as an action. In the function edit box,
       type the name of the function (case sensitive) and then add parameters in the parameter
       listbox. A discussion on how to setup a C++ function is discussed in the User Defined
       Functions section of this document.

       3D Sound: The 3D sound action type works like the asset action type except that it has
       additional X,Y coordinate information. Each viewpoint in the title has coordinate
       information relative to the viewpoint‟s location. The coordinates entered in the 3D
       sound action type can be thought of as a sound source viewpoint in the current location.


Trigger Event and VirtualCinema Object Interaction
Events currently supported by VirtualCinema include Mouse Click, Right Click, Key Press, Roll
into, Roll out of, Drop, Timer Expiration, Object Activation and Object Deactivation.

The following VirtualCinema objects recognize some or all of the events listed above: Title,
Node, Location, Viewpoint, View, Asset, Navigation, Character, Explorable, Interface Item,
Conversation, Idea Response Conversation and Icons. An object will only recognize an event
when the object is in an enabled state.

The event tables below show the events currently supported by VCAuthor/VCEngine and how
certain Virtual Cinema objects respond to these events. If a VirtualCinema object is not listed in
an event table, the event is not currently supported by the object.


Mouse Click
VC Object                  Triggered when
Navigation                 Player clicks on an navigation
Character                  Player clicks on an character
Explorable                 Player clicks on an explorable
Interface Item             Player clicks on an interface item
Conversation               Player clicks the conversation‟s text from the character conversation
                           dialog
Icon                       Player clicks on an icon


Right Mouse Click (PC)/Command-Click (Mac)
VC Object               Triggered when
Navigation              Player right-clicks on an enabled navigation


                                               27
Character                Player right-clicks on an character
Explorable               Player right-clicks on an explorable
Interface Item           Player right-clicks on an interface item
Conversation             Player right-clicks the conversation‟s text from the character
                         conversation dialog
Icon                     Player right-clicks on an icon


Key Press
(Note: Key Press messages only get sent to the VCObject with the current focus. Setting an
object’s focus is currently done through special user defined functions, but will be
implemented in a more generic way in future versions of VirtualCinema)
VC Object                   Triggered when
Interface Item              Player presses key while interface item has focus


Roll Into
VC Object                Triggered when
Navigation               Player rolls onto an navigation
Character                Player rolls onto an character
Explorable               Player rolls onto an explorable
Interface Item           Player rolls onto an interface item
Conversation             Player rolls onto a conversation‟s text in the character conversation
                         dialog
Icon                     Player rolls onto an icon


Roll Off
VC Object                Triggered when
Navigation               Player rolls off an navigation
Character                Player off an character
Explorable               Player off an explorable
Interface Item           Player rolls off an interface item
Conversation             Player rolls off a conversation‟s text in the character conversation
                         dialog
Icon                     Player rolls onto an icon


Drop
VC Object                Triggered when
Character                Player drops and idea icon onto a character


Timer Expiration
VC Object                Triggered when


                                              28
Title                 Timer goes off while object is active and object is waiting for timer
Node                  Timer goes off while object is active and object is waiting for timer
Location              Timer goes off while object is active and object is waiting for timer
ViewPoint             Timer goes off while object is active and object is waiting for timer
View                  Timer goes off while object is active and object is waiting for timer
Navigation            Timer goes off while object is active and object is waiting for timer
Character             Timer goes off while object is active and object is waiting for timer
Explorable            Timer goes off while object is active and object is waiting for timer
Interface Item        Timer goes off while object is active and object is waiting for timer
Conversation          Timer goes off while object is active and object is waiting for timer
Icon                  Timer goes off while object is active and object is waiting for timer


Object Activation
VC Object             Triggered when
Title                 New or Load is clicked from the main menu
Node                  Player enters new node
Location              Player enters new location
ViewPoint             Player switches to new viewpoint
View                  Player switches to new view
Asset                 Asset starts playing
Navigation            Player switches to a new view and navigation is in the view
Character             Player switches to a new view and character is in the view
Explorable            Player switches to a new view and explorable is in the view
Interface Item        Interface item is displayed
Conversation          Player clicks character and conversation is displayed in character
                      conversation dialog box
Idea Response         Player drops an idea icon on a character and the conversation starts
Conversation
Icon                  Icon is enabled when not already enabled


Object Deactivation
VC Object             Triggered when
Title                 The current game is aborted (either the player exits or starts a
                      different game)
Node                  Player leaves current node
Location              Player leaves current location
ViewPoint             Player leaves current viewpoint
View                  Player leaves current view
Asset                 Asset completes
Navigation            Player leaves view and navigation was in the previous view
Character             Player leaves view and character was in the previous view
Explorable            Player leaves view and character was in the previous view



                                           29
Interface Item             Interface item is unshown
Conversation               Character conversation dialog box is closed (by navigating away or
                           player hitting the close button)
Idea Response              ?
Conversation
Icon                       Icon is disabled when it was previously enabled




Variables

VirtualCinema Object Variables
The same set of VirtualCinema objects that support triggers also support variables: Title, Node,
Location, Viewpoint, View, Asset, Navigation, Character, Explorable, Interface Item,
Conversation, Idea Response Conversation and Icons. Variables types currently supported
include Boolean, Integer, Character and String. Each of these variable types can setup as
constants.

Variables can be added, deleted, and edited by clicking on a VirtualCinema object‟s Variables
button. The scope of a variable is based on the VirtualCinema object that owns it. For
example, a node variable‟s scope is the current node. All objects in the node have access to the
variable; however, other nodes do not. Once a variable is defined, it can be used in trigger
expressions and trigger action statements that are within the scope of the variable. The table
below describes the scope of the various VirtualCinema Object variables.


Variable Type            Seen by
Title                    Title variables can be thought of as global variables. All objects have
                         access to title variables.
Node                     A node and all objects within the node have access to that node‟s
                         variables. This includes locations, viewpoints, views, navigations,
                         characters, explorables, conversations and idea response conversations.
Location                 A location and all objects within the location have access to that
                         location‟s variables. This includes viewpoints, views, navigations,
                         characters, explorables, conversations and idea response conversations.
Viewpoint                A viewpoint and all objects within the viewpoint have access to that
                         viewpoint‟s variables. This includes views, navigations, characters,
                         explorables, conversations and idea response conversations.
View                     A view and all objects within the view have access to that view‟s
                         variables. This includes navigations, characters, explorables,
                         conversations and idea response conversations.
Navigation               The navigation object itself.
Character                The current character object, that characters conversations and idea
                         response conversations.


                                               30
Explorable               The explorable object itself.
Conversation             The conversation object itself.
Idea Response            The idea response conversation object itself.
Conversation
Asset                    The asset itself.
Icon                     The icon itself
Interface Item           The interface item itself.


Local Variables
<Local variable usage will be described here.>


Enabled Status
VirtualCinema objects that have triggers and variables also have an enabled status. By default,
all objects are Always Enabled. Objects whose state may change during the title should be setup
as Initially Enabled or Initially Disabled. Only Initially Enabled or Initially Disabled objects
will be available to the Enable trigger action.

When an object is disabled, the engine will ignore it. For example, when the player navigates to
a new view, only enabled explorables will be available to the player. Another example of enable
status usage is with assets. Objects that support assets always support a list of assets. The
engine will pick the first enabled asset in an asset list. By enabling and disabling assets in an
object‟s action list, the author changes which asset will be used by the object.


File Menu

New, Open, Save, Save As
The New, Open, Save and Save As File menu options work the same as in most programs.

       New: Clears out the current database and starts fresh one.

       Open: Opens an existing database. Note that the “database” is actually 2 files, one with
       a .HDB extension and the other with a .GAM extension. .HDB and .GAM pairs always
       have the same prefix name. When <Game>.HDB is opened, VCAuthor automatically
       opens <Game>.GAM.

       Save: Saves data to the current .HDB and .GAM files. If the database is a new
       database, VCAuthor will prompt for a prefix name and create a new .HDB and .GAM
       file.


                                                 31
        Save As: Saves the current .HDB and .GAM database to a new prefix name, leaving the
        current .HDB and .GAM files untouched.


Print
No Print functions are currently implemented. In the future, the author may be able to print
reports from here.


Preferences
The Preferences File menu option allows the author to setup a base path(s) to assets. When a
new asset is added to the database, base path information will be stripped and only the assets
relative path will be stored. The base path allows assets to be moved to different
directories/computers in the middle of the project without interfering with path information
saved with each asset.

Multiple base paths can be entered. VCAuthor will look for assets in the order specified in the
base path list. Multiple base paths can come in handy if there is not enough room on a
particular computer to store all assets. It can also be useful for managing multi-language titles.
When a title is localized, some assets will remain unchanged. For example, movies that have no
dialog do not need to be dubbed. By setting up a base path to the foreign language assets first
and then the English assets second, the language independent assets do not need to be duplicated
in both directories.




Edit Menu

Undo, Copy, Cut, and Paste
The Undo, Copy, Cut and Paste features are not currently implemented and these menu items are
always grayed out.


Edit Node Tree Object
When an item in the Node Tree is selected, an Add<tree item> and Delete<tree item> menu item
will be available under the Edit menu. See Main VCAuthor Window for details on using the
Add and Delete tree item functions.




                                                32
View Menu

The View menu contains an entry for all VCAuthor windows except the Main Window. Toggle
these menu items to minimize/maximize the corresponding window.



Custom Menu


Asset Categories
When the Asset Categories menu item is selected, the Asset Categories dialog box will be
brought up and contain a list of currently defined asset categories. The author can setup any
number of asset categories. This asset category list will be available in the Category field of the
Asset Properties dialog.


Standard Hotspots
A Hotspot consists of a cursor asset and a bounding rectangle. Standard hotspots additionally
have names and are selectable in the Hotspot field for objects containing hotspots (navigations,
characters, explorables, interface items). Standard hotspots make data entry easier when
defining an object‟s hotspot and also facilitate making global hotspot changes.


Default Navigations
The Default Navigations dialog contains drop down list boxes for selecting default left, right and
forward navigation hotspots. This navigation hotspot information will be used by VCAuthor for
automatically creating view navigation connections when a new viewpoint is added.


Adjust Hotspots
Adjust Hotspots was a temporary tool used in The X-Files and will not be needed in future
versions of VCAuthor. It moves all currently defined hotspots by the values in the X and Y
coordinate fields.


Default Cursors



                                                33
The Default Cursors dialog is used to define the rollover cursors that should be associated with
character and explorable hotspots when they are first created. This keeps the author from having
to select a cursor for every character and explorable hotspot created. The character and
explorable cursor can be modified later for special cases.


Cursors
The Cursors dialog is where a title‟s cursors are defined. Each cursor has a name, asset, and
hotspot mouse point. This cursor list will be displayed in the Cursor field for VirtualCinema
objects that contain a rollover cursor.


Standard Actions
The Standard Actions dialog is not currently used. The intent was for the author to be able to
setup standard actions and then later display them in a list when setting up triggers. Future
versions of VirtualCinema will support some sort of standard actions or standard actions list, but
this dialog will probably change.


Generate UDF Code
User Defined Functions are hooks into the engine code. An author can write their own C++
function which can be called from VCAuthor. The Generate UDF Code dialog traverses all
UDF calls currently in the title and creates the .h and .cpp file needed to integrate the author‟s
user defined functions with the engine. See the User Defined Functions section for details on
how to write a user defined function and integrate it with VirtualCinema.


Icons
The Icons dialog allows the author to define all icons that will be used in the game. The icon
dialog contains a drop down list of all icon supported icon types: Action, Emotion, Evidence,
Idea and Inventory. When a type is selected from the Icon Type drop down list, the list box
below displays all icons that are currently setup for that type. Icons can be added, deleted, or
modified in the list.

Each icon type contains the following properties:

       Name: Icon name that will appear in the icon list.

       Default State: Asset list. The first enabled asset in the asset list will be used when the
       icon is in its default state. If the asset is a movie, the first frame of the movie will be
       used as the default state and the movie will loop when the icon is in its highlight state
       (when the player rolls onto the icon).


                                                 34
       Highlight State: Asset list. The first enabled asset in the list will be used when the icon
       is in its highlight state. This field can be left blank if the default state asset is a movie
       asset.

       Rollover Text: Asset list. The first enabled text asset in the list will be used as the
       rollover text. When the player rolls over the icon and the rollover text preference is
       turned on, this text will be displayed below the icon. This field can be left blank if no
       rollover text is desired.

       Icon Cursor: The cursor to use when the player rolls over the icon.

       Rollover Cursor: This cursor is currently only used by inventory type icons. It is the
       cursor that will be used when the inventory item is selected and the player rolls over
       some object that can accept the inventory item. For example, in The X-Files the case
       files inventory item can be given to Cook. When the case files inventory is selected, the
       cursor changes to the case files when player rolls onto Cook‟s hotspot.

       Db Id: This field is no longer needed and will be removed in future versions of
       VCAuthor.


Characters
The Characters dialog contains a list of all characters used in the title. When setting up
character hotspots, the author selects a character from this list.


Trigger Report
The Trigger Report function writes trigger, variable and enable information to a file specified by
the author. This report can be useful in tracking down bugs and performing searches. The
author can narrow down which triggers will be listed by specifying nodes, locations, viewpoints
and views. Interface layouts and icons can also be include or excluded.



Tools Menu

Validate Database
The Validate Database tool walks through the database checking to make sure data seems
reasonable and is connected properly. This tool should be run every so often to make sure the
database is problem-free. When this tool is run it currently has 2 modes, one that is fairly fast



                                                35
and one that takes about a day to run. Generally, the fast option is all that is needed (the longer
version has never found problems that were not found in the shorter version). Output is written
to VALIDATE.OUT in the current directory.


Compress Database
Compress Database will reorganize data and may reduce the database file size some, especially if
a lot of changes and deletions have been made since the last time the function was run.


Create Stripped Database
The Create Stripped Database tool is not currently implemented. There is a fair amount of data
that is only needed by the VCAuthor and serves no purpose to VCEngine. In the future this tool
will create a new database with only information needed by the engine in order to reduce the
shipping database size.


Create CD Image
The Create CD Image tool copies assets from their current location to the specified disc image.
Currently, the asset placement algorithms are tied to The X-Files. In the future, this tool can be
used to create CD images for a generic title. The Create CD Image fields are defined below.

       Disc Number: Disc image to create

       Make Image In: Destination directory path. Currently this path must be typed
       manually (make sure to include the trailing colon or backslash). If it‟s not needed, the
       Overwrite existing files checkbox should not be checked because it makes the tool take
       significantly longer.

       Install Disc: If the Create installation directories checkbox is set, assets marked for the
       minimum or maximum install will be copied to the directories specified in the Minimum
       and Maximum edit fields.

       Output: Check the Create list file checkbox and enter a file name to send results to a
       file. This does not significantly slow down the copying process and should be used to
       check for errors.


Calculate Disc Size
The Calculate Disc Size tool can be used to determine asset disc space. The tool can report
sizes based on location, interface or disc.



                                                 36
Asset Report
The Asset Report Tool can generate the following reports:

       A list of all files in the database
       A list of all files in the database organized by disc
       A list of all assets that are not currently assigned to a VCObject
       A list of all assets that are currently assigned to a VCObject
       A list of all assets that have not been assigned to a disc


Concatenate Assets
Asset maintenance is much easier if each file contains only one asset (instead of multiple clips in
a movie file for example). That way if edits need to be made, changing one clip will not affect
others. Although one asset per file is desirable when managing assets and authoring, its not
always desirable in the engine. For example, the engine can load a series of graphics faster if all
graphics are located in a single file.

The Concatenate Assets tool currently concatenates 2 types of assets: graphic files and
navigation files. The resulting files will go in the destination directory specified by the author.
Concatenated graphic files will go into .pff files and concatenated graphics in .nmv files. Using
the Node and Link checkbox asset properties, a .pff and .nmv file will be created for each disc
and each install if needed.


Recover Orphans
The Recover Orphans will be removed in future versions of VCAuthor. It was a debugging tool
used to fix a database problem that is no longer an issue.


Quick Fix
The Quick Fix menu item was used to fix database problems that were introduced during code
development. The menu will be removed in future versions of VCAuthor.


Save PSX Data
The Save PSX Data tool translates The X-Files database information to a file format that can be
used by the PlayStation version. This menu item is not currently useful for generic titles.




                                                37
User Defined Functions

<Details about writing user defined functions and integrating them with the engine will be added
here later.>


Asset Format Discussion
<A discussion of asset formats (movie files, graphic alpha channels, PicFlic files, etc.) and what
the engine does with them will be added here later.>




                                                38

				
DOCUMENT INFO