可视化音乐效果的简单制作和实现

本文介绍如何使用Unity中的AudioSources接口,通过音乐频谱数据创建动态的音乐可视化效果。重点讲解了GetSpectrumData方法的使用,包括float数组、通道和FFTWindow参数的设定,以及如何将这些数据应用到UI元素上,实现随音乐节奏变化的小方块缩放效果。
-- 小伙伴们大家好,没错,汪汪最近闲得慌,又来搞事情了,决定写一篇可视化音乐工具的简单制作教程,本着越简单越好的原则,我的代码一如既往只有骨头。。。。但也希望小伙伴们可以看得懂。 我们还是老样子来看看效果如何: 是的,我们通过音乐频谱数据来让我们的小方块的缩放值不停的变换,以此随着音乐节奏跳动。下面的小方块是UI,UI也可以通过改变Scale来实现。 我们来看看原理: 其实重点是介绍我们Unity中AudioSources中的一个接口: public static void GetSpectrumData(float[] samples, int channel, FFTWindow window); Unity的技术大大们,已经为我们封装好接口,方便我们进行音乐效果制作,如果没有的话,我们还需要自己进行解码,那就走远了。。。。(不得不说,技术进步真快啊,程序员还是挺伟大的) 我们先看一下官方文档: samples :float数组,大小为2的次幂,最小值64,最大值8192 channel:通道 FFTWindow:使用FFTWindow以减少bins/bands之间频率泄漏。 https://docs.unity3d.com/ScriptReference/AudioSource.GetSpectrumData.html 介绍完毕,我们来实践看看: 首先我们编写一个音乐的“解码”脚本: 再加一些函数,方便我们调用: 现在我们运行程序,就可以看到我们的频谱值了: 接下来,我们需要写脚本来利用起这些数值,当然,有些小伙伴看到这里已经可以自行实现了: 我们可视化脚本写完以后,就是这样的: 我们再设置一些方块像这样: 只需要在父级物体设置脚本即可。 由于颜色有三个阶段,所以汪汪只设置了两个值来限定颜色,毕竟一个方块横着切两刀就是三块嘛。其中的shader文件是用来控制效果的,小伙伴们可以自己写,汪汪这里是简单的上色。 这样我们的音乐可视化就实现啦~ 好啦~本次小特效实现就到这里啦~小伙伴们可以对此案例提出你们宝贵的意见。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值