A major improvement for the articy importer plugin for Unreal Engine was introducing the articy object picker. Previously, all imported articy objects existed in the form of data assets with unique IDs as their asset names and referencing a specific entity was only possible by using that unique ID to look for the right data asset, which is impractical.

The solution is called the articy object picker and consists of multiple central parts that enhance the workflow:

Articy Object Selection

A widget featuring preview icons, type icons, referencing options for copies of an object, advanced tooltips, an articy button that will open the corresponding object within the external program, and an extension point so other modules can register their own buttons and widgets for different use cases without modifying plugin code.

This widget was primarily intended for use in details panels, but was reiterated upon to be as modular and reusable as possible for use in, for example, blueprint pins.

Advanced tooltips are necessary to display relevant information and let the user know what object exactly is selected. Important information is highlighted to draw attention.

A customer that was using the extension point to register a “quest” button that would check a quest ID defined within articy against a quest ID within a datatable. If found, the data table opens up and selects the relevant quest row. This makes it easy to catch spelling mismatches and saves the user a lot of time navigating data tables. This is done without modifying plugin code. Customizability allows this button to only appear on selected objects with a quest attribute, so different widgets can be registered for different types without cluttering the UI.

The widget is additionally implemented on pins of the customized struct to allow for literal values outside of the details panel and supports copy & paste properly. This helps with prototyping and gives the programmer, level designer or scripter the power to gather information about a graph’s logic at a glance rather than relying on indirection.

Articy Object Picker

  • The object picker features a tile view of the same tiles used in the widget to display its selected object. This means that our tooltips work by default. Through configurable slate arguments those tiles can be copied, but not pasted into.
  • The search function parses for things like entity type as well as content, so dialogue lines can be found by typing in the text contained within the object rather than just its asset name or its ID. This makes finding content easy.
  • A class filter can be further used to find only content of the specified types, and an “Exact class” checkbox will disallow inherited types from appearing.
  • To enhance workflow between engineers and designers, C++ meta tags are supported to restrict the class filter to a specific class hierarchy. This makes sense for cases where only characters are expected, or certain kinds of characters, or only dialogue elements but not individual dialogue lines
  • The picker was written to be reuseable across the board. An experiment I did was to add it to sequencer via some custom tracks.