Search Unity

[70% OFF - FLASH DEAL] Dialogue System for Unity - easy conversations, quests, and more!

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

  1. Earthsnake

    Earthsnake

    Joined:
    Feb 25, 2014
    Posts:
    30
    Hello, I'm using Dialogue System integration for UFPS, and I tried "Deep Integration Example" for UFPS, and when I gave pistol to Private Haart, it failed to be removed from player's inventory. DS&UFPS_Error.jpg

    Please help, thanks
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706

    Hi Earthsnake, it's fixed in the patch that's being released later today. UFPS introduced a new inventory system that required some adjustments. I'll post more information as soon as it's available.
     
  3. Earthsnake

    Earthsnake

    Joined:
    Feb 25, 2014
    Posts:
    30
    Okay, I'm gonna waiting for it. Thanks
     
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    The Dialogue System for Unity v1.2.4.1 has been submitted to the Unity Asset Store and is available for immediate download on the Pixel Crushers customer download site. If you need access, please PM me your invoice number.

    Version 1.2.4.1 Release Notes:
    • Unity 4.3.4f1 is the new required minimum version.
    • Dialogue Editor improvements:
      • Improved: Dialogue entry Conditions and Script fields now have wizards to build Lua code visually.
      • Fixed: When switching databases or between edit and play modes, the conversation node canvas sometimes failed to update.
      • Fixed: Multiselect and lassoing bugs.
      • Fixed: Adding new quest entries numbered them from zero; now correctly numbers from one.
    • Improved: Added button name field to Unity GUI Navigation. You can now select responses with a gamepad button.
    • Fixed: When there was no Dialogue Manager object in the scene, the Dialogue Manager wizard would sometimes generate errors.
    • (UFPS) Fixed: Removing unit banks (such as firearms) works correctly now.

    This is primarily a bug fix release, but it also introduces wizards for building Lua conditions and scripts in the Dialogue Editor. You can still enter Lua code directly. But if you click the '...' button next to Conditions or Script, you can build them visually using drop-down menus. It's less prone to typos and saves on typing!

    This screenshot of the wizards in action:



    Generates this Lua code when you click Apply:




    The next release will add quest entries to the wizards, but will primarily focus on Windows Phone 8 / Windows Store support and a reported error in iOS builds under Unity 4.5. (New features such as Excel and Google Sheets import/export will come immediately after that.)
     
    Last edited: Jun 4, 2014
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Version 1.2.4.1 is available on the Unity Asset Store!

    If you use the new Lua wizards for the Conditions and Script fields, please leave me some feedback and/or feature suggestions. Thanks!
     
  6. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    Instead of Lua wizard, I would prefer there has syntax highlight, checking or even autocomplete.
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    That's because you're a very strong coder. :) The wizards are meant to make it easy to define Lua conditions and scripts without having to type any code, for people who are more on the design, authoring, and art side.

    For syntax highlighting and autocomplete, you can write your Lua code in LuaEdit or a number of Lua editors listed on Wowpedia and paste it into the Dialogue Editor. I'd love to offer these coding features directly in the editor, but they'll have to wait until some time in the future.



    On a totally unrelated topic, a user informed me that lipsync was broken in the Zombie Demo. When I upgraded the demo project to Unity 4.3 it didn't import the facial bones. (Unity 4.3 changed the way skeletons and masks work in Humanoid rigs.) I just fixed this and updated the web page.
     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    I updated the UFPS Support package to also sync the amount of ammo currently loaded in the player's weapons. This information is in the Lua variables Variable["Pistol_Units"], Variable["Revolver_Units"], etc. The actual names will depend on the weapons you've defined in your project. Documentation is on the UFPS Integration page.

    You can download the updated package from the customer download site. If you need access, please PM me your invoice number.
     
  9. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    If I only use DialogueManager.StartConversation(conversationName) without actor or conversation Transform, how can the Dialogue UI show the actor name defined in DialogueEntry ?
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi yuewahchan, the idea behind providing Transforms is that this provides actor names (either the name of the Game Object or its Override Actor Name component).

    If you're calling DialogueManager.StartConversation(conversationName) without transforms, it will use the names of the actors defined in the dialogue database for that conversation. The Dialogue UI will set the Portrait Name labels to these names. The relevant line in CharacterInfo.cs is:
    Code (csharp):
    1. Name = (transform == null) ? nameInDatabase : OverrideActorName.GetActorName(transform);
    If the transform is null, it will use the name in the database. (Otherwise it will look for an OverrideActorName component on the transform's GameObject; if there is none, it will use the GameObject's name.)

    The Lua variables Variable["Actor"] and Variable["Conversant"] will also be set to these values so you can use them in Dialogue Text.
     
  11. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    A new patch is available on the customer download site. If you need access, please PM me your invoice number. Import this patch on top of your existing v1.2.4.1 or v1.2.4 installation. It includes:
    • Improved: Dialogue Editor’s Conditions & Script wizards now handle quest entries.
    • Fixed: Dialogue Editor’s Conditions & Script wizards weren’t applying quest states correctly.
    • (UFPS) Updated support package that syncs the amount of ammo loaded in the player’s weapons.
     
  12. Keitaro3660

    Keitaro3660

    Joined:
    May 20, 2014
    Posts:
    86
    hi there, sorry if this question is asked several times..
    is this asset support unity 2D 'sprite' feature for OnTriggerEnter2D or OnCollisionEnter2D?

    if it support, do you provide the tutorial/documentation? because i have searched it in your site, and i think i don't find it...
    i want to make a 2D platformer and 2D SHMUP with dialogue, i hope your asset is easy for beginner like me.
     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi Keitaro3660, yes, the Dialogue System supports 2D and 3D! On the Pixel Crushers website, there's a 2D example, and you can download the project files from here: 2D Platformer Project Files or on the customer download site. (PM me your invoice number if you need access to the site.) To try it out:

    1. Import Unity's 2D Platformer project.
    2. Import the Dialogue System.
    3. Import the 2D Platformer Project Files.
    In the folder 2D Platformer Demo, run the scene named 2D Platformer Demo. This uses OnTriggerEnter2D.
    If I can provide assistance, please post here, PM me, or email tony (at) pixelcrushers.com any time!
     
  14. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    I see the problem, it works if conversation database is created in the Dialogue Editor, however, .my conversation database is created by code and all the Actor and Conversant of conversation and dialogue entries are set to be the same.

    By the way, can you explain more about the actor and conversant in Conversation and its dialogue entries. When I change the conversation actor or conversant in editor, it auto update its dialogue entries' actor and conversant.
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    The Dialogue System v1.2.4.2 has been submitted to the Asset Store and is available now on the customer download site. PM me your invoice number if you need access. This release is primarily a bug fix and feature update for the Conditions & Script wizards in the Dialogue Editor. The next major release will include Windows Phone 8 and Windows Store support.


    Version 1.2.4.2
    • Added: DialogueManager.PreloadDialogueUI().
    • Improved: Sequencer now handles scenes that lack a main camera.
    • Improved: Added quest entries to Conditions & Script wizards.
    • Fixed: Conditions & Script wizards weren't applying quest states correctly.
    • (Adventure Creator) Improved: Bridge now has a choice for conversation camera control: Never, Always, IfPlayerInvolved.
    • (Realistic FPS Prefab) Improved: Example scene now saves and loads game.
    • (UFPS) Improved: Now syncs amount of ammo loaded in weapons.
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi yuewahchan, right -- when you create your database by code, your conversations should work fine if you create and specify a different actor and conversant.

    The Dialogue System's dialogue database structure is based on Chat Mapper. In Chat Mapper, every conversation has two participants: Actor (the primary participant) and Conversant (the other participant). Every dialogue entry also has two participants: Actor (the speaker of this entry) and Conversant (the listener). As the Dialogue System plays each dialogue entry, the sequencer updates its 'speaker' and 'listener' values, which you can use in sequencer commands.

    When you add dialogue entries, it automatically assigns the conversation participants to the entries. You can also manually assign other participants to a specific dialogue entry. For example, a third character might interject a line. But most of the entries will be assigned to the conversation's Actor or Conversant.

    In the Dialogue System's built-in editor, when you change a conversation participant, as a convenience it automatically updates all dialogue entries from the old participant to the new one. Say you have a conversation between the player and an NPC named 'Tribal Chief'. Later you decide that you really want to assign this conversation to a different NPC named 'Wise Elder'. It would be a lot of work to manually change the conversation's Conversant and all of the dialogue entries' Conversants to Wise Elder. This is why the editor automatically updates dialogue entries when you change a conversation participant. If you left the entries as Tribal Chief, the Dialogue System would treat them as if they were being spoken by a third NPC (Tribal Chief) and not the conversation's Conversant (Wise Elder).
     
  17. wightwhale

    wightwhale

    Joined:
    Jul 28, 2011
    Posts:
    397
    Any idea on how to fix this issue? I get it on ios when I turn strip bytecode on, but it goes away when i have stripping disabled.

    Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for PixelCrushers.DialogueSystem.Lua ---> System.MissingMethodException: Method not found: 'Default constructor not found...ctor() of KopiLua.Lua+LG'.
    at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
    at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
    at KopiLua.Lua.l_alloc (System.Type t) [0x00000] in <filename unknown>:0
    at KopiLua.Lua.lua_newstate (KopiLua.lua_Alloc f, System.Object ud) [0x00000] in <filename unknown>:0
    at KopiLua.Lua.luaL_newstate () [0x00000] in <filename unknown>:0
    at KopiLuaDll.LuaDll.luaL_newstate () [0x00000] in <filename unknown>:0
    at LuaInterface.Lua..ctor () [0x00000] in <filename unknown>:0
    at PixelCrushers.DialogueSystem.Lua..cctor () [0x00000] in <filename unknown>:0
    --- End of inner exception stack trace ---

    (Filename: /Applications/buildAgent/work/aeedb04a1292f85a/artifacts/iPhonePlayer-armv7Generated/UnityEngineDebug.cpp Line: 49)

    Inner Exception: System.MissingMethodException: Method not found: 'Default constructor not found...ctor() of KopiLua.Lua+LG'.
    at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
    at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
    at KopiLua.Lua.l_alloc (System.Type t) [0x00000] in <filename unknown>:0
    at KopiLua.Lua.lua_newstate (KopiLua.lua_Alloc f, System.Object ud) [0x00000] in <filename unknown>:0
    at KopiLua.Lua.luaL_newstate () [0x00000] in <filename unknown>:0
    at KopiLuaDll.LuaDll.luaL_newstate () [0x00000] in <filename unknown>:0
    at LuaInterface.Lua..ctor () [0x00000] in <filename unknown>:0
    at PixelCrushers.DialogueSystem.Lua..cctor () [0x00000] in <filename unknown>:0

    (Filename: /Applications/buildAgent/work/aeedb04a1292f85a/artifacts/iPhonePlayer-armv7Generated/UnityEngineDebug.cpp Line: 49)
     
  18. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi wightwhale, does your Assets/link.xml file contain these lines?
    Code (csharp):
    1. <linker>
    2.     <assembly fullname="DialogueSystem">
    3.         <namespace fullname="PixelCrushers.DialogueSystem" preserve="all"/>
    4.         <namespace fullname="PixelCrushers.DialogueSystem.*" preserve="all"/>
    5.     </assembly>
    6.  
    7.     <assembly fullname="KopiLua">
    8.         <namespace fullname="KopiLua" preserve="all"/>
    9.     </assembly>
    10.  
    11.     <assembly fullname="KopiLuaDll">
    12.         <namespace fullname="KopiLuaDll" preserve="all"/>
    13.     </assembly>
    14.  
    15.     <assembly fullname="KopiLuaInterface">
    16.         <namespace fullname="LuaInterface" preserve="all"/>
    17.     </assembly>
    18. </linker>
    You can find a template link.xml file in Assets/Dialogue System/Prefabs/iOS/.

    If you still get the error after checking link.xml, please let me know what Unity version and iOS version you're using.
     
  19. wightwhale

    wightwhale

    Joined:
    Jul 28, 2011
    Posts:
    397
    Ah yea, thanks, that fixed it.
     
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Great!
     
  21. DieHappyGames

    DieHappyGames

    Joined:
    Feb 24, 2014
    Posts:
    44
    Hi Tony - long time no see. Just checking in and wanted to ask if animated portraits is something that's been implemented yet? Thanks,
    Dave
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi Dave, it's something that's on my "to do" list, but it's not implemented out of the box. The SetPortrait() sequencer command now works immediately, so you can set up basic sequences using something like:

    SetPortrait(normal); SetPortrait(frustrated)@0.5; SetPortrait(smile)@1.0; SetPortrait(wink)@1.5​

    But it's not really intended for smooth multi-frame animation. You can always implement your own by creating a small subclass of NGUIDialogueGUI and overriding ShowSubtitle(), or by writing a custom sequencer command, depending on where you need the animation. Speaking of which, what would be your intended use? I'll have to store away your input for when I can get back to this. I'm occupied for a while by updating the Lua implementation to be compatible with Windows Store.
     
  23. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Tony, just an FYI, Adventure Creator's new update has added animated portraits so I think you might want to rethink the priority on that... Using Dialogue System would now keep us from a seamless integration with AC...

    Your thoughts...
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi Licarell, I was just reading over those release notes! I'll bump this up in the To Do list. The AC integration also currently uses AC's default dialog cursor (although code is already in place to handle any AC cursor); I'll make sure it works with animated cursors, too.
     
  25. SpectralRook

    SpectralRook

    Joined:
    Feb 9, 2014
    Posts:
    112
    I've just purchased Dialogue System and having some problems integrating it with RPG Kit.

    Importing RPG Kit Support causes my RPG Kit 2.0.9 project to crash. I have NGUI 3.6.3 and KGFMapSystem in the project. At this point I have not added the third party support for NGUI 3 or KGF yet. Using Unity 4.5.

    Upon restarting Unity I receive the following message:

    Automatic import for 'Assets/Dialogue System/Third Party Support/NGUI 2.x/Prefabs/Wheel NGUI Dialogue UI/Wheel NGUI Dialogue UI.prefab' was disabled because the asset importer crashed on it last time.
    You can use 'Assets -> Reimport' to enable automatic importing again.​

    Following the crash I removed the NGUI folder and RPG Kit folder from Third Party Support and added NGUI 3 support. No errors. I then added RPG Kit support but unchecked NGUI 2.0. No Errors.

    I followed the instructions provide in the Dialogue System for Unity - RPG Kit 2.0 Integration video tutorial for manual edits to Preload. When I started Level1 the Interface was disabled. To solve this I unchecked Deactivate UIRoot when Hidden on Dialogue UI. I also checked Don't Destroy UIRoot on Load on Dialogue Bark Root, but I'm not sure if this has any affect.

    Now when Level1 starts I am able to have a conversation with Simon without any errors. Though I do receive 0 arrows along with a staff if I request the staff.

    However, Samual appears to produce the following errors, repeatedly.

    NullReferenceException: Object reference not set to an instance of an object
    PixelCrushers.DialogueSystem.NGUI.NGUIBarkUI.Hide () (at Assets/Dialogue System/Third Party Support/NGUI/NGUI Bark UI/NGUIBarkUI.cs:191)
    PixelCrushers.DialogueSystem.NGUI.NGUIBarkUI.OnBarkEnd (UnityEngine.Transform actor) (at Assets/Dialogue System/Third Party Support/NGUI/NGUI Bark UI/NGUIBarkUI.cs:187)
    UnityEngine.Component:BroadcastMessage(String, Object, SendMessageOptions)
    PixelCrushers.DialogueSystem.BarkController:InformParticipants(String, Transform, Transform)
    PixelCrushers.DialogueSystem.<Bark>c__Iterator3:MoveNext()
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    PixelCrushers.DialogueSystem.DialogueSystemController:Bark(String, Transform, Transform, BarkHistory)
    PixelCrushers.DialogueSystem.DialogueManager:Bark(String, Transform, Transform, BarkHistory)
    PixelCrushers.DialogueSystem.BarkStarter:TryBark(Transform)
    PixelCrushers.DialogueSystem.<BarkLoop>c__IteratorA:MoveNext()
    Resolved the error by enabling Dialogue Bark Root in Preload. I had disabled it by default.

    The last remaining issue is the barks appear to be displaying in front of the the player camera perspective rather than above Samual's head. After checking all of the camera's, I see it showing on the KGFMapSystemNGUI Camera. That camera is set with a Culling Mask of Interface. Any suggestions on how to resolve this?

    I've included a screenshot of Samual's Inspector and a Bark.

    Screenshot 2014-06-14 21.11.32.png Screenshot 2014-06-14 19.56.34.png
     
    Last edited: Jun 15, 2014
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi SpectralRook, sorry about the difficulties with RPG Kit and NGUI 3.x. As you know, it's difficult to get RPG Kit working with NGUI 3.x as it is, and tying in the bark UI on top of this is another layer of complexity. You did everything right by deleting the Dialogue System/Third Party Support/NGUI 2.x support files, importing the NGUI 3.x support files, and activating Dialogue Bark Root. Barking NPCs' UILabels get added as children of Dialogue Bark Root.

    Thanks for adding the screenshots. I see that Follow Barker is ticked, so the NGUIBarkUI component should automatically add an NGUIFollowTarget component to Samuel's UILabel at runtime. When Samuel barks, pause the game and look under Dialogue Bark Root. There should be a child named "Bark (Samuel)" with a UILabel containing the bark text. It should also have an NGUIFollowTarget component with its Target property set to Samuel.

    Here are some things to try if it's still not working:
    • On Samuel's NGUIBarkUI, manually set Override Barker Transform to Samuel.
    • Create a template UILabel under Dialogue Bark Root. Manually add the NGUIFollowTarget script. Then assign the UILabel to the Template property of Samuel's NGUIBarkUI.
    • Untick Tween Scale and/or Check If Player Visible (sorry, this last one is just a Hail Mary guess :))
    Please let me know which (if any) of these steps fix the issue, and I'll try to explain the cause.

    You can also play the example scene "Dialogue System/Third Party Support/NGUI/Example/Feature Demo Using NGUI" to see how barks are supposed to work with NGUI.
     
  27. SpectralRook

    SpectralRook

    Joined:
    Feb 9, 2014
    Posts:
    112
    The manual override wasn't necessary. The Transform is correctly pointing to Samuel. I wasn't able to get suggestion 2 with the template working. It kept generating it's own UILabel instead of using the template I made. I'll give it another go when I get some more time to look at this. Suggestion 3 had no affect.

    I think I may have narrowed down the problem to the scale of the bark UILabel. When I stopped the barking and scaled it down from 1 to .005 (x and y), the text actually looked correct. I'm not sure where that would be set for the auto-generated UILabel.

    Thank you for your help.
     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi SpectralRook, RPG Kit does some strange scaling with the UI with the default NGUI2 version. Set Dialogue Bark Root's scale to (1,1,1). I'll add this note to the documentation for the next release.

    If you want to take another go at the template, make sure the template object is active and has an enabled UILabel. Leave the UILabel's text blank.
     
  29. hike1

    hike1

    Joined:
    Sep 6, 2009
    Posts:
    401
    I installed Adventure Creator 1.34 and dialog system 1242, I get these errors


    Assets/Dialogue System/Third Party Support/Adventure Creator/Scripts/AdventureCreatorBridge.cs(331,58): error CS1501: No overload for method `Add' takes `2' arguments
    Assets/Dialogue System/Third Party Support/Adventure Creator/Scripts/AdventureCreatorBridge.cs(336,50): error CS1501: No overload for method `Add' takes `2' arguments
    Assets/Dialogue System/Third Party Support/Adventure Creator/Scripts/AdventureCreatorBridge.cs(340,50): error CS1501: No overload for method `Remove' takes `2' arguments
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    It looks like Chris changed the public interface for Adventure Creator's RuntimeInventory class in 1.34 and increased the minimum version of Unity to 4.5.1. I'm downloading Unity 4.5.1 right now so I can upgrade to Adventure Creator 1.34 and update the bridge script.
     
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    An updated Adventure Creator Support package is on the Pixel Crushers customer download site. PM me your invoice number if you need access. Please note that this updated support package requires Adventure Creator v1.34+.
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Download: PlayMaker Support 2014-06-15 package.

    PlayMaker's Tooltip attribute conflicts with Unity 4.5's new Tooltip attribute in custom actions as described here. If you're using Unity 4.5+, import the updated support package above to resolve the issue. You can also download the same package on the Pixel Crushers customer download site. (PM me your invoice number if you need access.)
     
  33. SpectralRook

    SpectralRook

    Joined:
    Feb 9, 2014
    Posts:
    112
    Changing the Bark Root's scale worked. The problem left is the text is appearing at Samual's feet. I noticed there is a "Bark Position in Samual's prefab. Should it appear at Samual's Bark Position?

    The problems I'm having with using the template method are:
    1) Samual is in a different Scene (Level 1) than the Dialogue Bark Root (Preload). This makes it difficult for me to setup before the game starts.
    2) Attempting to add the Template manually while the game is running doesn't work because the NGUIBarkUI script checks for Samual's Template in Start(). If one doesn't exist it automatically creates one. It will never check after that point so the manually added Template is ignored.

    I think I want to use the Template method. Would you recommend adding the Dialogue Bark Root to each level instead of Preload or script it? If script, would you happen to have an example script that can perform this?
     
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    NGUIBarkUI should find Samuel's CharacterController or CapsuleCollider and position the label above it. You can fine-tune the position by adding a child GameObject where you want the label to be and setting that as the Bark Position. You can also use this to set the position if the NPC doesn't have a CharacterController or CapsuleCollider.

    You can assign a prefab to Samuel's template, or a UILabel object in Level 1. The template doesn't have to be located in Dialogue Bark Root. I'll add this note to the documentation in the next release.
     
  35. SpectralRook

    SpectralRook

    Joined:
    Feb 9, 2014
    Posts:
    112

    Success. I created an empty GameObject in the Hierarchy root of Level1. Added a UIPanel. Added a UILabel to the panel. Set the Layer for everything under GameObject to Interface. Added NGUIFollow Target to the UILabel. Assigned Samual to the Target. Adjusted the Override Height to 2.5 and Overflow to ResizeFreely. Assigned the UILabel to Samual's Template.

    Thank you for all of your help. Looking forward to using Dialogue System.
     
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    I'm glad it's working now! If you run into any other issues or have any feature requests, please feel free to post here or email me at tony (at) pixelcrushers.com. And when your project gets to the point of screenshots, post 'em here! :)
     
  37. EvilAlfredo

    EvilAlfredo

    Joined:
    Aug 11, 2012
    Posts:
    7
    Two quick things I've got a question for:

    1. Would it be possible to add an "Every Frame" option for the Get Variable and Get Lua Field Playmaker actions? This would be useful for values that change over the course of a conversation.

    2. Is there any way to get alerts to show variable values? Whenever I try and put a variable into it, it errors saying it is a nil value. This happens for items and actors as well.
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi EvilAlfredo, I'll add this in the next release.

    Yes. Here are two ways:

    1. If you're using the Show Alert PlayMaker action, you can insert [lua] tags such as:

    Text: You now have [lua(Variable["numCoins"])] coins!
    2. If you're setting the Alert variable in a conversation's dialogue entry, you can use Lua's string concatenation operator, which is '..' (two dots). This is different from C# and UnityScript, where the concatenation operator is '+'.

    Script: Variable["Alert"] = "Get " .. Variable["requiredCoins"] .. " coins!"
     
  39. EvilAlfredo

    EvilAlfredo

    Joined:
    Aug 11, 2012
    Posts:
    7
    The second one is exactly what I needed. Thank you! I'm just learning Lua, so things like this are easy to miss.
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Happy to help!
     
  41. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Hi Tony.

    I have just purchased Dialogue System and so far I am loving it!

    I have small request however,.. it looks like I am going to be creating a lots of conversations and I need to be able to manage them a little better than how DS is handling right now. Basically, I need to be able to at least sort the conversations by the title name.

    I thought about creating different database for managing it bit more modular way, but then I have to enter the actors details again and they won't be in sync.

    So ideally, I would like to manage the conversation database into separate ones or be able to sort them so I can at least use name convention to try and manage them.

    But I really think it should at least give me some option to be able to manage it by some kind of tree structures etc..

    thanks.
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi castor76, those are good points and good ideas. I'll be giving this a lot of thought for the next version. It's important to maintain compatibility with the flat structures of Chat Mapper, articy:draft, and Aurora, since many developers use those tools to write their dialogue.

    I think multiple databases are the way to go. They're not only useful for modular organization, but they also allow you to keep only the conversations you need in memory. Tortured Hearts is a good example of this. With about 10 novels' worth of text, it's impractical to keep it all in memory.

    Currently, on the Database tab you can merge the assets from one database into another (e.g., copy the actors) or use the Unique ID Tool to sync asset IDs across databases.

    Do you have any suggestions for improving the way multiple databases work? (This is an open discussion -- if anyone reading this has ideas, please let me know!)

    What do you think of the ability to link assets from one database to another? Say you have a database 'My Actors' that defines all of the actors. In a second database, you could link the Actors table to 'My Actors'. Whenever you edit the second database, the editor would automatically copy in all the actors from 'My Actors'.

    This still results in duplication, since the actors in the second database are copies of the actors in 'My Actors', but the Dialogue System is smart enough at runtime to only load one copy into memory. I'm hesitant to only link without copying the assets into the second database because I'd like to keep each database internally self-sufficient, especially for developers who import and export their databases between Unity and Chat Mapper.

    And I'll definitely add the ability to sort assets by name, regardless of how multiple databases are handled. That's an easy one. :)
     
  43. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Thanks for your thoughts Tony.

    I also think multiple database is a good idea. My experience with DS is short but as I see it, it looks like conversation part is going to be the most heavy database and the others are all one time setting that can be shared by multiple conversation database.

    So it may be ok to have all other data as one and just separate the conversations data into different ones that we can keep making to get it organized. For instance, if we want dialogue that happens in specific scene we can just build conversation data base for that specific scene etc and save it under the same folder where the scene is. Unity likes to sort of keep organizing scene related stuff relative to the where the scenes are so this may make more sense (like light map and nav mesh etc)

    If we can separate conversation database without having to recreate all other data (and do auto sync) then it should really help us to get organized. (along with the alphabetical sorting)

    If I may suggest yet another idea for making our life easier is that we need to be able to unlink the nodes inside node editor. Currently, we can only do that in outline and it is definitely not very intuitive way of doing it. We can link the nodes but we can't unlink one. This is MUST have feature because there hardly is any case where writing a conversation is going to be perfect for the first time. We want to keep changing orders and inserting new ones etc so without unlink , node editor is only half as useful as it should be. I hope this isn't very difficult to do.
     
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Okay, I'll try to get that into the next release!

    I apologize. This is a bug that was introduced in v1.2.4.1. It prevents you from being able to select links. In the next release, you'll once again be able to select links so you can delete them or change their priority level.
     
  45. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    I see. Is there any EST for the next update? Or is there any beta group I can join to get early version that has the fix in it. I can send you my invoice number if you want.
     
  46. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    For the conversation nodes view, is it possible to always show the Actor name in the nodes, e.g. Actor : xxxxx ?
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706

    Hi castor76, I usually publish an update weekly. This gives me enough time to implement features and run through the whole testing & QA battery. Unfortunately I'm tackling a big task right now: To support Windows Store and Windows Phone 8, I've had to replace/rewrite the underlying Lua implementation. On the plus side, the profiler indicates that the new Lua implementation runs 2-3x faster. :)

    In the meantime, I just put a patch on the customer download page that fixes the link-selection issue.

    Hi yuewahchan, I can add that as an option, but actor names can take up a lot of space on the nodes. Would you instead prefer to set a node color for each actor? Currently the player's nodes are blue and NPCs' nodes are gray, so I can see that NPC-NPC conversations could get confusing. A third option would be to put the actor's name above the text, such as:

    ---------

    I also posted an updated support package for UFPS on the customer download page:
    • Fixes an ammo count bug when loading saved games.
    • Now remembers the player's current weapon when loading saved games.
    • Adds checkbox to FPPersistentPlayerData to specify whether you want to save the player's position.
     
  48. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    I think the node can be at least 2 or 3 lines, e.g.
    Player: XXXXXX
    XXXXXXXXXXXX

    Then, it become a compact mode, then having a normal mode that look like chat mapper.

    Btw, is that the link ( arrow between node ) is not clickable in the latest version ?
     
  49. yuewahchan

    yuewahchan

    Joined:
    Jul 2, 2012
    Posts:
    309
    Also, I feel Chat Mapper UI is more convenient that it can view everything on the same window, and open more conversations to view side by side.
     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,706
    Hi yuewahchan, thank you for the UI ideas. I'll experiment with different formats. I want to retain the Mecanim-style appearance to make it easy to learn for people who are already familiar with Mecanim, and to maintain a consistent appearance with the rest of the Unity editor. I may also be able to do something with mouse-hover tooltips.

    That's correct. This bug is present in v1.2.4.1 and v1.2.4.2 but is fixed in a patch available on the customer download site.