【大概是教程】如何在PPD上用手柄玩自制谱(娱乐向)
2022.5.16(脚本版本号0.90):
修正了多压设置里 O 的判断逻辑错误
修正了双摇杆同时摇动的时候有可能会不松开方向键的BUG
改良滑条判定逻辑
还需要折腾的东西:
更完善的摇杆死区(圆形死区)。目前使用的是简单粗暴的长方形死区,需要看情况改写死死区代码
(感谢 lumi 帮我做了测试)
众所周知由于PPD的设定问题,手柄在PPD上不使用映射工具的滑游玩体验很差
因此以前需要使用到按键映射软件键盘映射到手柄
刷分玩家不提,对于只是单纯想试试自制谱又不愿意转键盘的玩家来说,按键映射的方法及其不友好,因为不管怎么处理都无法避免以下几个问题:
PPD只有8个按键+一组LR键,对于娱乐玩家来说通常都要开csinput mod。但由于PPD不能多个按键绑定一个键位,所以需要使用按键映射工具映射
同样是 CSInput 的缺陷,由于CSInput把左右两侧视为两组互相独立的按键,因此无法将一侧的hold转移到另一侧。这就导致实际用CSInput游玩的时候通常需要决定肩键使用哪一侧的按键进行映射,另一侧的按键完全无法进行HOLD转移
CSInput出现的时期比较偏后,同时又因为肩键消耗了一侧按键,因此摇杆就不得不映射另一侧的按键来进行双滑操作。但是,由于CSinput修改了左滑到方块键,导致部分键盘谱面在实际游玩的时候会遇到不得不断HOLD来滑滑条的问题
因此我花了几天时间写了这个脚本尝试着改善这个问题:
脚本下载链接:https://wwm.lanzouy.com/imRHC04wgipg

目前已经实现的功能:
设置除滑键以外任意组合键到肩键:现在可以几乎完全像FT一样设置组合键到肩键
左右两侧的按键现在都可以转移HOLD到肩键上,但左侧按键仍然无法转移到右侧,右侧同理无法转移到左侧
肩键HOLD系统AFT化:当你按住对应肩键组合键不放的时候,HOLD会在你按下按键的时候自动转移到肩键上(虽然我一开始并不希望这么强大,但要削弱这个系统需要和PPD对接知道啥时候会出现HOLD,就摆烂了)
摇杆自动根据肩键HOLD状态调整输出双滑:现在完全不用担心双滑会断掉HOLD的问题(不过四压HOLD和特定三压后面接双滑还是会断,这个是PPD游戏系统设计就是这样,没有办法解决)
设置摇杆死区与肩键死区:现在可以调整死区数值调整摇杆和肩键的灵敏度避免摇杆误触或者肩键误触
自由开关按下另一个肩键时是否自动根据组合键设置断掉上一个肩键的HOLD:由于脚本的限制问题,对于街机键位,如果想要像FT一样L2R2互相转移HOLD,就不得不牺牲掉L2按下时自动断掉R2的HOLD这个机制。因此在脚本里保留了一个开关便于玩家自己设定
要想使用这个脚本,首先我个人建议先去PPD官网下载一个MOD——PefectInput:
https://projectdxxx.me/script/index/id/87eebcd904c31cc1900f2531d17ec99b
如果你懒得下MOD,其实PPD自带的CSInput也可以使用这个脚本,但CSInput对于那种有四个滑键的谱玩的时候有些蛋疼,而PefectInput只需要按下四押组合键即可。并且PefectInput可以同时使用三角方块左滑,叉号圆圈右滑,对于一些键盘谱PefectInput可以使用这些谱面原本设计来按的按键来按滑条
(如果你听了还是不明白可以去试试恶戏的easy槽难度,大概就会明白我说的是啥意思了)
下载好后将PefectInput扔到PPD的MOD文件夹里面去

然后下载脚本,将里面的keyconfig扔到PPD的根目录替换


最后解压出脚本,点击BAT运行脚本即可

当脚本运行成功后,会在右下角弹窗。如果你只插了一个手柄的话,脚本将会直接运行并提示你当前的肩键设置

如果你插入了多个手柄,脚本会提示你按下按键关联手柄,按下任意按键即可激活

脚本运行后启动PPD,勾选PefectInputMOD或者CSInput启用即可
关于脚本怎么设置:
在脚本运行后,你的最下面任务栏会多出来一个应用

点击它将窗口还原,按下Shift+F5或者选择图中选项暂停脚本

暂停脚本后我们就可以设置了
每个可以修改的参数说明如下:
LS_deadzone:左摇杆死区,数值越大摇杆越不灵敏,最大为1,最小为0
RS_deadzone:右摇杆死区,数值越大摇杆越不灵敏,最大为1,最小为0
L2_deadzone:L2键死区,数值越大按键需要按下触发的键程也会越大,最大为1,最小为0
R2_deadzone:R2键死区,数值越大按键需要按下触发的键程也会越大,最大为1,最小为0
L1/L2/R1/R2:肩键组合键设置,后面的数值是这么写的:
首先我们定义一个数值表:
三角:1000
方块:200
叉号:30
圆圈:4
将我们要设置的组合键数值相加,然后再加上50000补足成一个五位数即可
(你也可以选择加别的数值,但务必保证最后四位必须是零再相加)
L1_switch:肩键系统切开关,如果改为1,当你按下L1的时候脚本会根据你设置的组合键和当前的HOLD状态的按键进行对比,然后自动松开当前正在HOLD的按键重新按下
L2_switch:肩键系统切开关,如果改为1,当你按下L2的时候脚本会根据你设置的组合键和当前的HOLD状态的按键进行对比,然后自动松开当前正在HOLD的按键重新按下
R1_switch:肩键系统切开关,如果改为1,当你按下R1的时候脚本会根据你设置的组合键和当前的HOLD状态的按键进行对比,然后自动松开当前正在HOLD的按键重新按下
R2_switch:肩键系统切开关,如果改为1,当你按下R2的时候脚本会根据你设置的组合键和当前的HOLD状态的按键进行对比,然后自动松开当前正在HOLD的按键重新按下
将参数调整完后按Ctrl+S保存,然后按下F5重新运行脚本或者按下图示的选项即可重新运行脚本

最后如果要完全退出脚本的话,关闭FreePIE主程序即可
如果你的电脑在运行BAT的时候被杀毒报病毒,可能是因为我设定打开BAT的时候自动关闭FreePIE主程序的原因:由于不明BUG,FreePIE如果多次重新打开将会大量占用CPU,因此选择这个妥协的办法
希望这个教程能帮到更多想尝试玩自制谱但又因为按键设置与HOLD转移问题的玩家
至于想刷分的玩家……
早点转键盘吧,手柄刷分那可是无穷无尽的地狱啊(´;ω;`)
如果真有想尝试手柄刷分的我会考虑再做个视频讲解下