@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
[gd_scene load_steps=3 format=2] |
||||
|
||||
[ext_resource path="res://Scripts/InteractiveDialog.gd" type="Script" id=1] |
||||
|
||||
[sub_resource type="CircleShape2D" id=1] |
||||
|
||||
[node name="Node2D" type="Node2D"] |
||||
|
||||
[node name="Area2D" type="Area2D" parent="."] |
||||
script = ExtResource( 1 ) |
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] |
||||
shape = SubResource( 1 ) |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
extends Area2D |
||||
|
||||
|
||||
## The timeline to load when starting the scene |
||||
export(String, "TimelineDropdown") var timeline: String |
||||
export(bool) var add_canvas = true |
||||
export(bool) var reset_saves = true |
||||
export(bool) var debug_mode = false |
||||
export(bool) var show_immediately = false |
||||
|
||||
# used prevent the dialogue from appearing if the |
||||
# player hits space multiple times |
||||
var is_dialogue_showing = false |
||||
var dialogue = null |
||||
|
||||
func _ready(): |
||||
if show_immediately: |
||||
show_dialogue() |
||||
|
||||
func show_dialogue(): |
||||
if is_dialogue_showing: |
||||
return |
||||
dialogue = Dialogic.start(timeline, '', "res://addons/dialogic/Nodes/DialogNode.tscn", debug_mode, add_canvas) |
||||
dialogue.connect("timeline_end", self, "after_dialog") |
||||
add_child(dialogue) |
||||
is_dialogue_showing = true |
||||
|
||||
func hide_dialogue(): |
||||
if is_dialogue_showing: |
||||
remove_child(dialogue) |
||||
is_dialogue_showing = false |
||||
|
||||
func after_dialog(s): |
||||
is_dialogue_showing = false |
||||
|
||||
func _on_Area2D_area_exited(area): |
||||
if area.get_parent().name == "Player": |
||||
hide_dialogue() |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
[gd_scene load_steps=2 format=2] |
||||
|
||||
[ext_resource path="res://addons/dialogic/Nodes/DialogProxy.gd" type="Script" id=2] |
||||
|
||||
[node name="Dialog" type="Control"] |
||||
anchor_right = 1.0 |
||||
anchor_bottom = 1.0 |
||||
script = ExtResource( 2 ) |
||||
__meta__ = { |
||||
"_edit_use_anchors_": false |
||||
} |
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
# Text Event |
||||
![image](./Images/text_event_1.png) |
||||
|
||||
The text event is one of the most important ones since this will be containing most of your text. |
||||
|
||||
## The header |
||||
![image](./Images/text_event_2.png) |
||||
|
||||
You have up to tree different types of options here: |
||||
- **Character** - This is who will be saying the text written inside the text editor. |
||||
- **Portrait** - If you picked a **Character** the different portraits will show up here. If that **Character** doesn't have any special portraits the default one will be used. If you pick the `(Don't change)` option, it will continue using the previous text event portrait set. If you pick the `[Definition]` option, a new picker will show up. |
||||
- **Definition** - You can select any of your **Definitions** and it will try to match that string with available portraits. This can be used to dynamically show different portraits depending of previous player input. |
||||
|
||||
## The Text Editor |
||||
|
||||
Inside the text editor you have special features that might not be obvious to everyone: |
||||
|
||||
- Each line will create a new text message. This will help you to make longer monologues without having to add a new **Text Event** for each message. If you want to disable this, you can do so in the Dialogic settings pannel: `Settings -> Dialog -> New lines will create extra messages`. |
||||
|
||||
- When writing a **Character** name, Dialogic will automatically color the text of that **Character** |
||||
|
||||
- `[br]` This will add a line break in the position of the tag |
||||
|
||||
- `[nw]` The *no wait* command will tell Dialogic to automatically skip the current text after it finished displaying without any user input. The default time for skipping to the next text is 2 seconds, but you can change how many seconds by setting a number to it. For instance, if you want it to wait 5 seconds you can add `[nw=5]` and 5 seconds after the dialogue finished it will go to the next event. |
||||
|
||||
- `[speed=X]` You can use the *speed* tag to change change the speed of an individual text event speed. You can set for instance `[speed=10]` to show the text at a very slow pace. If you want the text to be instant for one message you can do `[speed=0]` and it will show up automatically. After the event containing the *speed* tag is over, it will go back to whatever value you have set on the current theme. Remember that the number is the interval between each letter, so the bigger the number the slower the text will be. |
||||
|
||||
- `[definition]` If you have a **Definition** and you want to display its value on inside your text you can use the `[` and `]` characters and the name of your **Definition** to print it. Let's say we have a **Definition** called `Money` with the value of `5`. we can write: `You have [Money] left` and Dialogic will replace the `[Money]` tag with the value `You have 5 left`. |
||||
|
||||
- Beside these dialogic specific options, there are the default `BBCode` options that every `RichTextLabel` has like [b]bold[/b] or [i]italic[/i] text, [color=red]colored text[/color] and [wave]using effects[/wave]! More about that [here](https://docs.godotengine.org/en/stable/tutorials/gui/bbcode_in_richtextlabel.html). |
||||
|
||||
## Voice Line Support |
||||
You can find a tutorial on how to use the voice line feature in the tutorials folder! |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
# Character Join |
||||
|
||||
![Event](./Images/Event_Character_Join.PNG) |
||||
|
||||
The character join event is used to make character portraits appear during a dialogue. |
||||
|
||||
Select the **character** to show on the screen. |
||||
If that **character** has more than 1 **portrait** you can select one. You can change that character portrait using the portrait selector on the [Text event](./000) or by making the character join in the same position and selecting a new starting **portrait**. |
||||
|
||||
TODO: Positions image |
||||
|
||||
You can select one of the five positions. If you want to change the current position of a character you would need to add a new join event and pick a new position. |
||||
|
||||
The current 5 positions are the only ones available at the moment, but more customization will come in future versions. |
||||
|
||||
TODO: Mirror icon image and same portrait both regular and mirrored |
||||
|
||||
By clicking on this icon, you can mirror the current character's portrait. |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
# Character Leave |
||||
![image](./Images/Event_Character_Leave.PNG) |
||||
|
||||
This events allows to make characters that previously joined with the [Character Join Event](./001.md) leave the screen. |
||||
|
||||
You can choose to make all joined characters leave or choose one. If that character isn't on screen, the event will be ignored. |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
# Question Event |
||||
![image](./Images/Event_Question.PNG) |
||||
|
||||
The `Question Event` allows your story to branch and give the player options. |
||||
When you adding a `Question Event`, two [Choice Events](./011.md) and an [End Event](./013.md) will be added automatically. |
||||
|
||||
## The text editor |
||||
The block itself works very similar to a [Text Event](./000.md) and has all the options of that event. |
||||
|
||||
## The choices |
||||
To add choices to your question you can add [Choice Events](./011.md). |
||||
|
||||
## Ending a question |
||||
After all your choices, there also needs to be an [End Event](./013.md). |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
# Choice Event |
||||
![image](./Images/Event_Choice.PNG) |
||||
|
||||
The `Choice Event` marks the start of a choice branch in a [question](./010.md). |
||||
|
||||
## How it works |
||||
Choice Events only work if they are placed inside a "question" ([Question Event](./010.md)). Then you can place all kinds of events below that choice. These events (which will be indented) will be executed when the choice is selected in game. |
||||
|
||||
## Adding a condition |
||||
By checking the `Has condition` check box and setting that condition, the player will only see that choice if the result is true. |
||||
The condition is made up of three parts: The `Value Definition` that will be compared, the `type of comparison` and the `value` that it will be compared to. |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
# Condition Event |
||||
![image](./Images/Event_Condition.PNG) |
||||
|
||||
The `Condition Event` allows you to have certain parts of your timelines only played under certain conditions. |
||||
|
||||
## What's a condition? |
||||
In programming and games a condition is mostly described by variables (in dialogic called `definitions`). |
||||
This means that you can check for a definition to have a certain `value` and only then play the following events. |
||||
|
||||
## The settings |
||||
You can set your condition by first selecting the `value definition` that should be compared, then selecting the `type of comparison` and lastly the `value` that should be compared to. |
||||
Only the comparison types `Equal to` and `Differnt from` work with strings, the rest is supposed to work with integers (whole numbers). |
||||
You can also enter the name of a `value definition` in the input field. This it will compare to the current value of that `value definition`. |
||||
|
||||
## Adding events |
||||
You can then add new events below the Condition Event and they will be indented and only be played when the condition is true. |
||||
|
||||
## Ending a condition |
||||
Every condition needs to have an [End Event](./013.md). After that event, all following events will ignore the condition again. |
||||
When creating a Condition Event a End Event will be added too. |
||||
|
||||
*Note: You can of course have conditions inside conditions. Just make sure to have the same amount of End Events* |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
# End Event |
||||
|
||||
This event does by itself. Its only function is to mark the end of a [question](./010.md) or [condition](./012.md). |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
# Set Value |
||||
![image](./Images/Event_Set_Value.PNG) |
||||
The `Set Value` event can be used to change the value of `value definitions`. |
||||
|
||||
## The options |
||||
You can select the `value definition` to be changed, then the `type of change`. Lastly the new `value` to set. |
||||
+ `[to be]` will set the definition to EXACTLY the given value. |
||||
+ the others will use the existing value and change it in the given way. These only work with numbers. |
||||
|
||||
By toggling the little cube icon, you can use a random number instead of the fixed input field. |
||||
![image](./Images/Event_Set_Value_random.PNG) |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
# Audio Events |
||||
*The Audio Event and Background Music Event are very similar, so they are explained together* |
||||
![image](./Images/audio_event.png) |
||||
|
||||
The `Audio Event` can be used to play sounds. In contrast, the `Background Music Event` is supposed to play long pieces. There can always be only one background music, but it can fade from one to the next. |
||||
|
||||
## Options |
||||
First of all you can select the audio file that should be played. You can clear this selection with the garbage icon. |
||||
|
||||
Then you can set a `AudioBus` to use and a preferred `volume`. More about AudioBus' [here](https://docs.godotengine.org/en/stable/tutorials/audio/audio_buses.html). |
||||
|
||||
The `Background Music Event` additionally has a option for the fade length. |
||||
|
||||
## Looping Audio? |
||||
Actually the `Audio Event` doesn't loop. In godot looping of audio is mostly due to how you imported it (default for .ogg files). |
||||
|
||||
To solve this: |
||||
1. Select your audio file. |
||||
2. Go to the import tab (it's next to the scene tree tab by default) |
||||
3. Uncheck the loop checkbox. |
||||
4. Hit re-import. |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
# Emit Signal |
||||
![image](./Images/Event_Emit_Signal.PNG) |
||||
|
||||
The `Emit Signal` event will emit the signal `dialogic_signal` of the **current dialog node** and pass the given string as an **argument**. |
||||
The event does NOT create a new signal! |
||||
|
||||
If you instance your dialog via script, use a code similar to this: |
||||
`func start_dialog(): |
||||
var dialog = Dialogic.start("my_timeline") |
||||
dialog.connect("dialogic_signal", self, "dialog_listener") |
||||
add_node(dialog) |
||||
|
||||
func dialog_listener(string): |
||||
match string: |
||||
"quest_point_two": |
||||
# do something |
||||
pass |
||||
` |
||||
|
||||
If you instanced the scene using the editor you can connect the signal like you would always do in Godot from the `NODE TAB > Signals`. |
||||
|
||||
*If you don't know about signals you should definitely learn about them. For example [here](https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html).* |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Change Scene |
||||
|
||||
The `Change Scene` event will stop the current scene and load the selected one. This means the dialog will be stopped too. |
||||
|
||||
Be careful when using this while you your tree is set to paused! Consider adding an [Emit Signal event](./040.md) before and resuming the tree with `get_tree().paused = false`. |
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
# Call Node |
||||
![image](./Images/Call_Node.PNG) |
||||
|
||||
This event allows to call a function in a node or an autoload and pass an array to that function. |
||||
|
||||
Many people struggle with the first setting the node. You will have to either put in a full path (starting from root) or a relative path. |
||||
|
||||
#### Using a relative path |
||||
*You need to have a basic knowledge of relative paths. You can learn a bit about them [here](https://docs.godotengine.org/en/stable/classes/class_nodepath.html).* |
||||
The path needs to be relative to your DialogNode. This means you need to consider where it will be added to. |
||||
Let's for now imagine an example scene tree like this: |
||||
|
||||
`- World |
||||
-- Temple |
||||
-- NPC` |
||||
|
||||
Now in the NPC's script the dialog node is added as a child of the NPC node. When getting instanced, there will be a canvas layer inbetween resulting in an actual tree like this: |
||||
|
||||
`- World |
||||
-- Temple |
||||
-- NPC |
||||
--- CanvasLayer |
||||
---- DialogNode` |
||||
|
||||
But we want to call a function in the Temple scene with our Call Node Event. From the structure above we can see that we need to go up three times and then down one time to get from the DialogNode to the temple, so this is the resulting path: |
||||
`'../../../Temple'` |
||||
|
||||
*Of course if you have canvas_layer set to false in Dialogic.start() you need on '..' less.* |
||||
|
||||
#### Using the name of an autoload |
||||
If you have instead an autoload it's wonderfully easy. You can just use the name of the autoload! |
@ -0,0 +1,122 @@
@@ -0,0 +1,122 @@
|
||||
# Creating custom events |
||||
![HeaderImage](./Images/CustomEventsShowOff.PNG) |
||||
|
||||
|
||||
# Introduction |
||||
### What are Dialogic events? |
||||
Events are visual representation of data. Whenever you create one event in your timeline, you are modifying a dictionary with a lot of keys and values. Each pair will contain all the information needed to perform an action during the game. |
||||
|
||||
### What makes a custom event? |
||||
A custom event is made up of a two main parts: the **Event Block** and the **Event Handling Script**. |
||||
|
||||
The **Event Block** is the scene that will be shown in the timeline editor. It needs to inherit Dialogic's `EventTemplate.tscn` scene. |
||||
|
||||
In most cases you will additionally need scenes that have all the setting controls in them. These will be the "content" of your event block. This kind of scenes will have to extend the `EventPart.gd` script. |
||||
|
||||
Here is a very simple example of an `EventBlock`: |
||||
![EventBlock](./Images/EventBlock.png) |
||||
It contains two **EventParts**, a **header** and a **body**. |
||||
|
||||
The **Event Handling Script** is what contains the logic and what will happen when your event happens in the game. This script will need the `handle_event()` function that will be called if the event is reached. |
||||
|
||||
All of the files that are used for creating a custom Event Block and Handling Script should be in this directory: `res://dialogic/custom-events`. That way Dialogic can recognize it and show it in your timeline editor. |
||||
|
||||
|
||||
|
||||
|
||||
# Making your first custom event in 6 steps |
||||
Let's now create a simple event that will print some text to the Output panel in Godot. |
||||
|
||||
## Create the event |
||||
Go to the `settings page` and in the `custom events section` hit the `New` button. |
||||
Fill in a name for your event, a folder name and an id. For the id's I recommend using your name or a string unique to you followed by a number. |
||||
**The id has to be different for every event!!!** |
||||
This is why I recommend the unique string, because it will enable you to share the event with others without breaking their games. |
||||
![Creating](./Images/CreationProcess.PNG) |
||||
|
||||
When you are ready, hit `Create`. You will see the folder appear in the `FileSystem` under `res://dialogic/custom-events/`. |
||||
|
||||
If you go to the `timeline editor` now, you should already be able to see your event in the event list. |
||||
|
||||
### What happened |
||||
This little menu already created a number of things for you: |
||||
- The `EventBlock` (EventBlock.tscn) |
||||
- An example `EventPart` (EventPart_Example.gd/.tscn) |
||||
- The `event handling script` (event_+EVENTID+.gd) |
||||
- A `stylebox` for your event (Stylebox.tres) |
||||
|
||||
|
||||
|
||||
## What next |
||||
The automatic process already setup a lot. But it didn't know the purpose of our event. |
||||
So we will have to add that. |
||||
|
||||
### | Adding the data |
||||
First we want to open the `EventBlock.tscn` scene. (Do not rename this scene!) |
||||
|
||||
Select its root node and look at it's exported variables in the inspector. |
||||
|
||||
We will need to add all the data, that our event can have to the `event_data`. |
||||
You can see, that it alread contains your event id. This needs to be there, do not delete it! |
||||
|
||||
I want to be able to set a text that will be printed, when my event is activated, so I'll add an information slot for that: |
||||
![EventData](./Images/EventBlock_EventData.PNG) |
||||
|
||||
### | Icon and Stylebox |
||||
You can also change your events icon in the inspector. Just drag an image into the `Event Icon`. |
||||
|
||||
Below that, you can open the Stylebox and change its background color, to give your event a unique look. |
||||
|
||||
|
||||
|
||||
### | The Event Blocks Content (EventParts) |
||||
Right now your event block will be empty so let's change that (if you want to). |
||||
|
||||
The content of an EventBlock is separated as `EventParts`. This allows for some reuse. |
||||
There are two places EventParts can be in an EventBlock: The Header (always visible) and the Body (can be hidden). |
||||
|
||||
*An EventBlock does not have to have a body nor a header EventPart. For example the End Branch event has none.* |
||||
|
||||
There is already a simple example `EventPart` (Script and Scene) included. You can change it as much as you want. |
||||
|
||||
#### | Loading the data |
||||
In `load_data()` you will need to set the values of your control nodes. This function is called when the event is added to the timeline editor. |
||||
|
||||
#### | Saving changes to the data |
||||
When the values get changed (listen to it via signals) set the according value in the `event_data` dictionary and call `data_changed()`. |
||||
|
||||
This is pretty much all you need to know. |
||||
*If you want to find more examples you can go to `res://addons/dialogic/Editor/Events/Parts/` and look at the EventParts that shape Dialogic's default blocks.* |
||||
|
||||
### | Using the EventPart |
||||
Once you finished everything in your EventPart(s) you need to go into the `EventBlock` scene and set the `header`/`body` variable in the inspector to the new scene(s). |
||||
|
||||
|
||||
|
||||
### | The event handler script (event_yourname_000.gd) |
||||
Once you have your `EventBlock` finished, you need to add the event handling logic. |
||||
|
||||
#### | The handle_event() function |
||||
If you open the script you will see, that there is only one function by default, the `handle_event()` function. |
||||
|
||||
It comes with two usefull pieces of information: the `event_data` and a reference to the `dialog_node`. |
||||
|
||||
For me I'll just add |
||||
`print(event_data['print_text']` |
||||
there. But of course you can do a lot more. |
||||
|
||||
|
||||
Some more stuff is already explained in the script: |
||||
##### Continue |
||||
Use `dialog_node.load_next_event()` to continue with the next event. |
||||
|
||||
##### Waiting |
||||
If you don't want the player to interrupt your event, set `dialog_node.waiting` to `true` while your event is handled. |
||||
Don't forget to set it back to `false`. |
||||
|
||||
|
||||
|
||||
## And done! |
||||
Great, you've created your first custom event for dialogic. |
||||
|
||||
*Make sure to check Emilio's Discord server just in case someone has already created the custom event that you need. They are super easy to [import](./ImportCustomEvents.md)!* |
After Width: | Height: | Size: 9.5 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/CreationProcess.PNG-355f2912bdbee7a7f8a61573c5cd89c3.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Custom Events/Images/CreationProcess.PNG" |
||||
dest_files=[ "res://.import/CreationProcess.PNG-355f2912bdbee7a7f8a61573c5cd89c3.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/CustomEventsShowOff.PNG-8259387892650b073ac490070dac7fc2.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Custom Events/Images/CustomEventsShowOff.PNG" |
||||
dest_files=[ "res://.import/CustomEventsShowOff.PNG-8259387892650b073ac490070dac7fc2.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/EventBlock.png-2b24655050114017e0bf923099aa0714.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Custom Events/Images/EventBlock.png" |
||||
dest_files=[ "res://.import/EventBlock.png-2b24655050114017e0bf923099aa0714.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 6.6 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/EventBlock_EventData.PNG-61942483b373332db327bcf3e23e37d4.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Custom Events/Images/EventBlock_EventData.PNG" |
||||
dest_files=[ "res://.import/EventBlock_EventData.PNG-61942483b373332db327bcf3e23e37d4.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
# Importing custom events |
||||
|
||||
It's very easy to share `custom events` because they are pretty much self-contained. |
||||
You will just need to get the folder from someone. If you have it, move it into `res://dialogic/custom-events/`. |
||||
|
||||
Then enable custom events in Dialogic's settings menu (if you haven't already). |
||||
You should now find the custom event in the bottom of the event button panel on the right in the timeline editor. |
||||
|
||||
*Vòila! Hope it works ;)* |
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Call_Node.PNG-f719aeb3b34d67d458b47384bffd26dd.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Call_Node.PNG" |
||||
dest_files=[ "res://.import/Call_Node.PNG-f719aeb3b34d67d458b47384bffd26dd.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 3.1 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Change_Timeline.PNG-3613b62ffaabe4ec350f5c6f97611565.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Change_Timeline.PNG" |
||||
dest_files=[ "res://.import/Event_Change_Timeline.PNG-3613b62ffaabe4ec350f5c6f97611565.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Character_Join.PNG-c00e395692cca58b463fed8c9531c914.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Character_Join.PNG" |
||||
dest_files=[ "res://.import/Event_Character_Join.PNG-c00e395692cca58b463fed8c9531c914.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 2.9 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Character_Leave.PNG-6bd42ebbbe4c9f56973b0c4c0d706b93.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Character_Leave.PNG" |
||||
dest_files=[ "res://.import/Event_Character_Leave.PNG-6bd42ebbbe4c9f56973b0c4c0d706b93.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 3.8 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Choice.PNG-298ca290c2de63f7b8f94abfe35b45f0.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Choice.PNG" |
||||
dest_files=[ "res://.import/Event_Choice.PNG-298ca290c2de63f7b8f94abfe35b45f0.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 6.5 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Choice_Condition.PNG-47064c87073a3b92a27167e9940f8c31.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Choice_Condition.PNG" |
||||
dest_files=[ "res://.import/Event_Choice_Condition.PNG-47064c87073a3b92a27167e9940f8c31.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Close_Dialog.PNG-3654b068ff053b245b5a111cf97e619f.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Close_Dialog.PNG" |
||||
dest_files=[ "res://.import/Event_Close_Dialog.PNG-3654b068ff053b245b5a111cf97e619f.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 5.2 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Condition.PNG-7f4a2dbe15404fc55c0fdda27cd6fe3d.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Condition.PNG" |
||||
dest_files=[ "res://.import/Event_Condition.PNG-7f4a2dbe15404fc55c0fdda27cd6fe3d.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Condition_in_use.PNG-86b74676182e6c775eae710456cbe8d4.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Condition_in_use.PNG" |
||||
dest_files=[ "res://.import/Event_Condition_in_use.PNG-86b74676182e6c775eae710456cbe8d4.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 5.5 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Emit_Signal.PNG-29a3fcdd35b5592c3ff1adca2227eaec.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Emit_Signal.PNG" |
||||
dest_files=[ "res://.import/Event_Emit_Signal.PNG-29a3fcdd35b5592c3ff1adca2227eaec.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 2.0 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_End_Branch.PNG-081876dfa5df74f8bd1922b91957d0f7.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_End_Branch.PNG" |
||||
dest_files=[ "res://.import/Event_End_Branch.PNG-081876dfa5df74f8bd1922b91957d0f7.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Question.PNG-03cb0b2c1bd44f6b99ae19336e724884.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Question.PNG" |
||||
dest_files=[ "res://.import/Event_Question.PNG-03cb0b2c1bd44f6b99ae19336e724884.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 32 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Question_in_use.PNG-373002c26425df47606663984f025574.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Question_in_use.PNG" |
||||
dest_files=[ "res://.import/Event_Question_in_use.PNG-373002c26425df47606663984f025574.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Set_Theme.PNG-73f2c9d713bc2975932401717f981883.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Set_Theme.PNG" |
||||
dest_files=[ "res://.import/Event_Set_Theme.PNG-73f2c9d713bc2975932401717f981883.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Set_Value.PNG-b2672955798f7f97c72e2c4f3f23f42d.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Set_Value.PNG" |
||||
dest_files=[ "res://.import/Event_Set_Value.PNG-b2672955798f7f97c72e2c4f3f23f42d.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 6.2 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Set_Value_random.PNG-46d4b8d8ff67af47afb6137a22fa0790.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Set_Value_random.PNG" |
||||
dest_files=[ "res://.import/Event_Set_Value_random.PNG-46d4b8d8ff67af47afb6137a22fa0790.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 3.0 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Event_Wait_Seconds.PNG-8023c213d12ebc598f48204427f06be2.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/Event_Wait_Seconds.PNG" |
||||
dest_files=[ "res://.import/Event_Wait_Seconds.PNG-8023c213d12ebc598f48204427f06be2.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 8.2 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/audio_event.png-abe3ddd1bd4a041a15bf5b182b4dc2c6.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/audio_event.png" |
||||
dest_files=[ "res://.import/audio_event.png-abe3ddd1bd4a041a15bf5b182b4dc2c6.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 4.7 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/text_event_1.png-c1ef7be33362776ee815070c9be95e63.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/text_event_1.png" |
||||
dest_files=[ "res://.import/text_event_1.png-c1ef7be33362776ee815070c9be95e63.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 5.1 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/text_event_2.png-d8c291379c3bc509219959a9270f0754.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Events/Images/text_event_2.png" |
||||
dest_files=[ "res://.import/text_event_2.png-d8c291379c3bc509219959a9270f0754.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
# Can I use C# with Dialogic? |
||||
It is experimental! So if you want to try it out and you find issues, let us know. Usage: |
||||
|
||||
`public override void _Ready() |
||||
{ |
||||
var dialog = DialogicSharp.Start("Greeting", false); |
||||
AddChild(dialog); |
||||
} |
||||
` |
||||
|
||||
This is the PR that added this feature: [https://github.com/coppolaemilio/dialogic/pull/217](https://github.com/coppolaemilio/dialogic/pull/217) |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Portraits not showing in game? |
||||
|
||||
Before the characters show up on screen, you need to make them join your current scene using the [Character Join](../Events/001.md). |
||||
|
||||
If you used the join event and you still don't see them, you should try modifying the offset and scale values in your character's portrait. |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
# Using signals? |
||||
|
||||
## Emit Signal event |
||||
You can learn more about how to use this event in it's own documentation page (in the Events folder). |
||||
|
||||
## Other signals |
||||
You can also listen to Dialogic using the four other signals: |
||||
|
||||
- **event_end** and **event_start** are emitted for each event in your timeline |
||||
- **timeline_end** and **timeline_start** are emitted when a timeline starts and ends. |
||||
|
||||
You can connect signals using the editor or via code: |
||||
`func start_dialog(): |
||||
var dialog = Dialogic.start("my_timeline") |
||||
dialog.connect("timeline_end", self, "dialog_ended") |
||||
add_node(dialog) |
||||
` |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
# How can I make a dialog show up in game? |
||||
|
||||
There are two ways of doing this; using gdscript or the scene editor. |
||||
|
||||
Using the `Dialogic` class you can add dialogs from code easily: |
||||
|
||||
``` |
||||
var new_dialog = Dialogic.start('Your Timeline Name Here') |
||||
add_child(new_dialog) |
||||
``` |
||||
|
||||
And using the editor, you can drag and drop the scene located at `/addons/dialogic/Dialog.tscn` and set the current timeline via the inspector. |
After Width: | Height: | Size: 91 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/dialogic-hero-1.3.png-7a281002dc7b4ec8e79698bd2ada9b48.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Images/dialogic-hero-1.3.png" |
||||
dest_files=[ "res://.import/dialogic-hero-1.3.png-7a281002dc7b4ec8e79698bd2ada9b48.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Dialog Node |
||||
|
||||
This node is what makes your dialogues appear. |
||||
|
||||
You can either drag it into one of your scenes from `/addons/dialogic/Dialog.tscn`, or create one using the `Dialogic.start()` function. |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
# Dialog Class |
||||
|
||||
|
||||
|
||||
### Methods: |
||||
#### start() |
||||
`start(timeline: String, reset_saves: bool=true, dialog_scene_path: String="res://addons/dialogic/Nodes/DialogNode.tscn", debug_mode: bool=false, use_canvas_instead=true)` |
||||
Starts the dialog for the given timeline and returns a Dialog node. |
||||
You must then add it manually to the scene to display the dialog. |
||||
|
||||
Example: |
||||
var new_dialog = Dialogic.start('Your Timeline Name Here') |
||||
add_child(new_dialog) |
||||
|
||||
This is exactly the same as using the editor: |
||||
you can drag and drop the scene located at /addons/dialogic/Dialog.tscn |
||||
and set the current timeline via the inspector. |
||||
|
||||
@param timeline The timeline to load. You can provide the timeline name or the filename. |
||||
@param reset_saves True to reset dialogic saved data such as definitions. |
||||
@param dialog_scene_path If you made a custom Dialog scene or moved it from its default path, you can specify its new path here. |
||||
@param debug_mode Debug is disabled by default but can be enabled if needed. |
||||
@param use_canvas_instead Create the Dialog inside a canvas layer to make it show up regardless of the camera 2D/3D situation. |
||||
@returns A Dialog node to be added into the scene tree. |
||||
|
||||
|
||||
#### start_from_save() |
||||
`start_from_save(timeline: String, initial_timeline: String, dialog_scene_path: String="res://addons/dialogic/Nodes/DialogNode.tscn", debug_mode: bool=false)` |
||||
Same as the start method above, but using the last timeline saved. |
||||
|
||||
@param timeline The current timeline to load |
||||
@param initial_timeline The timeline to load in case no save is found. |
||||
@param dialog_scene_path If you made a custom Dialog scene or moved it from its default path, you can specify its new path here. |
||||
@param debug_mode Debug is disabled by default but can be enabled if needed. |
||||
@returns A Dialog node to be added into the scene tree. |
||||
|
||||
## Previously on the Dialogic Singleton (RIP - rest in pain) |
||||
|
||||
#### set_current_timeline() |
||||
#### get_current_timeline() |
||||
|
||||
#### get_definitions() |
||||
#### set_definitions() |
||||
#### set_variable() |
||||
#### get_variable() |
||||
#### set_glossary_from_id() |
||||
#### set_variable_from_id() |
||||
|
||||
#### save_defintions() |
||||
|
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
# Character Editor |
||||
|
||||
The `Character Editor` is used to setup the characters of your story. Here you can learn more about the editors settings. |
||||
|
||||
## Names |
||||
### Name |
||||
The first setting is the characters name. This is the name that you will see in all the menus and by default it's the one displayed when the character is speaking. |
||||
|
||||
### Display Name |
||||
You can change what name is shown when the character speaks by enabeling and setting the `Display Name`. |
||||
|
||||
### Nicknames |
||||
By default all occurrences of the characters name in texts are colored in the characters color. |
||||
*This can be disabeled in the settings.* |
||||
By using the `Nicknames` feature you can add additional names that will also be colored. Just enable the Nicknames box and then add all Names that should be colored as a `,`-seperated list. |
||||
|
||||
## Color |
||||
Here you can set the characters color. This is the color that the characters name will be colored in texts (if not disabled). |
||||
You can also use this color to be used in themes for the `Name Label`. |
||||
*Can be found as 'Use character color', in the Name Label section* |
||||
|
||||
## Description |
||||
This is just for you to take notes. It has no effect on your game. |
||||
|
||||
## Portraits / Expressions |
||||
This is probably the most important section. Here you can load in all the images of your character. Give them useful names as it will make it easier to use them! |
||||
You can also import a whole folder of images with the **`Import images from folder`** button. |
||||
|
||||
## Preview |
||||
On the right you can see a preview of the currently selected portrait. |
||||
|
||||
## IMPORTANT nearly hidden settings |
||||
Below the preview there are three easy to miss, but very usefull settings: |
||||
|
||||
### Scale |
||||
Changing this allows you to scale the portraits down. Do this is the portraits turn up way to big in your game. |
||||
|
||||
### Offset |
||||
Allows to add some basic offset that will be added to your character. |
||||
|
||||
### Mirror portraits |
||||
This will mirror all of your portraits. You can then use the mirror option of the `Character Join Event`. |
@ -0,0 +1,93 @@
@@ -0,0 +1,93 @@
|
||||
# Theme Editor |
||||
|
||||
Themes allow you to set how the dialog looks, sounds and behaves. |
||||
|
||||
At the top of the Theme Editor you have a **preview field**, where you can also set the text to be previewed, the speaker of the preview and force a preview refresh. |
||||
|
||||
The settings are sorted into different sections. Most of the settings are self-explanatory but some are explained a bit further. |
||||
|
||||
## Dialog Text |
||||
Here you can set the look and behaviour of the text inside the dialog box. |
||||
|
||||
##### Behaviour>Speed |
||||
Using this setting you can change the speed at which the text is shown, where bigger values will result in a slower speed. |
||||
Setting this to 0 will result in the text being shown instantly. |
||||
|
||||
##### Behaviour>Single Portrait Mode |
||||
If you enable this mode, there will always only be one portrait visible, the one of the character currently speaking. |
||||
|
||||
## Dialog Box |
||||
### Visuals |
||||
For the background of the box you will have to choose between a solid color or a texture. For the texture you can also change it's modulation. |
||||
|
||||
##### Visuals>Full width |
||||
If you enable this setting the box will be stretched from left to right. |
||||
|
||||
##### Visuals>Box padding |
||||
The padding between the border of the box and the text inside the box. |
||||
|
||||
##### Visuals>Bottom gap |
||||
How far the box is from the bottom. |
||||
|
||||
### Next indicator |
||||
The next indicator is the little icon that appears once the text is completed. |
||||
|
||||
### Behaviour |
||||
##### Behaviour>Action Key |
||||
If you do not want to use the same action as the default one (in the settings) for advancing the dialog, you can select a different one for the current theme. |
||||
|
||||
##### Behaviour>Fade in time |
||||
This sets how long the theme takes to fade in. Fading only happens on dialog load and is not triggered by the `Set Theme` event. |
||||
|
||||
## Name Label |
||||
The `Name label` is the section above the text box that displays the name of the currently speaking character. |
||||
|
||||
##### Text>Use character Color |
||||
If you enable this, the name label will always use the color of the currently speaking character. The characters color can be edited in the [Character Editor](./Character.md). |
||||
|
||||
### Box |
||||
As for the text box, you can choose between a solid color or a texture. |
||||
|
||||
##### Box>Box Padding |
||||
The padding between the texture border and the text. |
||||
|
||||
### Placement |
||||
Here you can set the alignment of the `Name label` as well as setting some additional offset. |
||||
|
||||
## Choice Buttons |
||||
#####Advanced>Use Custom Buttons |
||||
If you enable this, you can select a scene that will be used as the buttons. Make sure the scene has a 'pressed', 'focus_entered' and 'mouse_entered' signal. |
||||
|
||||
##### Advanced>Use Native Buttons |
||||
ToDo: Find out if this works in any way. |
||||
|
||||
## Glossary |
||||
Here you can define how the box looks, that appears when you hover a glossary entry. |
||||
|
||||
##### Visuals>Word color |
||||
This is the color, that glossary entries have in the text. |
||||
|
||||
##### Behaviour>Show |
||||
If this is disabled, the glossary info box won't be shown and glossary entries won't be colored. |
||||
|
||||
## Audio |
||||
This sections allows you to set audio that plays at different moments. Each of the sections works the same, so the settings will only be explained once. Dialogic uses the [RandomAudioPlayer by TimKrief](https://gitlab.com/timkrief/godot-random-audio-stream-player). |
||||
|
||||
You can decide to select a single audio file or a folder where one file will be picked. |
||||
You can set a range for the `volume` (a random one in that range will be picked each time). Likewise you can set a range for the `pitch`. `Allow interrupt` decides whether the sound can be interrupted by a new sound of that type. |
||||
|
||||
##### Typing Sound Effects |
||||
This sound will be played for each appearing character. |
||||
|
||||
##### Next Sound Effects>Waiting |
||||
This is played once the text is completed. |
||||
|
||||
##### Next Sound Effects>Passing |
||||
This is played when the player continues. |
||||
|
||||
##### Choice Sound Effects>Hovered |
||||
When a choice button is hovered. |
||||
|
||||
##### Choice Sound Effects>Selecting |
||||
When a choice is selected. |
||||
|
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
# Timeline Editor |
||||
|
||||
The `timeline editor` is one of the central parts of Dialogic: here you can create your story using the Events. |
||||
|
||||
This editor consists of two parts, the main area and the event bar on the side, where you can find all events. |
||||
|
||||
## Building a timeline |
||||
You can press one of the event buttons to add the event below the selected one, or you can drag and drop them to where you want. |
||||
|
||||
You move events by clicking and dragging them. |
||||
|
||||
|
||||
## Shortcuts |
||||
Select multiple events by holding CRTL. Range select with SHIFT. |
||||
|
||||
The editor supports the following short-cuts: |
||||
` |
||||
CRTL+C copy selected events |
||||
CRTL+P paste selected events |
||||
CRTL+X cut selected events |
||||
DEL delete selected events |
||||
DOWN/UP select the next/previous event |
||||
ALT+UP/DOWN move the selected event up or down (only works with one event) |
||||
CRTL+A select all events |
||||
CRTL+SHIFT+A deselect all events |
||||
CRTL+Z undo the last event action |
||||
CRTL+Y or CRTL+SHIFT+Z redo the last undone action |
||||
|
||||
CRTL+T add a new Text event |
||||
` |
||||
|
@ -0,0 +1,170 @@
@@ -0,0 +1,170 @@
|
||||
# Beginners Guide |
||||
Let's begin creating your first dialog with Dialogic! |
||||
|
||||
|
||||
|
||||
## 1. Meeting the Dialogic tab |
||||
All the things related to your dialogue will be done in the Dialogic tab. You can access it like the 2D and 3D tab on the very top of the editor. |
||||
![Dialogic Tab](https://github.com/Jowan-Spooner/dialogic/blob/plugin-docs/addons/dialogic/Documentation/Content/Tutorials/Images/Dialogic_Tab.PNG) |
||||
|
||||
|
||||
Let's have a look into the `toolbar` at the top. |
||||
|
||||
![Toolbar](https://github.com/Jowan-Spooner/dialogic/blob/plugin-docs/addons/dialogic/Documentation/Content/Tutorials/Images/Toolbar.PNG) |
||||
|
||||
|
||||
### | The resources |
||||
Here you can create Dialogic's five **resources**. You will hear more on each of them later. |
||||
|
||||
**Timelines** represent a list of events. Show characters, make them talk, change the background, ask questions, emit signals, and more! |
||||
|
||||
**Characters** can have name, a special color, and different images for expressions. |
||||
|
||||
**Value Definitions** that can be used as variables to branch your story or be used inside the texts. |
||||
|
||||
**Glossary Entries** that can contain information that is shown in a popup when the player hovers over the word. |
||||
|
||||
**Themes** that specify how your dialogue is looking. There are many settings you can tweak to suit your need. |
||||
|
||||
### | The master tree |
||||
All your resources are shown in the big `master tree` on the left. You can select on which you want to work there, create sub folders and move the items by dragging them. |
||||
|
||||
*Let's continue! What is the most important thing for a dialogue? Someone to talk to. So we will create our first character.* |
||||
|
||||
-------------------- |
||||
|
||||
|
||||
## 2. Creating your first character |
||||
Click the little character icon in the toolbar to create a new character. You will see the `character editor` now. |
||||
### | Name |
||||
You can instantly type in the `name`, the character should have. Hit enter to set the name. |
||||
![Empty Character Editor](./Images/Empty_Character_Editor.PNG) |
||||
|
||||
### | Color |
||||
Go ahead and also set a `color`, by clicking on the color block. |
||||
|
||||
### | A default portrait/expression |
||||
Next let's add a default `portrait` for them. You can select a file by clicking the tree dots. |
||||
If you do not have a image to use right now, you can use the example dwarf from the `Example Assets folder` inside the Dialogic folder (res://addons/dialogic/Example Assets/portraits). |
||||
|
||||
|
||||
![grafik](./Images/Character_Editor_With_Portrait.PNG) |
||||
This is all for now. You can create as many characters as your story needs. |
||||
|
||||
*Now let's create our first dialogue!* |
||||
|
||||
-------------------- |
||||
|
||||
|
||||
## 3. Creating your first timeline |
||||
Timelines specify what events happen in which order. Create a new timeline with the icon in the toolbar. |
||||
You can now see the `timeline editor`. |
||||
|
||||
### | Name |
||||
Go ahead and give it a `name`. You can do so right after creating or double-click the item in the tree. |
||||
|
||||
### | Adding your first event |
||||
You can find all possible `events` on the right. |
||||
![Empty Timeline](./Images/Empty_Timeline_Editor.PNG) |
||||
|
||||
Go ahead and add a `Text` event (the very first, grey button), by clicking it or dragging it into the timeline area. |
||||
|
||||
The `Text` event is what will make text appear on the dialog box. |
||||
You can select a character that will say the text. Go ahead and let your character say something! |
||||
|
||||
### | More events! |
||||
Now we also want our character to be visible in the scene. For that, we use the `Character Join` event (the second, green event). |
||||
|
||||
Select what character should appear and at which of the 5 available positions. |
||||
|
||||
Make sure the new event is above the Text event. If it's not, you can drag it up (alternatively you can select the event and use `ALT+UP`/`ALT+DOWN`). |
||||
|
||||
### | Create your dialog |
||||
Now go ahead and try out the other events. If you want to learn more about them, click the little help button on them! |
||||
|
||||
FYI: new events get added below the currently selected one. |
||||
|
||||
If you want to delete an event use `DEL` key. |
||||
|
||||
After some time your dialogue might look something like this: |
||||
![TimelineExample](./Images/TimelineEditor_Example.PNG) |
||||
|
||||
*Now your dialog is ready to be played! But how? Let's find out!* |
||||
|
||||
-------------------- |
||||
|
||||
|
||||
## 4. Adding your first DialogNode to a scene |
||||
|
||||
There are two ways of doing this, using gdscript or the scene editor. |
||||
|
||||
### | Instancing the scene using gdscript |
||||
Using the `Dialogic` class you can add dialogs from code easily: |
||||
|
||||
` |
||||
var new_dialog = Dialogic.start('Your Timeline Name Here') |
||||
add_child(new_dialog) |
||||
` |
||||
|
||||
### | Instancing the scene using the editor |
||||
Using the editor, you can drag and drop the scene located at `/addons/dialogic/Dialog.tscn` and set the current timeline via the inspector. |
||||
|
||||
### | Run, game, run! |
||||
If you have done one of the previous steps, run your game (F5). I hope you will see your dialog appear. If not check if you missed something. You can also always ask for help on the discord. |
||||
|
||||
*Before you start to make your own dialog, let us introduce some more cool things!* |
||||
|
||||
-------------------- |
||||
|
||||
|
||||
## 5. Making your first value and glossary entry |
||||
This is already pretty cool, but let's make things more complex. We mentioned them earlier but here they are: `values` and `glossary entries`. |
||||
|
||||
### | Make a value |
||||
Create a new `value` by clicking the X-icon in the toolbar. You will now see the definition editor. |
||||
|
||||
Here you can give your value a name and a default value. |
||||
Now you can use that value in your dialogues. You can: |
||||
- change it with the Set Value event |
||||
- use it to have conditions (Condition event) |
||||
- add conditions to choices |
||||
- display it in texts by writing [MyValue] |
||||
|
||||
#### Example value |
||||
Here an example value ... |
||||
![ValueExample](./Images/Value_Example1.PNG) |
||||
... and how it might be used in a timeline. |
||||
![ValueExampleTimeline](./Images/Value_ExampleTimeline.PNG) |
||||
|
||||
### | Make a glossary entry |
||||
An `glossary entry` is used for extra information. If the name of this is used in a text or question event, the player can hover it and it will show a popup with the given information. You can also change the information during the game with the `Set Glossary` event. |
||||
|
||||
#### Example glossary entry |
||||
Here is an example glossary entry... |
||||
![GlossaryExample](./Images/Glossary_Example.PNG) |
||||
... and how it looks in the game. |
||||
![GlossaryExampleLook](./Images/Glossary_ExampleLook.PNG) |
||||
|
||||
*If you don't like the look of this box, don't worry. The next section is about customizing the look of your dialogue!* |
||||
|
||||
-------------------- |
||||
|
||||
|
||||
## 6. Create your first dialog theme |
||||
Themes are used to change the look. By default you already have a theme. Let's start by clicking it. |
||||
You will now see the `theme editor`. |
||||
|
||||
It has a preview at the top, and all the settings - grouped into multiple tabs - at the bottom. |
||||
I won't explain all the settings here. You can open the `Theme Editor Reference` if you wonder about one of the settings. |
||||
|
||||
The most important one is the Dialog Box's `Box Size`. If you are making a pixel-art game with a small resolution you will have to change it to be much smaller. Also change the font size to fit your games size. |
||||
|
||||
-------------------- |
||||
|
||||
|
||||
## Behind the scenes |
||||
If you wonder how all of this works, here is some (very) short explanation. |
||||
|
||||
All the resources are saved as `.json` or `.cfg` in a Dialogic folder in your games root directory `res://dialogic/`. |
||||
|
||||
Boom. There you go :). I'm to lazy to explain more. |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
# Getting started |
||||
|
||||
The video is a bit outdated since it was made using the previous version, but the concepts are the same. You can watch the video [here](https://www.youtube.com/watch?v=sYjgDIgD7AY) or use the new and improved guide [here](./BeginnersGuideStepByStep) |
After Width: | Height: | Size: 129 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Character_Editor_With_Portrait.PNG-88588c77d89d8a1c2f15f9be07073a87.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Character_Editor_With_Portrait.PNG" |
||||
dest_files=[ "res://.import/Character_Editor_With_Portrait.PNG-88588c77d89d8a1c2f15f9be07073a87.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Dialogic_Tab.PNG-3a868bb7f47fb141608e40d56ba89603.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Dialogic_Tab.PNG" |
||||
dest_files=[ "res://.import/Dialogic_Tab.PNG-3a868bb7f47fb141608e40d56ba89603.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 43 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Empty_Character_Editor.PNG-b81e9a25b7190089d68ae8c2351d5ed6.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Empty_Character_Editor.PNG" |
||||
dest_files=[ "res://.import/Empty_Character_Editor.PNG-b81e9a25b7190089d68ae8c2351d5ed6.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 36 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Empty_Timeline_Editor.PNG-508a5eb2b419ec35635764d597b0d17f.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Empty_Timeline_Editor.PNG" |
||||
dest_files=[ "res://.import/Empty_Timeline_Editor.PNG-508a5eb2b419ec35635764d597b0d17f.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Glossary_Example.PNG-c2cbcb58bda208cde5fff6ba9306fe10.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Glossary_Example.PNG" |
||||
dest_files=[ "res://.import/Glossary_Example.PNG-c2cbcb58bda208cde5fff6ba9306fe10.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 83 KiB |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
[remap] |
||||
|
||||
importer="texture" |
||||
type="StreamTexture" |
||||
path="res://.import/Glossary_ExampleLook.PNG-7b274bf4b5547fb36a98967673b795df.stex" |
||||
metadata={ |
||||
"vram_texture": false |
||||
} |
||||
|
||||
[deps] |
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Glossary_ExampleLook.PNG" |
||||
dest_files=[ "res://.import/Glossary_ExampleLook.PNG-7b274bf4b5547fb36a98967673b795df.stex" ] |
||||
|
||||
[params] |
||||
|
||||
compress/mode=0 |
||||
compress/lossy_quality=0.7 |
||||
compress/hdr_mode=0 |
||||
compress/bptc_ldr=0 |
||||
compress/normal_map=0 |
||||
flags/repeat=0 |
||||
flags/filter=true |
||||
flags/mipmaps=false |
||||
flags/anisotropic=false |
||||
flags/srgb=2 |
||||
process/fix_alpha_border=true |
||||
process/premult_alpha=false |
||||
process/HDR_as_SRGB=false |
||||
process/invert_color=false |
||||
process/normal_map_invert_y=false |
||||
stream=false |
||||
size_limit=0 |
||||
detect_3d=true |
||||
svg/scale=1.0 |
After Width: | Height: | Size: 55 KiB |