Importing articy draft strips

Announcements, support questions, and discussion for the Dialogue System.
diviocity
Posts: 22
Joined: Sun Feb 25, 2018 12:50 am

Re: Importing articy draft strips

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

Re: Importing articy draft strips

Post 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.
diviocity
Posts: 22
Joined: Sun Feb 25, 2018 12:50 am

Re: Importing articy draft strips

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

Re: Importing articy draft strips

Post 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?
diviocity
Posts: 22
Joined: Sun Feb 25, 2018 12:50 am

Re: Importing articy draft strips

Post by diviocity »

Thanks! I've gone ahead and emailed it to you.
User avatar
Tony Li
Posts: 22143
Joined: Thu Jul 18, 2013 1:27 pm

Re: Importing articy draft strips

Post 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.
Raidenthequick
Posts: 34
Joined: Mon Jul 02, 2018 5:00 pm

Re: Importing articy draft strips

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

Re: Importing articy draft strips

Post 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.
Raidenthequick
Posts: 34
Joined: Mon Jul 02, 2018 5:00 pm

Re: Importing articy draft strips

Post 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!!!
Raidenthequick
Posts: 34
Joined: Mon Jul 02, 2018 5:00 pm

Re: Importing articy draft strips

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