Dialog Editor

From Oldunreal-Wiki
Revision as of 19:14, 12 April 2012 by GreatEmerald (talk | contribs) (→‎Node Mode: Status bar)
Jump to navigation Jump to search
The main screen of the Dialog Editor, in Node mode. The icons show that the conversation is between Aida and the player.

The LEGEND Dialog Editor Version 1.04 is a tool for editing and creating dialogues in Unreal II. It was developed by Legend Entertainment's James A. Montanus using the Microsoft Class Foundation library. It is capable of creating and editing .dlg files that are used by Unreal II to handle in-game dialogues. The tool can be found in the Unreal2\Dialog folder, as DialogEditor.exe. Along with it is a Properties.txt file which is a list of all available parameters for each node of a dialog. The list presents all settings as Parameter=Value or type of value. This file is used to display the usage of all parameters in the property window inside the node editor.

The use of the DialogEditor is not required: dialogs are stored by the game as .dlg files which are simple text files and can be opened with notepad or a text editor. The Dialog Editor is only a convenient interface.

Usage

The Dialog Editor has two modes of operation - Nodes and Script. Nodes mode allows you to visualise the dialogue as a tree of nodes, while the Script mode shows slightly more information about each node and optionally allows you to see the lines of selected speakers only. To switch between the modes, either use the View menu or use the toolbar.

Node Mode

The Node Properties window.

In Node mode, the dialog is displayed as a tree-view. A small black dash in a yellow square represents a node. However, if the node uses certain speakers, the symbol will be replaced by a specific icon: a white-on-black P for the player, a white-on-pink A for Aida, a white-on-brown N for Ne'ban, a white-on-green I for Isaac.

The Node mode allows you to use the Goto... feature found in the Edit menu. It lists all of the available nodes in a scrolling list, but is rather buggy, as the list overlaps the OK and Cancel buttons. However, that can be worked around by using the hotkeys Enter and Esc, and the list can be navigated by using the directional arrows. The selected node name is written in the input box above the list. Since the list is in alphabetical order, it may be useful in very large dialogue files. Selecting a node and pressing Enter highlights the selected node in the main window.

If you have the status bar enabled, clicking on a node will make additional information about it appear in the status bar. That includes the node name, speaker, abort node and resume node. If either of the two latter are empty, round brackets appear in their place, showing the node's distance in hierarchy from the root node.

The toolbar contains buttons to add and remove nodes, and a button to edit properties. You can also edit a node's properties by right-clicking on it and choosing "Properties" in the contextual menu, or by double-clicking on it. Either way opens the properties window, where you can rearrange, add or delete parameters of the selected node, as well as rename the node. The button Verify Sound should launch Windows Media Player and play the voice file assigned to the node, but the program can no longer find the player in modern Windows versions. Clicking Add or Edit will take you to the Node Property window.

The Node Property window.

The property window is divided in three parts: on the left-side is the list of all possible parameters which can be added to a node. There is also a [None] parameter which can be used to add comments or notes (with "//", as in UnrealScript, or with "#", as in Bash scripts). This parameter can contain any other data, like commands (if the value is in the form of Property=Value), or comments formatted in any other way. Once a parameter has been added, you can specify the value of this parameter by clicking on the large right-side panel and entering your value. The valid value types are displayed at the bottom of the window for easy reference. If other nodes use the same parameter, the small drop-down menu in the upper-right corner will allow you to quickly reuse these values, which can be useful to quickly select the Speaker in a long conversation, for example, instead of typing the speaker's name for every node.

Script Mode

The Script Mode. The black line under the node shows this is the last node of the current conversation.

In Script mode, one node is displayed with all its properties. The drop-down menu on the right part of the toolbar allows you to choose the Speaker whose nodes you want to see. If "None" is selected, all nodes can be displayed.

The two buttons with arrows can be clicked to jump to the next and previous node. When a note is displayed, a black line under the parameters shows that the node currently displayed is the last node of the current conversation:

Known Bugs

  • Never press "Promote" on the Root node. Doing so will crash the editor.
  • Right-clicking on empty space in the main window will produce a Debug Assertion Failed! window. Pressing Ignore will allow the program to continue as normal.
  • Sound files for the dialogue nodes are automatically generated based on node and file names, and it is impossible to change them, so never save the original dialogue files that come with the game, or most of the times you will lose voice acting in-game. To be safe, you can set all of the stock dialogue files and directories read-only.
  • Even though the game itself is case insensitive, the Dialog Editor requires the value of the property NextNode to have the same case as the node name it should link to. If it is not, the editor drops the NextNode property. This holds true for stock dialogue files, too. In case that happens, upon opening the file a confirmation Warning! All nodes are not being displayed in the dialog tree. Would you like to correct this? is displayed. No matter what you choose, the properties will be dropped. If you get this warning, never save the file, or you will lose some data! Instead, use a text editor to correct the mistake.