Search Unity

[RELEASED] Dialogue System for Unity - easy conversations, quests, and more!

Discussion in 'Assets and Asset Store' started by TonyLi, Oct 12, 2013.

  1. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Yes, it's fine if everything is in double quotes. If you need to put an actual quote in your field, use two, such as:

    Actors
    ID,Portrait,AltPortraits,Name,Pictures,Description,IsPlayer
    2,player.png,[],"Theodore ""Ted"" Logan, Esq.",,Another Wyld Stallyn,false

    (This actor's name is Theodore "Ted" Logan, Esq.)
     
    KWaldt likes this.
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    @KWaldt - You can download the updated Master Audio Support package from the Dialogue System Extras page now. It adds a new MAPlaySound sequencer command:


    MAPlaySound(soundGroupName, [variationName], [volume], [pitch], [wait], [subject], [follow])
    • soundGroupName: The name of the Sound Group to trigger a sound from.
    • variationName: Play a specific variation by name. If blank, a random variation is played.
    • volume: Volume percentage (0-1). Default: 1.
    • pitch: Pitch adjustment [-3..3]. Leave blank for no pitch change.
    • wait: Specify true to wait until the sound is done playing. Default: false.
    • subject: GameObject whose position you want the sound to emanate from. Leave blank to play the sound 2D.
    • follow: Specify true to follow the subject. Leave blank to not follow.

    The simplest form is to just provide a sound group name, such as "Scream" or "Blast":
    • Sequence: MAPlaySound(Blast)
    The command above will play a random variation from the "Blast" sound group.
     
    KWaldt and hopeful like this.
  3. KWaldt

    KWaldt

    Joined:
    Nov 1, 2013
    Posts:
    122
    This works perfectly--thank you again for the fast support!
     
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Glad to help! :)
     
  5. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    2,142
    Okay, so I tried using the prefab. Neither numbered responses nor the scroll wheel worked. I then went into the example scene for the numbered dialog responses and expanded everything on the numbered responses component and screencapped all of the settings. I then went back to my scene, put those settings in...and it didn't work.

    So at this point I think I'll just email you my scene (or give you a link to the file or something) so you can see if you know what's up. However, my scene's really big right now, like 2 GB or so. I may be able to copy/paste and get rid of unnecessary things, so how small do you want it to be?

    And rather than bumping my old thread in General Discussion, let me just say thanks for the feedback about my game ideas. I checked out Gamasutra and a few presentations on the GDC Vault and got a general checklist of stuff to compare my puzzles to. I then, today, just sat down with a pen and paper and brainstormed for a little while and came up with three different puzzles. But just wanted to say thanks for the response and questions to lead me in the right direction.
     
  6. banzai777

    banzai777

    Joined:
    Apr 27, 2013
    Posts:
    17
    I'm trying to integrate UFPS with Dialogue System and nothing is working. I followed the instructions here: http://www.pixelcrushers.com/dialogue_system/manual/html/ufps.html and nothing happens. The player walks up to an NPC and there is no indication of what to do and no dialogue shows. I tried using the Usable component instead of FP Interactable Dialogue and nothing changed. I've set up a different Dialogue System project with Unity's built-in FPS controller and got dialogue working there. Any ideas on what I'm missing?
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @EternalAmbiguity - 2 GB is fine, though feel free to pare it down if you prefer. You can use Unity's Repro Wizard to pare it down as described in this FAQ. I just PM'ed you access information to the Pixel Crushers FTP site in case you want to use it to upload the project. Please zip up your Assets and ProjectSettings folders, and let me know what version of Unity to use.

    Hi @banzai777 - Here are a few things to check:

    1. Does the included example scene work? (Third Party Support > UFPS > Example > UFPS Example with UFPS Interaction).

    2. Did you add the integration scripts to your player GameObject? The easy way is to select the menu item Component > Dialogue System > Third Party > UFPS > Add All Player Scripts. This will add these scripts:
    • FP Player Lua Bridge
    • FP Persistent Player Data
    • FP Freeze Player
    • FP Sync Lua Player On Conversation
    • Show Cursor On Conversation
    3. If you're using UFPS interaction (i.e., FP Interactable Dialogue on your NPC), check these:
    • Your player has a vp_FP Interact Manager component (UFPS requires this for any interaction), and
    • Your NPC has an FP Interactable Dialogue and a Conversation Trigger set to OnUse.
    4. Are there any errors or warnings in the Console window? If you're using Unity UI and you see the warning "The scene is missing an EventSystem. Adding one." you can ignore it. This is just the Dialogue System telling you that it's adding an EventSystem so Unity UI interaction will work.

    If none of that helps, please feel free to send a reproduction project or repro steps to tony (at) pixelcrushers.com.
     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Dialogue System for Unity 1.6.6.3 Released!

    The Dialogue System for Unity 1.6.6.3 is now available on the Pixel Crushers customer download site. (PM me your Unity Asset Store invoice number for access.) It should be available on the Unity Asset Store in 5-7 days!

    This is another maintenance release. It contains:

    Version 1.6.6.3
    Core

    • Improved: Bark entries can now have Priority values to prevent lower-priority barks from interrupting higher-priority barks.
    • Unity UI: UnityUITypewriterEffect now supports auto scroll.
    • Changed: For importers, Encoding Type Default now uses your system’s Encoding.Default, not Encoding.Unicode.
    • Added: Encoding type ISO-8859-1 to converters.
    • Dialogue Editor:
      • Improved: Small usability improvements to conversation node editor.
      • Fixed: Adding template fields of custom field types was incorrectly setting type to Text.
    Third Party Support
    • Adventure Creator: Added Allow During Conversations checkbox to Bark action; added Check Conversation Active action.
    • articy:draft:
      • Added: Can now specify dropdown type for each dropdown individually.
      • Improved: expression–>Lua converter now doesn’t convert content inside strings.
      • Fixed: Condition and Instruction nodes weren’t assuming proper order by node’s Y-position.
    • Chat Mapper: Converter now supports linking to a conversation’s START entry.
    • CSV: Fixed: Converter wasn’t importing link priorities (all defaulted to Normal).
    • Master Audio: Added MAPlaySound() sequencer command.
    • RPG Kit: Updated item/inventory management Lua functions for RPG Kit 3.1.4. Fixed UI texture references that were unassigned by 3.1.4.
    • S-Inventory: Fixed Realistic FPS Prefab + S-Inventory subpackage; updated example scene for RFPS 1.23.
     
  9. quesadillas

    quesadillas

    Joined:
    May 1, 2015
    Posts:
    23
    Hi again, Tony!

    Quick question about the PixelCrushers.DialogueSystem.DialogueManager.StopConversation() method:
    I'm calling that method in an NPC's Die() method because, of course, if the player kills them while they're talking, they should stop talking. However, right now, calling StopConversation() will definitely stop the audio, but the lip syncing for that line continues. Is there a way to stop the lip syncing animation?

    For context, our animation is just a plain fbx file, and in our dialogue, the Sequencer field looks like this:
    AudioWait(some_clip_1);
    Animation(some_clip_1);
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @quesadillas - You could add a Set Animation On Dialogue Event component to the NPC. Set the Trigger to OnConversation. Add an element to the OnEnd list. Assign the NPC to the Target and your lips idle animation clip to the Animation Clip field.
     
  11. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    hey is there a way I can auto save like the s - inventory and RFPS because they can just quit without saving and re load the game :(
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @DecayGame - S-Inventory auto-saves to PlayerPrefs by default, but this doesn't auto-save the Dialogue System. So if you're using the Dialogue System it's important to untick Save and Load on the S-Inventory components. Instead, you'll want to add a small script to the Dialogue Manager that saves and loads everything to PlayerPrefs. Here's a version that doesn't use the Dialogue System Menu Template available on the Dialogue System Extras page. If you're using the Menu Template, let me know; I'll explain how to integrate this script with it. (You can also use the Menu Template to save to a local disk file instead of PlayerPrefs if that's what you want.)

    AutoSaveAndLoad.cs
    Code (csharp):
    1. using UnityEngine;
    2. using PixelCrushers.DialogueSystem;
    3.  
    4. public class AutoSaveAndLoad : MonoBehaviour {
    5.     public string autoSaveKey = "AutoSave";
    6.  
    7.     void Start() {
    8.         if (PlayerPrefs.HasKey(autoSaveKey)) {
    9.             var saveData = PlayerPrefs.GetString(autoSaveKey);
    10.             var levelManager = FindObjectOfType<LevelManager>();
    11.             if (levelManager != null) {
    12.                 levelManager.LoadGame(saveData);
    13.             } else {
    14.                 PersistentDataManager.ApplySaveData(saveData);
    15.             }
    16.         }
    17.     }
    18.  
    19.     void OnApplicationQuit() {
    20.         PlayerPrefs.SetString(autoSaveKey, PersistentDataManager.GetSaveData());
    21.     }
    22. }
     
  13. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    No I got it from here thank you so much your the man!
     
    Last edited: Aug 29, 2016
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Happy to help! If you run into any issues, just let me know.
     
  15. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    Hey Tony!
    I ran into an issue actually, the auto saving works fantastic by the way no complaints but the problem that I am having now is when they die it goes back to their last saved point. Could I make it so that it restarts the character Hunger, Health, Thirst, and weapons, and ect?
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Are you using the standard death handling provided by RFPS? If not, please describe how you're handling player death. Some games respawn the player at the beginning of the current level. Others return to the main menu. Others keep the player dead and provide a menu where they can choose to quit or load a saved game. Also let me know whether you're using saved game slots or only the one auto-save.
     
  17. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    Im using just the auto save one and the standard death RFPS.
     
  18. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Should it just reload the current level when the player dies? Does your game use multiple levels?
     
  19. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    Here just to make things easier I made a video showing the problem in the beginning you can see the auto save works fine then you see that the character loads the last auto save instad of starting a new character.
     
    Last edited: Aug 29, 2016
  20. vantubbe

    vantubbe

    Joined:
    Jul 15, 2014
    Posts:
    3
    @TonyLi Is there a way to use the speech bubble dialog ui for dialog and barks, from a top down perspective? Basically want to position the canvas/interactive canvas over the npc's head, but would need to be in screen space. How would I set this up?
     
  21. KWaldt

    KWaldt

    Joined:
    Nov 1, 2013
    Posts:
    122
    Hello!

    I'm having a question concerning IDs--is there anything that I need to consider when generating them with my dialogue software?
    Like a maximum length or something?
    If I understand correctly, they only need to be unique in their parent (e.g. the dialogue node only needs to be unique in the conversation, so two dialogue nodes can have the ID 1 as long as they are in different conversations), right?

    Best Regards,
    Kristina Waldt
     
    Last edited: Aug 29, 2016
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @DecayGame - Change the AutoSaveAndLoad.cs script to this:
    Code (csharp):
    1. using UnityEngine;
    2. using PixelCrushers.DialogueSystem;
    3.  
    4. public class AutoSaveAndLoad : MonoBehaviour {
    5.     public string autoSaveKey = "AutoSave";
    6.     private static bool autoLoadOnStart = true;
    7.  
    8.     void Start() {
    9.         if (autoLoadOnStart && PlayerPrefs.HasKey(autoSaveKey)) {
    10.             var saveData = PlayerPrefs.GetString(autoSaveKey);
    11.             var levelManager = FindObjectOfType<LevelManager>();
    12.             if (levelManager != null) {
    13.                 levelManager.LoadGame(saveData);
    14.             } else {
    15.                 PersistentDataManager.ApplySaveData(saveData);
    16.             }
    17.         }
    18.         autoLoadOnStart = true;
    19.     }
    20.  
    21.     void OnApplicationQuit() {
    22.         PlayerPrefs.SetString(autoSaveKey, PersistentDataManager.GetSaveData());
    23.     }
    24.  
    25.     void Die() {
    26.         autoLoadOnStart = false;
    27.     }
    28. }
    and put it on the FPS Player GameObject. It must be on the FPS Player GameObject.

    Hi @vantubbe - It doesn't need to be in screen space. You can add a world space bubble UI, inspect its Always Face Camera component, and untick Y Axis Only. This will make it face the top-down camera. Or just disable this component and manually set the canvas's Rotation > X to 270 to make it face straight up. Here's an example:

    TopdownBubbleUI_2016-08-29.unitypackage

    It's based on the Topdown version of the Feature Demo, so it's not the prettiest top-down (this is a dialogue system after all, not a top-down controller :)). But if you run up to Private Hart (click near him) and press the spacebar, it'll run a conversation through his world space bubble UI.

    If you don't want to do it that way, there's nothing wrong with using screen space. Just point the NPC's Override Unity UI Dialogue Controls to your screen space UI elements. If you get stuck, let me know. I'll be happy to provide more details.

    Hi Kristina - You're correct; dialogue entry IDs only need to be unique within the same conversation.

    In the Dialogue System, the maximum value of a dialogue ID is the maximum value for an int (usually 2147483647). If you're importing and exporting between Chat Mapper, I don't know if Chat Mapper has a different maximum value, but I'd be surprised if it were less than 32767.
     
    KWaldt likes this.
  23. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    Hey! It does the same thing still even with the new script. Is it maybe that I need to disable some other scripts On the FPS Player Or Dialouge System or even the S - Inventory System?
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    You shouldn't need to disable anything else or do anything else. Double-check that the script is on the FPS Player GameObject, and that there aren't any other instances of the script on any other GameObjects such as the Dialogue Manager GameObject.
     
  25. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    Thanks tony it worked and yeah I had the autosave script assigned to multiple gameobjects.
     
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Awesome! Glad to know it's working now.
     
  27. quesadillas

    quesadillas

    Joined:
    May 1, 2015
    Posts:
    23
    Thanks! Amazingly quick reply, as always! I'm a bit confused when I look at the documentation though. I need to add a SetAnimationOnDialogue object to OnEnd and fill it with the fields you mentioned. But, how do I make a SetAnimationOnDialogue object? I feel like it's very simple and I'm missing something obvious. Am I supposed to add it through script, or is there a way to create it in the editor and manually drag it over to the OnEnd list?
     
  28. DecayGame

    DecayGame

    Joined:
    May 15, 2016
    Posts:
    86
    Sorry for all the comments but when you press down on " Tab " It pauses how would I make it so that the it doesn't " Pause " the scene just so that it locks/unlocks cursor?
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @quesadillas - Here's an example: Let's say I'm editing the Dialogue System's Feature Demo scene. It has an NPC named "Private Hart" that uses the Legacy Animation system. If I want to ensure that Private Hart always returns to his idle animation ("PistolCombatIdle") at the end of a conversation, I would add a Set Animation On Dialogue Event component to him:



    To add this component, select your NPC and then select menu item Component > Dialogue System > Trigger > On Dialogue Event > Set Animation On Dialogue Event.

    I set the Trigger to On Conversation, which means this component will listen for conversation events. Then I added an element to the On End list; this element will be used when a conversation ends. In that element, I set the target to Private Hart and specified the animation clip he should play.

    If Private Hart used the Mecanim animation system (i.e., Animator instead of Animation component), I'd use Set Animator State On Dialogue Event instead:




    Hi @DecayGame - This is an RFPS setting. It's not specific to the Dialogue System. RFPS uses an input button definition named "Pause", which by default is set to the Tab key. If you want to disable this, edit the input settings (Edit > Project Settings > Input), find the Pause element, and clear the Positive Button field. The way RFPS works, it always hides the cursor when unpaused and shows the cursor when paused. The Dialogue System's S-Inventory + RFPS integration does some special handling to show the cursor when an inventory window is open.
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Version 1.6.6.3 is now available on the Asset Store!

    Release Notes
     
  31. alexhapki

    alexhapki

    Joined:
    May 8, 2015
    Posts:
    22
    Hi Tony,

    Sorry for bothering you, I run into an issue I cant find the problem.

    I have two scenes, A and B.

    • When at runtime scene change from A to B, no issues. But when I stop it, I go to scene B and hit play, Dialogue Lua triggers and error "Dialogue System: Lua code 'Variable["Alert"]=""; Variable["03CROS002Var"]=false; etc -- a lot of variable ". I stop the scene, I delete Dialogue Manager gameobject, I add it again, and it runs without problem. But then, if I go back to scene A, and from there, in game, I load scene B, same error happens.
    • The opposite don't give me any error. if at runtime (in game) I go from scene B to A (I load scene B while in scene A) it loads well. Then I stop it, and if I hit play, it runs perfectly. But once I stop the application and go back to Scene B and I hit play, same error again.

    The errors occurs on line;
    PersistentDataManager.ApplySaveData (saveData);
    where saveData is an string where all the info is saved.

    Would you have any idea why this happen? I could make the scene from scratch, but without knowing what is the source of the error, it might repeat in other scenes.

    Thank you in advance.
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @alexhapki - Are your Dialogue Manager GameObjects configured the same in both scenes?

    Here's more information:

    By default, the Dialogue Manager acts as a persistent singleton, meaning it survives scene changes and ensures that only one instance exists in the scene. (You can change this behavior by unticking Don't Destroy On Load.)

    You don't have to put a Dialogue Manager in every scene, since it carries across from the previous scene. You can still put a Dialogue Manager in every scene to make it easy to playtest that scene. But remember that when you're coming from A to B, the Dialogue Manager in B will not exist because the Dialogue Manager from A will carry over. Similarly, if you start playing in B and change to A, the Dialogue Manager in B will carry over.

    Each Dialogue Manager maintains its own Lua environment, which contains the runtime values of the variables in your dialogue database. If you let the Dialogue Manager in A be destroyed and use a new one in B, the runtime values will have the initial values from the database assigned to B's Dialogue Manager. (If you want a separate Dialogue Manager in each scene but you want to carry values across, then before leaving the old scene, call "var data = PersistentDataManager.GetSaveData()". After loading the scene scene, call "PersistentDataManager.ApplySaveData(data)".)

    If that doesn't help, please PM me the editor.log file from a playtest that generated the error or email it to tony (at) pixelcrushers.com if you prefer. Also feel free to send me an example project. I'll be happy to take a look.
     
    alexhapki likes this.
  33. alexhapki

    alexhapki

    Joined:
    May 8, 2015
    Posts:
    22
    Hi Tony,

    Thanks for the super fast support, as usual.

    I deselected "Don't Destroy on Load" and it is working well now. Basically every scene on my game has a Dialogue Manager GameObject and a script that load all the saved data using PersistentDataManager.

    Anyway, game is progressing really well, your dialogue system had helped us a big deal to speed the development of the game. Four months more for crowdfunding in January 2017 and most of the programming is done by now, we are testing it! I guess if the game was a success we should be thanking you, perhaps we should think on getting a nice bottle of wine or something for you :)

    Take care, and many thanks once again.
     
    TonyLi likes this.
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Screenshots are always welcome! :) I'm always interested to see what games are being made with the Dialogue System.
     
  35. alexhapki

    alexhapki

    Joined:
    May 8, 2015
    Posts:
    22
    Hi Tony,

    We are trying to attain the soul of the old RPGs, sort of Baldur´s Gate II, with 3D graphics, by using a good story and defining well all the actors (NPCs and PCs) and providing "spiritual choices" (character might become evil, good or follow Order or Chaos). Decisions are saved using your lua, so the characters that might join your party will be different depending on your spiritual path.

    Here it is our latest video where we show how we change scenes (all data, quests, variables, saved through Dialogue Manager) and some choices for lighting in the darkness;


    The following video is a bit older, where you can see how we use dialogue manager and quests by your dialogue manager. Even the content/loot on the chest is handled by Lua, we keep a variable for every chest, it has a string like "Sword*Helmet*Potion" and when the chest is open, string from lua is called and split using * as separator. Once those objects are taken, variable is set back in Lua to empty or to whatever you left in the chest.


    Anyway,I truly think your Dialogue System has been the most useful asset we got from Unity Asset store, and as we discussed few months your logo and your contact link is on our website (www.legendsofeternalia.com).

    Whenever we launch our crowdfunding (January 2017) we will let you know it.
     
    TonyLi likes this.
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    @alexhapki - Thanks! It's really coming along! I'm looking forward to your crowdfunding campaign!
     
  37. quesadillas

    quesadillas

    Joined:
    May 1, 2015
    Posts:
    23
    Aaah I get it! Ok, so it turns out that I didn't realize our facial animations were being handled by the legacy Animation, so all I had to do was stop that animation itself, lol. I actually was getting confused by a different part (the "adding an element" part) because I wasn't sure exactly how to add the element. Then I realized I could just change the number for the array so that it would expect 1 element, and it had all the fields you mentioned. The rest of it makes perfect sense. Thank you!

    While I'm at it though, if I could bother you again, I have a question about a bug I'm getting. I want the player to move around during the conversation, but if I move the player in any direction and he's the one speaking, the sound clip stops playing. There's dead air for the amount of time the player character is supposed to speak, and then the next line goes back to normal. Is this due to some setting in the Dialogue System? Thanks again!
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    HI @quesadillas - I don't think this is a setting in the Dialogue System. You can temporarily set the Dialogue Manager's Debug Level to Info and review the Console window after reproducing the issue. Maybe a sequencer command is configured to play another audio clip where you don't expect it. I have a suspicion, though, that it's something else. If you can't find the culprit, please feel free to send a reproduction project to tony (at) pixelcrushers.com and let me know what version of Unity to use.
     
  39. quesadillas

    quesadillas

    Joined:
    May 1, 2015
    Posts:
    23
    Yeah, I'll look into it more and let you know what I learn from it. Good to know it's not just some setting I overlooked. Thanks!
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Heroes of Issachar 1.5 Available on Steam



    For those of you following Blue Mana Entertainment's Heroes of Issachar (which uses the Dialogue System), the latest version just came out and adds the first stage of their planned city-building features.


    Are you working on a game that uses the Dialogue System? Please let me know!
     
  41. Stranger-Games

    Stranger-Games

    Joined:
    May 10, 2014
    Posts:
    303
    Hi,

    Your asset is great, and very flexible. It allowed me to customize things for my game as I need.
    I need to do something now that I can do myself, but was wondering if there's a built in way to do it.
    I want the NPC subtitle line, subtitle reminder, combined with the pc subtitle, and both NPC, PC names to be incremental.

    Meaning the log can be
    Player:
    Something
    NPC:
    something
    Player:
    something2

    Is there a built in way to do this?
    Thanks for advance.
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @Hoksha-the-Bald - The Dialogue System Extras page has a conversation log-style dialogue UI that does this. It's in the UIs section, fourth button down.
     
    Stranger-Games likes this.
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Crossing Souls dev blog: You'll Know What They Did Last Summer

    For those of you following the development of Fourattic's Crossing Souls (which uses the Dialogue System), the devs just posted an enormous blog entry with all kinds of interesting details about recent additions.


    Crossing Souls has a great, quirky retro feel -- kind of like the video game version of Netflix's hit show Stranger Things!

    You can still preorder a copy here.
     
  44. Stranger-Games

    Stranger-Games

    Joined:
    May 10, 2014
    Posts:
    303
    I downloaded the extension and the demo scene is working correctly. But when I added ConversationLogUI to my own scene, OnConversationLine and other events are never called. I tried to figure out the setup of those callbacks, but I couldn't.

    Any help is greatly appreciated.
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    Hi @Hoksha-the-Bald - OnConversationLine etc.are called on the participants and the Dialogue Manager and its children. Make sure your dialogue UI is a child of the Dialogue Manager. (More info: script messages)

    If that doesn't help, feel free to send an example project/scene to tony (at) pixelcrushers.com and let me know what version of Unity to use. Or email/PM/post screenshots of the Inspector view of your dialogue UI GameObject.
     
    Stranger-Games likes this.
  46. Stranger-Games

    Stranger-Games

    Joined:
    May 10, 2014
    Posts:
    303
    It worked! Thanks!
    One last issue.
    When the player chooses a reply, the name that is shown is the same as the NPC actor, how can I fix this?
     
  47. Stranger-Games

    Stranger-Games

    Joined:
    May 10, 2014
    Posts:
    303
    I am sorry, I figured it out.
    ConversationTrigger component actor and conversant are empty, and I think this is the problem.
     
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    This can be a little confusing since the Dialogue System lets you specify GameObjects different from the actors you wrote in the conversation. There's more info here for anyone who's interested: How GameObjects Are Associated With Conversations.
     
    Stranger-Games likes this.
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,011
    RT-Voice Now Supports Mobile

    Crosstales' RT-Voice and RT-Voice PRO are now mobile compatible! The Dialogue System includes an integration package for RT-Voice, which is a handy way to add text-to-speech voices to your conversations. Add in SALSA with RandomEyes for lipsync, too! Even if you're planning to use recorded voice actors, RT-Voice is a great way to prototype until your voiceover audio has been recorded.

     
    Shawn67 likes this.
  50. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    2,196
    Awesome news! I have both RT-Voice Pro and Dialogue System imported and ready to start configuring in my project. Awesome to see there is now an integration to make it easier.. Now all I need is Quest Machine... *runs and hides* :p
     
    TonyLi likes this.
unityunity