articy instructions not converted into groups?

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

Re: articy instructions not converted into groups?

Post by _marc »

1/ Ok, I understand, thank you! In fact, I'm not sure that it is the way to go... Yes, it fixes the link order problem but only in a specific situation. I agree that this node configuration is a very common case (I use it a lot), but there are too many situations where it won't work and we'll have to be hyper careful about adding extra nodes sometimes but not always. It won't work if group[9] is replaced by 2 or more following nodes. Or if in articy the group[9] is a condition, it will be converted to 3 groups by the dialogue system. I find it simpler to remember just one rule, a rule that is valid in all situations.
Moreover, the fact that unblocking [10] results in playing this node (and all following groups!) twice is dangerous: it means making double increments, calling scripts twice...

2/ On this setup :
2024_06_13.png
2024_06_13.png (59.86 KiB) Viewed 120 times
This configuration works with the link order 1 2 3, but with 3, 1, 2 (link 3 is below normal priority) it loops infinitely. Even with the last patch. Here, the solution could be to unblock all links starting from [1] and beyond only in the case when we go back (with a link) to a previous node that has already made its child evaluation (and blockings). That means, in this example, when the "try again" goes back to group[1], already "displayed" before in this group path. But it should not unblock groups made before group[1]. I suppose it requires storing additional information while the Dialogue System evaluates and progresses into a group path.

I'm sorry that this "linear group mode" turns to something so complex... I couldn't have imagined we'd run into so many new problems! It's up to you to tell me if we should forget it, if it's the case I'll respect your decision and will update my dialogues in articy accordingly. And if you want to continue, I'll continue to test the patches and to provide feedback.
;)
User avatar
Tony Li
Posts: 21050
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

I don't think there's a hard and fast rule that handles all cases. Correct me if I'm wrong, but it seems like some decisions are context dependent. If this is the case, perhaps it's best to use the most restrictive interpretation that blocks more than you might want to block, as in:


Image


and then add a custom property in articy to specify that certain group nodes should not be blocked. Would that work for your project?
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Tony Li wrote: Wed Jun 19, 2024 3:54 pm and then add a custom property in articy to specify that certain group nodes should not be blocked. Would that work for your project?
I don't think it will help... In the example below, disabling blocking on group[10] would result in the same problem that I was facing before you add the linear group option: when blocking on a false link on the group path, it will evaluate group[10] and all its following nodes a second time.
2024-06-17.png
2024-06-17.png (146.49 KiB) Viewed 108 times
Another idea for the common case above, would it be possible to delay disabling of group[10] one step later? If it could happen just after the evaluation from [9] to [10] (after it's validated), it would work nicely.
Last edited by _marc on Thu Jun 20, 2024 3:06 am, edited 1 time in total.
User avatar
Tony Li
Posts: 21050
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

That might work! I'll test it tomorrow.
User avatar
Tony Li
Posts: 21050
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

Please give this a test:

DS_EvaluateGroupsPatch_2024-06-21.unitypackage

It passes all of my tests, but it's possible there are some scenarios you've set up that I haven't made tests for.
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Thank you :)

This is...amazing! Everything (and more!) seem to work now, it passes all my tests too :shock:

Even this case works...
2024_06_21_01.png
2024_06_21_01.png (51.08 KiB) Viewed 75 times
And the situation with the random int and the "try again" loop, it looks fixed as well!
Would you tell me (roughly) how did you manage to handle such special cases?! :geek:
User avatar
Tony Li
Posts: 21050
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

Hi,

I just shifted the "disallow" code until later. This gives evaluation time to check the proper paths before blocking things off.
_marc
Posts: 69
Joined: Mon Nov 05, 2018 5:44 am

Re: articy instructions not converted into groups?

Post by _marc »

Hi there!

Can't believe the solution was so simple, well done! I've tried the patch on my group-based-mega-conversations and I see no problem. I'm very, very relieved to know that I can keep my articy conversations without having to add many extra nodes :)

Other thing, do you remember that I had a problem with the vertical order of my articy's nodes not being respected after the conversion? I think I've found the problem, in the ArticyConverter script, in the function BuildDialogueEntryFromInstruction, isn't a line missing, like for the other kind of node conversion?

Code: Select all

entry.canvasRect = new Rect(instruction.position.x, instruction.position.y, DialogueEntry.CanvasRectWidth, DialogueEntry.CanvasRectHeight);
It solves my problem, apparently.
User avatar
Tony Li
Posts: 21050
Joined: Thu Jul 18, 2013 1:27 pm

Re: articy instructions not converted into groups?

Post by Tony Li »

Good catch. I'll add that missing line.
Post Reply