Exemple #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]));
Exemple #2
0
 private void Start()
 {
     if (curve == null)
     {
         curve = new GameObject().AddComponent <EffectCurves>();
     }
     ScaleEffect(transform, curve.bell, .2f, 1f);
 }