Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Runemark Dialogue System

Discussion in 'Assets and Asset Store' started by Runemark, Feb 27, 2018.

  1. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    AssetStore Large Image.png
    The Dialogue System is a node based visual editor. With it you can create interactive dialogues fast and easy. The system helps you to make not just a simple dialogue, but a complex branched conversion without writing a line of code. Our goal was to make a non-programmer friendly solution, with maximum flexibility.

    Visit the Asset Store

    Follow us for updates and news:
    website | facebook | twitter | youtube

    1 - Visual Editor.png 2 - Complex Graphs.png 3 - Skin System.png 4 - Demoscene.png
    Framework
    - Dynamic branched conversations with multiple choices.
    - Complex conditions or logic without scripting
    - Random node, that you can use for everything.
    - Local and Global variables
    - Custom event and Event call nodes.
    - Retargetable Dialogue Graphs

    Additional Features
    - Built-in and customizable Save & Load, even without scripting
    - Detailed User Documentation in pdf
    - Well commented C# scripts
    - Full source code (no DLLs)
    - Example Scenes​
     
    Last edited: Apr 25, 2019
    lightwaterjohn and AGregori like this.
  2. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Frequently Asked Questions

    Is it possible to play an Animation from the Dialogue Graph? [Video]
    Yes. Although the Dialogue System doesn't have built-in node for animator component yet, it's very easy to achive this with the Call Event node. Even without writing a single line of code. Check the youtube video!

    Does it have built-in Localization or does it support any 3rd party asset?
    Not at the moment (version 2.0). But I'm planning to add built-in solution in 2.1.
     
    Last edited: Mar 28, 2018
  3. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    [reserved]
     
  4. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Released in the Asset Store!
    I also uploaded a version for Unity 5.6 support, it's in pending status right now, waiting for Unity Team to allow it.

    Check out the first tutorial video too. (This is also my first ever tutorial video, so sorry for the quality.)

     
  5. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Q&A mini-tutorial about how to play an animation from the Dialogue Graph.
     
  6. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    In this tutorial you can learn how to set Actor Name and Portrait, how to create conversation with multiple participants. Also I'll show you how to use voice over audio clips for Actor text, and for player answers as well.
     
  7. lightwaterjohn

    lightwaterjohn

    Joined:
    Nov 29, 2017
    Posts:
    13
    Would be great to see a short video showcasing some of the key features. I also see it's on sale 70% off
     
  8. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    Does this dialogue system work with Oculus VR?
     
  9. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Hey Daniel!
    I can't see any obstacle to work it with VR, I didn't tested it though (don't have VR yet). It uses the Unity built-in UI elements.
     
  10. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    2.2.0 - Localization (Work In Progress)
    Localization or multi-language support was the most asked features since I released the asset. I understood the importance of this feature, but I don't really know how to implement it in the right way.
    I worked with the 3D Game Kit in the previous months, and that asset gave me a pretty good idea how should I do it.

    Let me show you what I achieved. The feature is still in WIP state, some parts might change until release.

    I'm using a new type of scriptable object: Translated Dialogue Graph. After you create it, you can assign an existing Dialogue Graph as an Original.
    Localization 1.jpg

    The Translated Dialogue Graph will collect all the Text Nodes that exists in the Original Dialogue Graph.
    You can see on the image below my first attempt for the UI design.
    The TextNodes are listed on the left side of the window.
    Clicking on them will open the editor on the right side.

    Here you can write the translation for your Text and for your answers on the TextNode. You will need one Translated Dialogue Graph per Language.

    2.jpg

    I also started to work on a Language Editor, where you can manage your languages. This will be another Scriptable Object, that should live in your Resources folder.

    3.jpg
    Setting the language from a code would look something like this, but I'm planning to create a component to make this for the non-coders easier.

    Code (CSharp):
    1.  LanguageDatabase.Instance.CurrentIndex = 1;
    Questions and suggestions are more than welcome! :)
     
    lightwaterjohn likes this.
  11. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Localization is done, so I can work on other features. A few weeks ago I got an email from one of my customers. She asked me to show how she can bind keys to answers. The dialogue system lacks this feature currently, but I wrote a workaround code quickly.

    I thought it would be cool to make this an integrated feature. I'm pretty satisfied with how this turned out.
    keybindings.jpg

    UI Skins now have a new option to select a template for automatic key bindings.
    • None: this option is how currently the skin working.
    • Alphanumeric 1 To 9: in runtime, the UI Skin will iterate through the answers, and bind them to an alphanumeric button. It works with the dynamically expand option too! :)
    • First Only: You can automatically bind the first answer to the selected key. This is useful for such answers line Skip or Next. This option will ignore the key settings for all of the answers, but the first.
    You can also set every answer keybinding manually.
    keybindign1.jpg
    If you know any other commonly used keybinding template for answers, let me know, I'll add them!


    Release day for the 2.2.0 version is getting closer and closer.
    I'm thinking about to increase the price of the asset with this update, with a few bucks or so. I didn't decide it yet but wanted to let you know. In case you want to grab the asset with the lower price, you can do it here. ;)
     
    StevenPicard likes this.
  12. MaZy

    MaZy

    Joined:
    Jun 29, 2012
    Posts:
    103
    Hey, does it support file reads? For example if you want to create / save / load xml file (does not to be xml. Just human readable and editable files to edit or fix on bugs without to rebuild the game)
     
  13. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Hi!
    For the upcoming release, it doesn't, however, I'm planning to add import/export csv option. It was in the current plan, but I had to cut it out, for now, to keep the development time reasonable low.
    Also, I had a plan to put a google spreadsheet support too, once. :D
     
  14. MaZy

    MaZy

    Joined:
    Jun 29, 2012
    Posts:
    103
    Ok nice. I am using it right know but I think I found a bug. If I use canvas scaler the instantiated answer/buttons have not same scale values like the template button in the prefab. So the first button is 1,1,1 but others are 0.7 and so on based on the canvas scale.

    This is how it looks:


    At the moment I fixed it myself: Its in DialogueSystemUISkin.cs Line 132
    Code (CSharp):
    1. a.transform.SetParent(_answers[0].transform.parent);
    to
    Code (CSharp):
    1. a.transform.SetParent(_answers[0].transform.parent, false);
     
  15. MaZy

    MaZy

    Joined:
    Jun 29, 2012
    Posts:
    103
    I also miss some methods. For example the witcher skin is cool and I wanted to bind hotkeys. Example answer 1 would be keycode.alpha1. So there is SelectAnswer(id) method but no explanation where I can get the id.

    With debugging I found out there are ids like "AnswerOutput_0". But still I cannot use it for loops because I cannot see how many answers player can choose (via script).

    There should be real index numbers for answer selection. (EDIT: I know in the future there will come keybinding but would be cool if we have possibility to do own things too :p)

    Also I miss there something like Global Dialogue Manager where I have few important things like OnDialogueStart. For example I could use it to hide or show the cursor. I know every DialogueBehaviour has a ConversionFlow with these events but I needed to deal with every changes.
     
    Last edited: May 16, 2019
  16. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Hi Mazy!
    2.2.0 will come into the asset store next Monday. Well, I'll upload it on Monday, after that it depends on the speed of Unity Team.

    I fixed the scaling issue for the update. Thanks for pointing it out!

    Selecting an answer by the index is a good idea. I added a new method for the Dialogue Behaviour that will do this for you. This will be added to 2.2.0 as well.
    Code (CSharp):
    1. public void SelectAnswer(int index)
    Unfortunately, I don't have time for the Global Dialogue Manager right now but would love to talk about more. Could you explain this idea more in depth, please?
     
  17. cristims

    cristims

    Joined:
    Dec 21, 2012
    Posts:
    24
    Hi.
    I just purchased your system and I have some problems.

    1. I have created a small dialogue, added the canvas and the skin, and when I hit play and try to select an answer, it only selects the top answer, all the time. Whatever you choose, and whatever answer you click on, only the top answer gets selected and this is a major problem....This issue also happens while playing the demo scene...

    2. I get all these editor warnings all the time: "Unable to find style 'ObjectPickerGroupHeader' in skin 'LightSkin' Layout
    UnityEngine.GUIStyle:eek:p_Implicit(String)"... can you do something about this?

    3. Is there a way to continue the dialogue without an answer, just to click and go to the next text box? Can you add this please?

    Thank you for your time, kind regards.
     
    Last edited: Jun 11, 2019
  18. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Hi @cristims!
    First what version of unity do you use? (I assume from the 2nd problem 2018+)

    1) Did you make a new skin, or did add one from the prefab folder? If the latter, which one?

    2) Because these are warnings it has a lower priority on my list. I know, it can be annoying but doesn't affect the functionality. The problem here is the difference between unity versions how you can use the built-in GUI styles. It only happens in editor mode. This is a known problem, and I'll sort it out soon.

    3) What do you mean here? If you add an answer with the "next" text, that should do it. Or would you spare the time adding an answer to every single node?
     
  19. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    @cristims
    I fixed the first problem. A new version is available in the Asset Store!
     
  20. Pandur1982

    Pandur1982

    Joined:
    Jun 16, 2015
    Posts:
    275
    Hello Runemark, at first thx for that great Asset.

    I have found a Bug, when i create a ThirdParty Event (playmaker) as Event Call that work fine when i save the Project and the scene and close Unity and restart Unity the Event Call will not Save. In the Dialouge Graph i have the file Playmaker Event but when i click on it i have script /None /Mono Script.

    I Use Unity 2019.2.0f1.

    And a other Question is in the RunemakerVisual Editor , can you bring a Function for peopel they have no 3 Button Mouse ? In the Animator i can press hold ALT and with the left Mouse Key for moveing arround.
     
  21. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Hi @Pandur1982, thanks for contacting!
    I successfully reproduced this issue in 2019.2.0f1. I wasn't able to find the problem though.
    I think one of the changes Unity made in version 2019 is the reason for this. Currently, I lack the time to make a deeper investigation.

    I would suggest you a workaround here instead. Use the Call Event Node and on the dialogue behavior make a unity event that calls the "SendEvent(event name)" on the right FSM.

    I add your mouse request to my blacklog, thanks for the suggestion!
     
  22. Pandur1982

    Pandur1982

    Joined:
    Jun 16, 2015
    Posts:
    275
    Thx for your answer, when i back at Home i will make a dialoug with call Event node to test it out.
     
    Runemark likes this.
  23. Pandur1982

    Pandur1982

    Joined:
    Jun 16, 2015
    Posts:
    275
    Hello , any new updates planned for the future?
     
  24. PHeimann

    PHeimann

    Joined:
    Feb 13, 2020
    Posts:
    6
    I have a problem to rename the generated graph. If you try to rename it gets a new name, but the graph is now a child of the renamed object. You cannot open the renamed object. When you make a new graph with the old "New DialogGraph" then the old graph is deleted.
     
  25. PHeimann

    PHeimann

    Joined:
    Feb 13, 2020
    Posts:
    6
    Another question I have, why is it not possibel to select any answer by mouse click, all answers are implemented as buttons.
     
  26. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
    Hey @PHeimann!
    Not sure, but I think something changed in Unity and that makes the renaming issue. I actually encountered the same problem recently with a completely different project. Are you using 2019.3?

    You should be able to answer by mouse click. Maybe you miss the EventSystem from your scene, or some other UI element blocks the raycast?
     
  27. PHeimann

    PHeimann

    Joined:
    Feb 13, 2020
    Posts:
    6
    I am using Unity 2019.3.15f1 and it could be really a problem introduced by Unity. Especially the version 15f1 makes problems otherwise. For me now it is not possible to use the system because you only can use one graph.
    About the mouse click, when I run your demos, the mouse click for answers work. But in my case I use the invector third person controller and the mouse input is mapped differently. The left mouse is used for melee combat, so by using the dialog system one should remap the mouse input.
     
  28. Lampeye

    Lampeye

    Joined:
    Sep 10, 2014
    Posts:
    2
    Hi @Runemark

    Recently purchased the dialogue system and happy with it so far. I think I've come across a bug with Variables and Weighted branches however, as I've found that plugging in variables (Local or Global) to a weighted branch, results in the first option being the one picked without exception. This is also the case when plugging in constants, as the first option in the weighted branch is always selected. Hope you can maybe clear up any confusion. Thanks
     
  29. nofit64

    nofit64

    Joined:
    Sep 5, 2020
    Posts:
    1
    Hi @Runemark, I really like the features this product has to offer, but I have small regrets that I bought it, because I didnt know your package does not support the new input system of Unity, which I am using to handle input. Your package uses the old input system and I get errors because of it. Not that it is a bad thing, but I wish I knew beforehand or thought about it first before buying it. I really want to use this package though..
     
  30. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    244
  31. RetroVertigo2019

    RetroVertigo2019

    Joined:
    Dec 29, 2020
    Posts:
    30
    Hey @Runemark I recently bought your Dialog System and I am trying to get it working where my character can walk up to someone and press a button and then the dialog will pop up. I have the Trigger set to Custom, and I am trying to add the StartDialog into my NPC AI script I have made, but I am not sure how to handle this. If I just add StartDialog I get an error, so I was looking to see if I needed to add any using elements or something. I did get to where I could add Runemark.DialogueSystem.DialogueBehaviour.StartDialogue() but I am not sure what parameters to give it. Do you have any documentation on that part or any advice on it?
     
  32. pjdleroi

    pjdleroi

    Joined:
    Apr 18, 2021
    Posts:
    1
    Hey @Runemark I bought your system and trying to figure stuff out. Also starting out as a programmer. I'm struggling a bit with local and global variables. Is it possible to have a toggle linked to a variable, like something of an option in a menu? So that when that toggle is on, it can be fed to the dialog system. Also I noticed that when you delete a node in the editor, it will stay in the assets of unity and you can't delete them, so it clogs the window quite fast.
    Thanks in advance!
     
  33. whitephenix13

    whitephenix13

    Joined:
    Nov 15, 2020
    Posts:
    1
    @Runemark Hi, I just bought your asset and it looks really promising.
    I have the same the file renaming problem as @PHeimann mentionned (using Unity 2019.4)
    I am able to hotfix it by renaming the file manually and editing the .asset file by setting the m_name field using notepad++.
    Did you find a way to correct this issue properly?
     
  34. simdo01

    simdo01

    Joined:
    Dec 6, 2021
    Posts:
    4
    Does this product support TextMeshPro in the UI?

    thx
     
  35. Lyrdinn

    Lyrdinn

    Joined:
    Oct 13, 2022
    Posts:
    2
    How can I change the node that I want to play ? I want to have multiple dialogues and I keep searching and searching and I still can't figure out where I can say StartDialogue(specificDialogue) or where I can change the DialogueGraph inside the DialogueBehaviour by code