public static float CalculateExitTime(MetaInfoItem info) { int frameRange = info.EndFrame - info.StartFrame; int exitFrame = info.ExitFrame - info.StartFrame; float exitTime = (float)exitFrame / (float)frameRange; return(exitTime); }
public static float CalculatePreviewTime(MetaInfoItem info) { float timeInPercent = 0f; if (info != null) { int frameRange = info.EndFrame - info.StartFrame; int previewFrame = info.PreviewFrame - info.StartFrame; timeInPercent = (float)previewFrame / (float)frameRange; } return(timeInPercent); }
public static float CalculateAnimationLength(MetaInfoItem info, int exitFrame) { float timeInSeconds = 0f; if (info != null) { int frameRange = info.EndFrame - info.StartFrame; int exitRange = frameRange - exitFrame; float exitTime = (float)exitRange / (float)frameRange; timeInSeconds = (frameRange / 30f) * exitTime; } return(timeInSeconds); }
public static MetaInfoItem GetListenMeta(MetaInfoItem dialogueMeta) { try { MetaInfoItem meta = null; foreach (MetaInfoItem listenMeta in AnimationMetaDatabase.Instance.listenDatabase) { if (dialogueMeta.Attitude == listenMeta.Attitude) { meta = listenMeta; break; } } if (meta != null) { return(meta); } else { MetaInfoItem listenMeta = AnimationMetaDatabase.Instance.GetMeta("listen", "nonespecific", "StandingNormal"); if (listenMeta != null) { return(listenMeta); } else { //CrashHelp.Report("AnimationUtilities, GetListenMeta", "Listen meta for: " + dialogueMeta.ID + " not found."); } } } catch (Exception e) { //CrashHelp.Report("DialogAnimationMetaDatabase", e.Message, e); } return(null); }
public static float CalculateSilenceAnimationLength(MetaInfoItem info) { float timeInSeconds = info.SilenceFrames / 30f; return(timeInSeconds); }
public static float CalculateTransitionTime(MetaInfoItem info, float animationLength) { float transitionTime = (float)info.BlendInFrames / 30f; return(transitionTime); }
//Allow user of this method to optionally pass in a stance for a more detailed lookup. public MetaInfoItem GetMeta(string type, string actionID, string stance) { try { if (this.databases.ContainsKey(type)) { actionID = actionID.ToLower(); string currentStance = stance; List <MetaInfoItem> list = this.databases[type]; MetaInfoItem item = null; bool itemExists = false; this.searchDepth += 1; for (int i = 0; i < list.Count; i++) { MetaInfoItem currentItem = list[i]; if (currentItem.ID == actionID) { itemExists = true; if (currentItem.Stance == stance) { item = currentItem; break; } } } if (item == null && itemExists && this.searchDepth <= MaxSearchDepth) { //If first iteration fails we use lookup based on stance. if (searchDepth == 1) { if (currentStance.Contains("Sitting")) { item = GetMeta(type, actionID, "SittingNormal"); } if (currentStance.Contains("Standing")) { item = GetMeta(type, actionID, "StandingNormal"); } } //Else we default to standing stance. else { item = GetMeta(type, actionID, "StandingNormal"); } } this.searchDepth = 0; return(item); } } catch (Exception e) { //CrashHelp.Report("AnimationMetaDatabase", e.Message, e); } return(null); }