hi! i recently uploaded a plugin for editing dialogues… theres not really much to write here so i will shortly explain how the plugin can help you and what it offers.
all the actual documentations are in the plugin’s directory, designed to be read directly from the engine’s editor
Textbox
User friendly UI
Resources/dialogues all managed from one docker panel. Editing resources is also made with custom windows, serving you all the required settings for the resources in one place
Node based dialogues
Dialogues are edited in a GraphNode based system. There’s several nodes to display and decide the path of the dialogue. Each visual node have a fading system for when showing and ending, and properties unique to them.
There are total of three visual and eight control nodes:
- Dialogue as the main nodes of the plugin, displaying texts, having a character as speaker, settings for typewriter effect, pausing time, auto skip, freezing the time scale etc.
- Picture for showing the picture resources
- Choice that creates buttons on the screen with the texts of the each slot’s texts and deciding the path of the dialogue
- Start/End for marking where the dialogue starts and ends
- Point/Jump for the dialogue to teleport to positions of Point nodes using Jump nodes
- Condition that iterates over its slots and checks the first value with the second value with the selected operator, using a code logic like if/elif/else to decide the path of the dialogue
- Variable that sets/creates, deletes, and modifies the variables in mid dialogues
- Random using weight based randomizer to select an outgoing and deciding path of the dialogue
Variable usage
Almost every control tag or node property accepts variable usage. Variables are keys stored inside a store resource within a dictionary. You can use them to display their values directly in the dialogue text, make condition checks, use them as properties like character voice volume for a specific dialogue, tween settings etc…
Custom resources for dialogues
Resources are for richening your dialogues. There are two type of resources; global and character owned. Character owned resources are stored inside the characters themselves and later can be accessed via first getting the character, and globals stored inside a global store where you can reach from anywhere. If a character is not unique then their resources are baked from a character template using a CharacterInstance node. After baked, they will have independent properties/resources and will be available to use those datas.
There are total of five resources:
- Dialogue Packs holds dialogues in an array with themes and weights to return one randomly and play
- Characters that act as speakers for your dialogues, has properties like voices that play in each printed character, names, images/videos as portraits
- Emotions that are completely character-owned type of resources for your characters to change the visual properties in mid-dialogues
- Variables to use almost everywhere in the dialogues
- Pictures to display images on the screen either alongside with the dialogue or alone
- Sounds to play in mid-dialogues via control tags, having settings for dB and pitch, and offering 2D/3D properties to adjust while inserting them to dialogues
- States used by State Machine to gather all the dialogue nodes belonging to those characters that in the state and play the assigned packs accordingly
There’s also static Operators for each resource that can be used to edit, create, delete from user-side
Control Tags
Just like BBCodes there are custom tags that help you to manipulate the current playing dialogue node. There are total of eight control tags:
- [variable] to insert a value of a variable in the dialogue text
- [stop] to stop the typewriter from printing for an amount of time
- [speed] to adjust the speed of the typewriter
- [shake] to shake all the non user added theme nodes with an amount of power
- [emotion] to set the emotion of the character
- [sound] to spawn an AudioStreamPlayer/2D/3D mid dialogue
- [signal] to emit a signal from the player that later can be connected to user-side scripts
- [optionals] to change the other optional settings of the dialogue
Themes
There are three themes; Static that stays fixed on the screen, and 2D/3D that changes position in the world space based on the current speaker of the dialogue
LINKS
- GitHub Repository
- Asset Store
Contact e-mail
Bottom Text
if you want to see a preview, github page has one screenshot of an example dialogue and a quick
usage of the resource editor
tell me what you think, give me a feedback, write a suggestion or what features you think would be good, i always appreciate!..
