Hello,
I've been using Dialogue System for Unity in my project for a few months now, and It's been a tremendous boon. That said, I'd like to give some suggestions for features that I'd love to see added in the future, specifically for organization in the dialogue editor. I have no idea how difficult these would be to implement, or even if other users besides myself would find any use for them. These are just my two cents.
-Visual Organization: I'm a very visual thinker, and so when working with a large array of items, ideas, etc. I like to use things colors, symbols, and shapes to help my organize things, see patterns in the flow of dialogue, find outliers or potential issues, and so on. The node view in the dialogue editor is nice, but it would be even better if I could make use of these sort of methods. For instance, giving the nodes in a conversation different colors depending on the character, or making the nodes for specific key lines of dialogue a different shape to make them stand out. Even better would be if I could then save multiple visualizations of each conversation as separate view settings, so I could look at the same conversation from different perspectives. Being able to organize and see these things at a glance without having to methodically search for them would be amazing.
-Node Tagging: The ability to give tags dialogue nodes, search for and select nodes by these tags, and then make changes to all nodes based on their tags directly in the dialogue editor. This would be immensely useful and time-saving, especially used in conjunction with my other suggestion regarding visual organization.
As I said above, this program has already done wonders for my workflow. Many thanks to the creators, and I hope these suggestions are useful to you.
Suggestions for Organization Features
Re: Suggestions for Organization Features
Thanks for the great suggestions! I had considered adding the ability to specify a color for each node, but I really like your idea of color coding by actor.
I'll try to add node tagging to a future version of the editor. I may also want to add the ability to multi-edit nodes at the same time, although I'm not sure yet if this would really be useful.
Would dynamic views be better, where the editor organizes nodes automatically based on criteria you've specified, or would you want to manually arrange the nodes for your different views? I'm also looking into possibly making group nodes (i.e., where IsGroup is ticked) collapsible.
In the meantime, you may be interested in RelationsInspector. It's a really handy visual tool made by Seldom Tools, and it has Dialogue System integration.
In addition to being generally useful for visualizing any kind of data, it's especially good for visualizing multiple linked conversations. You can get an overview like this (the Conversation Link Backend):
And you can drill down into the conversations, too, which will open the editor to a specific node:
You can also visualize how GameObjects in the scene relate to conversations and quests in the database (the Conversation Reference Backend):
I'll try to add node tagging to a future version of the editor. I may also want to add the ability to multi-edit nodes at the same time, although I'm not sure yet if this would really be useful.
Would dynamic views be better, where the editor organizes nodes automatically based on criteria you've specified, or would you want to manually arrange the nodes for your different views? I'm also looking into possibly making group nodes (i.e., where IsGroup is ticked) collapsible.
In the meantime, you may be interested in RelationsInspector. It's a really handy visual tool made by Seldom Tools, and it has Dialogue System integration.
In addition to being generally useful for visualizing any kind of data, it's especially good for visualizing multiple linked conversations. You can get an overview like this (the Conversation Link Backend):
And you can drill down into the conversations, too, which will open the editor to a specific node:
You can also visualize how GameObjects in the scene relate to conversations and quests in the database (the Conversation Reference Backend):
Re: Suggestions for Organization Features
Try Cytoscape.
http://cytoscape.org/
Cytoscape is designed to take a cell data tables and allow the user to discover connections between the a database with 10,000+ nodes and interactions. It has lots of cool features to routing, filtering, and displaying your graph.
It was worth the time.
It allowed me to identify poorly connected nodes and inter-connectivity levels between conversations easily.
Good luck
Roncin
//--------------------------------------------------------------
Walkthrough: Convert CSV file to nodes and edge files
1. Export your database as a CSV file.
2. Open the CSV file in Microsoft Excel <your data>
3. Enable developer mode in excel so you can run macro's
4. Open the Excel vba macro file located in the attached zip file
<Dialog to cytoscape macro.zip>
5. With <your data> visible, run the two macro's
'Dialog to cytoscape macro.xlsm'!Module1.Dialog2Cytoscape
'Dialog to cytoscape macro.xlsm'!Module1.Copy_Every_Sheet_To_New_Workbook
6. Note the file locations
//--------------------------------
Walkthrough: Create graph of conversations in Cytoscape:
You will want the sets add on. This allows you to group nodes by conversation ID.
1. Launch Cytoscape
2. Start new session "With Empty Network" create a random network name (your not going to use it)
3. File>Import>Network>File
Select your edges.xlsx file
In the import window,
Right click on the S column, select the green dot
This identifies the source nodes
Right click on the D column, select the orange target
This identifies the destination nodes
4. You should see a hairball of nodes and edges. Don't worry, it will get better.
5. File>Import>Table>File
Select your nodes.xlsx file
The node data will be added to your edge network
6. File>Save
Cytoscape crashes a lot. So this is a good time to save.
7. Add the Sets toolbox
Apps>App Manager
Add the "setsApp"
8. See the attached picture.
In the Control Panel (LHS)
(A) Choose the Sets tab
(B) Choose the + icon
(C) Add a set based on the column ConvID, prefix "C"
(D) Use the bottom middle button to reorganize your graph.
Sets based grid layout usually works well for me.
9. Drag and drop your nodes to clean things up.
10. Use the "Style" panel to customize your graph. Record what you do because you may need to repeat the process on a different version of your dialog.
11. Save
12. Explore: There are lots of cool options.
Use the node shape to see player selection nodes
Use node fill color to identify actors.
Use node borders (size or fill) to identify the conversation
Use the filtering feature to make custom graphs of your conversation. You can filter by any of the node parameters in your table. You can also filter by the number of connections a node has
Use different layouts to change the look and feel of your graph.
http://cytoscape.org/
Cytoscape is designed to take a cell data tables and allow the user to discover connections between the a database with 10,000+ nodes and interactions. It has lots of cool features to routing, filtering, and displaying your graph.
It was worth the time.
It allowed me to identify poorly connected nodes and inter-connectivity levels between conversations easily.
Good luck
Roncin
//--------------------------------------------------------------
Walkthrough: Convert CSV file to nodes and edge files
1. Export your database as a CSV file.
2. Open the CSV file in Microsoft Excel <your data>
3. Enable developer mode in excel so you can run macro's
4. Open the Excel vba macro file located in the attached zip file
<Dialog to cytoscape macro.zip>
5. With <your data> visible, run the two macro's
'Dialog to cytoscape macro.xlsm'!Module1.Dialog2Cytoscape
'Dialog to cytoscape macro.xlsm'!Module1.Copy_Every_Sheet_To_New_Workbook
6. Note the file locations
//--------------------------------
Walkthrough: Create graph of conversations in Cytoscape:
You will want the sets add on. This allows you to group nodes by conversation ID.
1. Launch Cytoscape
2. Start new session "With Empty Network" create a random network name (your not going to use it)
3. File>Import>Network>File
Select your edges.xlsx file
In the import window,
Right click on the S column, select the green dot
This identifies the source nodes
Right click on the D column, select the orange target
This identifies the destination nodes
4. You should see a hairball of nodes and edges. Don't worry, it will get better.
5. File>Import>Table>File
Select your nodes.xlsx file
The node data will be added to your edge network
6. File>Save
Cytoscape crashes a lot. So this is a good time to save.
7. Add the Sets toolbox
Apps>App Manager
Add the "setsApp"
8. See the attached picture.
In the Control Panel (LHS)
(A) Choose the Sets tab
(B) Choose the + icon
(C) Add a set based on the column ConvID, prefix "C"
(D) Use the bottom middle button to reorganize your graph.
Sets based grid layout usually works well for me.
9. Drag and drop your nodes to clean things up.
10. Use the "Style" panel to customize your graph. Record what you do because you may need to repeat the process on a different version of your dialog.
11. Save
12. Explore: There are lots of cool options.
Use the node shape to see player selection nodes
Use node fill color to identify actors.
Use node borders (size or fill) to identify the conversation
Use the filtering feature to make custom graphs of your conversation. You can filter by any of the node parameters in your table. You can also filter by the number of connections a node has
Use different layouts to change the look and feel of your graph.
- Attachments
-
- Dialog to cytoscape macro.zip
- (25.48 KiB) Downloaded 109 times
-
- 2016-08-04_103256.jpg (93.36 KiB) Viewed 2563 times
-
- 2016-08-04_101330.jpg (89.13 KiB) Viewed 2563 times
Re: Suggestions for Organization Features
Hi Tony,
I'd like to bump this topic - one thing that would be super helpful is if we could assign conversations to a location (or some other variable), so that we can quickly get to data that we need, and not use a pulldown with 1000 entries. Just any kind of hierarchical drilling would be helpful.
I'd like to bump this topic - one thing that would be super helpful is if we could assign conversations to a location (or some other variable), so that we can quickly get to data that we need, and not use a pulldown with 1000 entries. Just any kind of hierarchical drilling would be helpful.
Re: Suggestions for Organization Features
Hi,
Before using forward slashes in conversation titles:
After using forward slashes in conversation titles:
You can put forward slashes in conversation titles to organize them in a hierarchy. Here's an example before-and-after from fellow dev HawkX:chud575 wrote:I'd like to bump this topic - one thing that would be super helpful is if we could assign conversations to a location (or some other variable), so that we can quickly get to data that we need, and not use a pulldown with 1000 entries. Just any kind of hierarchical drilling would be helpful.
Before using forward slashes in conversation titles:
After using forward slashes in conversation titles:
Re: Suggestions for Organization Features
fantastic. you're the man, nowhere to go but down from here :p