Extending Mari

You can add your own custom attributes to objects in Mari, as well as edit configuration files.

In particular, you can specify sets of:

keyboard shortcuts - Using a shortcut configuration file has the same effect as changing each shortcut individually in the Manage Keyboard Shortcuts dialog box, but lets you change all of them, as a single, consistent set. You can then also share a set of shortcuts with other users.

channel presets - Using a channel preset configuration file, you can specify categories of preset channels (for example, for different types of assets), to display in the Channel Presets dialog box when you create channels for a project in bulk

channel templates - Using a channel template configuration file, you can specify the filename formats to use in the Channel Presets dialog box. These control the filenames that Mari looks for when importing textures into new channels.

You can also configure Mari using environment variables.

About Custom Attributes

You can attach custom attributes to most objects in Mari (such as channels, models, projectors and lights). Rather than information that Mari needs, this is information that can be useful for yourself or other users of the project to know. For example, you can add the assigned owner of the model as a custom attribute attached to the model.

You can choose to add custom attributes for the current session only or save them as part of the project so that they persist when you quit and relaunch Mari.

About Custom Shortcuts

Three types of keyboard shortcuts are available in Mari:

The default set of shortcuts - that come with the application, as listed under Help > Shortcuts.

A custom set of shortcuts - defined in a shortcut configuration file. This is a text file, called Shortcuts.conf, containing a list of one or more Mari actions and their shortcuts. Mari looks for this file in the following sub-directory of your home directory:

.config/TheFoundry (on Linux),

.mari\TheFoundry (on Windows), or

.config/TheFoundry (on Mac).

Note:  If there is no custom shortcut file, Mari uses the defaults. Configuration file shortcuts override default shortcuts.

GUI shortcut - defined within the GUI, in the Manage Keyboard Shortcuts dialog box, for specific actions or project items. You do this by selecting Edit > Keyboard Shortcuts, or right clicking on a project item (channels, patches, shaders, lights, projectors, and things in shelves), or sets of those items, by selecting Assign Shortcut from the dropdown menu. GUI shortcuts override default and configuration file shortcuts.

So Mari accepts the default keyboard shortcuts for an action... unless that action is also specified in a shortcut configuration file, in which case Mari uses your custom shortcuts... unless you've overridden any of them in the GUI with individual custom shortcuts.

Tip:  If you are distributing a custom shortcuts file to multiple users, be aware that any individual custom shortcuts they apply override your shortcuts file.

The Shortcuts.conf file does not have to list all possible Mari actions. You can set up a shortcut for any Mari action, but you can only assign shortcuts to project items (channels, patches, shaders, lights, projectors, and things in shelves), or sets of those items, from within the Mari GUI (not from within a customization file).

About Custom Channel Presets

You can add channels in bulk to a Mari project, using the Channels > Channel Presets option. This opens a dialog box, Channel Presets, where you can select to create a set of channels in a project and optionally to also import existing textures. In the Channel Presets dialog box, you can select a Category, which represents a preset bundle of channels. For example, if you select the “Vehicles” category, you get a list of standard channels for painting a vehicle.

Mari comes with several default categories, stored in a channel preset file. If you want, you can replace the defaults with your own customized channel preset categories. Mari custom channel presets files are XML files with an .mtd extension. Mari looks for them by default in the following sub-directory of your home directory:

Media/Settings (on Linux),

Bundle\Media\Settings (on Windows), or

Media/Settings (on Mac).

You can select a different channel presets directory on the Paths tab of the Mari Preferences dialog box.

Tip:  If you use a customized channel preset file, Mari ignores its default channel presets. Only the channels in your custom preset file are available.

About Custom Channel Templates

When you're adding channels in bulk through the Channel Presets dialog box, you can select to import existing textures into the channels as Mari creates them. Mari looks for existing textures on disk. If it finds these textures, you can import them as the channels are created. The channel template controls the format of the filenames that Mari looks for. For example, one channel template is:

$PATH/$SHOT/color$SHOT_color.$UDIM.tif.

Mari comes with several default channel templates. If you want, you can add your own channel template files. Channel template files are straight text files, with an .mtt extension. Mari looks for them in the same directories as channel preset files.

About Environment Variables

Environment variables are named variables used to store a value, such as a specific file path. They are used to dynamically configure Mari’s behavior when Mari is launched. For example, Mari uses the information stored in them to define where to place certain files.

You can:

Set environment variables that Mari recognizes.

Create your own environment variables that Mari looks for when importing images.

Use environment variables to override any entry in the Mari.conf or Mari.ini files. These files contain all user settings that are not project specific.