Sequence import Articy Draft

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
thehazard
Posts: 27
Joined: Sun Jul 23, 2017 9:56 am

Sequence import Articy Draft

Post by thehazard »

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.
User avatar
Tony Li
Posts: 22059
Joined: Thu Jul 18, 2013 1:27 pm

Re: Sequence import Articy Draft

Post by Tony Li »

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?
thehazard
Posts: 27
Joined: Sun Jul 23, 2017 9:56 am

Re: Sequence import Articy Draft

Post by thehazard »

Hi Tony,

Here's what the dialogue tree looks like.
https://imgur.com/a/298NK
User avatar
Tony Li
Posts: 22059
Joined: Thu Jul 18, 2013 1:27 pm

Re: Sequence import Articy Draft

Post by Tony Li »

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?
thehazard
Posts: 27
Joined: Sun Jul 23, 2017 9:56 am

Re: Sequence import Articy Draft

Post by thehazard »

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 :D, so I don't really know what's going on. Thanks for your help.
thehazard
Posts: 27
Joined: Sun Jul 23, 2017 9:56 am

Re: Sequence import Articy Draft

Post by thehazard »

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?
User avatar
Tony Li
Posts: 22059
Joined: Thu Jul 18, 2013 1:27 pm

Re: Sequence import Articy Draft

Post by Tony Li »

Hi,

The Dialogue System only evaluates conditions that link from the current dialogue fragment*.
Take this dialogue for example:

Image

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:

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
You can see that all six fragments do a check on the player's age.

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.

Image

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.
thehazard
Posts: 27
Joined: Sun Jul 23, 2017 9:56 am

Re: Sequence import Articy Draft

Post by thehazard »

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.
Post Reply