Dialogue System 1.1.4 Released!

Version 1.1.4 is available on the customer download page.

IMPORTANT UPGRADE NOTE:
In version 1.1.4, the Examples/Scripts folder was moved to Scripts/Supplemental.
When upgrading, please remove the Dialogue System folder before importing 1.1.4.

See the Release Notes for all the new additions and changes, including:

  • New: Wizards to simplify configuration of NPCs, PCs, and gameplay integration.
  • New: Separate dialogue database editor window. (Editing in inspector is also still available.)
  • New: BioWare Neverwinter Nights 1 & 2 Aurora Toolset importer.
  • New: Killer Waves integration.
  • New: Added Rich Text Emphases checkbox to display settings to use rich text codes for emphasis tags.
  • New: More PlayMaker actions: PreloadMasterDatabase, PreloadDialogueUI, SetStatus, GetStatus, SetRelationship, GetRelationship, IncRelationship, DecRelationship.
  • Improved: Interface enhancements to the dialogue database editor and Chat Mapper importer.
  • Changed: The Always Force Response Menu display setting is now ticked by default.

Dialogue System 1.1.3.2 Released!

Version 1.1.3.2 is available on the customer download page. It fixes a bug introduced in 1.1.3 that affected certain UI prefabs.  It also adds additional menu items to Window > Dialogue System > Help, typewriter text effects for Daikon Forge GUI and 2D Toolkit, and minor usability improvements to the dialogue database editor.

Dialogue System 1.1.3.1 Released!

Some small additions to 1.1.3 made it into the version that has been submitted to the Unity Asset Store as 1.1.3.1:

  • 1.1.3.1: Improved Proximity Selector component re-selects another usable object in range if player moves away from the current selection.
  • 1.1.3.1: Dialogue database editor now sets new conversations’ START entries’ Sequences to “None()” instead of using the default sequence. This avoids an issue where conversations would appear to delay two seconds before starting. (The conversation is actually playing the default sequence for the START entry, which includes a 2+ second delay.)

Dialogue System 1.1.3 Released!

The Dialogue System for Unity 1.1.3 has been submitted to the Unity Asset Store and is available for immediate download on this site for paid customers. (Contact us with your Asset Store invoice number if you don’t have access to the customer download area.)

See the Release Notes for all the new additions and changes, including:

  • Several new callbacks and messages you can hook into for notification about conversation activity
  • Optional Subtitle Continue Button
  • New Proximity Selector, useful for top-down/isometric games
  • Usability improvements to the dialogue database editor

Dialogue System 1.1.2 Released!

The Dialogue System for Unity 1.1.2 has been submitted to the Unity Asset Store and is available for immediate download on this site for paid customers. (Contact us with your Asset Store invoice number if you don’t have access to the customer download area.)

See the Release Notes for all the new additions and changes, including:

  • New: Added Range Trigger to enable objects & components in range (e.g., only bark when player is near).
  • New: Added StartConversation(title) for conversations in which neither actor nor conversant has a transform.
  • New: Added Quest[] as alias for Lua table Item[].
  • New: Added articy:draft Feature Demo example.
  • Improved: Lua Console prints more info about table return values, now has a close button and scrollable output.
  • Improved: Dialogue database editor visual enhancements in Item/Quest foldout.
  • Updated: NGUI integration updated to support NGUI 3’s new dynamic fonts; NGUI 2.x support is still provided but will no longer be actively developed.
  • Fixed: (Daikon Forge GUI) When the first dialogue entry of the first conversation was a group node, the subtitle color was set to (0,0,0,0).
  • Fixed: (2D Toolkit UI) When the first dialogue entry of the first conversation was a group node, the subtitle color was set to (0,0,0,0).
  • Fixed: Bark Triggers weren’t working on third-party objects, only if the trigger was on the barking character.

Dialogue System 1.1.1 Released, Includes articy:draft Support!

The Dialogue System for Unity 1.1.1 has been submitted to the Unity Asset Store and is available for immediate download on this site for paid customers. (Contact us with your Asset Store invoice number if you don’t have access to the customer download area.)

See the Release Notes for all the new additions and changes. Highlights include:

Dialogue System 1.1.0 Released!

The Dialogue System for Unity 1.1.0 has been submitted to the Asset Store and is available for immediate download on this site for paid customers. (Contact us with your Asset Store invoice number if you don’t have access to the customer download area.)

See the Release Notes for all the new additions and changes.

Dialogue System 1.0.9 Released!

The Dialogue System for Unity version 1.0.9 has been submitted to the Unity Asset Store and is available for immediate download on this site for paid customers. (Contact us with your Asset Store invoice number if you don’t have access to the customer download area.)

One of my favorite improvements is small but really helps my workflow when writing and testing dialogue: In the Chat Mapper Converter, when you rebuild a dialogue database, all references to the database are now retained, so you don’t have to reassign the database to the Dialogue Manager any more!

Daikon Forge GUI is a wonderfully designed and implemented GUI system. The Dialogue System now supports it out of the box. One prefab UI is provided in 1.0.9, and more will be included in an upcoming release.

Localization is now easy to do in the Dialogue System.

Easy integration with gameplay frameworks is a critical feature overlooked by other conversation systems. The Dialogue System was designed to support easy integration with a large collection of powerful triggers and handlers. But 1.0.9 now contains integration examples and support scripts for VisionPunk’s Ultimate FPS and Azuline Studios’ Realistic FPS Prefab.

Version 1.0.9 is packed with lots of new features and improvements:

Version 1.0.9:

  • New: Localization support.
  • New: Daikon Forge Dialogue UI support.
  • New: Added Show Cursor On Conversation component.
  • New: Added sequence command Fade().
  • New: Added Once property to triggers for one-time triggers.
  • New: Added integration support for Azuline Studios’ Realistic FPS Prefab.
  • New: Added integration support for VisionPunk’s Ultimate FPS (UFPS).
  • Improvement: In Chat Mapper Converter, overwriting retains references, so you don’t need to reassign the database in Dialogue Manager.
  • Improvement: Minor visual improvements to some of the Unity GUI dialogue UIs.
  • Improvement: Additional documentation on dialogue UIs.
  • Improvement: Improved error handling for improperly configured Unity Quest Log Windows.
  • Fixed: Bug in Lua conversion of malformed ints and floats.

 


Version 1.0.8:

  • New: Added Unity Dialogue UI “Nuke”.
  • Improvement: Assets > Create > Dialogue Database now creates a database with Player actor and Alert variable.
  • Improvement: General improvements to dialogue database editor.

Integrating With Gameplay

A customer, Sean, recently asked a great question:

[I]f I apply some AI to my NPC, when I go talk to him, will he stop moving?

This was in response to the Realistic FPS Prefab integration example that I recently added to the Dialogue System.

Integrating PC-NPC dialogue with gameplay is one of the more difficult steps, because you need to transition player control from gameplay mode (looking around, moving, etc.) to conversation mode. Generally, you need to temporarily disable gameplay controls and NPC AI, and get the NPC to act the way you want in conversation mode.  To do this, you can use triggers such as Set Enabled On Dialogue Event and/or sequencer commands such as SetEnabled().

My response to Sean was:

That really depends on what you want him to do. [In the Realistic FPS Prefab integration example,] I took a shortcut in the NPC AI script and just set the attack range property (and a few other properties) to 0. This means that the Sad Robot will just sit there and never attack. If you want to do the same thing at run-time, you’d have to write a short script to do it. This is because the Dialogue System doesn’t know about the internals of the FPS Prefab scripts. But you could tell that short script to do its thing by using the SendMessage sequencer command. This is what I did with the RemoveWeaponHandler script.

A better option might be to use SetEnabledOnDialogueEvent to disable the AI script during conversations, and then use the Animation sequencer command to play the Idle animation. You could do this all in a sequence, in fact, and you wouldn’t need to add any components to the NPC. You could use a sequence like this on the NPC’s first dialogue entry:

SetEnabled(AI, false); LookAt(listener); Animation(idle); Delay(2)

This sequence disables the AI component, rotates the NPC to look at the listener, and plays the NPC’s idle animation. Then it delays for 2 seconds to give the player time to read the NPC’s first line.

At the end of the conversation you’ll need to re-enable the AI script. You can do this with a sequencer command or, probably easier, using SetEnabledOnDialogueEvent (OnConversationEnd).

Why Chat Mapper?

I appreciate good tools. From the beginning, I built the Dialogue System to support Chat Mapper. After all, they’ve been refining their editor and the underlying data structure for years, allowing you to write the most expressive dialogue of any interactive dialogue tool I’ve come across. (For those who prefer a more compact style to Chat Mapper’s graph display, I also wrote an outline-style editor that works with the same underlying data structure.)

Chat Mapper is a professional tool available at indie prices. If you’re not already a fan, I encourage you to check it out at: http://www.chat-mapper.com/