Development Guidelines¶
The Sedaia Rig Interfaces extension follows strict development guidelines to maintain its modular structure and ensure compatibility across multiple versions of Sakura’s Character Rigs.
Modular Registration¶
When adding a new module with multiple Blender classes, use the following classes list and loop-based register()/unregister() functions:
from .lib import blender_utils as U
classes = [
MY_CLASS_PT_panel_1,
MY_CLASS_PT_panel_2,
MY_OT_operator_1
]
def register():
for cls in classes:
U.register_class(cls)
def unregister():
for cls in classes:
U.unregister_class(cls)
Naming Conventions (Prefixer)¶
All classes must follow the Prefixer system. This system ensures unique ID names within the Blender environment and incorporates major versioning.
Format: Prefixer(“sacr_<sacr_version>_ui_<ui_version>_<category>”).<type>
Example: Prefixer(“sacr_7_ui_2_global”).panel results in a bl_idname like SEDAIA_RIGS_PT_sacr_7_ui_2_global.
Property Storage¶
Follow Guideline 3.1: Property Storage to prevent property pollution and ensure rig-specific configurations.
Rule: Never store UI properties in the global bpy.types.Scene.
Standard: Attach all UI state properties to a PropertyGroup on bpy.types.Object.
Access: Use self.id_data within property accessors to ensure you are modifying the correct rig instance.
Changelog Style¶
CHANGELOG.md must maintain a consistent hierarchical structure:
Level 1 (#): For the major Version (e.g., # Version 4.0.0).
Level 2 (##): For high-level Categories or Summaries (e.g., ## Rig UI Changes).
Level 3 (###): For Specific Features or Technical details (e.g., ### Prefixer System).
Horizontal Rules (—): Used as separators between major versions.
Bullet Points (-): For individual change descriptions.