User Tools

Site Tools

Interactive Lessons


While work continues toward making Daz Studio easier to use, many aspects still require some form of guidance. Beginning with the build, DAZ Studio provides access to an API that allows anyone who would like to guide users through specific tasks within the DAZ Studio interface another1) integrated mechanism for doing so. That mechanism is the Interactive Lesson Manager.

The Interactive Lesson Manager provides a means of guiding the user in performing a particular task, directly within the DAZ Studio User Interface (UI) by focusing the user's attention on a particular element of the UI and blocking/masking interaction with other interface elements until the user performs the prescribed interaction. It does this through a series of Instructions. Descriptions for the various types of instructions and their respective data members are provided in the section below.


Instructions are defined as an Array of anonymous objects, that is passed to the Interactive Lesson Manager. Each instruction, or Object in the array, must adhere to the JSON Specification.


Each instruction consists of one or more members - named key:value pairs. While an instruction object can contain an assortment of named members, only those defined below will be processed by the Interactive Lesson Manager.

The Type Member

Each instruction must provide at least one member that declares the “type” of instruction being defined. Each instruction should define only one of the members listed below. The value of this member is always a String that specifies a query for that type of instruction.

Other Members

An instruction may define one or more of the members listed below. While several of the members listed can be used with instructions of multiple types, not all members have a meaning in the context of every instruction type.

  • info_member - Set the main text displayed to the user
  • tag_member - Overrides the default text displayed in the tag
  • optional - Provides a button that allows the user to skip an instruction
  • locate_only - Highlight where an item is within the interface; clicks are used for acknowledgement instead of normal operation
  • asset_path_member - Defines the [relative] path of a content asset
  • target_container_member - Specifies whether the list for an item (i.e. asset, node, etc) is the target instead of the item within the list
  • value_member - Defines a value that is required from user interaction within the interface
  • tolerance_member - Defines the allowed amount of deviation from a property value
  • result_member - Force a result before continuing; repeat an instruction until the user causes the intended result to be produced
  • item_member - For use with widget instructions on list views; used as the query for items in the list (i.e. property, asset, etc); advanced
  • subrect_member - Modify the size and position of the highlight frame, relative to a widget's rect
  • dialog - Access the widgets of a modal dialog
  • using_member - Define the widget to use for a select instruction; i.e. use the Viewport to select instead of the Scene (WIP) pane
Interactive Lessons can be used in conjunction with the Steps (WIP) pane and/or Lesson Strips - both of which are existing APIs for providing guidance to users.