Uploaded game files
|
@ -0,0 +1,37 @@
|
|||
# Adding character animations
|
||||
|
||||
Dialogic 1.4 introduced a new animation system ([Anima by Alessandro Senese](https://github.com/ceceppa/anima)).
|
||||
The files for the animations are stored in the `/dialogic/addons/dialogic/Nodes/Anima/animations` folder.
|
||||
|
||||
There are two different kind of animations: Entrances and exits and attention seekers.
|
||||
You can add your custom animations by creating new `.gd` files in the `animations/entrances_and_exists` or `animations/attention_seeker` folder.
|
||||
|
||||
## Entrances and exits
|
||||
These are used when you have a character showing up or leaving a scene using the character event.
|
||||
A regular fade in animation looks something like this:
|
||||
|
||||
```
|
||||
func generate_animation(anima_tween: Tween, data: Dictionary) -> void:
|
||||
var opacity_frames = [
|
||||
{ from = 0, to = 1, easing_points = [0.42, 0, 0.58, 1]},
|
||||
]
|
||||
anima_tween.add_frames(data, "opacity", opacity_frames)
|
||||
```
|
||||
|
||||
## Attention seekers
|
||||
These are used when you when using the Character event and the Update setting.
|
||||
They can be used to make a character shake, bounce or any other one to emphasize the character.
|
||||
|
||||
They look something like this:
|
||||
```
|
||||
func generate_animation(anima_tween: Tween, data: Dictionary) -> void:
|
||||
var frames = [
|
||||
{ percentage = 0, from = 1 },
|
||||
{ percentage = 25, to = 0 },
|
||||
{ percentage = 50, to = 1 },
|
||||
{ percentage = 75, to = 0 },
|
||||
{ percentage = 100, to = 1 },
|
||||
]
|
||||
|
||||
anima_tween.add_frames(data, "opacity", frames)
|
||||
```
|
|
@ -0,0 +1,166 @@
|
|||
# Beginners Guide
|
||||
Let's walk you through creating dialogue with Dialogic!
|
||||
|
||||
|
||||
|
||||
## 1. Meeting the Dialogic tab
|
||||
Everything related to dialogue will be done in the Dialogic tab. You can access it like the 2D and 3D tab at the very top of the editor.
|
||||

|
||||
|
||||
|
||||
Let's have a look at the `toolbar` at the top.
|
||||
|
||||

|
||||
|
||||
|
||||
### | 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 looks. 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 which you want to work with there, create sub folders, and move items by dragging them.
|
||||
|
||||
*Let's continue! What's the most important thing in dialogue? Someone to talk to. So, let's create our first character.*
|
||||
|
||||
--------------------
|
||||
|
||||
|
||||
## 2. Creating your first character
|
||||
Click the little character icon in the toolbar to create a new character. This will take you into the `character editor`.
|
||||
### | Name
|
||||
When creating a character, you may start typing in the `name` that the character should have. Hit enter to set the name. You can also double-click on their icon in the Character list on the left to set it.
|
||||

|
||||
|
||||
### | 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 three dots to the right of the blank path. You can also set a name for the expression on the left.
|
||||
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).
|
||||
|
||||
|
||||

|
||||
This is all for now. You can create as many characters as your story needs.
|
||||
|
||||
*Now, let's create our first dialogue timeline!*
|
||||
|
||||
--------------------
|
||||
|
||||
|
||||
## 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.
|
||||

|
||||
|
||||
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, and this will add their `name` above the dialogue box. Go ahead and let your character say something!
|
||||
|
||||
### | More events!
|
||||
If we also want our character to be visible in the scene, we use the `Character Join` event (the second, green event).
|
||||
|
||||
Select what character should appear and at which of the 5 available positions. This will add their character to the scene. The portrait position is approximate, and can be adjusted by setting their offset in their Character Editor.
|
||||
|
||||
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 dialogue
|
||||
Now go ahead and try out the other events. If you want to learn more about them, click the little help button on them! This will open up the documentation for that item.
|
||||
|
||||
Keep in mind that, when adding new events with their buttons, they get added beneath the currently selected one.
|
||||
|
||||
If you want to delete an event use `DEL` key or click the three dots on the right and select `Remove`.
|
||||
|
||||
After a little effort, your dialogue tree might look something like this:
|
||||

|
||||
|
||||
*Now your dialogue tree is ready to be played! But how? Let's find out!*
|
||||
|
||||
--------------------
|
||||
|
||||
|
||||
## 4. Adding your first DialogNode to a scene
|
||||
|
||||
You can add dialogue trees - in the form of Dialog nodes - by one of two ways: gdscript or the scene editor.
|
||||
|
||||
### | Instancing the scene using gdscript
|
||||
Using the `Dialogic` class, you can add dialogue trees from code easily:
|
||||
|
||||
```gdscript
|
||||
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!
|
||||
Once you've done one of the previous steps, run your game (F5) or the scene (F6). Check to see if your dialogue begins. If not, check to see if you missed a step. If you're still having trouble, or just want to let us know what you think, you can always join us on our Discord channel.
|
||||
|
||||
*Now that you've mastered the basics, let's 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. There are two other resources that can help provide greater flexibility to your dialogue timelines: `values` and `glossary entries`.
|
||||
|
||||
### | Make a value
|
||||
Create a new `value` by clicking the X-icon in the toolbar. This will open up the definition editor.
|
||||
|
||||
This allows you to set a name for your value and a default value.
|
||||
Now you can use this value in your timelines. You can:
|
||||
- change it with the Set Value event
|
||||
- use it to have conditions (through the Condition event)
|
||||
- add conditions to choices
|
||||
- display it in text by writing [MyValue]
|
||||
|
||||
#### Example value
|
||||
Here an example value ...
|
||||

|
||||
... and how it might be used in a timeline.
|
||||

|
||||
|
||||
### | Make a glossary entry
|
||||
A `glossary entry` is used for extra information. If the name of this is used in a text or question event, the player can hover over it with their indicator, 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...
|
||||

|
||||
... and how it looks in the game.
|
||||

|
||||
|
||||
*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. If you need additional information about a setting, the `Theme Editor Reference` can help you out.
|
||||
|
||||
One of the most important settings is the Dialogue 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. You can also change the font size to fit your game's size.
|
||||
|
||||
--------------------
|
||||
|
||||
|
||||
## Behind the scenes
|
||||
To get an idea for how all of this is built and operated, all the resources are saved as `.json` or `.cfg` in a Dialogic folder in your games root directory `res://dialogic/`.
|
|
@ -0,0 +1,3 @@
|
|||
# Getting started
|
||||
|
||||
This video is a bit outdated since it was made using the previous version, but the concepts are the same as what we do now. You can watch the video [here](https://www.youtube.com/watch?v=sYjgDIgD7AY) or use the new and improved guide [here](./BeginnersGuideStepByStep.md)
|
After Width: | Height: | Size: 129 KiB |
|
@ -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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 27 KiB |
|
@ -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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 43 KiB |
|
@ -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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 36 KiB |
|
@ -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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 15 KiB |
|
@ -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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 83 KiB |
|
@ -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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 55 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/Import_Selection.PNG-c43f6694aa6604864297e096cdd63b91.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Import_Selection.PNG"
|
||||
dest_files=[ "res://.import/Import_Selection.PNG-c43f6694aa6604864297e096cdd63b91.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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 95 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/TimelineEditor_Example.PNG-15eec17720b37f03e5438065226d14ca.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/TimelineEditor_Example.PNG"
|
||||
dest_files=[ "res://.import/TimelineEditor_Example.PNG-15eec17720b37f03e5438065226d14ca.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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/Toolbar.PNG-c15bbedd058e9f4460ab85836a52b6e3.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Toolbar.PNG"
|
||||
dest_files=[ "res://.import/Toolbar.PNG-c15bbedd058e9f4460ab85836a52b6e3.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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 6.5 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/ValueInUse.PNG-b73ec239496719f3ef4c2c5e92505090.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/ValueInUse.PNG"
|
||||
dest_files=[ "res://.import/ValueInUse.PNG-b73ec239496719f3ef4c2c5e92505090.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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/Value_Example1.PNG-c634010ced69a9a3f06bd3f936197066.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Value_Example1.PNG"
|
||||
dest_files=[ "res://.import/Value_Example1.PNG-c634010ced69a9a3f06bd3f936197066.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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
After Width: | Height: | Size: 60 KiB |
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/Value_ExampleTimeline.PNG-6bfa8a46f616569450bd2d9b8ad27fe3.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/dialogic/Documentation/Content/Tutorials/Images/Value_ExampleTimeline.PNG"
|
||||
dest_files=[ "res://.import/Value_ExampleTimeline.PNG-6bfa8a46f616569450bd2d9b8ad27fe3.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=false
|
||||
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=false
|
||||
svg/scale=1.0
|
|
@ -0,0 +1,52 @@
|
|||
# Saving and loading
|
||||
|
||||
Dialogic can handle saving and loading the game for you.
|
||||
|
||||
## Simple saving
|
||||
By default, Dialogic's autosave settings are turned on. They will save whenever you start a new timeline.
|
||||
To trigger a save you can also use the `Save` event, or call `Dialogic.save()`.
|
||||
|
||||
## Simple loading
|
||||
All the saving in the world will have little visible effece if you don't load your dialogue.
|
||||
|
||||
To do so, you can call `Dialogic.load()`.
|
||||
|
||||
Then you can use `Dialogic.start('')` to play from the last saved point. As a fallback (for the first game, or if the player finished the game last time), you can give a default timeline as the second argument: `Dialogic.start('', 'Chapter1')`.
|
||||
|
||||
In case you want to restart, you can do `Dialogic.reset_saves()` before calling `Dialogic.start()`.
|
||||
|
||||
|
||||
|
||||
## Implementing save slots
|
||||
Many games allow you to have more then one save at the same time.
|
||||
|
||||
To make this easily possible, you can do `Dialogic.save('slot_name')` and `Dialogic.load('slot_name')`.
|
||||
|
||||
There are some more functions for slots:
|
||||
|
||||
- `Dialogic.get_slot_list()` returns a list of slots.
|
||||
- `Dialogic.erase_slot('slot_name')` deletes the given slot.
|
||||
- `Dialogic.get_current_slot()` returns the name of the last loaded slot.
|
||||
- `Dialogic.reset_saves('slot_name')` will reset the given slot.
|
||||
|
||||
For making menus with this, the function `Dialogic.has_current_dialog_node()` is useful, as it will tell you whether a dialogue node is instanced right now.
|
||||
|
||||
For **visual novels** there is a [template with a full menu](https://github.com/Dialogic-Godot/visual-novel-template). You can look at the implementation there if you are want to know how to do a menu.
|
||||
|
||||
|
||||
## Custom saving/loading (export+import)
|
||||
Some games might not want to use dialogic's built in saving system, but still want to save and load dialogic data.
|
||||
|
||||
The `Dialogic.export()` function will give you all the important information in a dictionary that you can save or do whatever you want with.
|
||||
|
||||
You can then use `Dialogic.import(data)` to import a dictionary. After you have done so, you can use `Dialogic.start('')` like before.
|
||||
|
||||
|
||||
## Saving custom information
|
||||
Dialogic has a dictionary of custom information that you can use to store things unrelated to dialogic too. You could store your players location in there or other variables.
|
||||
|
||||
There are two functions for this:
|
||||
- `Dialogic.get_saved_state_general_key('key')`
|
||||
- `Dialogic.set_saved_state_general_key('key', value)`
|
||||
|
||||
This dictionary is saved and loaded (or exported/imported) alongside the other information.
|
|
@ -0,0 +1,17 @@
|
|||
# Updating to 1.4
|
||||
|
||||
1.4 has brought some big changes, and a few changed the behavior in a way that might break some older code of yours.
|
||||
This assumes you are upgrading from version 1.3.
|
||||
|
||||
Here is everything you need to do to successfully updated (as far as we know):
|
||||
|
||||
## 1. Make a backup of your project
|
||||
- Close your project/Godot
|
||||
- Make a full project backup just in case you lose some data while upgrading
|
||||
- Remove the `/addons/dialogic` folder from your project
|
||||
- Paste the new Dialogic 1.4 into the addons folder
|
||||
- Open your project/Godot again
|
||||
- Enable the new Dialogic from the plugin menu (Project Settings/Plugins)
|
||||
|
||||
## Update the call node events target functions
|
||||
- The `Call Node Event` now sends arguments instead of a single array. If you were using it in one of your timelines you will need to update the functions you are calling to accommodate this. So if the function you were calling before was something like `func hello(Array)` now it should be `func hello(argument1, argument2, argument3, ...)` with as many arguments as you have in the event settings.
|
|
@ -0,0 +1,19 @@
|
|||
# Values
|
||||
|
||||
Values are a dialogic resource that allows to store strings and integers and easily reference them with dialogic.
|
||||
|
||||
Once created, a value with a name (e.g. `PlayerName` or `PlayerStrength`) can be added into text events by using square brackets:
|
||||

|
||||
|
||||
It can also be used in conditions (Condition Event, Choice Event).
|
||||
|
||||
From outside values can be accessed using the DialogiClass:
|
||||
```
|
||||
func _ready():
|
||||
Dialogic.set_variable('PlayerName', 'John')
|
||||
if Dialogic.get_variable('PlayerStrength') > 10:
|
||||
print("Wow, so strong!")
|
||||
```
|
||||
|
||||
You can also use the whole path when referencing variables. In text this could look like `[Characters/Player/Name]`, in code like `Dialogic.set_variable('Characters/Player/Name', 'Sally')`.
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# Voice Line Support
|
||||
|
||||
You can add audio to your text events! Here's what you have to do:
|
||||
|
||||
## 1. Settings
|
||||
In Dialogic's `Settings` window, enable audio for Text events.
|
||||
|
||||
I recommend also creating a `new audio bus` for your voice lines.
|
||||
If you do this correctly now and select it as the default bus (the next setting), you wont have to select it every time.
|
||||
Having a seperate bus allows you to control the volume and effects of the voice lines seperately from your other audio.
|
||||
|
||||
## 2. Adding audio to your Text events
|
||||
Now when you see a Text or Question event, you should find that it has a new section called 'Audio Pickers'.
|
||||
For each line (except if "New lines create extra messages" is off) you will find an Audio picker.
|
||||
You can select the `audio file` you want to play while that line is shown.
|
||||
|
||||
You can also change `volume`, `audiobus`, and an `audio region` (the second to begin at and the one where to end).
|
||||
Leave both audio-regions at 0 to play the whole file.
|
||||
|
||||
Great! That's all you need to know.
|