Hello and welcome to the articy:draft X Basics tutorial series. This is the second lesson about templates and today we will look at all basic property types in detail.
Go to the Features section either via Template Design from the Jumpstart page (1) or by selecting it in the Navigator (2). Create a new feature (3) or select any of the existing ones and open it by double-clicking the tile.
Then select “Edit” in the top right to open the Feature editor.
Basic properties – Boolean
Let’s start at the top. Boolean is the first basic property type. It’s for your typical true/false, yes/no check.
If we go to the parameters, we can assign a display (1) and a technical name (2), create a tooltip to provide additional information on mouse-over (3), and decide if this property needs to have a value or not (4). If you check “is mandatory” and no value gets assigned, it will be highlighted in red in the property view of the corresponding object and it will be listed as an invalid property value if you do a Conflict Search. Next comes an option to have this property part of an XML export or not (5). If you don’t work with this specific export, you can just ignore it. “Is read only” (6) prevents this property from being changed at object level.
All parameters mentioned thus far are shared between all basic property types. Parameters below the line vary depending on property type. For Boolean this is a default value you can set (1). Please note that setting a default value satisfies the “is mandatory” requirement. Next we can choose if we want to display the property as a radio button or in form of a drop down menu (2). The last option “Show in flow” (3) is relevant if you display template values instead of description text in the Flow view.
This can be toggled via the “Show template information” button in the toolbar. By default property values are shown, but it could make sense to hide them if you have a large number of properties in a template and want to focus on the most important ones in the Flow view.
Using the arrow button next to a parameter allows resetting its value to the default value.
With Boolean properties we could for example check if a character is supposed to be a playable character or if an item is a quest item or not.
Basic properties – Number
Number is probably pretty self explanatory.
However, we have a broader range of specific parameters compared to the Boolean property type. In addition to a default value (1), we can also set a minimum (2) and maximum value (3) for this property.
It does not prevent you from entering a number outside these constraints, but doing so will highlight the value in red in the property view of the corresponding object and it will be listed as an invalid property value in a Conflict Search.
Setting constraints is a good way to catch errors before they make it to the game engine. Why is this mob one-hitting the players? Oops, instead of power 10 it is hitting with power 100. By setting constraints this small typo is easily found and fixed within articy, before having to go on a bug hunt in the engine.
You can also set the max number of decimal places (1) and add a unit denomination (2). The denomination is just a display option and does not affect the number in any way. However, the units are exported to the engine as meta data, so they can be used there if you want to. Then you can set if you want to display digit grouping or not (3). Which grouping character is used depends on the selected UI language. Last but not least is the option to show this specific property value in the flow or not (4), similar to the Boolean property.
Number properties can be used for a variety of things, for example attribute values, wealth, kill counter, you name it. Is it better to use a number property or a global variable? As often in articy, there is no real right or wrong here, it mainly depends on your project. If you are just counting the wealth of your player character, using a global variable or a number property does not make a great difference. But if you also want to monitor the wealth of each NPC, a number property in a template makes a lot more sense, as you only need to create one number property for wealth and assign the corresponding template to all characters, in contrast to having to create a unique global variable for each and every character in the game. Also numbers as global variables are of type Integer in articy:draft, if you specifically need decimal places you need to go for a number property.
Basic properties – Text
Text fields come in three sizes – small, medium, and large.
The differences are purely visual and just affect how much text is displayed when checking the object in the Property view. The actual maximum amount of text is the same for all text properties and can be adjusted with the max length parameter.
You can set a default value (1) for a text property or a placeholder (2).
True to its name the placeholder does not provide a valid value, which we can observe when we set the property to “Is mandatory”.
In this example we have both a default value and a placeholder set for this text property. If we remove the value, the placeholder will be displayed, and a conflict, as we no longer satisfy the “Is mandatory” requirement for this property value.
You can also define invalid characters for text properties. You can still enter the invalid characters, but doing so will highlight the text field and create a conflict. The same is true when you define a max length and then exceed this limit.
“Multi-language” (1) and “Has voice-over” (2) are parameters that are tied to the localization feature. Setting a property to multi-language will add it to the Localization view for the specific object, so it can be properly localized to all project languages. The same is true for “has voice-over”. Please refer to the localization lesson for details on this articy:draft X feature. The parameter “Show in Flow” (3) is similar to the property types we looked at earlier.
With text properties you can easily attach additional information to objects, like we did in this project for background and motivation of characters.
Basic properties – Drop down
The drop-down list property type offers the possibility to create custom enumerations.
When adding a drop-down list (1) to the layout area an additional editor window opens (2), that allows us to create and manage the list’s values.
With the orange plus we add an entry to the list (1), the red X removes the corresponding line (2).
One entry consists of a value, display name, and technical name.
You can re-order the list with the up/down buttons on the right side.
After reordering or after sorting, which we can achieve by clicking one of the column headlines, it can make sense to use Renumber to avoid gaps between values.
You can combine this with the manual numbering option to set a desired starting value for the list. In case you create a duplicate value, the numbers in question will be highlighted in red and you cannot confirm the list, until all values are unique.
After editing the display names of your list, you can use “automatic naming” in the technical names column to automatically base the technical names on the display names.
That makes it a lot easier to work with the data after an export to a game engine. Click OK to confirm your list.
The list is shown by display name in the parameters (1). A click on “edit list” re-opens the editor (2).
You can select a list item as a default value (1). If “Sort by display name” (2) is checked the list will be sorted alphabetically by display name within articy, regardless of how the actual property is sorted. The parameter “Show in Flow” (3) is similar to the property types we looked at earlier.
Enumerations come in handy wherever we want to select an option from a pre-defined list. For example to easily set the weapon type for an item. Or in this example, we have a template on all Dialogue Fragments of a conversation, and via the drop-down list we can select different camera angles we’d like to have for displaying the scene in game.
Basic properties – Slot / Strip
Slot and Strip properties are very similar, that’s why we can look at them together.
These property types allow to contain links to other articy objects. A slot (1) can contain one link and a strip (2) as many as you need. A slot can have a default value (3), for a strip you can define the max number of objects (4).
Both can have a placeholder (1). For both types it is possible to define what kind of objects can be linked to them (2).
The first hierarchical level of the selection list contains all basic object types (1). The second level offers the possibility to only allow objects with no template assigned, with any template or a specific one (2). For assets it is possible to select one or more asset types in addition to the template selection (3), for example allowing to link only audio files.
If we look at the Dialogue Fragment template example from earlier, where have a drop-down list to choose camera angles, we could add a Slot property to link sound files to be played at certain moments during the dialogue.
Basic properties – Calculated Strip
The calculated strip is a special form of the strip property. While it can contain a series of links to other articy objects, the calculated strip type will be automatically filled by executing a user-defined ‘query’.
When dragging a calculated strip (1) to the layout area, the query editor (2) opens. In here you can write and test the query for the strip. The query needs to be written in a specific format into the upper text box. We won’t go into details about the articy query language, as it goes beyond the scope of this series, for more information please check out the documentation here, or alternatively click the question mark icon in the top right of the query editor (3).
You can define where to search, default is the entire project, set rules for sorting and grouping, or limit how many results to display.
Let’s say we want to have a simple alchemy system in our project. For that we have created two features we use on entity templates – recipes and ingredients. In the recipes template we use Slot properties for the necessary ingredients, for example this Reflex potion is made out of alcohol, peppermint, and firabolicus sparkles.
To keep a good overview, ingredients should display all recipes in which they can be used.
We could add these recipes manually, but that takes time, and even more critical, can be error prone. We would need to remember to update the list on the ingredient side each time we change a recipe. If we exchange alcohol for milk in the Reflex potion, we need to go to the Alcohol entity and remove the Reflex potion from the list. Not ideal.
Instead we can use a calculated strip in the ingredient template. With the query on screen we check each Entity with the recipe template if the given ingredient is used. If yes, it will be added to the strip.
If we check the Alcohol entity, the Reflex potion appears in the calculated strip.
If we change the recipe and check again, it’s gone.
Wrapping one’s head around the query language might take some time, but once done it can be a powerful tool.
Basic properties – Scripts
With the script property type it is possible to use conditions and instructions not only within the flow but with every object.
Script properties are similar to usual text properties, but offer scripting support with syntax highlighting, auto-completion and error detection. Just like text properties, they come in three different shapes: small, medium and large.
Besides default value (1) and placeholder (2), script properties have a specific parameter called “Script type” (3). In this drop-down you can choose what kind of scripting support you need. You can choose between support for conditions or instructions or you can deactivate the error validation completely.
For some examples of using script properties, please check out the Maniac Manfred project, where there are used frequently in location templates.
Useful links:
Don’t have articy:draft X yet? Get the free version now!
Get articy:draft X FREE
*No Payment information required
Follow us on Twitter, Facebook and LinkedIn to keep yourself up to date and informed. To exchange ideas and interact with other articy:draft users, join our communities on reddit and discord.