articy instructions not converted into groups?

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

articy instructions not converted into groups?

Post by _marc »

Hi!

It seems that articy instruction nodes are imported as dialogue entries, but the documentation says that they are imported as groups (Instructions will be converted into a group dialogue entry that acts as a passthrough to run the instruction node's expression.). It happens here in the articy converter script:

Code: Select all

entry.isGroup = false; // Since groups are processed one level ahead, don't make this a group: entry.isGroup = true;
In my opinion it would be better to keep them as groups, because dialogue entries have many more fields (including localization fields) that are useless for simple instructions. Furthermore, non-group entries send OnConversationLine messages (sometimes, in the same frame, I use tens of instructions to handle game logic, I guess it could lead to some framerate issues).
If this is intended, would it be possible perhaps to get an option in the importer window to turn them into groups?
Thanks!

Marc
User avatar
Tony Li
Posts: 22104
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

Hi,

We switched this to ensure that articy code evaluation in the Dialogue System works in the same order as in articy. In the next update, I'll add an option to allow them to be groups. But please be aware that the Dialogue System has to factor in something that articy doesn't, so Conversations Evaluate Conditions One Extra Level Ahead.
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Thank you, I missed this information! Maybe it explains why sometimes I had to add extra empty nodes in articy.
It brings additional questions... :?

1 - Do you remember approximately what year did this change happen (turning instructions to non-groups)?

2 - So if I understand well, keeping your example with a flipping coin, in articy we should never flip the coin in the instruction pin of a hub and check the result in the input pin of the following node, right? Sometimes I do these kind of things, like putting instructions in the output pin of conditions nodes, maybe I should avoid this to avoid errors and unexpected behaviors, as hubs and conditions nodes are both converted to groups.

3 - In case we could convert articy instructions into groups in the future: during dialogue authoring in articy, does adding a hub between the instruction node and the condition check would work? Or should it be an empty dialogue fragment, necessarily, like in the example in your documentation?

Sorry for all these questions, I want to be sure that I'll use the option if you add it to the importer ;)
User avatar
Tony Li
Posts: 22104
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

_marc wrote: Sun Apr 28, 2024 7:28 am1 - Do you remember approximately what year did this change happen (turning instructions to non-groups)?
Version 2.0.5 in October 2018.
_marc wrote: Sun Apr 28, 2024 7:28 am2 - So if I understand well, keeping your example with a flipping coin, in articy we should never flip the coin in the instruction pin of a hub and check the result in the input pin of the following node, right? Sometimes I do these kind of things, like putting instructions in the output pin of conditions nodes, maybe I should avoid this to avoid errors and unexpected behaviors, as hubs and conditions nodes are both converted to groups.

3 - In case we could convert articy instructions into groups in the future: during dialogue authoring in articy, does adding a hub between the instruction node and the condition check would work? Or should it be an empty dialogue fragment, necessarily, like in the example in your documentation?
The change (turning instructions to non-groups) was a first step so that you'll be able to connect an instruction node directly to an input pin that checks the instruction's output. The last step (inserting another blank node between the instruction node and the input pin node) will be in version 2.2.46, so you won't have to worry about adding a hub node or anything messy like that in articy.
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Ok perfect, thank you :)
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Hi Tony,

I've downloaded the last version of the dialogue system, and I think there is a new problem with the articy converter :?
Instruction nodes followed by condition input pins now generate automatically some "Delay Evaluation" nodes. But because these nodes are not groups, I've got a warning message saying "Dialogue System: Response [10:240] has no text for a response button." Then the conversation seams to get stuck at this step.
DelayEval.jpg
DelayEval.jpg (38.53 KiB) Viewed 827 times

And considering your previous posts:
Tony Li wrote: Sat Apr 27, 2024 5:36 pm In the next update, I'll add an option to allow them to be groups.
Are you still considering adding this option?
User avatar
Tony Li
Posts: 22104
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

Hi,

I'll provide a patch later today that ensure those <Delay Evaluation> nodes aren't Player (blue) nodes so they don't report that error, and I'll also include an option to make them Group nodes. The caveat with Group nodes is that they don't delay evaluation, so you will run into an issue if your instruction node links directly to an input pin that checks the result of the instruction node.
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Ok, so to be consistent the upcoming option will turn new DelayEvaluation nodes AND all articy instructions into groups, right?

One last thing, maybe (for consistency, again): with the current version, if an output pin of an articy condition node goes to an input pin containing a condition, the DelayEvaluation is not added by the converter.

Thank you for the nodes' IDs reordering in the dialogue database, it helps a lot, especially when debugging :)
User avatar
Tony Li
Posts: 22104
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

_marc wrote: Mon Jun 03, 2024 9:12 amOk, so to be consistent the upcoming option will turn new DelayEvaluation nodes AND all articy instructions into groups, right?
Yes.
_marc wrote: Mon Jun 03, 2024 9:12 amOne last thing, maybe (for consistency, again): with the current version, if an output pin of an articy condition node goes to an input pin containing a condition, the DelayEvaluation is not added by the converter.
I believe it's handled correctly, but I'll check. If the Condition node's output pin doesn't contain code, it won't create an intermediate DelayEvaluation node before the input pin.
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Tony Li wrote: Mon Jun 03, 2024 9:44 am I believe it's handled correctly
My mistake, sorry, it works fine!
Post Reply