说明
Koerpgraphy是一款专业的音轨编辑插件,可用于Unity音乐可视化编辑,以及制作音乐类游戏。
两个重要文件
Koreography 和Track ,前者可以理解为Track的集合,是作用在游戏中播放器的逻辑组成,而后者则是进行的一系列针对音频的打点操作(原理同Unity自带的动画插件,就是打点插入事件,track是一个轨道的打点的集合,Koreography则是整个动画——多个轨道的集合)
Koreography的Inspector:
Track的Inspector:
Editor使用
在window栏中找到Koreograper Editor
第一行新建Koreography文件,第二行插入你的音频文件,然后我们来到Track Settings部分(前面那一部分是音乐的一些属性)。
这个地方如果你先前没有制作好的Track文件,需要点击new来创建一个Track文件,Track Event ID是在脚本中调用该Track时用到的,可以随便写,但一般是保持与Track名称相同
这一栏其实试一试就知道是了,说一下第三个:OneOff是指在频谱中点一下出来一个事件(长按无效),Span 则是长按的话会生成一段时间的事件,具体的试了就知道了,Payload选择事件存储的参数类型(Color、Float、Text、Int、Curve、Gradient)。
Demo制作
- 新建一个MusicPlayer空物体
- 添加组件:Koreography 和Simple Music Player (前者自动添加Audio Sourse组件)
- 将对应的Koreography文件添加上去
- 添加自己的游戏控制脚本,完成note生成,beat检测等;
动态网络加载
从Koreography的Inspector可以看出,关联了AudioClip和Track文件,尝试将Koreography文件进行assetbundle打包。
在游戏控制脚本中完成加载、动态添加:
UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle("http://192.168.0.23:8888/SSBX/koerography/1004_unity.as");
www.timeout = 10;
yield return www.SendWebRequest();
if(www.result == UnityWebRequest.Result.Success)
{
AssetBundle ab = DownloadHandlerAssetBundle.GetContent(www);
AssetBundleRequest ar = ab.LoadAssetAsync<Koreography>("1004_unity.asset");
yield return ar;
Koreography ko = ar.asset as Koreography;
smp.LoadSong(ko,0,false);
eventID = "1004_beat";
//audioCom = obj.GetComponent<AudioSource>();
StartGame();
}
www.Dispose();