BlueRoseNote/03-UnrealEngine/Rendering/Lighting/音乐控制DMX灯光的简单方法.md

38 lines
2.4 KiB
Markdown
Raw Normal View History

2023-06-29 11:55:02 +08:00
---
title: 音乐控制DMX灯光的简单方法
date: 2022-11-09 17:13:17
excerpt: 摘要
tags:
rating: ⭐
---
## 前言
最近公司有个活涉及到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灯光效果
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/AudioAnalysisTools_1.png)
IsBeatRange是根据指定频率声音的音量进行判断这里可以根据需要来设置判断条件
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/AudioAnalysisTools_2.png)
因为逻辑是写在Actor中的所以搞了按键事件来停止音乐播放。
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/AudioAnalysisTools_3.png)
不过需要注意启用这个插件之后导入Wav就会变成这个资产。如果想要获得SoundWave资产就必须停用插件并且再次导入。
![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/AudioAnalysisTools_4.png)
## DMX移植
只需要在新工程里启用DMX插件之后将官方的DMX的工程迁移即可。需要注意的是Sequence里的需要使用DMX里面设置好DMXLibrary以及补丁这中文翻译槽点满满即可。
## 后续工作
这个方案有一些缺点:
1. AudioAnalysisTools需要播放声音才能获取的数据。
2. AudioAnalysisTools无法使用UE自带的Asset同时会导致无法在导入后生成SoundWave Asset。
3. 无法在Sequence停止播放时停下更好的控制或者在拖动轨道时执行正确的行为。
这就需要通过自定义Sequence Track以及修改插件才能完美实现。