Advertisement
AnomalousUnderdog

Blender toggle rest/pose armature

Nov 10th, 2015
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.44 KB | None | 0 0
  1. bl_info = {
  2.     "name": "Rest/Pose Toggle",
  3.     "description": "Re-assignable hotkey for toggling between rest and pose for selected armature.",
  4.     "author": "Ferdinand Joseph Fernandez",
  5.     "version": (1, 0),
  6.     "location": "Shift Q while in 3d View",
  7.     "support": "TESTING",
  8.     "category": "Animation",
  9. }
  10.  
  11. import bpy
  12.  
  13. class RestPoseToggle(bpy.types.Operator):
  14.     """Rest/Pose Toggle"""
  15.     bl_idname = "animation.rest_pose_toggle"
  16.     bl_label = "Rest/Pose Toggle"
  17.     bl_options = {'REGISTER', 'UNDO'}
  18.    
  19.     def execute(self, context):
  20.         ob = context.object
  21.  
  22.         if ob.type == 'ARMATURE':
  23.             armature = ob.data
  24.            
  25.             if armature.pose_position == 'POSE':
  26.                 armature.pose_position = 'REST'
  27.             else:
  28.                 armature.pose_position = 'POSE'
  29.                
  30.         return {'FINISHED'}
  31.  
  32. # store keymaps here to access after registration
  33. addon_keymaps = []
  34.  
  35. def register():
  36.     bpy.utils.register_class(RestPoseToggle)
  37.    
  38.     # hotkey registration
  39.     wm = bpy.context.window_manager
  40.     km = wm.keyconfigs.addon.keymaps.new(name='Pose', space_type='EMPTY')
  41.     kmi = km.keymap_items.new(RestPoseToggle.bl_idname, 'Q', 'PRESS', shift=True)
  42.    
  43.     # add to list so we can unregister afterwards
  44.     addon_keymaps.append(km)
  45.    
  46. def unregister():
  47.     bpy.utils.unregister_class(RestPoseToggle)
  48.    
  49.     # unregister hotkey
  50.     wm = bpy.context.window_manager
  51.     for km in addon_keymaps:
  52.         wm.keyconfigs.addon.keymaps.remove(km)
  53.        
  54.     # clear the list
  55.     addon_keymaps.clear()
  56.    
  57. if __name__ == "__main__":
  58.     register()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement