Ejemplo n.º 1
0
        /// <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]));
Ejemplo n.º 2
0
 /// <summary>
 /// IDオブジェクトのID名を比較する。
 /// </summary>
 /// <param name="id">対象のID</param>
 /// <returns>trueならID名が同じ</returns>
 public bool CompareTo(CubismId id)
 {
     return(Name == id.Name);
 }