//!
 public void AddFrame(FGAnimationKeyFrame frame)
 {
     FGAnimHelper.AddFrame(ref frames);
     frames[frames.Length - 1] = frame;
     for (int i = 0; i < frame.frameCount; i++)
     {
         _frameToKeyFrame.Add(frames.Length - 1);
     }
     totalFrameCount += frame.frameCount;
 }
 //!
 public void RemoveFrame(int indx)
 {
     if (indx < frames.Length)
     {
         totalFrameCount -= frames[indx].frameCount;
         int startIndex = 0;
         for (int i = 0; i < _frameToKeyFrame.Count; i++)
         {
             if (_frameToKeyFrame[i] == indx)
             {
                 startIndex = i;
                 break;
             }
         }
         _frameToKeyFrame.RemoveRange(startIndex, frames[indx].frameCount);
         FGAnimHelper.RemoveFrame(ref frames, indx);
     }
 }