Hello and welcome to the articy:draft X Basics tutorial series. In this lesson we take a look at Search and Conflict Search, which are part of articy’s checkup tools.
Search
When clicking the Search tab (1) in the Navigator, the normal project tree is replaced by the search criteria form (2) and the result list (3).
Setting up a search is very easy. First, specify if you want to search in the name field (1), the description field (2), or in any text field of articy objects (3).
Next, enter the search text (1). All objects that contain this text somewhere in the chosen field or fields are added to the result list. Now you can decide if you want to search all project languages or a specific one (2).
You can also decide if you want the search to consider capitalization by checking or unchecking Case sensitive (1). Then decide if you want to search in your entire articy:draft project or if you want to restrict the search to certain parts (2). For example, in this case, the search would be limited to the Entities folder.
The result list (1) shows all hits for the search. If you search All languages or the Primary language, results will be shown as usual like when the object gets selected in the Navigator (2).
If you search for a specific secondary language (1), results will be shown in the Localization View (2), when selected.
Query Search
You probably already noticed the fourth option in the Find objects drop-down list – Search by Query.
It is an advanced search, that uses the articy:draft query language to search for objects by your own criteria. For example you could search for objects with a specific template. Template(anyof, Weapons, Character)
(1) – this would find all objects that have the template Character
(2) or Weapons
(3).
Or you could search for a specific property value. CharacterInfo.PlayableCharacter == true
(1) would list all objects with the feature CharacterInfo
(2) that are flagged as playable characters (3).
It might look a bit complex at first glance, as the articy query language is structured close to SQL , but it basically allows you to search up anything in your project you could think of. You can find a link to the complete documentation of the query language here.
Conflict Search
Besides the normal search function the navigator also provides a tab that is dedicated to searching conflicts inside the project.
Click on the conflicts tab (1) in the navigator. The normal project tree is replaced by the conflict search criteria form (2) and the result list (3).
If you want, you can narrow down the search by specifying the type of conflict you want to look for. In details these are:
Invalid property values (1)
For a lot of property types you can set up constraints, like min or max values for numbers, or length constraints for text fields. However, this does not prevent users from entering invalid values. These values will be highlighted when looking at the respective object or in the Conflict Search if we check invalid property values.
Duplicate technical names (2)
All articy:draft objects can be assigned a technical name. Every technical name should be used only once throughout the entire project. When checking Duplicate technical names, the Conflict Search lists all objects that contain a technical name used more than once.
Script Errors (3)
Checks for script errors in pins and Condition or Instruction nodes. To check script properties within templates, Invalid property values needs to be active.
Invalid references (4)
These can occur if, for example, you set an Entity as a speaker for a Dialogue Fragment, and then someone deletes the Entity in question. In this case the reference, the speaker of the Dialogue Fragment, is not removed entirely, but set to an invalid state. If Invalid references is checked in the Conflict Search, all objects are listed, that reference such an already deleted articy object.
Defective assets (5)
Sometimes when importing assets, problems can occur when trying to access the specified files. Files might be locked, access rights may be insufficient, or files are unavailable for some reasons. These failed imports can be found by checking Defective assets.
Localization Errors (6)
Localization conflicts occur if a property has an entry in the primary language but is empty in a secondary language or if the primary language entry is empty and it is only filled for one or more secondary languages. If a field is empty for all languages, primary and secondary, it will not be flagged as a localization conflict! You can search for localization errors in all project languages or a specific secondary one.
The only thing I will leave out of the search are the localization errors, because there is still a lot to do here, and I know it would result in a lot of hits. Rest of the boxes I leave checked. Next we can decide the scope of the search. Here we can use the default setting as well, for searching the entire project. Click the “Search” button to start.
Let’s take a look at the results. They are grouped by articy sections, Flow, Entities, and so on.
First thing we see is a script error in the Flow (1). It says “Assignments in conditions aren’t allowed”. Click the result to open it (2), so we can see in detail what went wrong here. Oh, okay, it is a condition, but instead of the relational operator double equal sign, I put just one equal sign, which is an assignment operator. A typo that can easily happen. Correct expression is GameState.isRenfieldDefeated == true
Next we have an invalid property value (1) in an item, namely the combat modifier. If we hover over the entry (2), we see what the issue is. We set a constraint for this value with a maximum of 10, but a slight slip of the finger had me enter 19 instead.
Then we have a duplicate technical name (1). I probably copied and pasted the item to create a slightly different version and forgot to adjust the technical name (2).
If we click Search again, the issues we fixed disappear. They could have led to all sorts of unwanted behavior, but thanks to the Conflict Search we were able to weed them out before our data even made it into the engine.
GO TO “ADVANCED CONFIGURATION” LESSON
Useful links:
Help Center: Search
Help Center: Conflict Search
Articy Query language documentation
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.