REDkit Editor – Designer Basic Manual
Content
Introduction
Editor main window
World editing
Asset Browser
Editing object vertex
Entity browser
Scene editor
Scene script tab
Starting Conditions tab
Actor definitions tab
Dialogset settings
Directors layout
Quest Editor
Basics
Subgraphs
Deletion markers & Patch Outputs
Facts DB
Journal Editor
Attitude Groups editor
Community Editor
Spawnset Sheet
Timetable Sheet
Background scenes Sheet
Layers Sheet
Action Points
Creating new actionpoint
Setting Pre and Post animations
Job tree preview
Static Camera editor
Create
Configuration
Tests
Cutscene template editor
Basics
Cutscene timeline
Template tab
World Partition editor
Quest Editor Blocks
Quest Editor Conditions
Introduction
The purpose of this manual is to show you the basics of REDkit Editor (called REDkit in further part of manual). This manual is not a full guide to each and every option of REDkit.
REDkit Editor consists of many tools, such as tools for creating quests, dialogues, animation trees, behavior trees, steering, environments, and so on. In this manual we'll focus on these tools, which are the most important from designer's point of view.
Editor main window
When you launch REDkit for the first time, you will have main editor window open. In this window you have access to all tools as well as options such as loading existing worlds, creating new ones, etc.
Some options are available only if you have certain world loaded (for example: loading saved game, editing world streaming, etc.)
To load world or create one, you just have to choose correct option from file tab.
Also, if you have level loaded, you can play the game in editor. To do that, you can use those buttons:
- The first one will start the game normally, as it will start on a cooked game.
- The second one will start the game without streaming, with layers you have loaded at the moment.
- The third one is used to load saved games.
World editing
Once you load any world, it’s graphical layout will appear in editor's main window. You can navigate camera either by using mouse or WSAD.
You may have already noticed, that a list have appeared on you panel to the right, in Scene tab. It’s the list of layers, of which each level in REDkit consists. Layers are objects, on which all other things are placed, like meshes, waypoints, paths, and so on. Layers are divided into folders, which make a hierarchy.
Each layer and folder has its own icon, which indicates current state of layer/folder:
- colored icon means, that layer/folder is currently loaded
- gray icon means that layer/folder is currently unloaded
- half gray icon on folder means, that some layers within that folder are loaded, and some aren’t
- layer with red eye being crossed means that this layer is currently hidden (its content is not shown, until loaded). You can hide/unhide layer by RMB clicking layer and choosing “hide/show” option.
- NOTE: this applies for all users if you submit it to the server, it’s local option only.
- folder with red H letter means, that all layers from this folder will be hidden, when you’re playing the game (until it’s unhidden by any means). NOTE: this doesn’t apply to folders within this certain folder, which means, that all layers from deeper folders will still be loaded.
To put something on a layer you just have to select a layer, by clicking double LMB on a layer, and then choose desired object using RMB. You can either add general objects from pre made list (RMB), such as triggers, waypoints, etc., or you can add an object from Asset Browser (this tool will be described next).
You can copy, cut, paste, and move objects freely in the world – options for manipulating objects are easily accessed from the menu on the left side of main editor window. You can also choose to edit objects from all layers (Multi Layer button) or from the active layer only (Active Layer button; it means that no object from inactive layer can be selected by LMB).
Each object you put on a layer, as well as layers and folders, has properties that can be edited. To edit properties of an object simply select it on the Scene list, and then change tab to Properties. For example, you can edit here properties of a folder (flag isVisibleOnStart), which was mentioned earlier.
Asset Browser
Asset Browser is a tool used to access all files in REDkit repository. Double clicking on a file will automatically open a tool used for its edition. AB is also used to create new files (simply click RMB in any folder, and choose type of file you want to create), remove them, etc.
Aside from basic options AB also provides a hierarchy view and search option (you can filter files by type, or just search an item by name).
NOTE: If you want to add certain object from Asset Browser in world (entity template for example), you can either select it with LMB in Asset Browser, and then click RMB in world preview, or you can drag and drop from Asset Browser to world preview.
Editing object vertex
Many objects, such as triggers and path, are built from vertexes – for example basic trigger has four of them. You can edit those, creating non standard shaped objects, using Vertex Edit tool. To access this edition mode select object you wish to edit, change tab in main editor window from “Scene” to “Tools”, and choose “Vertex Edit” tool.
Adding and removing vertexes is performed by holding ALT and clicking LMB in place you want to add or remove vertex.
NOTE: Be careful when editing trigger vertexes – concave triggers tend to be broken.
Entity browser
Entity browser is a tool used to create almost every object found in game (aside from raw meshes), including characters, items, animated objects, etc. Editor composes of three main parts: preview, components, properties, see picture below.
Preview window is showing entity meshes and other components (if you have correct filters enabled).
Component window showsall components within the entity in graphical form, new components can be added in components field by clicking RMB and choosing specific component type.
Properties window consists of multiple tabs, in which you can edit properties for whole entity (shown when no component is selected) as well as properties for each component (shown when you select component and choose Node properties tab).
NOTE: Each template has a class (either imported from C++ or from scripts), which determines most of entity properties (by default, each entity has “CEntity” class, which is also highest class in available hierarchy). To change entity class you must change into Template properties tab.
Scene editor
Scene editor is a tool used to write and implement dialogues. A dialogue created in this editor can be used later in game. Editor consists of four main tabs:
- Scene script (most important tab, in which dialogue is written, etc)
- Starting conditions
- Actor definitions (in here you define what actors will take part in dialogue)
- Dialogset settings (in here you define where will each actor stand in dialogue)
Scene script tab
Scene script tab consists of three windows: dialogue sections (in here you write text), scene graph (here you define logical flow of dialogue), and properties.
Dialogue sections are parts of whole dialogue – each section is shown in scene graph part of editor as a single block.
NOTE: To add a new section click RMB in dialogue sections window or scene graph window, and chose right option from the list.
After adding a section you will notice, that a new block will be added in scenegraph window. In this window you define logical construction of the dialogue. The signal (which means what is currently played/processed in game) will flow from the Input block to the Output block (where it exits from the scene). When signal goes through a connection into a dialogue section it means, that this section will be played.
Every section can consist of any number of dialogue lines, for each line you define Voicetag (id of actor, who is supposed to talk) and write text he is supposed to say.
You can also put one dialogue choice per every section, which will always be placed on the end of the section. The reason for that is, each choice adds new outputs to the dialogue section (as you will notice on the scene graph). When player chooses a choice, the signal in the graph exits through the chosen output.
Aside from dialogue sections, inputs and outputs, you can also add script blocks and conditions in scene graph window. A script block allows you to use any script written in Script Studio or C++ inside the dialogue (for example, a script adding a fact to the facts DB). A condition allows you to control flow of the signal in dialogue, for example: you can if player has a certain type of item.
Each block you add has its own properties, which can be edited in properties window. Most important properties for scenes will be listed below.
Global scene properties (edited when you have no blocks selected):
- additionalVoicetags – here you define voicetags of actors, who will take part in dialogue but have no spoken lines.
- mayActorsStartWorking – important flag for gameplay dialogues only. Defines if actors taking part in dialogue can work in their actionpoints while talking.
Dialogue section properties (edited when you select dialogue section):
- isGameplay – this flag defines if dialogue section is to be played as cinematic dialogue (with all characters in defined slots, without possibility of movement, with defined cameras) or as a gameplay dialogue (in form of oneliners / subtitles, without blocking player and NPCs)
- hasCinematicOneliners – option for gameplay dialogues only, it defines if text should be displayed above NPCs head, or as a subtitle on screen.
- pauseInCombat – if checked true, dialogue will pause if combat starts, and will be unpaused after combat ends. NOTE: it is advised to use it on gameplay dialogues only.
- canBeSkipped – cinematic dialogue flag only, if checked true dialogue lines will be skippable.
- numberOfInputPaths – by default this property has value of 1. If value is more than 1 you will notice, that dialogue section block will have new input and output (they will be numbered automatically). It is used for advanced control of signal flow in dialogue, if signal enters through input1, it will exit from output1, if it enters though input2 it will exit through output2, and so on.NOTE: This won’t work if you have choice in dialogue section.
Last but not least, there are cutscenes. Cutscenes can be played from the scene file, to add a cutscene you simply add cutscene block in scene graph window and link a proper cutscene from Asset Browser in cutscene block properties. Cutscene sections can be edited in Dialogue Sections window just as any other dialogue section.
Starting Conditions tab
This tab is mostly informative, most of its contents will be updated automatically as you work in other tabs. There are few options worth mentioning available in this tab:
- Must Use Context Actor – this flag is important when making Voicesets, if scene is supposed to be a Voiceset it must have this option on true.
- Invulnerable – this flag defines if NPC is supposed to be immortal for the time of dialogue.
- Left item / Right item – in here you can add an item from droplist, which is supposed to be in NPCs hand during the dialogue.
Actor definitions tab
This tab is very important for most dialogues, in here you define what actors should be taking part in the scene and how the game is supposed to find them. You can add new entries by clicking RMB. Not all of the fields need to be used in each dialogue, there are several combinations as described below:
- Voicetag – this field is obligatory, it defines a Voicetag (Voice ID of an NPC) for the whole line.
- Actor Tags – this field is to be used only, if your NPC has an unique tag, and if you want game to find him by this tag. This flag is optional.
- Actor template – this field is used for two purposes: first, when the game will be searching for a fitting NPC to play a dialogue, it will check if potential NPCs are spawned from this template. Second, if game won’t find an NPC to play a dialogue, it will spawn a new one from this template, for the time being of dialogue only. NOTE: This flag is optional, but it is advised to use it as failsafe.
- Appearance filter – this option allows you to define appearance name, which searched NPC will be required to have. This flag is optional.
- Don't Search By Voicetag – this option forces the game to search for NPC using filters other than Voicetags, such as Tags, entity template, and appearances.
Dialogset settings
In this tab you define the place, in which dialogue will be played (used for cinematic dialogues mostly). To do that, you have to put a Scene Waypoint object in the desired place on location, and give it an unique tag in properties. After doing that you put that same tag in Position Entitycolumn.
NOTE: If you leave this column empty, dialogue will either play in random position, or in the place of pivot (described later on).
You can also change type of setting for your dialogue (default is 4vs4), by linking from Asset Browser another type of setting into Dialogset column.
Second part of this tab consists of options, which allow you to put every NPC in desired positions. Each slot in a dialogset has its own id number, which can be seen when putting Scene Waypoint on level. In slot number column you define this very spot for each NPC (Voicetag column).
NOTE: Putting same slot number for two NPCs or leaving this column empty will generate bugs.
If Is Pivot flag is checked true, the dialogue will be played where the NPC that is pivot is standing.
NOTE: If you have defined both scene setting tag and Is Pivot, thenIs Pivot flag will be ignored.
If Is Hidden flag is checked true, targeted character will be invisible in dialogue until he plays enter animation. Also, he won’t be visible anymore after playing exit animation.
Another option worth mentioning in this tab is Safe Placement – if checked true, the dialogue will try to find safe position if defined position is wrongly placed (underground, not on walkmesh, etc).
Directors layout
Directors layout is a set of tools used to implement gestures and cameras for each dialogue. To change layout, click view -> directors layout. You will notice, that whole layout in scene script tab has changed showing a preview of dialogue, dialogue timeline, and sections preview.
Dialogue timeline is the most important part of directors layout – on this timeline you add camera events, character lookats, animations, add pauses between dialogue lines and so on. Each character present in the dialogue (even those, who are not speaking) has its own row on the timeline. When you add an animation event on characters row, this certain character will play defined animation in defined moment. Also, there is a special row dedicated to the camera and you can add custom rows by clicking RMB on timeline.
By clicking LMB on an event you will notice, that properties of this event are shown on the right side of timeline. In these properties you can define for example what animation is meant to be played.
Dialogue preview plays dialogue with current cameras and animations, you can stop, skip, and change sections to the next ones by using buttons below preview. Sections window shows you active dialogue line and dialogue section. You can also preview dialogue with loaded level, to do that load layers with dialogue setting and press green globe button in dialogue preview.
Quest Editor
Quest editor is a tool, in which you gather all assets made in other tools and put them all into motion. You will use it to play dialogues, cutscenes, make NPCs walk, work, fight, etc. It is a vital tool for quest designers in which whole game structure is made.
Basics
Quest editor is a graphical editor, similar to Scene Graph Window in Scene Editor. Each block you use has its own properties, displayed on the left side of Quest Editor window.
Quests editor is based on the idea, that there is a signal, which starts in one place (Start block), proceeds through connections between blocks and starts multiple actions in the process. Signal can be diverted between multiple connections, which means that it can be in two or more places simultaneously. When any signal reaches End block, the whole quest ends killing any other signal that may still be going inside.