Back to Changelog Download README
izom PropUI Rigify
izom PropUI Rigify is a Rigify feature set for authoring a clean, generated rig control UI directly from a Rigify metarig. You author the controls on one metarig host bone, generate the rig normally with Rigify, and the finished controls appear on the generated rig in Rigify's native "Rig Main Properties" panel or in their own generated PropUI panel.
Version: 1.5.5
Installation
- Enable Blender's built-in Rigify feature.
- Open Rigify preferences.
- Install the izom_propui_rigify feature set ZIP.
- Enable izom PropUI Rigify in the external feature set list.
To update an existing installation, remove the old izom_propui_rigify feature set from Rigify preferences before installing the new ZIP. Rigify does not overwrite an installed feature-set folder.
The feature set can be enabled in the same Blender profile as izom PropUI. They use separate operators, shortcuts, settings, and generated helpers.
Quick Start
- Add or select a bone on your metarig.
- Set the bone's Rigify Type to izom.PropUI.
- Use the izom PropUI Rigify editor in the bone's Rigify parameters, or choose the 3D Viewport Sidebar location in Editor Settings.
- Add entries to the Entry List and configure their labels, values, display style, conditions, and storage where needed.
- Choose whether the UI follows Visible on Bones or is Always Visible, then optionally place it in a separate generated PropUI panel.
- Arrange the generated UI in the Generated Layout section.
- Generate the rig with Rigify.
By default, the generated controls appear in Rigify's native "Rig Main Properties" panel when any configured Visible on Bones control is selected.
Where The Editor Lives
Select the metarig bone that owns the izom.PropUI component to edit its setup.
By default, the editor lives in the component's Rigify parameter UI. Editor
Lives In in Editor Settings can move the same complete editor to the 3D
Viewport Sidebar: press N and open the PropUI Rigify tab. Rigify Parameters
then shows a navigation message instead of a duplicate editor. The choice is
stored with the component, and all authored data remains stored on the metarig
through Rigify parameters.
The sidebar header shows the host bone currently being edited beside its pin. The pin keeps that PropUI component open while you select other bones, generated controls, or objects. Editor actions and shortcuts continue targeting the pinned metarig component until you unpin it. Pinning is temporary editor state, stays out of Undo History, and remains stable while authored actions are undone or redone. It is cleared when the Blender file or feature set is reloaded.
Output Setup
Output Setup controls where the generated UI is visible, where generated custom properties are stored, and how native metarig custom properties are handled.
Property storage is needed for managed custom-property entries: Float, Integer, Boolean, String, Data-Block, Python, and Array. Text rows, Operator Buttons, Custom RNA Path entries, and Display Links to non-managed sources can generate UI without creating managed storage. A Display Link to a managed entry uses the linked entry's storage.
- Panel Location keeps the setup in Rigify's native Rig Main Properties by default or gives it a separate top-level panel in the generated rig's Item sidebar tab. Generated Layout sub-panels follow the chosen parent panel.
- A separate panel can use both a custom Panel Title and a custom Sidebar
Tab. Leaving Panel Title empty uses
PropUI: <host bone>; leaving Sidebar Tab empty uses Blender's standardItemtab. Each PropUI component can use its own panel and tab organization. - Always Visible shows the setup whenever its generated rig is active, without requiring a particular control selection. Visible on Bones becomes read-only while this is enabled, but its ordered list is preserved for later.
- Visible on Bones is an ordered list of final generated controls that can reveal this PropUI. Every name is a normal editable text field, so generated control names can always be pasted or typed directly.
- Add All Selected Bones adds the complete current pose-bone selection in one undoable action. It works while selecting either metarig bones or final controls on a generated rig, keeps the active bone first, and skips duplicates.
- Every successful Rigify generation refreshes the search index of final generated controls. Generated-only names such as FK and IK controls are supported as exact visibility and property-storage targets. Opening a search also initializes an existing generated rig that predates the current session.
- Metarig bones are read live when a search opens, independently of the generated-control index. Newly added or renamed metarig bones are therefore available immediately in Visible on Bones, One Prop Bone, and per-entry Prop Bone Override searches. Rigify resolves their corresponding generated controls during generation.
- Selecting any resolved control shows both the main PropUI body and its generated sub-panels.
- In Rig Main Properties, Position in Rig Main Properties places the complete PropUI above or below native Rigify blocks. This ordering remains available in Always Visible mode. Separate panels do not compete with native blocks, so the setting is intentionally hidden there.
- Host Output offers two modes. Keep Host Control preserves the existing basic.raw_copy output. Metarig Only keeps the host as the authoring component but removes it completely from the generated rig.
- With Always Visible off, an empty Visible on Bones list uses the generated host in Keep Host Control mode. Metarig Only mode then requires at least one external visibility target. Always Visible removes that visibility-target requirement while preserving all Metarig Only storage safeguards.
- A Metarig Only host is an authoring bone, not a structural bone. Reparent any metarig children before using this mode.
- Use One Prop Bone stores all managed generated properties on one chosen generated bone.
- One Prop Bone is free-text and has the same generated-control search button as Visible on Bones. Exact generated names and mapped metarig names work.
- Entries follow the current shared Host or One Prop Bone by default. Changing shared storage therefore updates every inherited entry automatically.
- Enable Use Prop Bone Override in an entry's Storage section only when that entry needs a different generated bone. The override includes the same generated-control search button.
- Make All Entries Follow Shared Storage disables every entry override in one action. Saved bone choices are retained in case an override is re-enabled, but remain completely inactive while the override switch is off. The action asks for confirmation by default; its rule can be customized in Editor Settings under Confirmations.
- Older
.blendprojects use shared storage automatically. Older exported setup JSON with a per-entry bone keeps that choice as an enabled override on import, so setup exchange remains backward-compatible. - Generated-only storage bones remain valid generation targets. Because they do not exist on the metarig, Sync to Metarig clearly skips entries that use them instead of silently writing those properties onto the host.
- Metarig Only mode never allows the omitted host to be a property owner. Managed entries must use an external One Prop Bone or an external per-entry override. Native passthrough that should survive must be transferred to an external One Prop Bone.
- Sync to Metarig creates or refreshes managed custom properties on the available metarig storage bones. Mixed setups still sync their metarig-backed entries and report how many generated-only or unavailable targets were skipped.
- Move Matching removes the same managed property from other currently active storage bones after Sync updates its destination. It never treats a saved, disabled override choice as previous storage.
- Clean Metarig Props removes custom properties from active storage without changing the editor setup. Its visible target can be Host Bone, Active Prop Bones, or Host + Active Prop Bones. Only enabled One Prop Bone and entry overrides count:
- Managed Only clears just the properties managed by this PropUI setup.
- Unmanaged Only clears only properties that this setup does not manage.
- Selected Entry clears just the active Entry List item's property.
- All Custom Properties clears every custom property on the chosen bones.
- Clean Managed Props Across Metarig scans every metarig pose bone and removes properties whose IDs match this setup's managed entries. Matching is based on Property ID, so an unrelated property using the same ID also matches.
- Remove All Custom Properties from Metarig removes every managed and unmanaged custom property from every metarig pose bone.
- Both whole-metarig actions show the number of affected properties and bones before confirmation. Their confirmation rules are configurable in Editor Settings under Confirmations.
- Native Passthrough can preserve unmanaged native custom properties and draw them above or below the managed PropUI controls.
- Keep Host Control uses the component's built-in basic.raw_copy behavior and exposes relinking constraints, parent selection, and widget options.
Entry List
The Entry List is the main list of controls that will be generated. Entries can be reordered, duplicated, hidden from the editor, grouped into parent/child hierarchies, and targeted by keyboard shortcuts.
New entries that use the default generated naming choose the next unused
prop_N and Property N number. If an earlier default entry was deleted, the
next add can reuse that open number instead of jumping to the end of the list.
Supported entry types:
- Float creates a floating-point custom property with default value, min/max, soft limits, step, precision, and subtype controls.
- Integer creates an integer custom property with default value, min/max, soft limits, and step controls.
- Boolean creates a true/false custom property.
- String creates a text custom property.
- Data-Block creates a property that points at Blender data such as objects, materials, actions, images, or other ID types.
- Python stores Python-literal IDProperty values such as lists, dictionaries, numbers, strings, booleans, and None.
- Array creates typed float, integer, or boolean arrays with component count, subtype, defaults, and numeric limits.
- Custom draws an existing Blender RNA property or an internal generated UI control.
- Display Link draws an existing managed or custom entry again with its own label, tooltip, display, dynamic labels, and conditions.
- Text adds text-only rows to the generated UI.
- Operator Button creates a generated UI button that runs a Blender operator or feature set operator.
Array display layouts can draw all components in one row, use Blender's split main-label style, put the label above the row, stack component rows, split only the stacked main label, or give each stacked component row its own split label. Color and direction-style float arrays can use Blender's native whole-value widget when the selected layout supports it.
Custom entries follow the sensed value kind. When Blender can draw the target as a normal property, Custom paths can use the same scalar label-layout and multi-component layout controls as managed entries.
Custom entries using RNA Path draw Blender's source property directly. Their generated tooltip comes from Blender when Blender provides one, so the custom tooltip field is unavailable for that source mode.
Text style controls include alignment, alert styling, and optional before/after icons. Icon Hug Text controls are available for centered text, where Blender can reliably separate detached icons from the text. Left and right aligned text always keeps icons attached to the text, so those controls are disabled.
The Hierarchy Lens helps inspect parent/child structure, group entries, ungroup entries, collapse branches, and manage hidden editor entries.
Selected Entry
Selected Entry edits the active Entry List item.
- Basics sets the entry type, generated label, tooltip, property ID, parent, linked entry, operator button text, or text-row content. For Custom RNA Path entries, Blender owns the source tooltip, so the custom tooltip field is unavailable.
- Value controls defaults, limits, data-block type, array subtype and size, custom property paths, Python literal values, and operator button behavior.
- Display controls how the entry is drawn, including labels, tooltips, component display, icon choices, button/operator presentation, color-style drawing, and row behavior.
- Dynamic Labels can change labels or text based on the current value.
- Conditions controls when an entry is visible or available in the generated UI.
- Storage sets the per-entry prop-bone override and library-overridable behavior for managed generated properties.
- Tools includes type defaults, copy-settings tools, Display Link tools, and entry preset import/export.
Display Links
Display Links let you draw the same source entry in more than one place without creating duplicate custom properties. A Display Link can use the source label and tooltip or provide custom text. For multi-component values, it can draw only selected components. Links to managed entries use the linked entry's storage; links to non-managed Custom entries do not create storage.
Dynamic Labels And Conditions
Dynamic Labels change generated labels or text rows when values match rules. They are useful for making compact controls that explain their current state. Rows act as a priority list: if more than one row matches, the row higher in the Dynamic Labels list wins. Overlapping or identical match values are allowed. Add creates a fresh default rule row for the active value kind, while Duplicate copies the selected rule when you want to start from an existing row.
Conditions control visibility and availability. You can use them to show child controls only when a parent or related entry is in the right state, or to keep a control visible but disabled until it should be edited.
Generated Layout
Generated Layout controls the shape of the UI that appears on the generated Rigify rig.
- Add rows, sub-panels, text rows, Display Links, operator buttons, internal controls, and property entries.
- Move entries between rows and sub-panels.
- Use shared rows to place multiple controls on one line.
- Use Row Boxes to frame a range of generated rows together.
- Set sub-panels to start open or collapsed.
- Use Safe Import when pulling Entry List items into the generated layout.
The Row Boxes list order is for organizing the editor list. Use the selected Row Box range controls to change which generated rows a box wraps.
If you leave the Generated Layout empty, the feature set can still generate a basic layout from the Entry List.
Generated UI Internal Controls
Internal controls are optional controls that can be placed in the generated UI:
- Generated UI Enabled lets the rig user turn the authored PropUI section on or off.
- Disable While Transforming hides the generated UI while Blender is running an active transform operation.
- Disable While Playback hides the generated UI while animation playback is running.
These controls are authored on the metarig and generated into the Rigify UI.
Editor Layout
Editor Layout lets you choose which editor sections are visible and how they are ordered. You can rearrange sections such as Output Setup, Entry List, Selected Entry, Generated Layout, Editor Settings, and their subsections.
Output Setup exposes hide controls for Generated UI Display, Property Storage & Metarig Sync, Native Passthrough, and Host Output. Editor Layout visibility and ordering continue to participate in editor defaults and settings import/export.
Use this when a rig needs a focused authoring layout, or when you want advanced sections hidden until they are needed.
Editor Settings
Editor Settings control how the authoring editor behaves.
- Display & Precision sets editor number precision.
- The Shortcuts setting can disable all izom PropUI Rigify shortcuts and hide shortcut-target controls.
- Entry List controls tree hints, Entry List display, Generated Layout display, and the default type used when adding entries.
- Confirmations controls which destructive or broad actions ask first.
- Import / Export exports or imports a full setup, selected entry type preset, or editor settings JSON. Clipboard copy and paste are available for the same JSON data.
- Saved Defaults can save editor settings, editor layout, and a full setup as reusable defaults.
- Reset izom PropUI Rigify can reset the current setup, settings, saved defaults, or the full feature set data stored in the file.
Shortcuts
Shared shortcuts act on the currently selected shortcut target. Use Shortcuts Affect This List or the shortcut target menu to decide whether shortcuts affect the Entry List, Generated Layout, Row Boxes, Visible on Bones, Dynamic Labels, Display Link component subsets, or Editor Layout. Visible on Bones supports the standard add, remove, move-up, and move-down shortcuts.
Shortcuts are scoped to the Rigify parameter editor in Blender's Properties editor, so they can be used alongside the standalone izom PropUI shortcuts in the same Blender profile.
Disable all shortcuts from Editor Settings when you prefer to work only with buttons and menus.
Import, Export, And Defaults
You can move setups between files with JSON import/export:
- Full setup JSON stores the current metarig component setup.
- Full and Free setup JSON can be imported directly. Entries, hierarchy, generated layout, compatible entry options, sub-panels, row boxes, Display Links, dynamic labels, and other shared behavior are preserved whenever the source edition contains them.
- Full-edition pose-bone property owners are translated into One Prop Bone or per-entry Prop Bone Override targets. Pose-bone visibility targets are translated into Visible on Bones, and external custom RNA paths remain external custom paths.
- Standalone-only panel placement, branding, object-only property storage, and object-only visibility have no direct Rigify equivalent. They are not copied; the import result reports skipped targets. Standalone Always visibility uses Rigify's normal host-control selection fallback.
- Rigify host setup JSON can be imported into Full and Free. Full retains the advanced Entry List and Generated Layout model. Free retains its supported entry types and row options, flattens unsupported containers, and reports every feature it cannot represent.
- Entry type presets store reusable settings for a selected entry type.
- Editor settings JSON stores editor settings, editor section order, and open/collapsed defaults.
- Saved defaults can auto-apply a preferred blank setup or editor layout to new sessions.
Diagnostics And Blend Inspection
Diagnostics appears when the feature set has warnings to show. You can clear the diagnostic list after reviewing it.
Audit Blend Data reports how many izom PropUI Rigify components, authored entries, and generated Rigify UI text blocks are present in the current file.
License Notice
The License Notice button is available from the izom PropUI Rigify entry in Rigify preferences, below the Documentation button.
Notes
- Rigify owns the generated UI, so this feature set always generates through Rigify's normal rig generation flow.
- Rigify still owns the generated Python UI text name, rig_ui.py.
- Regenerate the Rigify rig after changing metarig PropUI settings.
- UI Variants, custom generated branding, custom UI text names, and generated UI manager workflows are not part of this Rigify feature set.