/// <summary> /// エフェクトがかかっているパラメータリストを設定する。 /// </summary> /// <param name="effect_id">エフェクトID</param> /// <param name="effect_parameter_ids">エフェクトがかかっているパラメータIDのリスト</param> /// <returns>モーションに指定されたエフェクトが使用されていればtrueを返す</returns> public bool SetEffectParameters(CubismId effect_id, CubismParameter[] effect_parameters) { if (EffectCurves.ContainsKey(effect_id) == false) { return(false); } // 該当するパラメータを操作するカーブがあればエフェクトIDを設定する bool[] used_ids = new bool[effect_parameters.Length]; foreach (var curve in Curves) { curve.Effect = null; for (int index = 0; index < effect_parameters.Length; index++) { if (curve.Parameter == effect_parameters[index]) { curve.Effect = effect_id; used_ids[index] = true; break; } } } // このモーションで制御しないパラメータはEffectUnusedIdsに格納する EffectUnusedParameters.RemoveAll(x => x.Item1 == effect_id); for (int index = 0; index < effect_parameters.Length; index++) { if (used_ids[index] == false) { EffectUnusedParameters.Add((effect_id, effect_parameters[index]));
/// <summary> /// IDオブジェクトのID名を比較する。 /// </summary> /// <param name="id">対象のID</param> /// <returns>trueならID名が同じ</returns> public bool CompareTo(CubismId id) { return(Name == id.Name); }