嗨嗨嗨,我又回来玩天际了。
刚玩完仁王2回来,所以嘛天际的操作手感,还是那个难以言说的依托。所以就打算自己做个按键输入更改的mod,重新整合天际的按键输入。
至于papyrus是不可能用的,所以,就用了C++写的SKSE。好了,废话完了,接下来就是正式介绍了。
Mod名字:KeyLogicExpansion 按键逻辑拓展 以下简称 KLE
Nexus: https://www.nexusmods.com/skyrimspecialedition/mods/133785
KLE 能做什么:
完全替代 One Click PowerAttack (一键重击) 具有OCPA的所有功能 并且优化了OCPA的预输入手感 在能够使用鼠标右键来重击的同时 保留了格挡按键的全部功能(需要另外设置一个格挡按键)使用OCPA的话 会丧失格挡攻击(blockBash)的功能 并且在MCO BFCO 以及原版的情况下 能识别攻击形式 双持 单左手武器 单右手武器 执行正确的攻击动画 如果使用 M4 作为重击按键 KLE与OCPA除了预输入与自动识别攻击形式 之外几乎没有区别
完全替代 Dual Wield Parrying SKSE (一键格挡) 没什么好说的 挺简单的功能 就是在支持格挡攻击(blockBash)时有些问题 KLE修复了这些
完全基于SKSE的架势切换 可在INI文件设置架势对应的perk 具备默认的perk值 通过按键快速的切换架势 速度远超papyrus 唯一的缺点是 原版架势切换时的提示光效无法实现 打算使用IMGUI(就是OAR同款GUI) 和一个仁王2样式的架势轮盘替代
对MCO的支持 对于MCO 做了特化的预输入处理 当按下一个攻击按键 如果攻击窗口为false(就是当前还无法攻击) 存在一个100ms的预输入窗口 在这期间可以有一个更改轻重攻击机会 OCPA则是粗暴的在200ms之后再次尝试 因此有时会导致意料之外的攻击 KLE完全没有这个问题
对BFCO的大部分支持 支持BFCO的轻重攻击转换 冲刺攻击 格挡攻击 特殊攻击 Combo攻击 可用 。跳跃攻击 没搓出来 但不一定不可用 会用的BFCO搓招的佬教我怎么用
耐力消耗的问题我自己定义了 特殊轻攻击至少要10体力 消耗60体力 特殊重攻击和Combo攻击至少要10体力消耗80体力
对于魔剑士类型的风格(就是一边是单手武器或者空手,一边是法杖或者法术) 做了适配 当且仅当右手持有武器或者空手 左手为法杖或者法术时 左键可以轻攻击 右键可以重攻击 如果要使用左手的法杖或者法术 需要按下MagicModifier按键 再按下法杖/法术左手的按键
其他类型的风格会按照原版的方式呈现
经过测试 兼容 魔法新学院(法杖大修 NewStaffSchool)
Elden Rim 战灰功能的适配 使用这个需要设置战灰功能键 具体的使用方法是 把法术形式的战灰添加到Q键菜单 可以添加多个 但只会识别第一个 所以只建议添加一个战灰 如果战灰拥有战技 那么此时按下战灰快捷键就能释放战灰 不可以连续快速的放 我设置了3秒的CD
额外的小特性 比如
按住冲刺
按住潜行
反向骑乘攻击
保留Tab在所有菜单中关闭菜单功能的同时 对Tab菜单的按键替换
保留F键在菜单中将物品添加到Q键菜单的同时 对视角切换功能的按键替换
可设置的替换原版的视角拉近拉远的按键
以及在以上所有按键的基础上 添加的组合键前置功能
目前实现:拔刀收刀,Tab菜单,物品栏菜单,魔法菜单,技能菜单,地图页面,视角切换,冲刺,潜行,等待菜单
其余的按键 看是否有人有需求
KLE打算实现什么功能:
最终目标:原版以及Mod的所有按键的统一管理
自定义按键输入:当按下某个按键 会顺序触发一系列事件 比如释放某个魔法 添加删除法术或者法术效果 添加删除perk 为AnimationGraph的变量赋值 发送一个AnimationGraph事件(相当于请求做一个动作) 修改ActorValue中的某个变量 比如消耗或者回复魔法值
目前在考虑是否要为按键触发的事件添加条件表达式 要添加的话是每个事件都添加还是仅仅判断一次
KLE的兼容性如何:
个人在星黎的整合里面试过了 没有发现任何兼容性问题 当然关闭了OCPA和一键格挡这两个重复的MOD
星黎整合的体量应该是非常大的 并且动作MOD很多 星黎整合使用的是MCO 在游玩途中并未发现bug
兼容Elden Parry:格挡攻击可被识别 并且对敌人造成硬直
兼容NewStaffSchool 法杖可以格挡
不建议与OCPA和一键格挡同时使用 可能会出现预料之外的事情
前置:
SKSE
SKSE地址库
没了~
KLE 更新日志:
首发更新:
暂时修复BFCO的特殊攻击 Combo攻击的耐力消耗问题 改为至少10点体力才能使用 特殊轻击消耗60体力 特殊重击和Combo攻击消耗80点
BFCO跳跃攻击 搓不出来 可能是我没有对应的动作文件?
修复附魔武器无法使用单键重击的Bug
优化判断逻辑
第二天的更新:
完成了战灰快捷键
优化了魔剑士风格的输入模式
为BFCO 添加了全局的200ms预输入 但是没什么效果 可能是内置的动作输入窗口太早结束
更新此处的MOD说明 和配置文件讲解
最后 感谢编译器神力 超过2000行的代码 3.5MB的dll 硬是优化到了700KB Release模式真神
更新:
使KLE的战斗按键输入修改仅在NormalAttack PowerAttack Block 三个按键都不为0时开启
修复有时候错误的格挡事件启用
初步确定自定义输入的框架 大概在两三次更新后就会完成 之后再测试一段时间就会上架nexus
在Github写了自定义输入相关的的介绍 感兴趣的可以看看 当然 是全英文
更新:
修复了与火把相关的的崩溃问题
以一种更加优雅的方式实现预输入和MCO BFCO的同步兼容 杜绝了意料之外的攻击行为
自定义输入完成了条件判断的部分
注意 BFCO的兼容需要在BFCO的MCM菜单停用所有选项 或者直接删除BFCO的相关的脚本文件
并且神话整合自带的动作存在bug 没有动作窗口相关的注释 建议使用N网上的动作集
更新:
添加 imgui 现在可以热重载配置 并且在游戏内配置按键
上传 nexus
https://www.nexusmods.com/skyrimspecialedition/mods/133785
帖子内部将不会提供下载
项目源码:
至于为什么用英语写的注释,当然是打算将来出正式版了上架nexus
;Enable custom Input, maybe this is the reason you install this mod.
;Enable Stances Supported by KLE
;Contain 3 types of stance: High, Mid, Low.
启用架势功能, 开了这个你就不需要dtry keyutils来切换架势了, 只要一个架势mod的esp就行 当然代价就是没有 架势切换的光效了 之后我会做个gui来显示当前架势
麻烦各位抠图膏手 帮我抠出来个仁王2架势轮盘 我抠的太费劲了 还有背景去不掉 如果有画画膏手能画个就更好了
;Change enable sprint when you hold sprint key
没什么好说的 按住冲刺 非常简单的功能 直接集成进来了 名字是按键逻辑拓展 这种小事肯定得做
;Same as EnableHoldSprint, Change enable sneak when you hold sneak key
;Make you can attack when you press this key, NOT completed.
;0 means disable, other number means a keycode
;when you press the key and Attack or PowerAttack or even Sheathe Key, you will do a SheatheAttack
;Note: Press with Sheathe Key can do SheatheAttack when you are NOT in Sheathe status.
启用收刀状态下的攻击 打算做个仁王2太刀那样的收刀居合 但是仅仅SKSE开了没有用 需要去改行为文件 我懒 所以还没做
;Reverse your HorseAttack diretion, if enable this, left key attack left, right key attack right
EnableReverseHorseAttack = true
在骑马的时候 反向你输入的攻击 很简单 你骑马的时候 左键打右边 右键打左边 反正我总是按错 开了之后
;Set this according to your stances mod
Low = Stances - Dynamic Weapon Movesets SE.esp|0x4251A
Mid = Stances - Dynamic Weapon Movesets SE.esp|0x42519
High = Stances - Dynamic Weapon Movesets SE.esp|0x42518
设置架势对应的perk 你用的什么架势mod就自己写 这个是默认的
没设置过架势的存档进去 会获得中架势 至于 无架势 没写呢,可以把中架势设为空当作无架势
;Set change stance key, modifier = 0 means disable
我这里设置的shift + 滚轮上 高架势 shift + 鼠标中键 shift + 滚轮下 低架势 玩过仁王的对这个应该很熟悉了
当然 聪明的朋友肯定发现问题了 用滚轮不会导致视角突然放大缩小吗
;separete block key from Attack, still have some problems, don't use blockbash, it is overpowered
Block = 15
MagicModifier = 18
设置攻击格挡按键 左键攻击 右键重击 Tab格挡 仁王玩家狂喜 至于Tab菜单怎么处理嘛 我当然有解决方案
设置为其他的按键可能会导致bug 没测试过捏
MagicModifier:在特定的魔剑士风格时 按住这个才能使用魔法
BFCO_SpecialAttackModifier = 42
BFCO_ComboAttack = 18
BFCO的功能兼容
SpecialAttackModifier 在按下之后 按 NormalAttack 使用轻击 PowerAttack 使用重击
在攻击动画中按下BFCO_ComboAttac会使用Combo攻击
;instead Vanilla Key, just All Alt* option do the same thing.
Tab菜单的按键替代 设置了这个 Tab就打不开菜单了 但是在任何菜单依旧能作为菜单的关闭按钮 因为关闭功能仅与 你在游戏里面设置的Tab按键有关
另一个解放按键的 替换F键切换视角 同理Tab菜单的另一个功能 替换了视角切换后 F键依旧有标记到Q键菜单的功能 还是只与游戏里的按键设置有个
;EldenRim WarAsh support, press this to use WarAsh.
拓展的环战技的兼容 打算做个一键释放战技 但是完全没做 因为找不到SKSE使用物品的函数
;set it to Non 0 can instead default ZoomIn and ZoomOut
;you don't konw what it mean? just Vanilla MouseWheelUp and MouseWheelDwon
解决方案 视角拉伸缩放替代按键 设置之后滚轮就缩放不了了 我这里设置的上箭头和下箭头
最后一个是启用缩放组合键 如果你打算依旧用滚轮切换视角 可以设置组合键 之后组合键按下了才能切换视角
对了 提一下 任何带Alt开头的按键设置 只要设置了 原版的按键就会失效 因此如果按键你不打算要了 可以设置的几十万的数字 相当于禁用
下面是给原版按键加的组合键 开了之后之后按下组合键 对应的原版按键才会生效
你可以借机ban掉一些按键 比如 自动行走 每个的英文我就不翻译了 有些按键实际上没做 如果你开了没效果 和我说一下
;Add a Modifier to Vanilla Key, if you want a key to work, you need press modifier key first.
;set it 0 to disable, other means a keycode
Quick Map = 0
至于MCM菜单肯定是没有的 毕竟我打算用OAR类似的Imgui来做动态配置
插件自带ini文件生成的功能 如果你不小心弄错了什么 删掉就行 开游戏会生成默认的ini
有什么bug或者自己觉得奇怪的地方就在这说一下 如果可以的话请分享到自己的老滚游戏群 测试mod还是得找多些人
关于自定义输入按键的功能 我目前是打算做个一个按键多个事件的处理思路
比如一个按键 按下之后会检测一个表达式 具体要什么条件 我目前也没想清楚 看看大伙想要什么样的功能按键
大概是这么个思路 各位看官有什么想法都可以和我说说