""" Keeps track of exact skeleton when imported. Possibly needed for exporting skeleton-compatible animations. Will probably be needed (with a matrix property) if we: - add tip-to-tail adjustment and/or omit roots/effectors for imported skeletons to keep track of the original bone transforms - add some sort of basepose-adjustment animation import option for already imported skeletons I guess this might not need a panel, but I included it because the docs might need to reference it and people may want to exclude certain bones without deleting keyframes. """ import bpy from bpy.props import StringProperty from bpy.types import PropertyGroup class SkeletonProperties(PropertyGroup): name: StringProperty(name="Name", default="Bone Name") class SkeletonPropertiesPanel(bpy.types.Panel): """ Creates a Panel in the Object properties window """ bl_label = "SWBF Skeleton Properties" bl_idname = "SKELETON_PT_swbf_msh" bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "data" bl_options = {'DEFAULT_CLOSED'} @classmethod def poll(cls, context): return context.object.type == 'ARMATURE' and context.object.data.swbf_msh_skel and len(context.object.data.swbf_msh_skel) > 0 def draw(self, context): if context.object is None: return layout = self.layout skel_props = context.object.data.swbf_msh_skel layout.label(text = "Bones In MSH Skeleton: ") for prop in skel_props: layout.prop(prop, "name")