Page 1 of 1

Extending Articy:Draft Importer for Templates

Posted: Thu Mar 02, 2023 5:54 pm
by Biviho
Hi, i'm working on a project with a gamedesigner that work mostly on Articy:Draft an after going back and forth on how to properly write conditions, instructions, events and quests, i wanted to give her as much control as possible from articy and ease some of her pain cause of the fact that articy does not have a way (for what i know) to add external script definition like the ones used in Dialogue System.

for what i was able to understand, a way to make things in articy more drag and drop is with the use of templates for things like conditions, instructions, dialogues, etc...

something like adding a template for SetQuestState with a Quest reference object and a State so she can just add the instruction template and drag n drop what she want to do, or for quest, for example, having the entry to be a reference list of entry, instead of a static blob of variables handled with a count.

i've looke around both in documentation and code to find if there is some way to easly extend the current system, but i haven't found much except for rewriting the importer.

is that correct or did i miss something?

Re: Extending Articy:Draft Importer for Templates

Posted: Thu Mar 02, 2023 6:45 pm
by Tony Li
Hi,

What if you used strips in Articy?

I haven't tested this, but just brainstorming you could:
  • Add a category of entities for Dialogue System "action" functions such as SetQuestStateActive & SetQuestStateSuccess, and another category for "condition" functions such as IsQuestActive & IsQuestSuccess.
  • Add Conditions strip property to your dialogue fragments that can accept "condition" entities and other entity types except "action" entities.
  • Add a Script strip property to your dialogue fragments that can accept "action" entities and other entity types except "condition" entities.
When your writer wants a dialogue fragment to activate a quest, she can drag the SetQuestStateActive entity and a quest entity into the Script strip.

On the Unity side, SetQuestStateActive would correspond to the Lua function SetQuestState("quest", "active"), and so on.

The Dialogue System's Articy importer imports strips as subtables. After importing the Articy project into a dialogue database, you could run your own editor script that processes these subtables and fills out the corresponding dialogue entries' Conditions and Script fields.

If that sounds like an approach you'd like to try, let me know if you have questions about how to go about it.