Terminology

Hive is a modular rigging framework that introduces several terms and concepts that are essential to understanding its functionality and capabilities. However, some of these terms may have different meanings depending on the context, while others may already be familiar to users from other applications. This document serves to define and explain all major concepts used in Hive’s documentation.

Component

A component is a self-contained part of a larger rig, such as an arm, leg, or eye. These components can be combined to create more complex rigs. They are designed to be modular, so if you find yourself reusing the same rigging logic multiple times, you can make it into a component and attach it to other components. Hive provides pre-built components for common use cases, and we are constantly adding more. Check out the Components for more information on how to create and use components.

Definition

Definition files are used by Hive to automatically generate scene data, including nodes and attributes, based on the information provided in the file. They contain a hierarchy of the component guide, animation attributes such as IK/FK, metadata, IO nodes and attributes. These files are written in JSON format, which makes them easy to debug and edit. Without a component definition file, you cannot create a functioning component. These files are the primary way to create guides, joints, and other necessary components. It is essential to have a properly defined component to ensure that it works in all possible scenarios. For more information, refer to the zoo.libs.hive.base.definition.ComponentDefinition API reference.

Template

Hive Templates are JSON files or raw Python dictionary data.

The data inside a template contains the custom configuration overrides, final composed guide definition, rig name and Hive version that was used to create the template. With this information, it allows Hive to recreate any Hive rig from scratch.

Hive Template visualization

Hive Layers

Hive Layers are based on an organizational concept. Each layer represents a collection of nodes and attributes. Each layer is responsible for construction, serialization, and querying its own data.

Each layer always consists of two primary nodes:

  1. The metaNode (Maya network node) * Links all nodes within the layer. * Handles all API queries and metadata.

  2. DAG Transform * Contains all DAG nodes for the layer. The exception is the Deform Layer at the component level where bind joints are parented to the rig Layer deform.

Hive Layers aren’t display or render layers, though they share similarities in the concept of the API.

Hive Layers meta and transform visualization

Guide Layer

A Hive Guide layer is a container for all guide-related nodes within a single component. It contains all API logic for querying, creating, deleting guides. It’s responsible for (de)serialization of the guide hierarchy for definitions/templates. The guide layer also contains all primary build settings which the user can change in a UI via a connected node called a “Settings Node” which are network nodes with attributes.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveGuideLayer

Rig Layer

The Rig Layer is responsible for the animation control rig and animation settings (attributes). Just like all other Hive layers, it contains all API logic related to animation controls, system joints (ik/fk). This layer also contains all animation extra attributes like ik/fk stretch etc. on a connected network node called the “ControlPanel”. All extra attributes on this node will become proxy attributes on all controls on the component.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveRigLayer

Deform Layer

The Deform Layer is responsible for managing deformation joints i.e. joints which are skinned to output geometry. Deformers would be parented to this layer on the component level as well i.e. lattice. This layer exists at the rig level and the component; use the component deform layer to access the joints. The rig root deform Layer is used for parenting.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveDeformLayer

Input Layer

The input layer is responsible for managing the incoming transforms from outside of the component. For example, when a constraint happens from one component to another. Instead of constraining the control directly from another component, we constrain an input node which in turn manipulates the component. This allows the internals of the component to be self-contained and have complete control over how the node network is managed.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveInputLayer

Output Layer

Similar to the Input Layer, the Output layer manages all outgoing transforms which in turn constrain the input layer of another component.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveOutputLayer

XGroup Layer

An extra group which rigs can use at the component level to manage arbitrary nodes. This layer is not built automatically as it’s not always needed.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveXGroupLayer

Component Layer

The Component layer that only exists at the root of a rig which manages all components. This is how we access a component through the rig. The layer, just like the others, contains a transform; however, all components will be parented to this transform.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveComponentLayer

Geometry Layer

The Geometry layer manages all geometry on a rig i.e. both proxy which some people call the calamari and deformed geometry. The geometry can exist at both the rig root level and the component level. The default rig root level is where all geometry which would be exported gets parented to.


API Reference: zoo.libs.hive.base.hivenodes.layers.HiveGeometryLayer

Guide

A Hive Guide represents two main areas. First, the transform which will be referenced by all other aspects of a component to generate nodes, calculate math etc. Second is the animation control shape which can be manipulated by the rigger before it’s serialized and applied to the animation control shape.