Articy External ID?

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
mpillit
Posts: 16
Joined: Mon Apr 01, 2024 1:03 pm

Articy External ID?

Post by mpillit »

Im exporting from Articy Draft 3 and my conversations are getting unwieldy.

Ive got some game logic that jumps to a particular Entry ID when something happens. However as Im editing and making changes/additions, this entry ID keeps changing as I export from Articy, re-import to Unity and then I have to rework the logic.

Articy has a, External ID field for unique identifiers which I thought I could use to avoid changing ID's upon reimport, but Im not seeing any options in the importer to use this.

Barring this method, is there a way to get a consistent identifier out of Articy and into Unity so that reimporting doesnt require me to change my referenced entries all the time?

Thanks!
Attachments
Screenshot 2025-02-09 024124.png
Screenshot 2025-02-09 024124.png (9.86 KiB) Viewed 1705 times
Screenshot 2025-02-09 023941.png
Screenshot 2025-02-09 023941.png (25.15 KiB) Viewed 1705 times
User avatar
Tony Li
Posts: 22886
Joined: Thu Jul 18, 2013 1:27 pm

Re: Articy External ID?

Post by Tony Li »

Hi,

Every element in articy has an object ID, which is imported into the Dialogue System as a field named "Articy Id", and a technical name, which is import as a field named "Technical Name". (more info.) Articy Ids and Technical Names don't change unless you manually change them in articy:draft.

You can look up dialogue entries by either field. For example:

Code: Select all

JumpToEntryWithArticyId("0x01000001000011FB");
...
public void JumpToEntryWithArticyId(string articyId)
{
    foreach (var conversation in DialogueManager.masterDatabase.conversations)
    {
        foreach (var entry in conversation.dialogueEntries)
        {
            if (Field.LookupValue(entry.fields, "Articy Id") == articyId)
            {
                var state = DialogueManager.conversationModel.GetState(entry);
                DialogueManager.conversationController.GotoState(state); 
                return;
            }
        }
    }
}

BTW, if you're localizing in the Dialogue System instead of in articy, you can also use Articy Id as a unique field in Localization Export/Import.
mpillit
Posts: 16
Joined: Mon Apr 01, 2024 1:03 pm

Re: Articy External ID?

Post by mpillit »

Awesome, thank you Tony!

-M
User avatar
Tony Li
Posts: 22886
Joined: Thu Jul 18, 2013 1:27 pm

Re: Articy External ID?

Post by Tony Li »

Glad to help!
Post Reply