Page 1 of 8

articy instructions not converted into groups?

Posted: Sat Apr 27, 2024 5:03 pm
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

Re: articy instructions not converted into groups?

Posted: Sat Apr 27, 2024 5:36 pm
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.

Re: articy instructions not converted into groups?

Posted: Sun Apr 28, 2024 7:28 am
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 ;)

Re: articy instructions not converted into groups?

Posted: Sun Apr 28, 2024 9:35 am
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.

Re: articy instructions not converted into groups?

Posted: Sun Apr 28, 2024 10:22 am
by _marc
Ok perfect, thank you :)

Re: articy instructions not converted into groups?

Posted: Mon Jun 03, 2024 6:25 am
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 820 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?

Re: articy instructions not converted into groups?

Posted: Mon Jun 03, 2024 8:29 am
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.

Re: articy instructions not converted into groups?

Posted: Mon Jun 03, 2024 9:12 am
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 :)

Re: articy instructions not converted into groups?

Posted: Mon Jun 03, 2024 9:44 am
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.

Re: articy instructions not converted into groups?

Posted: Mon Jun 03, 2024 10:42 am
by _marc
Tony Li wrote: Mon Jun 03, 2024 9:44 am I believe it's handled correctly
My mistake, sorry, it works fine!