public void Set(Automation.TargetParam param, float value) { if (m_ignoreParam.Contains(param)) // 무시 목록에 없을 때만 실행한다. return; var info = s_infoDict[param]; if (info.mixerParamName != null) // ExposedParam을 조절하는 케이스 { m_mixer.SetFloat(info.mixerParamName, info.ToMixerParamValue(value)); } else { // Snapshot을 조절하는 케이스 AudioMixerSnapshot [] snapshots; if (!m_snapshotDict.TryGetValue(param, out snapshots)) // 해당 파라미터에 맞는 스냅샷 목록을 아직 레퍼런스로 소유하고 있지 않다면, 찾아서 등록 { int namecount = info.snapshotNames.Length; snapshots = new AudioMixerSnapshot[namecount]; for (int i = 0; i < namecount; i++) { snapshots[i] = m_mixer.FindSnapshot(info.snapshotNames[i]); } m_snapshotDict[param] = snapshots; } var calcvalue = info.ToMixerParamValue(value); _temp_snapshot_weight[0] = 1 - calcvalue; _temp_snapshot_weight[1] = calcvalue; m_mixer.TransitionToSnapshots(snapshots, _temp_snapshot_weight, 0.1f); } }
void Output(Automation auto) { string output = ""; for (int i = 0; i < 11; i++) { output += string.Format("{0}, ", auto.GetValue((float)i * 0.1f)); } Debug.Log(output); }
// Use this for initialization void Start() { var intro_vol = new Automation(); intro_vol.targetParam = Automation.TargetParam.Volume; intro_vol.AddPoint(0, 0); intro_vol.AddPoint(0.5f, 1); intro_vol.AddPoint(1.0f, 1); Output(intro_vol); var intro_lowcut = new Automation(); intro_lowcut.targetParam = Automation.TargetParam.LowCut; intro_lowcut.AddPoint(0, 1); intro_lowcut.AddPoint(0.5f, 1); intro_lowcut.AddPoint(0.5f, 0); intro_lowcut.AddPoint(1, 0); Output(intro_lowcut); }
public static TransitionScenario GenTestScenario2() { var scen = new TransitionScenario(); var intro_vol = new Automation(); intro_vol.targetParam = Automation.TargetParam.Volume; intro_vol.AddPoint(0, 0); intro_vol.AddPoint(0.5f, 1); intro_vol.AddPoint(1.0f, 1); scen.AddIntroAutomation(intro_vol); var intro_lowcut = new Automation(); intro_lowcut.targetParam = Automation.TargetParam.LowCut; intro_lowcut.AddPoint(0, 1); intro_lowcut.AddPoint(0.5f, 1); intro_lowcut.AddPoint(0.5f, 0); intro_lowcut.AddPoint(1, 0); scen.AddIntroAutomation(intro_lowcut); var outro_vol = new Automation(); outro_vol.targetParam = Automation.TargetParam.Volume; outro_vol.AddPoint(0, 1); outro_vol.AddPoint(0.5f, 1); outro_vol.AddPoint(1, 0); scen.AddOutroAutomation(outro_vol); var outro_lowcut = new Automation(); outro_lowcut.targetParam = Automation.TargetParam.LowCut; outro_lowcut.AddPoint(0, 0); outro_lowcut.AddPoint(0.5f, 0); outro_lowcut.AddPoint(0.5f, 1); outro_lowcut.AddPoint(1, 1); scen.AddOutroAutomation(outro_lowcut); return(scen); }
static Automation[] TestAutomation() { var tenauto1 = new Automation(); tenauto1.targetParam = Automation.TargetParam.Volume; tenauto1.AddPoint(0, 0); tenauto1.AddPoint(0.75f, 1); var tenauto2 = new Automation(); tenauto2.targetParam = Automation.TargetParam.Volume; tenauto2.AddPoint(0, 0); tenauto2.AddPoint(0.25f, 0); tenauto2.AddPoint(0.5f, 1); var tenauto3 = new Automation(); tenauto3.targetParam = Automation.TargetParam.Volume; tenauto3.AddPoint(0, 0); tenauto3.AddPoint(0.5f, 0); tenauto3.AddPoint(1f, 1); return(new Automation[] { tenauto1, tenauto2, tenauto3 }); }
/// <summary> /// 오토메이션 적용을 무시할 파라미터 세팅 /// </summary> /// <param name="param"></param> public void AddParamToIgnore(Automation.TargetParam param) { m_ignoreParam.Add(param); }
/// <summary> /// 볼륨만 컨트롤한다. /// </summary> /// <param name="param"></param> /// <param name="value"></param> public void Set(Automation.TargetParam param, float value) { if(param == Automation.TargetParam.Volume) { m_source.volume = value; } }
public void AddOutroAutomation(Automation auto) { m_outroAutomations.Add(auto); }
public void AddIntroAutomation(Automation auto) { m_introAutomations.Add(auto); }
/// <summary> /// tension 오토메이션 클립 추가 /// </summary> /// <param name="auto"></param> public void AddTensionAutomation(Automation auto) { m_tensionAutomations.Add(auto); }
public static TransitionScenario GenTestScenario2() { var scen = new TransitionScenario(); var intro_vol = new Automation(); intro_vol.targetParam = Automation.TargetParam.Volume; intro_vol.AddPoint(0, 0); intro_vol.AddPoint(0.5f, 1); intro_vol.AddPoint(1.0f, 1); scen.AddIntroAutomation(intro_vol); var intro_lowcut = new Automation(); intro_lowcut.targetParam = Automation.TargetParam.LowCut; intro_lowcut.AddPoint(0, 1); intro_lowcut.AddPoint(0.5f, 1); intro_lowcut.AddPoint(0.5f, 0); intro_lowcut.AddPoint(1, 0); scen.AddIntroAutomation(intro_lowcut); var outro_vol = new Automation(); outro_vol.targetParam = Automation.TargetParam.Volume; outro_vol.AddPoint(0, 1); outro_vol.AddPoint(0.5f, 1); outro_vol.AddPoint(1, 0); scen.AddOutroAutomation(outro_vol); var outro_lowcut = new Automation(); outro_lowcut.targetParam = Automation.TargetParam.LowCut; outro_lowcut.AddPoint(0, 0); outro_lowcut.AddPoint(0.5f, 0); outro_lowcut.AddPoint(0.5f, 1); outro_lowcut.AddPoint(1, 1); scen.AddOutroAutomation(outro_lowcut); return scen; }
static Automation[] TestAutomation() { var tenauto1 = new Automation(); tenauto1.targetParam = Automation.TargetParam.Volume; tenauto1.AddPoint(0, 0); tenauto1.AddPoint(0.75f, 1); var tenauto2 = new Automation(); tenauto2.targetParam = Automation.TargetParam.Volume; tenauto2.AddPoint(0, 0); tenauto2.AddPoint(0.25f, 0); tenauto2.AddPoint(0.5f, 1); var tenauto3 = new Automation(); tenauto3.targetParam = Automation.TargetParam.Volume; tenauto3.AddPoint(0, 0); tenauto3.AddPoint(0.5f, 0); tenauto3.AddPoint(1f, 1); return new Automation[] { tenauto1, tenauto2, tenauto3 }; }