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
© Copyright 2024 Paperzz