Creator3D:炫动球球(音乐游戏)实现分享

我可以提供有一些原创音乐,可以一起合作开发音游:grinning:

mark mark mark

:+1: mark

mark一下

有个问题 rhythm 这个是时间吧,我们应该也需要知道每个峰值是多少吧,才能更好的体现节奏感

对的,这里边是时间,如果想要知道峰值,librosa是可以获取到的,

楼主 :librosa.util.peak_pick(onset_env, 3, 3,3, 5, 0.5, 12),这里面的参数分别是什么意思呢,看了下英文文档,感觉云里雾里的。。。

前边几个我也没咋明白,最后一个参数是在对峰值进行获取时,默认两个相邻峰值之间最小的帧数距离

楼主:输出的json文件中
"timer"是中这首曲子的总时间,单位为秒数, "rhythm"是值每个波峰的时间点?
而下面这个librosa.util.peak_pick(onset_env, 3, 3,3, 5, 0.5, 12),最后的一个参数,12是两个相邻峰值之间最小的帧数距离,
当数字越大时,输出的波峰数量越小,也就是 rhythm数组的数量越小。
其实一首曲子,不管最后的参数如何,波峰,也就是我们的节奏点的数量是固定的,只是,如果最后那个参数值小,那么输出的波峰的数量越多。但是由于各个音乐各有不同,我们选择也不同,比如节奏快的音乐,波峰太密集,对游戏来说,需要你的手速非常快,才能跟上,所以在这里,我们不需要每个波峰都踩到,于是我们就调整最后一个参数的数值。
但是,对于一些节奏没那么快的游戏,我们需要,尽可能的踩中每一个节拍,于是,我们把数值调小,以获得几乎全部波峰,楼主,我这样理解对吗?

理论上是这样,但是具体还需要测试一下,

我试了一下,最后一个参数值越小,rhythm数量越多,值越大,rhythm数量越少。只是,感觉应用在游戏里面,结合物体的移动速度,感觉还是有些许误差,不过,目前没有找到更好的解决方案。
多谢楼主前面的分享。

mark …

运行这个并没有输出level.json 。请教一下 是还需要什么环境配置吗?

你可以看一下是否有报错,再根目录下打开cmd,输入main.py.

问题找到了 是librosa这个没有安装。但是安装过程又炸了:joy:

看一下这几个库装了没有: numba,SoundFile,llvmlite,librosa
如果已近装了那就卸载了,按照我下边的:
第一步:
pip install SoundFile
第二步:
pip install -U numba==0.48.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installed llvmlite
第三步:
pip install -U llvmlite==0.32.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
第四步:
pip install librosa

mark111111111111

到这一步了,还是无法输出level.json 有点惶恐

可以把整个输出截张图不,感觉这个还没跑完