Dialogue Tree First Impressions / Eval / Requests

NodeCanvas Forums General Discussion Dialogue Tree First Impressions / Eval / Requests

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #10563
    jalex19
    Participant

    I dove into the dialogue tree this evening to check it out. I was going to write a post detailing some feature requests with pictures, but it was easier to just make a video showing it: (just uploaded so quality is bad I think until Youtube optimizes it in ~ 1 hr)


    I’d love to be able to use NC for the dialogue for my game, and these additions will make that possible 🙂

    #10565
    jalex19
    Participant

    Something to follow this up – I didn’t see an obvious way to make new custom dialogue nodes like I might make a new action or condition (which I’m doing a lot of now for BTs). If this is / becomes possible, maybe the things I talk about in the video are things that we could create on our side.

    #10567
    Gavalakis
    Keymaster

    Hey!

    Thanks a lot for the detailed video regarding your requests 🙂
    Let me adress them one by one:

    1. Show last dialogue text.
    I’ve implemented this and is now possible. The last dialogue text is now shown along with the multiple choice options UI if the node just before the MultipleChoice node is a “Say” node, this is done automaticaly.

    2. Adding options first and connections later.
    I’ve just changed the MultipleChoice node to work this way instead of like you said “backwards”. Thus you can now first add options and connect child nodes later.

    3. Ports and automatic sorting.
    I really think that automatic sorting from left to right is intuitive in this case. Maybe I’ve become used to it, but I think the automatic sorting from left to right, enforeces a more clean dialogue tree design (instead of connections criss-crossing each other for example).
    As for connections outgoing from the right side of the node, if I were to change the connection style of the MultipleChoice node, then I would have to change it for all the nodes as a whole for consistency, but I really like a top-to-botom tree for dialogues instead of left-to-right as in my mind it makes a bit more sense visually. I agree that the MultipleChoice node specificaly could work better in a left-to-right approach, but it’s a bit of a sacrifice in favour or the rest.
    I really hope this section is not a big issue for you. I will further take a look at how to possibly improve this, while keeping the connections style top-to-bottom.

    4. Choice conditions.
    This is already possible and you can add conditions per option. If a condition is false, the option will not be shown in the UI. To add a condition to an option, you have to select the revelevant connection. I just opted to put the UI in the connection so that the MultipleChoice inspector remains cleaner, but I can see how that can lead to some confusions. Thus, I just changed this and the conditions inspector are now shown within the MultipleChoice inspector under each option like your describe in the video.

    Finaly, regarding custom dialogue nodes, if you are refering to Actions and Conditions, you can use made Action and Condition Tasks, within the dialogue tree, using the Action and Condition dialogue tree nodes as well as said above, within a MultipleChoice node for the options. Are you though refering to creating completely new dialogue nodes that do something other that what’s already possible? If so, what kind of node for the dialogue tree would you like to see?

    Thank you!
    Gavalakis Vaggelis

    Join us on Discord: https://discord.gg/97q2Rjh

    #10572
    jalex19
    Participant

    Hey there,

    Thanks for the quick, and more importantly, detailed and thoughtful response – I look forward to checking these changes out.

    Re #1 & 2: – Awesome I’ll play around with this when I see the update pop on the asset store!

    Re #3: Thankfully this is the one I was least concerned about, and understand your reasoning behind it. While I do prefer Dialogue Trees as Left to Right as a whole (but FSMs and BTs strictly top down!) – it’s probably because I spent a while working in one writing quests/dialogue for an MMO and got used to that flow. Game didn’t get released, and can’t post a screenshot of the tool but Articy Draft has a similar layout:
    http://www.nevigo.com/en/wp-content/uploads/2015/01/02-Fictiorama-Studios-ad-Screenshot-01.jpg

    However all that said, the DT is sharing resources with the BT and FSM and your preference for top down DT’s – it makes no sense for me to expect you to spend time to change that 🙂 My prime concern was actually just associating the connections aligned at the bottom, with the choices aligned at the side. I’ll take a look and see if I can think of low impact ideas to help that (like maybe slight color coding or something) if it’s indeed even still an issue after I get used to it.

    Re #4 – Awesome! Yeah I didn’t even realize you could click on that textbox on the connection until now 🙂 But even still, yeah it makes more sense for them to be in the MC node, so thank you for that!

    Re Custom nodes:
    This was mostly a comment of “if some of these options aren’t possible / you don’t have time to code them, if I could implement some of these features on my own MC node, but you’ve addressed nearly all the concerns I put in the video.

    However there were a couple things I didn’t include because they’re highly specific and not everyone would have a use for them, so I wouldn’t expect you to make them part of the “official” node.
    1) We’re using Wwise audio for our project, so we can’t use Unity Audio clips at all (it’s a totally separate pipeline for audio), so in order to play audio I play string-based events through code. Example snip from one of my custom action nodes I made:

    So when we do audio synced with dialogue I’m wondering how we best hook that up?

    2) I was thinking about the idea of portrait overrides for certain nodes or, possibly even live portraits (2d skeletal sprite animated). So for instance:

    Here I might want to override Jesse the Shopkeeper’s portrait expression to ‘Angry’ when the player decides to leave right away. (but with an attitude like that he probably doesn’t deserve the business! 🙂 )

    _____

    For both of these things it might be nice if I could make custom versions of Say and Multiple Choice dialogue nodes to add some string fields to them that could then have these actions inside.

    Otherwise, is my best option to use separate action nodes that hook into the dialogue nodes? If so what is the proper way to do it?
    In the above image I have 2 mock examples, #2 is my Play Audio for Wwise action and #5 is my Override Portrait action. Would this be the way to do it? If so, does the addition of that #2 node screw up the “Show Last Dialogue Text” feature you implemented?

    So the ideal for us would be to tailor the nodes with some of these things that would suit our project, but not be a burden on others, but barring that knowing the proper workflow in this situation is the next best thing.
    ___

    Oh and I haven’t done much with localization – not even on my radar yet, but would this system eventually be able to work with a localization system/string database? (I’ve not ever set one of these up so I don’t know much about it other than that it is a thing 🙂

    Thanks, as always. You’re awesome!

    #10574
    Gavalakis
    Keymaster

    Hey!

    Thanks!
    Glad to know #3 is not a real problem for you. If you come by any suggestions, please let me know 🙂

    Regarding the new questions:

    1. The best way, would be to change the source code to instead playing audio the unity way, to play audio with your way 🙂
    Using the default OnGUI dialogue, this takes place in the StatementProcessor.cs. You can just replace the audio parts with your own there 🙂
    Most probably though, you are going to create your own UI for dialogue. Playing the audio of the dialogue is handled completely in the UI, so you will be able to handle it as you require.
    By the way, in the new version comming, I have greatly improved the UGUI example ui, which you will be able to take it and customize, which is better than using the current OnGUI example which is now deprecated and removed completely in favour of the new UI.

    So, changing the source to create your own UI and handling audio as you require there, is best approach because this way there are no custom actions needed and will automaticaly work from all places that require a dialogue audio to be played 🙂

    2. I really like your idea of portraits. I will make the changes to support this feature along with the relevant actions and even changes in the ‘Say’ node. I will also take a look at implementing animated portraits, probably a sequence of images for now, since skeletal animated ones are very special to each project and how they are made, which right now requires external tool not found in unity.

    So, to sum these up, regarding audio, it’s best if you slightly change the UI code, or duplicate it and create your own UI.
    Regarding portraits override, I will implement this to some extend since I really like this 🙂 It will be included in the next version!

    Finaly, regarding localization, I also haven’t done anything related to localization in the past, but at some point it will be implemented. I honestly don’t know in what form yet though 🙂

    By the way, the new version that just gone live does not include the dialogue tree chages we were discussing here, because it was submited before I made the changes. I will send a new version asap!

    Thanks again!
    Cheers!

    Join us on Discord: https://discord.gg/97q2Rjh

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.