解决Blender无法识别Num关闭状态下的笔记本数字键盘中Home键、End键问题

问题描述:

在笔记本电脑上,多少会缺少一些按钮,例如“Home”、“End”、“PgUp”、“PgDn”,它们在笔记本电脑上的作用是,如果关闭Num,则可以从数字键盘访问这些按钮。但问题是在Blender中,不论是否开启还是关闭Num键,它仍然只识别数字键盘,无法访问“Home”、“End”等。
“Home”键在Blender中非常重要,尤其在Timeline和Dopesheet中,可以快速全面铺开时间轴轨迹,方面查阅和编辑。而笔记本电脑和一些精简键盘,缺少独立的“Home”键,将其融入到了数字键盘“7”中。
神奇的是,该功能在关闭Num后,其他的软件基本都能识别数字键盘“7”中的“Home”和数字键盘“1”中的“End”,唯独Blender不识别。最终问题,应是出在Blender键盘绑定问题上。
在这里插入图片描述

解决方案(并非最优解):

  1. 定位到Blender安装目录下的文件:\4.3\scripts\presets\keyconfig\keymap_data,用编辑器打开blender_default.py文件
  2. 在相对靠前的位置自定义一个函数,代码如下:
  3. 分别在def km_time_scrub_clip(_params)和def km_dopesheet(params)中调用函数remap_home(items)
  4. def km_time_scrub_clip(_params)为时间轴Timeline位置,def km_dopesheet(params)为Dopesheet位置
  5. 缺点:时间轴Timeline和Dopesheet中的"NUMPAD_7"和"NUMPAD_1"被直接替换成了“Home”、“End”,后续找到Num键检测机制后,再来完善。
 # 重新定义Numpad中的Home、End等按键
def remap_home(items):    
    numpad_mappings = {
        "HOME": "NUMPAD_7",
        "END": "NUMPAD_1"
    }
    import copy
    numpad_items = []
    for (x, keyinfo, props) in items:
        if not (np_key := numpad_mappings.get(keyinfo.get("type"))):
            continue
        numpad_keyinfo = copy.deepcopy(keyinfo)
        numpad_keyinfo["type"] = np_key
        if props:
            props = copy.deepcopy(props)
        numpad_items.append((x, numpad_keyinfo, props))
    items.extend(numpad_items)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值