Created
July 24, 2015 12:49
-
-
Save nutti/c541f5ee937d35127c5d to your computer and use it in GitHub Desktop.
[Blender] スクリプト内部で自作の機能にショートカットキーを割り当てる ref: http://qiita.com/nutti/items/e29226ff8bd7a7e770aa
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
wm = bpy.context.window_manager | |
kc = wm.keyconfigs.addon | |
# 登録するショートカットキーのリストを作成 | |
# (キーが押されたときに実行する bpy.types.Operator のbl_idname, キー, イベント, Ctrlキー, Altキー, Shiftキー) | |
key_assign_list = [ | |
(ObjectScaleUp.bl_idname, "U", "PRESS", True, True, False), | |
(ObjectScaleDown.bl_idname, "D", "PRESS", True, True, False), | |
] | |
if kc: | |
km = kc.keymaps.new(name="3D View", space_type="VIEW_3D") # 「View3D」のショートカットキーとして登録 | |
for (idname, key, event, ctrl, alt, shift) in key_assign_list: | |
kmi = km.keymap_items.new( | |
idname, key, event, ctrl=ctrl, alt=alt, shift=shift) # ショートカットキーの登録 | |
addon_keymaps.append((km, kmi)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for km, kmi in addon_keymaps: | |
km.keymap_items.remove(kmi) # ショートカットキーの登録解除 | |
addon_keymaps.clear() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import bpy | |
bl_info = { | |
"name": "Tutorial: Shortcut key", | |
"author": "Nutti", | |
"version": (1, 0), | |
"blender": (2, 74, 0), | |
"location": "Object > Tutorial: Shortcut key", | |
"description": "Tutorial: Shortcut key.", | |
"warning": "", | |
"support": "COMMUNITY", | |
"wiki_url": "", | |
"tracker_url": "", | |
"category": "Object" | |
} | |
addon_keymaps = [] # 登録したショートカットキーの一覧 | |
class ObjectScaleUp(bpy.types.Operator): | |
"""選択されたオブジェクトを拡大""" | |
bl_idname = "object_transform.object_scale_up" | |
bl_label = "Scale Up Object" | |
bl_description = "Scale up selected object" | |
bl_options = {'REGISTER', 'UNDO'} | |
def execute(self, context): | |
active_obj = context.active_object | |
active_obj.scale = active_obj.scale * 2.0 # 選択されたオブジェクトを2倍に拡大 | |
return {'FINISHED'} | |
class ObjectScaleDown(bpy.types.Operator): | |
"""選択されたオブジェクトを縮小""" | |
bl_idname = "object_transform.object_scale_down" | |
bl_label = "Scale Down Object" | |
bl_description = "Scale down selected object" | |
bl_options = {'REGISTER', 'UNDO'} | |
def execute(self, context): | |
active_obj = context.active_object | |
active_obj.scale = active_obj.scale / 2.0 # 選択されたオブジェクトを1/2に縮小 | |
return {'FINISHED'} | |
def register(): | |
bpy.utils.register_module(__name__) | |
wm = bpy.context.window_manager | |
kc = wm.keyconfigs.addon | |
# 登録するショートカットキーのリストを作成 | |
# (キーが押されたときに実行する bpy.types.Operator のbl_idname, キー, イベント, Ctrlキー, Altキー, Shiftキー) | |
key_assign_list = [ | |
(ObjectScaleUp.bl_idname, "U", "PRESS", True, True, False), | |
(ObjectScaleDown.bl_idname, "D", "PRESS", True, True, False), | |
] | |
if kc: | |
km = kc.keymaps.new(name="3D View", space_type="VIEW_3D") # 「View3D」のショートカットキーとして登録 | |
for (idname, key, event, ctrl, alt, shift) in key_assign_list: | |
kmi = km.keymap_items.new( | |
idname, key, event, ctrl=ctrl, alt=alt, shift=shift) # ショートカットキーの登録 | |
addon_keymaps.append((km, kmi)) | |
def unregister(): | |
bpy.utils.unregister_module(__name__) | |
for km, kmi in addon_keymaps: | |
km.keymap_items.remove(kmi) # ショートカットキーの登録解除 | |
addon_keymaps.clear() | |
if __name__ == "__main__": | |
register() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment