Search Unity

Runemark Dialogue System

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

  1. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    179
    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 Gregorik like this.
  2. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    179
    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:
    179
    [reserved]
     
  4. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    179
    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:
    179
    Q&A mini-tutorial about how to play an animation from the Dialogue Graph.
     
  6. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    179
    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:
    366
    Does this dialogue system work with Oculus VR?
     
  9. Runemark

    Runemark

    Joined:
    May 23, 2013
    Posts:
    179
    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:
    179
    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:
    179
    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:
    81
    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:
    179
    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:
    81
    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:
    81
    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:
    179
    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:
    179
    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:
    179
    @cristims
    I fixed the first problem. A new version is available in the Asset Store!
     
  20. Pandur1982

    Pandur1982

    Joined:
    Jun 16, 2015
    Posts:
    238
    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:
    179
    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:
    238
    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.