BlueRose
文章97
标签28
分类7
音乐控制DMX灯光的简单方法

音乐控制DMX灯光的简单方法

前言

最近公司有个活涉及到DMX打光的活,还比较急。为了减少美术同学的压力,所以我就想通过音乐分析+播放Sequence的方式来实现。

UE有自带基于FFT的音乐分析功能,但只能根据频率进行对应的判断,比较麻烦所以放弃了。具体操作可以参考:
https://www.bilibili.com/video/BV1FP411c79v/

AudioAnalysisTools

这里推荐使用audio-analysis-tools,原因是免费且开源,默认带有一些预设:IsHiHat、IsBeat、IsKick、IsSnare,同时可以通过频率范围来判断节拍。但也正因为此一些功能不够完善,需要自己改一下。
下载地址:https://www.unrealengine.com/marketplace/zh-CN/product/audio-analysis-tools

以下是我做的一个案例,通过音乐分析与K帧来播放对应的子Sequence(预先K好DXM动画)来实现音乐控制DMX灯光效果:

IsBeatRange是根据指定频率声音的音量进行判断,这里可以根据需要来设置判断条件:

因为逻辑是写在Actor中的,所以搞了按键事件来停止音乐播放。

不过需要注意:启用这个插件之后导入Wav就会变成这个资产。如果想要获得SoundWave资产就必须停用插件并且再次导入。

DMX移植

只需要在新工程里启用DMX插件,之后将官方的DMX的工程迁移即可。需要注意的是Sequence里的需要使用DMX,里面设置好DMXLibrary以及补丁(这中文翻译槽点满满)即可。

后续工作

这个方案有一些缺点:

  1. AudioAnalysisTools需要播放声音才能获取的数据。
  2. AudioAnalysisTools无法使用UE自带的Asset,同时会导致无法在导入后生成SoundWave Asset。
  3. 无法在Sequence停止播放时停下(更好的控制)或者在拖动轨道时执行正确的行为。

这就需要通过自定义Sequence Track以及修改插件才能完美实现。