public static void CreateWindow(ModalParent parent, LipSyncClipSetup setup, EmotionMarker marker) { MarkerSettingsWindow window = Create(parent, setup, 1); window.eMarker = new EmotionMarker[] { marker }; for (int i = 0; i < setup.settings.emotions.Length; i++) { if (setup.settings.emotions[i] == marker.emotion) { window.emotionNumber = i; break; } } window.startTime = marker.startTime; window.endTime = marker.endTime; window.intensity = marker.intensity; window.modifierOn = marker.continuousVariation; window.maxVariationFrequency = marker.variationFrequency; window.intensityModifier = marker.intensityVariation; window.blendableModifier = marker.blendableVariation; window.boneRotationModifier = marker.boneRotationVariation; window.bonePositionModifier = marker.bonePositionVariation; window.modifierBool = new AnimBool(window.modifierOn, window.Repaint); }
/// <summary> /// Returns the next marker to current in a list of EmotionMarkers. /// </summary> /// <param name="list"></param> /// <param name="current"></param> /// <returns></returns> public static EmotionMarker NextMarker(this List <EmotionMarker> list, EmotionMarker current) { int index = list.IndexOf(current) + 1; if (index < list.Count) { return(list[index]); } return(null); }
/// <summary> /// Returns the previous marker to current in a list of EmotionMarkers. /// </summary> /// <param name="list"></param> /// <param name="current"></param> /// <returns></returns> public static EmotionMarker PreviousMarker(this List <EmotionMarker> list, EmotionMarker current) { int index = list.IndexOf(current) - 1; if (index >= 0) { return(list[index]); } return(null); }
void AdjustMarkers(double newStartTime, double newLength) { // Times float newStartNormalised = 1 - ((setup.fileLength - (float)newStartTime) / setup.fileLength); float newEndNormalised = ((float)newStartTime + (float)newLength) / setup.fileLength; // Adjust Marker timings (go backwards so indices don't change) float multiplier = 1 / (newEndNormalised - newStartNormalised); for (int p = setup.phonemeData.Count - 1; p >= 0; p--) { if (setup.phonemeData[p].time <newStartNormalised || setup.phonemeData[p].time> newEndNormalised) { setup.phonemeData.RemoveAt(p); } else { setup.phonemeData[p].time -= newStartNormalised; setup.phonemeData[p].time *= multiplier; } } for (int g = setup.gestureData.Count - 1; g >= 0; g--) { if (setup.gestureData[g].time <newStartNormalised || setup.gestureData[g].time> newEndNormalised) { setup.gestureData.RemoveAt(g); } else { setup.gestureData[g].time -= newStartNormalised; setup.gestureData[g].time *= multiplier; } } for (int e = setup.emotionData.Count - 1; e >= 0; e--) { if (setup.emotionData[e].endTime <newStartNormalised || setup.emotionData[e].startTime> newEndNormalised) { EmotionMarker em = setup.emotionData[e]; setup.emotionData.Remove(em); setup.unorderedEmotionData.Remove(em); } else { setup.emotionData[e].startTime -= newStartNormalised; setup.emotionData[e].startTime *= multiplier; setup.emotionData[e].startTime = Mathf.Clamp01(setup.emotionData[e].startTime); setup.emotionData[e].endTime -= newStartNormalised; setup.emotionData[e].endTime *= multiplier; setup.emotionData[e].endTime = Mathf.Clamp01(setup.emotionData[e].endTime); } } }
public EmotionMarker CreateCopy() { EmotionMarker m = new EmotionMarker(emotion, startTime, endTime, blendInTime, blendOutTime, blendToMarker, blendFromMarker, customBlendIn, customBlendOut, intensity); m.isMixer = isMixer; m.mixer = mixer; m.blendableVariation = blendableVariation; m.bonePositionVariation = bonePositionVariation; m.boneRotationVariation = boneRotationVariation; m.intensityVariation = intensityVariation; m.continuousVariation = continuousVariation; return(m); }
public static void CreateWindow(ModalParent parent, LipSyncClipSetup setup, EmotionMarker marker) { MarkerSettingsWindow window = Create(parent, setup, 1); window.eMarker = new EmotionMarker[] { marker }; window.startTime = marker.startTime; window.endTime = marker.endTime; window.intensity = marker.intensity; window.modifierOn = marker.continuousVariation; window.maxVariationFrequency = marker.variationFrequency; window.intensityModifier = marker.intensityVariation; window.blendableModifier = marker.blendableVariation; window.boneRotationModifier = marker.boneRotationVariation; window.bonePositionModifier = marker.bonePositionVariation; window.modifierBool = new AnimBool(window.modifierOn, window.Repaint); }