Page 2 of 5

Re: Importing articy draft strips

Posted: Sun Mar 18, 2018 3:26 am
by diviocity
Great news! We'll be sure to test this out asap, but I have to admit, I'm not exactly sure where the customer download page is, outside of the Dialogue System Extras and Unity Asset Store page. Could you point me in the right direction?

Thanks!

Re: Importing articy draft strips

Posted: Sun Mar 18, 2018 8:08 am
by Tony Li
Hi,

I just PM'ed you your access info. If anyone else needs access, please PM me your Unity Asset Store invoice number.

Re: Importing articy draft strips

Posted: Tue Mar 20, 2018 1:10 am
by diviocity
Thanks Tony,

My apologies not being able to test this earlier, as I've noticed today the new version was officially launched. We went ahead and grabbed it from the Unity store and imported it, but quickly noticed that we were no longer able to Convert or even Review our articy project from the converter interface. Instead, we see the loading bar for a second, but it fails, throwing this error:

Code: Select all

ReferenceException: Object reference not set to an instance of an object
PixelCrushers.DialogueSystem.Articy.Articy_3_1.Articy_3_1_Tools.GetStripStringValue (PixelCrushers.DialogueSystem.Articy.Articy_3_1.ReferenceStripPropertyType stripPropertyType)
PixelCrushers.DialogueSystem.Articy.Articy_3_1.Articy_3_1_Tools.ConvertItem (System.Object item, System.Collections.Generic.List`1 fields)
PixelCrushers.DialogueSystem.Articy.Articy_3_1.Articy_3_1_Tools.ConvertFeatures (PixelCrushers.DialogueSystem.Articy.Articy_3_1.FeaturesType features)
PixelCrushers.DialogueSystem.Articy.Articy_3_1.Articy_3_1_Tools.ConvertEntity (PixelCrushers.DialogueSystem.Articy.ArticyData articyData, PixelCrushers.DialogueSystem.Articy.Articy_3_1.EntityType entity, PixelCrushers.DialogueSystem.Articy.Articy_3_1.ExportType export)
It seems the previous version worked fine with our XML output from articy. Any advice? Not sure if we're missing something obvious here or not...

Re: Importing articy draft strips

Posted: Tue Mar 20, 2018 6:58 am
by Tony Li
I'll try to get this fixed today and make a patch available. Would it be possible for you to send an XML file that produces this error to tony (at) pixelcrushers.com?

Re: Importing articy draft strips

Posted: Tue Mar 20, 2018 8:08 am
by diviocity
Thanks! I've gone ahead and emailed it to you.

Re: Importing articy draft strips

Posted: Tue Mar 20, 2018 8:09 pm
by Tony Li
Patch 20180320 handles empty strips. It's available on the customer download site and will be in version 1.8.0. If anyone needs access to the customer download site, please PM me your Unity Asset Store invoice number.

Re: Importing articy draft strips

Posted: Fri Feb 07, 2020 6:51 pm
by Raidenthequick
Hi Tony,

I am currently having trouble with InitializeLuaSubtables(). I just updated to the latest version, 2.2.4.

Namely, I'm getting an error on every strip that tries to be parsed unless it's empty -- empty strips work fine.

Because our articy ID's are such large numbers, they don't fit in the lua's attempted Int parse. To be specific, this line:

Code: Select all

number = int.Parse(this.HexicalText, NumberStyles.HexNumber);
which is line 20 on NumberLiteral.cs. It fails because the articy ID's we have are way too large to fit in a 32-bit integer. For example, we have ID's like the following (actual data):

Code: Select all

Dialogue System: Lua code 'Actor["Briff_Normal"].AlternatePortraits = { 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, 0x0100000000016CAD, }' threw exception 'Value was either too large or too small for an Int32.'
Any clues on what to do for this, or what I'm doing wrong? Thanks! Appreciate your hard work and support.

Re: Importing articy draft strips

Posted: Fri Feb 07, 2020 8:34 pm
by Tony Li
Hi,

Those numbers, such as 0x0100000000016CAD, are articy IDs. They typically correspond to an entity or quest flow fragment, in which case the Lua table will have references to the Dialogue System's Actor[] or Item[] table. For example, if 0x0100000000016CAD refers to the player actor, the Lua table will contain Actor["Player"] instead of 0x0100000000016CAD.

To be able to handle other data that's assigned to strips, please import this patch:

DS_ArticyLuaStripPatch_2020-02-07.unitypackage

It will make the Lua table contain "0x0100000000016CAD" as a string instead of a hex number.

Re: Importing articy draft strips

Posted: Fri Feb 07, 2020 9:53 pm
by Raidenthequick
Ohhh, I didn't realize this was happening because we're using strips of dialogue fragments / portraits, "nonstandard" types. Makes sense.

The idea we had was to have a strip of dialogue fragments and then yank some text data out of those to populate our UI with. A pretty strange way to go about it but it has some nice benefits. Just for clarity: With your new patch, the table will populate with strings for the ID's, and then I can use those to lookup and grab that particular "dialogue entry" from the Dialogue System database? And then pull the text from that? I'll try this out later, thanks!!!

Re: Importing articy draft strips

Posted: Fri Feb 07, 2020 11:46 pm
by Raidenthequick
Okay after some playing around, I realized I can't (or at least can't find how to) retrieve a particular dialogue entry by Articy Id. I thought FindAssetByArticyId would've done it but once again it only searches through Actors and Items. I'm considering the following solution, would like to know your thoughts / if you know a better way:

Since the strip of dialogue fragments all happen to be within a particular conversation parent, we also will supply that conversation in a slot. Then I will look up the conversation by name, and then linear-search through ONLY that conversation's entries looking for that particular "Articy Id" from the strip. That way I'm not looping through EVERY entry of EVERY conversation -- might get pretty slow that way.

Please let me know if this sounds okay or if you happen to know a more short-circuit method to get from Articy Id straight to dialogue entry. Thanks again!