Hi,
You're welcome to send a copy of your original dialogue database and the new Chat Mapper XML file to tony (at) pixelcrushers.com. I'd be happy to take a look and provide more specific recommendations than what I'm going to provide below. (All customer files are handled confidentially.)
If the Chat Mapper file contains the latest version of all content (all conversations, etc.), then just tick the Overwrite checkbox to overwrite your existing dialogue database. This is by far the easiest way to update content. But it requires the content coming from Chat Mapper to be complete and up-to-date.
If that's not the case, it'll help to explain IDs. The Dialogue System started as a Unity front-end for Chat Mapper. The internal data structure is the same. In Chat Mapper, conversations, actors, items/quests, locations, and variables are all called 'assets'. In each category (conversations, actors, etc.), each Chat Mapper asset has a unique ID number. (In almost all cases, you should never manually change internal ID numbers, as this will break links that point to the old ID number.) This is analogous to the way Unity assigns a unique GUID to every Unity asset.
Like Chat Mapper, under the hood the Dialogue System works with ID numbers
except:
- Conversation Triggers and DialogueManager.StartConversation() reference conversations by their titles, not by IDs.
- The quest system references quests by their names, not IDs.
If you rename a conversation, you
will have to re-select it in the Conversation Trigger's dropdown.
However, I think the first hurdle is to avoid those duplicate conversations when importing updated content from Chat Mapper. Let's look at the conversations "Meeting Wes" and "Wes / Meeting Wes", which I'm guessing are two generations of the same conversation. For example's sake, let's say "Meeting Wes" is the original conversation, and "Wes / Meeting Wes" is the new conversation.
The Dialogue Editor's Merge Database feature works by ID. It has an
If IDs Conflict dropdown. Make sure this dropdown is set to
Replace Conflicting IDs. If "Meeting Wes" and "Wes / Meeting Wes" have the same IDs, the merge will replace "Meeting Wes" with "Wes / Meeting Wes".
However, if they have different IDs, the new conversation will not replace the original one. This can happen if the writer created an entirely new conversation instead of editing the original one. This is analogous to someone dropping a new texture into a Unity project; it will have a new GUID, so it won't overwrite any existing Unity assets.
If this is the case, it's probably easiest in the long run to manually delete the obsolete conversations. To delete a conversation in the Dialogue Editor, select it from the dropdown. Then right-click anywhere on blank canvas space to open the context menu, and select Delete Conversation. Then ask the writer to maintain the authoritative copy of content in the Chat Mapper project so you can just overwrite the dialogue database with updated versions of the XML file without having to worry about this headache.
