尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用 ShawzinBot 在《星际战甲》中让沙温琴演奏 MIDI:15 分钟上手手册

用 ShawzinBot 在《星际战甲》中让沙温琴演奏 MIDI:15 分钟上手手册 用 ShawzinBot 在《星际战甲》中让沙温琴演奏 MIDI15 分钟上手手册【免费下载链接】ShawzinBotConvert a MIDI input to a series of key presses for the Shawzin项目地址: https://gitcode.com/gh_mirrors/sh/ShawzinBotShawzinBot 是一款面向《星际战甲》Warframe内乐器沙温琴Shawzin的 MIDI 演奏工具你给它一个 MIDI 文件或接上一把 MIDI 键盘它会把每一个音符事件转换成对应的按键序列发给游戏。把游戏窗口切到前台沙温琴就会替你弹完整首歌而你不用记任何一个按键组合。它能替你做掉哪件事沙温琴的一个音需要同时决定音阶、把位fret和弦序手动演奏基本靠肌肉记忆看谱跟弹更是难上加难。ShawzinBot 把这件事拆掉了你只需要提供音高和时间信息按键逻辑全部由程序代劳。两个最常见的用法你手里有一首现成的.mid文件想在游戏里放给朋友听。加载文件、点播放剩下的交给它。你手边有 MIDI 键盘或合成器想在游戏里直播时现场弹奏。从设备下拉框里选上设备直接在键盘上弹就行。环境准备与部署系统Windows已安装 .NET Framework 4.7.2 或更高版本无需安装程序目录整体移动也不影响运行获取源码并运行主程序git clone https://gitcode.com/gh_mirrors/sh/ShawzinBot克隆后进入ShawzinBot目录双击ShawzinBot.exe即可。第一次运行前记住一条硬约束游戏内设置的音阶必须和程序界面顶部显示的音阶一致默认是 Chromatic 全音阶否则弹出来会整体跑调。能力拆解从输入到按键输入端文件与设备两种来源程序基于 DryWetMIDI 库读取标准 MIDI 文件SMF.mid/.midi同时通过该库的设备接口枚举系统中的 MIDI 输入包括实体 MIDI 键盘、合成器和虚拟 MIDI 通道。界面左侧的下拉框负责选择来源右侧的刷新按钮用于重新枚举设备。映射层一个音符被拆成四个维度沙温琴的每个音由四个要素决定映射表里每个音符 ID 对应一组{音阶, 把位, 弦序, 颤音}数值例如 C3 映射为0,0,1,0。可演奏范围是 C3 到 D#5超出范围的音符有两种处理方式开启Transpose notes默认开启时把越界音符移入可演奏区关闭时直接丢弃。音阶切换通过连按 Tab 键完成程序会记录当前音阶位置并只补按必要的次数。完整映射逻辑见 ShawzinBot/ActionManager.cs。输出端只在游戏窗口激活时按键按键通过模拟 Windows 键盘消息WM_KEYDOWN / WM_KEYUP发出。程序在每次发送前检查 Warframe 窗口是否处于焦点不在焦点就暂停回放所以它不会顺手操作你正在使用的其他窗口也不涉及内存读写属于纯粹的键盘输入模拟。实操演示播放一个 MIDI 文件双击ShawzinBot.exe启动左上角按钮打开文件选择框选中一个.mid文件。界面会列出文件中的所有轨道默认勾选第一条轨道。多轨文件比如主旋律和伴奏分开时在 MIDI Tracks 下拉框里只勾你想让游戏演奏的那条。进游戏把沙温琴的音阶设置成与界面顶部 Scale: ... 显示一致通常保持默认的 Chromatic 即可。点播放然后 AltTab 切回游戏窗口。焦点检测通过后回放自动开始中途切出游戏程序会暂停防止音阶状态错乱。速度下拉框提供 0.25x 到 2x 的步进曲子太快对不上节奏时降到 0.75x 试试。连接 MIDI 设备在左上设备下拉框选中你的 MIDI 键盘没有看到设备就点下拉框右侧的刷新按钮重新枚举。无需加载任何文件在键盘上按下的每个音会实时映射进游戏适合直播时的即兴演奏。其余能力一句话带过勾选 Play MIDI through speakers 可以通过系统扬声器试听原曲方便调轨前预览颤音Whammy效果由独立复选框控制。效果不达预期时的排查路径游戏里一点声音都没有。先确认 Warframe 窗口是否在最前且获得焦点——这是唯一的前置条件。程序只向游戏窗口发送按键焦点不在游戏上时所有音符都会被丢弃。某些音区偏高或偏低的部分突然没声。这些音符超出了 C3–D#5 的映射范围。检查 Transpose notes 是否处于开启状态若已开启仍觉得移调后的听感不对可以关掉它让越界音符直接缺席曲子的骨架通常还是完整的。和弦按下去只剩一个音、或者听感发糊。这是沙温琴乐器本身的限制同时按下多个键时游戏内表现不正常并非程序 bug。做法是在 MIDI 编辑器里把同时发声的音符错开几毫秒逐音触发。整首曲子听起来不对味、像跑调。九成是音阶不匹配。对比界面顶部的 Scale: ... 与游戏内沙温琴的音阶设置改成一致再播放。设备下拉框里没有我的键盘。点刷新按钮仍找不到时确认设备的 MIDI 驱动正常并在系统其他软件中验证该设备能否正常发送音符。进阶与二次开发入口想改某个音对应哪些键改 ShawzinBot/ActionManager.cs 里的shawzinNotes映射表音符 ID → 四元组以及把位、弦序、特殊键三张字典。这是全项目最核心的配置点。想调整播放行为速度档位、轨道勾选逻辑、设备枚举与事件分发都在 ShawzinBot/ViewModels/MainViewModel.cs轨道、设备、速度三个界面模型的定义在 ShawzinBot/Models/ 目录下。收束ShawzinBot 本质上是一台把 MIDI 翻译成你键盘语言的翻译器你的全部工作量只剩下把游戏窗口切到前面。下一步可以做的三件事找一首你熟悉的.mid文件按上面的步骤跑通第一次完整播放。把游戏内沙温琴音阶核对到与界面显示一致再重播一次确认音准。把速度分别切到 0.75x 和 1.25x 各听一遍选定你最常用的回放倍速。【免费下载链接】ShawzinBotConvert a MIDI input to a series of key presses for the Shawzin项目地址: https://gitcode.com/gh_mirrors/sh/ShawzinBot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表