中级08/Unity中快照应用
使用快照能够非常迅速的进行效果器的效果变更。当我们在ADX2编辑中创建快照时,快照存储在相应的DSP下,而所有DSP的Bus都会在快照中显示,通过使用快照能够直接调整当前快照的每个DSP Bus的send值,如此一来切换快照时就能非常迅速的进行效果量的切换。
ADX2中设置
DSP总线设定:
DSP总线上创建了一个Bus1,Bus1上添加了Reverb效果器,并将Bus1发送到MasterOut上,同时将Bus1的Send降低为0,如此一来我们将Cue发送到Bus1时,直接使用DSP时不会存在混响效果。
快照设置:
我们创建了两个快照:SnapshotOn和SnapshotOff,两个快照的作用主要用于Bus1的发送量更改:
上图分别显示了SnapshotOn和SnapshotOff的状态。通过两个快照我们能够迅速的切换不同混响效果。
而对于需要添加效果的Cue:
我们需要将其发送到BUS1上去,如此一来ADX2中设置就完成了。
Unity中设置
在Unity中我们使用极其简单的方式来模拟效果,通过点击按钮自动切换两个快照的状态,使得效果添加和移除。
首先我们需要创建包含相关Cue的object于场景中,而后在此Object上添加脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SnapshotOn : MonoBehaviour
{
int SnapshotStatue = 1;
void Start()
{
CriAtom.AttachDspBusSetting("DSP");
}
public void SnapshotDo()
{
if(SnapshotStatue == 1)
{
CriAtomEx.ApplyDspBusSnapshot("SnapshotOn", 500);
SnapshotStatue = 2;
}
else
{
CriAtomEx.ApplyDspBusSnapshot("SnapshotOff", 500);
SnapshotStatue = 1;
}
}
}
脚本中我们用一个整形变量记录快照状态,同时使用判断语句来判断当前状态,当按钮每次按下时,都会根据当前状态来切换两个不同的快照,使得快照变化应用。
在CriAtomEx.ApplyDspBusSnapshot(“SnapshotOff”, 500);函数中,第二个参数表示过渡时间,即从当前快照的Bus send的值变更到目标值时的时间。
这个过渡的存在使得快照的变更变得非常平滑,不会在切换时感受到突变问题。
除脚本内容和播放的Cue外,我们还需要创建一个Button用以切换快照:
细节如上图,通过触发Button的点击事件来不断的更改快照实现我们的混响效果变化。