コード例 #1
0
    public override Phonemes RefineData(PhonemesRaw raw)
    {
        return(null);

        //Curves
        //closeToOpen - frontToBack - labial - coronal - dorsal
    }
コード例 #2
0
        public static ResembleClip FromJson(string json)
        {
            ResembleClip clip = JsonUtility.FromJson <ResembleClip>(json);

            if (!string.IsNullOrEmpty(clip.phoneme_timestamps))
            {
                string timeStamps = clip.phoneme_timestamps;
                clip.phonemesRaw = PhonemesRaw.FromJson(timeStamps);
            }

            return(clip);
        }
コード例 #3
0
ファイル: Recline.cs プロジェクト: HeidenBZR/WavConfigTool
        public Recline(Reclist reclist, string name, List <Phoneme> phonemes, string description) : this(reclist, name)
        {
            Description = description;

            Phonemes.Add(Rest.Create(this));
            foreach (var phoneme in phonemes)
            {
                Phonemes.Add(phoneme);
                PhonemesRaw.Add(phoneme);
            }
            Phonemes.Add(Rest.Create(this));

            Vowels     = Phonemes.Where(n => n.IsVowel).ToList();
            Consonants = Phonemes.Where(n => n.IsConsonant).ToList();
            Rests      = Phonemes.Where(n => n.IsRest).ToList();

            IsEnabled = true;
        }
コード例 #4
0
    public override Phonemes RefineData(PhonemesRaw raw)
    {
        Phonemes phonemes = new Phonemes();

        phonemes.curves = new Phonemes.PhonemeCurve[groups.Length];

        for (int i = 0; i < groups.Length; i++)
        {
            phonemes.curves[i].curve = new AnimationCurve();
            phonemes.curves[i].name  = groups[i].name;
        }

        float inLength = 1.0f / raw.end_times[raw.end_times.Length - 1];

        for (int j = 0; j < groups.Length; j++)
        {
            for (int i = 0; i < raw.end_times.Length; i++)
            {
                float    time     = raw.end_times[i] * inLength;
                string   pho      = raw.phonemesChars[i].ToString();
                bool     contains = groups[j].phonemes.Contains(pho);
                Keyframe keyFrame = new Keyframe(time, contains ? 0.5f : 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
                phonemes.curves[j].curve.AddKey(keyFrame);
            }
        }

        for (int i = 0; i < phonemes.curves.Length; i++)
        {
            for (int j = 0; j < phonemes.curves[i].curve.length; j++)
            {
                phonemes.curves[i].curve.SmoothTangents(j, 0.0f);
            }
        }

        return(phonemes);
    }