예제 #1
0
 public BCAAnimation(EndianBinaryReader er, BCA.BCAHeader Header)
 {
     this.Sx = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetScale, (uint)Header.NrFrames, false);
     this.Sy = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetScale, (uint)Header.NrFrames, false);
     this.Sz = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetScale, (uint)Header.NrFrames, false);
     this.Rx = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetRotation, (uint)Header.NrFrames, true);
     this.Ry = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetRotation, (uint)Header.NrFrames, true);
     this.Rz = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetRotation, (uint)Header.NrFrames, true);
     this.Tx = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetTranslation, (uint)Header.NrFrames, false);
     this.Ty = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetTranslation, (uint)Header.NrFrames, false);
     this.Tz = new BCA.BCAAnimation.AnimationInfo(er, Header.OffsetTranslation, (uint)Header.NrFrames, false);
 }
예제 #2
0
        public BCA(byte[] file)
        {
            EndianBinaryReader er = new EndianBinaryReader((Stream) new MemoryStream(file), Endianness.LittleEndian);

            this.Header            = new BCA.BCAHeader(er);
            er.BaseStream.Position = (long)this.Header.OffsetAnimationSection;
            this.Animations        = new BCA.BCAAnimation[(int)this.Header.NrBones];
            for (int index = 0; index < (int)this.Header.NrBones; ++index)
            {
                this.Animations[index] = new BCA.BCAAnimation(er, this.Header);
            }
            er.Close();
        }