VCAuthor Window

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:
=
!=
>
<
<=
>=
and
or
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
TRUE if both LHS and RHS are TRUE
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
Navigation
Character
Explorable
Interface Item
Conversation
Icon
Triggered when
Player clicks on an navigation
Player clicks on an character
Player clicks on an explorable
Player clicks on an interface item
Player clicks the conversation’s text from the character conversation
dialog
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
Explorable
Interface Item
Conversation
Icon
Player right-clicks on an character
Player right-clicks on an explorable
Player right-clicks on an interface item
Player right-clicks the conversation’s text from the character
conversation dialog
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
Navigation
Character
Explorable
Interface Item
Conversation
Icon
Roll Off
VC Object
Navigation
Character
Explorable
Interface Item
Conversation
Triggered when
Player rolls onto an navigation
Player rolls onto an character
Player rolls onto an explorable
Player rolls onto an interface item
Player rolls onto a conversation’s text in the character conversation
dialog
Player rolls onto an icon
Icon
Triggered when
Player rolls off an navigation
Player off an character
Player off an explorable
Player rolls off an interface item
Player rolls off a conversation’s text in the character conversation
dialog
Player rolls onto an icon
Drop
VC Object
Character
Triggered when
Player drops and idea icon onto a character
Timer Expiration
VC Object
Triggered when
28
Title
Node
Location
ViewPoint
View
Navigation
Character
Explorable
Interface Item
Conversation
Icon
Object Activation
VC Object
Title
Node
Location
ViewPoint
View
Asset
Navigation
Character
Explorable
Interface Item
Conversation
Idea Response
Conversation
Icon
Object Deactivation
VC Object
Title
Node
Location
ViewPoint
View
Asset
Navigation
Character
Explorable
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Timer goes off while object is active and object is waiting for timer
Triggered when
New or Load is clicked from the main menu
Player enters new node
Player enters new location
Player switches to new viewpoint
Player switches to new view
Asset starts playing
Player switches to a new view and navigation is in the view
Player switches to a new view and character is in the view
Player switches to a new view and explorable is in the view
Interface item is displayed
Player clicks character and conversation is displayed in character
conversation dialog box
Player drops an idea icon on a character and the conversation starts
Icon is enabled when not already enabled
Triggered when
The current game is aborted (either the player exits or starts a
different game)
Player leaves current node
Player leaves current location
Player leaves current viewpoint
Player leaves current view
Asset completes
Player leaves view and navigation was in the previous view
Player leaves view and character was in the previous view
Player leaves view and character was in the previous view
29
Interface Item
Conversation
Idea Response
Conversation
Icon
Interface item is unshown
Character conversation dialog box is closed (by navigating away or
player hitting the close button)
?
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
Title
Node
Location
Viewpoint
View
Navigation
Character
Seen by
Title variables can be thought of as global variables. All objects have
access to title variables.
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.
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.
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.
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.
The navigation object itself.
The current character object, that characters conversations and idea
response conversations.
30
Explorable
Conversation
Idea Response
Conversation
Asset
Icon
Interface Item
The explorable object itself.
The conversation object itself.
The idea response conversation object itself.
The asset itself.
The icon itself
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