Hi,
I've got a little problem when converting from Articy Draft to dialogue system.
I have a branching dialogue with two dialogue options. Both options have the same exact sequence command in the stage direction section of Articy Draft. However, after the conversion, only the bottom dialogue have the sequence command filled in, but the top 1st dialogue option is left blank in the sequence field. It's not a big deal, since I just need to go back and fill those sequence fields manually, but if there's a way to fix this problem, that'll be great. By the way, this asset is amazing, there's so many options, yet you made it so simple, it's incredible.
Sequence import Articy Draft
Re: Sequence import Articy Draft
Hi,
Thanks!
That shouldn't happen. I'll check this out and reply back here later today with an answer.
Would it be possible for you to post a screenshot of articy that includes those two dialogue fragments?
Thanks!
That shouldn't happen. I'll check this out and reply back here later today with an answer.
Would it be possible for you to post a screenshot of articy that includes those two dialogue fragments?
Re: Sequence import Articy Draft
I haven't been able to reproduce the issue. Would it be possible for you to send an example articy XML file to tony (at) pixelcrushers.com?
Re: Sequence import Articy Draft
So I just upgraded to the latest version of Articy and the same issue occurs, but I deleted that single dialogue fragment that wasn't transferring and copied and pasted the one that did transfer. Changed the text and now both of them works , so I don't really know what's going on. Thanks for your help.
Re: Sequence import Articy Draft
Just one more thing, I'm trying to set up a list of dialogue options each with their own condition.
I've got quite a large number of options each with their own condition, like over 15 now, but probably will be 10 times more than that. Could this potentially slow down the game as I add more and more options to the same dialogue tree?
Is there a way to make this process more efficient, instead of just adding more and more fragment down the list?
I've got quite a large number of options each with their own condition, like over 15 now, but probably will be 10 times more than that. Could this potentially slow down the game as I add more and more options to the same dialogue tree?
Is there a way to make this process more efficient, instead of just adding more and more fragment down the list?
Re: Sequence import Articy Draft
Hi,
The Dialogue System only evaluates conditions that link from the current dialogue fragment*.
Take this dialogue for example:
If the fragment circled in green is the current one, then the Dialogue System will need to evaluate six conditions (circled in red). This is because the fragment links to six other fragments.
But in this image:
the fragment circled in green only links to one node, so at that point in the conversation the Dialogue System only needs to evaluate one condition (circled in red).
These evaluations are typically very fast. But if a fragment links to a large number of other fragments, or if you've registered a slow custom function with the Dialogue System's Lua environment, then it could be slower.
In this case, you can use condition nodes to subdivide the fragments into groups. Looking back at the first image, say the top three fragments apply if the player is not old enough to drink alcohol (say, age 21). And the bottom three fragments apply if the player is old enough. So maybe the fragments' conditions would look like this:
It's marginally more efficient to add a condition node in front that checks the players age just one time. In the image below, I put a condition node in front of the six nodes. If the player's age is under 21, then it will only evaluate the top three fragments' conditions.
In most cases, unless you're using a slow custom function, the difference isn't even noticeable, so I recommend doing whatever is easier to manage.
---
* Technically, the Dialogue System evaluates conditions one extra link ahead. It has to do this to support certain continue button modes.
The Dialogue System only evaluates conditions that link from the current dialogue fragment*.
Take this dialogue for example:
If the fragment circled in green is the current one, then the Dialogue System will need to evaluate six conditions (circled in red). This is because the fragment links to six other fragments.
But in this image:
the fragment circled in green only links to one node, so at that point in the conversation the Dialogue System only needs to evaluate one condition (circled in red).
These evaluations are typically very fast. But if a fragment links to a large number of other fragments, or if you've registered a slow custom function with the Dialogue System's Lua environment, then it could be slower.
In this case, you can use condition nodes to subdivide the fragments into groups. Looking back at the first image, say the top three fragments apply if the player is not old enough to drink alcohol (say, age 21). And the bottom three fragments apply if the player is old enough. So maybe the fragments' conditions would look like this:
- Fragment 1: PlayerVariables.age < 21 && PlayerVariables.money > 100
- Fragment 2: PlayerVariables.age < 21 && PlayerVariables.isOwnersSon
- Fragment 3: PlayerVariables.age < 21 && PlayerVariables.money < 100 && !PlayerVariables.isOwnersSon
- Fragment 4: PlayerVariables.age >= 21 && PlayerVariables.money == 0
- Fragment 5: PlayerVariables.age >= 21 && PlayerVariables.money > 0 && PlayerVariables.money < 100
- Fragment 6: PlayerVariables.age >= 21 && PlayerVariables.money > 100
It's marginally more efficient to add a condition node in front that checks the players age just one time. In the image below, I put a condition node in front of the six nodes. If the player's age is under 21, then it will only evaluate the top three fragments' conditions.
In most cases, unless you're using a slow custom function, the difference isn't even noticeable, so I recommend doing whatever is easier to manage.
---
* Technically, the Dialogue System evaluates conditions one extra link ahead. It has to do this to support certain continue button modes.
Re: Sequence import Articy Draft
That's very helpful. If my dialogue slows down in the future, I'll try to implement the condition nodes. Thank you Tony for such a detailed response.