Hi
nathanj,
yes, I was talking about articy:draft.
In the program, a location is a type of object you can create. It's intended as a sort of draft of a game map/level. Dialogue System imports the name and description (+ custom additional data) which can be used – for example – in an in-game world map, or to set up the level when it loads.
The data about the location object get imported.
The link priority actually is a DS standalone feature which is not present in articy:draft. When there are multiple NPC responses to choose from, DS picks the one with the highest priority of its link. Articy doesn't have this (it picks the topmost response), so
changing the colour of connections is simply a way to notify the Articy→DS converter to give a certain connection (link) a higher priority.
Inside the
Dialogue Editor in Unity, you simply click on a link and select the priority you want from a popup.
As far as I know, you can't tell a link's priority just by looking at the graph itself, you have to click on the link to find out.
Priorities are great
alongside conditions. They make it much easier to add lines of dialogue which shouldn't be said
until every other reply has been exhausted, or when you want something else to
override regular conversation. You can technically replace this with conditions, but that would require many one-time variables you'd have to needlessly micromanage.
E.g. it's easier to set link's priority to
Low than to use a condition like "Reply1Used && Reply2Used && Reply3Used".
Here's a conversation template I use. When meeting a character for the first time, I want to trigger some kind of introduction (
Above Normal priority). The second time you talk to the same character, the regular conversation is used.
In the future, I might want to add some kind of emergency dialogue line with
High priority which should always override everything else.
For example, if the character's hometown started burning, they'd certainly not use their regular dialogue line "Oh, jolly good morning, my good fellow!" but "Help! My house is on fire!".
You could also cause something to make the character hate you, which should also take precedence.
Without using priorities, the regular conversation would now probably have to use:
Variable["
CharacterMet"] == true &&
Variable["
CityBurning"] == false &&
Variable["
CharacterHate"] == false &&
Variable["
CharacterLove"] == false
as a condition.
Can you see the benefit of the priorities now?