Process/Addons/Rigify

Rigify Addon API

Introduction

Rigify is an auto-rigging add-on that allows a user to create an armature by combining a number of components (called 'rigs') via a 'metarig' template. The components could represent parts like an 'arm', 'spine' or 'finger'.

For each used rig component the metarig must contain a set of bones that define the shape of the part (the required number and structure being specified by the individual rig), with one 'main' bone tagged with the identifier of the rig and holding its parameter properties.

In order to generate the rig, the main engine of the Rigify addon duplicates the metarig, scans it to determine the necessary rigs, loads and instantiates their classes, and invokes their methods in the appropriate order.

It is possible to use custom rig classes in addition to the ones packaged with the add-on, via 'feature set' packages installed through the add-on settings. These pages describe the Python APIs used to implement such custom rigs.

Feature Set Package Structure

Describes the correct organization of a feature set package.

Implementing a Rig Class

Describes how a rig component is implemented.

Main Generator Engine

Describes the main object that controls the generation process.

UI Script Generator

Describes the object implementing generation of the custom UI script.

Utility Library

Rigify includes modules that provide a variety of utility function and classes for use in rigs. This documents the most important ones.

Bone Utilities (rigify.utils.bones)
Utilities for creation, placement and other manipulation of bones.
Mechanism Utilities (rigify.utils.mechanism)
Utilities for creating custom properties, constraints and drivers.

Some legacy code imports functions from rigify.utils. That is deprecated, and new code should always import directly from the relevant sub-module.