Anim Cupboard: Add Selection Sets to Animation Panel #81
@ -8,6 +8,7 @@ from .operators import lock_curves
|
|||||||
from .operators import bake_anim_across_armatures
|
from .operators import bake_anim_across_armatures
|
||||||
from . import easy_constraints
|
from . import easy_constraints
|
||||||
from . import warn_about_broken_libraries
|
from . import warn_about_broken_libraries
|
||||||
|
from . import bone_selection_sets
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
'name': "Animation Cupboard",
|
'name': "Animation Cupboard",
|
||||||
@ -25,7 +26,8 @@ modules = (
|
|||||||
lock_curves,
|
lock_curves,
|
||||||
bake_anim_across_armatures,
|
bake_anim_across_armatures,
|
||||||
easy_constraints,
|
easy_constraints,
|
||||||
warn_about_broken_libraries
|
warn_about_broken_libraries,
|
||||||
|
bone_selection_sets,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -56,8 +58,10 @@ def register_unregister_modules(modules: List, register: bool):
|
|||||||
elif hasattr(m, 'unregister'):
|
elif hasattr(m, 'unregister'):
|
||||||
m.unregister()
|
m.unregister()
|
||||||
|
|
||||||
|
|
||||||
def register():
|
def register():
|
||||||
register_unregister_modules(modules, True)
|
register_unregister_modules(modules, True)
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
register_unregister_modules(modules, False)
|
register_unregister_modules(modules, False)
|
||||||
|
45
scripts-blender/addons/anim_cupboard/bone_selection_sets.py
Normal file
45
scripts-blender/addons/anim_cupboard/bone_selection_sets.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import bpy
|
||||||
|
from addon_utils import check, paths
|
||||||
|
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
addon_enabled = False
|
||||||
|
|
||||||
|
|
||||||
|
def check_addon_enabled():
|
||||||
|
# Adapted from https://blenderartists.org/t/check-if-add-on-is-enabled-using-python/522226/2
|
||||||
|
for path in paths():
|
||||||
|
for mod_name, mod_path in bpy.path.module_names(path):
|
||||||
|
if mod_name == 'bone_selection_sets':
|
||||||
|
is_enabled, is_loaded = check(mod_name)
|
||||||
|
sys.path.append(dir)
|
||||||
|
return is_enabled
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
class POSE_PT_selection_sets_view3d(bpy.types.Panel):
|
||||||
|
bl_label = "Selection Sets"
|
||||||
|
bl_space_type = 'VIEW_3D'
|
||||||
|
bl_region_type = 'UI'
|
||||||
|
bl_category = 'Animation'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def poll(cls, context):
|
||||||
|
return context.mode == 'POSE' and context.active_pose_bone
|
||||||
|
|
||||||
|
def draw(self, context):
|
||||||
|
layout = self.layout
|
||||||
|
if not check_addon_enabled():
|
||||||
|
layout.label(text="Addon 'Bone Selection Sets' not Enabled", icon="ERROR")
|
||||||
|
return
|
||||||
|
import bone_selection_sets
|
||||||
|
from bone_selection_sets import POSE_PT_selection_sets
|
||||||
|
|
||||||
|
POSE_PT_selection_sets.draw(self, context)
|
||||||
|
|
||||||
|
|
||||||
|
registry = [
|
||||||
|
POSE_PT_selection_sets_view3d,
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user