public override Phonemes RefineData(PhonemesRaw raw) { return(null); //Curves //closeToOpen - frontToBack - labial - coronal - dorsal }
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); }
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; }
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); }