《装甲核心》旧作模拟手柄重映射脚本
本帖最后由 NameLess2501 于 2023-7-17 07:30 编辑《装甲核心》旧作——特指AC3SL及之前的作品。
PS1的AC1定义了一套不用摇杆(因为游戏发布时双摇杆手柄还没发布)的立体视角和移动的操作方法,很酷,但是不好用。
AC1视角移动操作表
视角 上 L2
下 R2
左 十字键左
右 十字键右
移动 前 十字键上
后 十字键下
左 L1
右 R1
跳跃/Boost ×
最基本的视角和移动被分布在9个按键上,游戏时还要左右武器开火和切换武器等,感觉不是NT的话很难自由掌握。
然而FS把这个反人类的操作方式一直保持到了AC3SL(PS2上的第4作),明明有摇杆了,却只把右摇杆当作一个按钮来使用,并不能用来调整视角。
直到ACNX的N系开始,有了A操作(之前的旧模式为B操作),才可以像现代游戏一样左摇杆移动,右摇杆视角。
所以玩AC3SL及之前的作品的最大困难可能是这个反人类的B操作,于是整了个手柄重映射脚本,可以用A操作玩旧系作品。
1. 脚本会读取手柄输入,重映射按键,然后虚拟出另一个手柄作为输出。
2. PS1或PS2模拟器的手柄设置中,选择虚拟手柄,按键布局自动完成保持默认即可。
3. 游戏中按键设置保持默认,即可使用双摇杆A操作游玩。
脚本所需环境:
1. Python
2. Xinput 库 (pip install XInput-Python)
3. vgamepad 库 (pip install vgamepad)
重映射表
输入 输出 功能
BUTTON_LEFT_SHOULDER BUTTON_B 左手武器
BUTTON_RIGHT_SHOULDER BUTTON_X 右手武器
STICK_LEFT_UP BUTTON_DPAD_UP 移动前
STICK_LEFT_DOWN BUTTON_DPAD_DOWN 移动后
STICK_LEFT_LEFT BUTTON_LEFT_SHOULDER 移动左
STICK_LEFT_RIGHT BUTTON_RIGHT_SHOULDER 移动右
STICK_RIGHT_UP TRIGGER_LEFT 视角上
STICK_RIGHT_DOWN TRIGGER_RIGHT 视角下
STICK_RIGHT_LEFT BUTTON_DPAD_LEFT 视角左
STICK_RIGHT_RIGHT BUTTON_DPAD_RIGHT 视角右
TRIGGER_LEFT BUTTON_A Boost
TRIGGER_RIGHT BUTTON_Y 切换武器
其余按键为默认,直接映射。
脚本启动方式:右键选择以Python运行即可,启动脚本前请先插入手柄
一个手柄为物理真实手柄,一个手柄为虚拟手柄
例:左摇杆左上,被重映射为十字键上,L1
例:右摇杆右上,被映射为十字键右,L2
之后模拟器里选择虚拟手柄,游戏里保持按键设置默认,就可以用A操作游玩了。
5/6/2023 更新
添加了伪线性功能
1. 右摇杆在0.3到0.6范围(总范围0~1)时,对应的按键(视角控制)会映射为连击而不是按住(哆哆嗦嗦的AC)
2. 左扳机在0.1到0.6范围(总范围0~1)时,对应的按键(Boost)会映射为连击而不是按住(鬼畜点喷)
7/17/2023 更新
更换手柄库为游戏库pyglet,原Xinput库有效率低下的问题,只启动脚本就会消耗10%左右的CPU资源,甚至风扇都会转起来,不应该这样
当前CPU占用在2%到3%之间。
因为pyglet自带GUI(毕竟是游戏库),所以稍微修改了一下pyglet的手柄示例当作GUI了。
当前界面:
脚本所需环境:
1. Python
2. pyglet 库 (pip install --upgrade --user pyglet)
3. vgamepad 库 (pip install vgamepad)
打开命令提示符,执行上述命令
插入1个且只有1个手柄,未插入手柄的话脚本不会启动,手柄数大于等于2的话可能有未知问题。
右键脚本文件,以Python运行
之后在模拟器里选择对应的手柄就行了
pyglet 库版本:
本帖最后由 Kazuhira 于 2023-5-8 16:33 编辑
前排提示一下记得用电脑看帖子,鹅球不会显示可以下载的附件的,本帖的脚本在附件里下载
牛p,之前一直觉得rewasd就打这一个游戏不值得买,现居然有手搓的了
旧作能重新映射以后,最后的问题就是那个视角转动是非线性不好瞄准了(
—— 来自 Xiaomi Redmi K20 Pro, Android 11上的 S1Next-鹅版 v2.5.2-play 我记得还有哪个游戏也是L1L2移动视角,很别扭。但这也没辙 我是直接游戏里改键位,视角改到OX口Δ Kazuhira 发表于 2023-5-5 10:04
牛p,之前一直觉得rewasd就打这一个游戏不值得买,现居然有手搓的了
旧作能重新映射以后,最后的问题就是 ...
这个确实没办法。
为了避免误触视角,已经给摇杆加了45%的死区。 本帖最后由 Kazuhira 于 2023-5-5 10:52 编辑
NameLess2501 发表于 2023-5-5 10:48
这个确实没办法。
为了避免误触视角,已经给摇杆加了45%的死区。
确实,我看这操作方式,感觉应该是在游戏里写死了没有线性 若菜 发表于 2023-5-5 10:44
我是直接游戏里改键位,视角改到OX口Δ
我也这么干过,但我感觉用这个键位能打穿这游戏绝非一般人 415452356 发表于 2023-5-5 10:55
可以打,没那么难,psp版我当时一口气连通三作
—— 来自 S1Fun
LR也打穿了我非常佩服,我直接被管理局强行侦查后面那台AC劝退了 Kazuhira 发表于 2023-5-5 10:50
确实,我看这操作方式,感觉应该是在游戏里写死了没有线性
有个新想法,视角控制旧作是靠连点微调,类似PWM。
所以把右摇杆的角度映射成十字键左右L2R2的PWM形式,也算加了线性吧。
回去试一试。 NameLess2501 发表于 2023-5-5 18:12
有个新想法,视角控制旧作是靠连点微调,类似PWM。
所以把右摇杆的角度映射成十字键左右L2R2的PWM形式, ...
是个好主意,当时在另一个映射软件里找过这样原理的伪线性,但是没有这功能 Kazuhira 发表于 2023-5-5 18:19
是个好主意,当时在另一个映射软件里找过这样原理的伪线性,但是没有这功能 ...
没整真PWM线性,简单做成了摇杆或扳机推一半时对应按键连点
线性视角控制其实不太行
但Boost可以实现自动点喷了 顺便想到ps2上一些游戏要用到压感操作,比如gt赛车、gt摩托的油门刹车,现在的手柄都没法模拟。要是能把压感转成模拟量就好了呢。
NameLess2501 发表于 2023-5-6 19:37
没整真PWM线性,简单做成了摇杆或扳机推一半时对应按键连点
线性视角控制其实不太行
但Boost可以实现自动 ...
已经挺好了感谢楼主 哇,昨天还更新了刚想起来有这个,很惊喜 Kazuhira 发表于 2023-7-18 12:37
哇,昨天还更新了刚想起来有这个,很惊喜
这两天玩ACPP,发现功耗有点离谱,就又改了一下
页:
[1]