/// <summary> /// /// </summary> /// <param name="joint"></param> public int SetAnimJoint(HSD_AnimJoint joint) { Nodes.Clear(); int max = 0; if (joint == null) { return(0); } foreach (var j in joint.BreathFirstSearch) { AnimNode n = new AnimNode(); if (j.AOBJ != null) { max = (int)Math.Max(max, j.AOBJ.EndFrame); foreach (var fdesc in j.AOBJ.FObjDesc.List) { AnimTrack track = new AnimTrack(); track.TrackType = fdesc.AnimationType; track.Keys = fdesc.GetDecodedKeys(); n.Tracks.Add(track); } } Nodes.Add(n); } return(max); }
/// <summary> /// /// </summary> public void SetFigaTree(HSD_FigaTree tree) { Nodes.Clear(); if (tree == null) { return; } foreach (var tracks in tree.Nodes) { AnimNode n = new AnimNode(); foreach (HSD_Track t in tracks.Tracks) { AnimTrack track = new AnimTrack(); track.TrackType = t.FOBJ.AnimationType; track.Keys = t.GetKeys(); n.Tracks.Add(track); } Nodes.Add(n); } }