介绍
近期处于pony town 10周年,更新了OC跳舞动画,并且可以导出OC动画帧。借此使用动画帧作为素材制作了一个小游戏。
作者团队 致谢名单
代码:Furai
开发环境
使用Godot 4.5.1 stable版本制作。没有安装其他插件,没有使用模板。
使用GDScript(Godot脚本语言)编写。
谱面生成
因为音游需要谱面,而人工手动设计需要耗费大量精力和时间,并且我很懒。除此之外音游设计需要特定的音频文件才可游玩。因此需要算法直接生成可玩的音游谱面以此节省人力、时间和精力,并让玩家自主选择自己喜欢的音乐。
频段能量峰值检测
使用“频段能量峰值检测”启发式算法[1, 2]。
程序将对陌生音乐文件进行静音播放,从而分析并获取高低音频,进而生成不同的轨道音符。(这导致第一次加载时需要播放整段音乐,花费时间,不过加载完后会保存,重复游玩无需再加载、分析)
其他方法
未来可考虑使用Beats Per Minute(BPM)谱面生成或机器学习、深度学习方面的算法。(目前没使用是不想长期优化维护,仅一晚上做出来玩玩而已)
BPM可根据音乐节拍生成音符,理论更优,但该方法相较于当前方法稍加复杂,因此本小游戏仅使用了简单方法初步实现效果。
音乐资源
目前已有“导入”和“移除”功能。音乐文件直接拖入即可导入。
目前只支持“mp3”、“ogg”、“wav”格式的音频文件。
游玩方式
点击主界面右下角的“Start”键即可开始。
若选择的音乐是第一次游玩,则需要通过“频段能量峰值检测”分析一遍。
若选择的音乐是第N次游玩,则会立即开始。
难度选择
主界面右上角有难度选择,分为easy、normal、hard。
按键方式
使用键盘的“A”、“S”、“D”、“F”键游玩。(用起来会别扭,但我懒得改了)
游玩界面
进入游戏后左边是4个音符轨道,右边是我的OC——HuiyanFurai(回雁风/回雁之风),她会跳舞。
这就是我为了这碟醋而包的饺子。
——Furai
注意事项
点击Start后会立即开始游戏,没有多少反应时间。以后有机会我再优化。
代码我就暂时不开源了,因为只是做着玩的,且并不想长期维护。
参考文献
[1] J. P. Bello, L. Daudet, S. Abdallah, C. Duxbury, M. Davies and M. B. Sandler, “A tutorial on onset detection in music signals,” in IEEE Transactions on Speech and Audio Processing, vol. 13, no. 5, pp. 1035-1047, Sept. 2005, doi: 10.1109/TSA.2005.851998.
[2] N. Silva, P. C. Weeraddana and C. Fischione, “On Musical Onset Detection via the S-Transform,” 2018 52nd Asilomar Conference on Signals, Systems, and Computers, Pacific Grove, CA, USA, 2018, pp. 1080-1085, doi: 10.1109/ACSSC.2018.8645367.
本站尊重作品版权,如本站的行为有影响到您的知识产权安全,请联系网站管理员处理。
We respect the copyright of our works. If our actions affect your intellectual property security, please contact the website administrator for assistance.



















暂无评论内容