コード例 #1
0
        // Token: 0x0600012F RID: 303 RVA: 0x0000EC34 File Offset: 0x0000CE34
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            int num = PmxStreamHelper.ReadElement_Int32(s, 1, true);

            byte[] array = new byte[num];
            s.Read(array, 0, array.Length);
            int  num2 = 0;
            bool flag = this.Ver <= 1f;

            if (flag)
            {
                this.VertexSize   = (int)array[num2++];
                this.BoneSize     = (int)array[num2++];
                this.MorphSize    = (int)array[num2++];
                this.MaterialSize = (int)array[num2++];
                this.BodySize     = (int)array[num2++];
            }
            else
            {
                this.StringEnc    = (PmxElementFormat.StringEncType)array[num2++];
                this.UVACount     = (int)array[num2++];
                this.VertexSize   = (int)array[num2++];
                this.TexSize      = (int)array[num2++];
                this.MaterialSize = (int)array[num2++];
                this.BoneSize     = (int)array[num2++];
                this.MorphSize    = (int)array[num2++];
                this.BodySize     = (int)array[num2++];
            }
        }
コード例 #2
0
        // Token: 0x060001AA RID: 426 RVA: 0x000101A0 File Offset: 0x0000E3A0
        public void FromStreamEx_TexTable(Stream s, PmxTextureTable tx, PmxElementFormat f)
        {
            this.Name       = PmxStreamHelper.ReadString(s, f);
            this.NameE      = PmxStreamHelper.ReadString(s, f);
            this.Diffuse    = V4_BytesConvert.Vector4ToColor(V4_BytesConvert.FromStream(s));
            this.Specular   = V4_BytesConvert.Vector4ToColor(V4_BytesConvert.FromStream(s));
            this.Power      = PmxStreamHelper.ReadElement_Float(s);
            this.Ambient    = V4_BytesConvert.Vector4ToColor(V4_BytesConvert.FromStream(s));
            this.Flags      = (PmxMaterial.MaterialFlags)s.ReadByte();
            this.EdgeColor  = V4_BytesConvert.Vector4ToColor(V4_BytesConvert.FromStream(s));
            this.EdgeSize   = PmxStreamHelper.ReadElement_Float(s);
            this.Tex        = tx.GetName(PmxStreamHelper.ReadElement_Int32(s, f.TexSize, true));
            this.Sphere     = tx.GetName(PmxStreamHelper.ReadElement_Int32(s, f.TexSize, true));
            this.SphereMode = (PmxMaterial.SphereModeType)s.ReadByte();
            bool flag = s.ReadByte() == 0;

            if (flag)
            {
                this.Toon = tx.GetName(PmxStreamHelper.ReadElement_Int32(s, f.TexSize, true));
            }
            else
            {
                int n = s.ReadByte();
                this.Toon = SystemToon.GetToonName(n);
            }
            this.Memo = PmxStreamHelper.ReadString(s, f);
            this.UpdateAttributeFromMemo();
            this.FaceCount = PmxStreamHelper.ReadElement_Int32(s, 4, true);
        }
コード例 #3
0
        public void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            byte[] array = new byte[PmxStreamHelper.ReadElement_Int32(s, 1)];
            s.Read(array, 0, array.Length);
            int num = 0;

            if (Ver <= 1f)
            {
                VertexSize   = array[num++];
                BoneSize     = array[num++];
                MorphSize    = array[num++];
                MaterialSize = array[num++];
                BodySize     = array[num++];
            }
            else
            {
                StringEnc    = (StringEncType)array[num++];
                UVACount     = array[num++];
                VertexSize   = array[num++];
                TexSize      = array[num++];
                MaterialSize = array[num++];
                BoneSize     = array[num++];
                MorphSize    = array[num++];
                BodySize     = array[num++];
            }
        }
コード例 #4
0
        public void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            Name  = PmxStreamHelper.ReadString(s, f);
            NameE = PmxStreamHelper.ReadString(s, f);
            Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
            Group = PmxStreamHelper.ReadElement_Int32(s, 1);
            ushort bits = (ushort)PmxStreamHelper.ReadElement_Int32(s, 2, signed: false);

            PassGroup.FromFlagBits(bits);
            BoxType  = (BoxKind)s.ReadByte();
            BoxSize  = V3_BytesConvert.FromStream(s);
            Position = V3_BytesConvert.FromStream(s);
            Rotation = V3_BytesConvert.FromStream(s);
            Mass     = PmxStreamHelper.ReadElement_Float(s);
            Vector4 vector = V4_BytesConvert.FromStream(s);

            PositionDamping = vector.X;
            RotationDamping = vector.Y;
            Restitution     = vector.Z;
            Friction        = vector.W;
            Mode            = (ModeType)s.ReadByte();
            if (f.WithID)
            {
                base.UID = PmxStreamHelper.ReadElement_UInt(s);
                base.CID = PmxStreamHelper.ReadElement_UInt(s);
            }
        }
コード例 #5
0
 // Token: 0x06000173 RID: 371 RVA: 0x0000F649 File Offset: 0x0000D849
 public override void FromStreamEx(Stream s, PmxElementFormat size)
 {
     this.Index    = PmxStreamHelper.ReadElement_Int32(s, size.BodySize, true);
     this.Local    = (s.ReadByte() != 0);
     this.Velocity = V3_BytesConvert.FromStream(s);
     this.Torque   = V3_BytesConvert.FromStream(s);
 }
コード例 #6
0
 public void FromStreamEx_TexTable(Stream s, PmxTextureTable tx, PmxElementFormat f = null)
 {
     Name       = PmxStreamHelper.ReadString(s, f);
     NameE      = PmxStreamHelper.ReadString(s, f);
     Diffuse    = V4_BytesConvert.FromStream(s);
     Specular   = V3_BytesConvert.FromStream(s);
     Power      = PmxStreamHelper.ReadElement_Float(s);
     Ambient    = V3_BytesConvert.FromStream(s);
     Flags      = (MaterialFlags)s.ReadByte();
     EdgeColor  = V4_BytesConvert.FromStream(s);
     EdgeSize   = PmxStreamHelper.ReadElement_Float(s);
     Tex        = tx.GetName(PmxStreamHelper.ReadElement_Int32(s, f.TexSize));
     Sphere     = tx.GetName(PmxStreamHelper.ReadElement_Int32(s, f.TexSize));
     SphereMode = (SphereModeType)s.ReadByte();
     if (s.ReadByte() == 0)
     {
         Toon = tx.GetName(PmxStreamHelper.ReadElement_Int32(s, f.TexSize));
     }
     else
     {
         int n = s.ReadByte();
         Toon = SystemToon.GetToonName(n);
     }
     Memo = PmxStreamHelper.ReadString(s, f);
     UpdateAttributeFromMemo();
     FaceCount = PmxStreamHelper.ReadElement_Int32(s);
     if (f.WithID)
     {
         base.UID = PmxStreamHelper.ReadElement_UInt(s);
         base.CID = PmxStreamHelper.ReadElement_UInt(s);
     }
 }
コード例 #7
0
        public void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            Position = V3_BytesConvert.FromStream(s);
            Normal   = V3_BytesConvert.FromStream(s);
            UV       = V2_BytesConvert.FromStream(s);
            for (int i = 0; i < f.UVACount; i++)
            {
                Vector4 vector = V4_BytesConvert.FromStream(s);
                if (0 <= i && i < UVA.Length)
                {
                    UVA[i] = vector;
                }
            }
            Deform = (DeformType)s.ReadByte();
            SDEF   = false;
            switch (Deform)
            {
            case DeformType.BDEF1:
                Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[0].Value = 1f;
                break;

            case DeformType.BDEF2:
                Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[1].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[0].Value = PmxStreamHelper.ReadElement_Float(s);
                Weight[1].Value = 1f - Weight[0].Value;
                break;

            case DeformType.BDEF4:
            case DeformType.QDEF:
                Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[1].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[2].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[3].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[0].Value = PmxStreamHelper.ReadElement_Float(s);
                Weight[1].Value = PmxStreamHelper.ReadElement_Float(s);
                Weight[2].Value = PmxStreamHelper.ReadElement_Float(s);
                Weight[3].Value = PmxStreamHelper.ReadElement_Float(s);
                break;

            case DeformType.SDEF:
                Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[1].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                Weight[0].Value = PmxStreamHelper.ReadElement_Float(s);
                Weight[1].Value = 1f - Weight[0].Value;
                C0 = V3_BytesConvert.FromStream(s);
                R0 = V3_BytesConvert.FromStream(s);
                R1 = V3_BytesConvert.FromStream(s);
                CalcSDEF_RW();
                SDEF = true;
                break;
            }
            EdgeScale = PmxStreamHelper.ReadElement_Float(s);
            if (f.WithID)
            {
                base.UID = PmxStreamHelper.ReadElement_UInt(s);
                base.CID = PmxStreamHelper.ReadElement_UInt(s);
            }
        }
コード例 #8
0
        // Token: 0x06000114 RID: 276 RVA: 0x0000E920 File Offset: 0x0000CB20
        public override void FromStreamEx(Stream s, PmxElementFormat size)
        {
            this.Index       = PmxStreamHelper.ReadElement_Int32(s, size.BoneSize, true);
            this.Translation = V3_BytesConvert.FromStream(s);
            Vector4 vector = V4_BytesConvert.FromStream(s);

            this.Rotaion = new Quaternion(vector.x, vector.y, vector.z, vector.w);
        }
コード例 #9
0
 public override void FromStreamEx(Stream s, PmxElementFormat f = null)
 {
     base.FromStreamEx(s, f);
     Index    = PmxStreamHelper.ReadElement_Int32(s, f.BodySize);
     Local    = (s.ReadByte() != 0);
     Velocity = V3_BytesConvert.FromStream(s);
     Torque   = V3_BytesConvert.FromStream(s);
 }
コード例 #10
0
        public override void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            base.FromStreamEx(s, f);
            Index       = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
            Translation = V3_BytesConvert.FromStream(s);
            Vector4 vector = V4_BytesConvert.FromStream(s);

            Rotaion = new Quaternion(vector.X, vector.Y, vector.Z, vector.W);
        }
コード例 #11
0
        // Token: 0x06000281 RID: 641 RVA: 0x00013E78 File Offset: 0x00012078
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            this.Position = V3_BytesConvert.FromStream(s);
            this.Normal   = V3_BytesConvert.FromStream(s);
            this.UV       = V2_BytesConvert.FromStream(s);
            for (int i = 0; i < f.UVACount; i++)
            {
                Vector4 vector = V4_BytesConvert.FromStream(s);
                bool    flag   = 0 <= i && i < this.UVA.Length;
                if (flag)
                {
                    this.UVA[i] = vector;
                }
            }
            this.Deform = (PmxVertex.DeformType)s.ReadByte();
            this.SDEF   = false;
            switch (this.Deform)
            {
            case PmxVertex.DeformType.BDEF1:
                this.Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[0].Value = 1f;
                break;

            case PmxVertex.DeformType.BDEF2:
                this.Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[1].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[0].Value = PmxStreamHelper.ReadElement_Float(s);
                this.Weight[1].Value = 1f - this.Weight[0].Value;
                break;

            case PmxVertex.DeformType.BDEF4:
            case PmxVertex.DeformType.QDEF:
                this.Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[1].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[2].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[3].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[0].Value = PmxStreamHelper.ReadElement_Float(s);
                this.Weight[1].Value = PmxStreamHelper.ReadElement_Float(s);
                this.Weight[2].Value = PmxStreamHelper.ReadElement_Float(s);
                this.Weight[3].Value = PmxStreamHelper.ReadElement_Float(s);
                break;

            case PmxVertex.DeformType.SDEF:
                this.Weight[0].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[1].Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.Weight[0].Value = PmxStreamHelper.ReadElement_Float(s);
                this.Weight[1].Value = 1f - this.Weight[0].Value;
                this.C0 = V3_BytesConvert.FromStream(s);
                this.R0 = V3_BytesConvert.FromStream(s);
                this.R1 = V3_BytesConvert.FromStream(s);
                this.CalcSDEF_RW();
                this.SDEF = true;
                break;
            }
            this.EdgeScale = PmxStreamHelper.ReadElement_Float(s);
        }
コード例 #12
0
 public void FromStreamEx(Stream s, PmxElementFormat f = null)
 {
     Bone    = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
     IsLimit = (s.ReadByte() != 0);
     if (IsLimit)
     {
         Low  = V3_BytesConvert.FromStream(s);
         High = V3_BytesConvert.FromStream(s);
     }
 }
コード例 #13
0
        public void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            int num = PmxStreamHelper.ReadElement_Int32(s);

            string[] array = new string[num];
            for (int i = 0; i < num; i++)
            {
                array[i] = PmxStreamHelper.ReadString(s, f);
            }
            CreateTable(array);
        }
コード例 #14
0
            // Token: 0x060003A2 RID: 930 RVA: 0x00019738 File Offset: 0x00017938
            public void FromStreamEx(Stream s, PmxElementFormat f)
            {
                this.Bone    = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.IsLimit = (s.ReadByte() != 0);
                bool isLimit = this.IsLimit;

                if (isLimit)
                {
                    this.Low  = V3_BytesConvert.FromStream(s);
                    this.High = V3_BytesConvert.FromStream(s);
                }
            }
コード例 #15
0
        // Token: 0x06000106 RID: 262 RVA: 0x0000E550 File Offset: 0x0000C750
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            this.Name     = PmxStreamHelper.ReadString(s, f);
            this.NameE    = PmxStreamHelper.ReadString(s, f);
            this.Position = V3_BytesConvert.FromStream(s);
            this.Parent   = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
            this.Level    = PmxStreamHelper.ReadElement_Int32(s, 4, true);
            this.Flags    = (PmxBone.BoneFlags)PmxStreamHelper.ReadElement_Int32(s, 2, false);
            bool flag = this.GetFlag(PmxBone.BoneFlags.ToBone);

            if (flag)
            {
                this.To_Bone = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
            }
            else
            {
                this.To_Offset = V3_BytesConvert.FromStream(s);
            }
            bool flag2 = this.GetFlag(PmxBone.BoneFlags.AppendRotation) || this.GetFlag(PmxBone.BoneFlags.AppendTranslation);

            if (flag2)
            {
                this.AppendParent = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
                this.AppendRatio  = PmxStreamHelper.ReadElement_Float(s);
            }
            bool flag3 = this.GetFlag(PmxBone.BoneFlags.FixAxis);

            if (flag3)
            {
                this.Axis = V3_BytesConvert.FromStream(s);
            }
            bool flag4 = this.GetFlag(PmxBone.BoneFlags.LocalFrame);

            if (flag4)
            {
                this.LocalX = V3_BytesConvert.FromStream(s);
                this.LocalZ = V3_BytesConvert.FromStream(s);
                this.NormalizeLocal();
            }
            bool flag5 = this.GetFlag(PmxBone.BoneFlags.ExtParent);

            if (flag5)
            {
                this.ExtKey = PmxStreamHelper.ReadElement_Int32(s, 4, true);
            }
            bool flag6 = this.GetFlag(PmxBone.BoneFlags.IK);

            if (flag6)
            {
                this.IK.FromStreamEx(s, f);
            }
        }
コード例 #16
0
 // Token: 0x060001CC RID: 460 RVA: 0x000108F0 File Offset: 0x0000EAF0
 public override void FromStreamEx(Stream s, PmxElementFormat size)
 {
     this.Index          = PmxStreamHelper.ReadElement_Int32(s, size.MaterialSize, true);
     this.Op             = (PmxMaterialMorph.OpType)s.ReadByte();
     this.Data.Diffuse   = V4_BytesConvert.FromStream(s);
     this.Data.Specular  = V4_BytesConvert.FromStream(s);
     this.Data.Ambient   = V3_BytesConvert.FromStream(s);
     this.Data.EdgeColor = V4_BytesConvert.FromStream(s);
     this.Data.EdgeSize  = PmxStreamHelper.ReadElement_Float(s);
     this.Data.Tex       = V4_BytesConvert.FromStream(s);
     this.Data.Sphere    = V4_BytesConvert.FromStream(s);
     this.Data.Toon      = V4_BytesConvert.FromStream(s);
 }
コード例 #17
0
 public override void FromStreamEx(Stream s, PmxElementFormat f = null)
 {
     base.FromStreamEx(s, f);
     Index          = PmxStreamHelper.ReadElement_Int32(s, f.MaterialSize);
     Op             = (OpType)s.ReadByte();
     Data.Diffuse   = V4_BytesConvert.FromStream(s);
     Data.Specular  = V4_BytesConvert.FromStream(s);
     Data.Ambient   = V3_BytesConvert.FromStream(s);
     Data.EdgeColor = V4_BytesConvert.FromStream(s);
     Data.EdgeSize  = PmxStreamHelper.ReadElement_Float(s);
     Data.Tex       = V4_BytesConvert.FromStream(s);
     Data.Sphere    = V4_BytesConvert.FromStream(s);
     Data.Toon      = V4_BytesConvert.FromStream(s);
 }
コード例 #18
0
 public void FromStreamEx(Stream s, PmxElementFormat f = null)
 {
     Name     = PmxStreamHelper.ReadString(s, f);
     NameE    = PmxStreamHelper.ReadString(s, f);
     Position = V3_BytesConvert.FromStream(s);
     Parent   = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
     Level    = PmxStreamHelper.ReadElement_Int32(s);
     Flags    = (BoneFlags)PmxStreamHelper.ReadElement_Int32(s, 2, signed: false);
     if (GetFlag(BoneFlags.ToBone))
     {
         To_Bone = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
     }
     else
     {
         To_Offset = V3_BytesConvert.FromStream(s);
     }
     if (GetFlag(BoneFlags.AddRotation) || GetFlag(BoneFlags.AddTranslation))
     {
         AddParent = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
         AddRatio  = PmxStreamHelper.ReadElement_Float(s);
     }
     if (GetFlag(BoneFlags.FixAxis))
     {
         Axis = V3_BytesConvert.FromStream(s);
     }
     if (GetFlag(BoneFlags.LocalFrame))
     {
         LocalX = V3_BytesConvert.FromStream(s);
         LocalZ = V3_BytesConvert.FromStream(s);
         if (!f.WithID)
         {
             NormalizeLocal();
         }
     }
     if (GetFlag(BoneFlags.ExtParent))
     {
         ExtKey = PmxStreamHelper.ReadElement_Int32(s);
     }
     if (GetFlag(BoneFlags.IK))
     {
         IK.FromStreamEx(s, f);
     }
     if (f.WithID)
     {
         base.UID = PmxStreamHelper.ReadElement_UInt(s);
         base.CID = PmxStreamHelper.ReadElement_UInt(s);
     }
 }
コード例 #19
0
 // Token: 0x06000187 RID: 391 RVA: 0x0000F9D4 File Offset: 0x0000DBD4
 public void FromStreamEx(Stream s, PmxElementFormat f)
 {
     this.Name            = PmxStreamHelper.ReadString(s, f);
     this.NameE           = PmxStreamHelper.ReadString(s, f);
     this.Kind            = (PmxJoint.JointKind)s.ReadByte();
     this.BodyA           = PmxStreamHelper.ReadElement_Int32(s, f.BodySize, true);
     this.BodyB           = PmxStreamHelper.ReadElement_Int32(s, f.BodySize, true);
     this.Position        = V3_BytesConvert.FromStream(s);
     this.Rotation        = V3_BytesConvert.FromStream(s);
     this.Limit_MoveLow   = V3_BytesConvert.FromStream(s);
     this.Limit_MoveHigh  = V3_BytesConvert.FromStream(s);
     this.Limit_AngleLow  = V3_BytesConvert.FromStream(s);
     this.Limit_AngleHigh = V3_BytesConvert.FromStream(s);
     this.SpConst_Move    = V3_BytesConvert.FromStream(s);
     this.SpConst_Rotate  = V3_BytesConvert.FromStream(s);
 }
コード例 #20
0
 // Token: 0x060003B6 RID: 950 RVA: 0x00019D88 File Offset: 0x00017F88
 public void FromStreamEx(Stream s, PmxElementFormat f)
 {
     this.ElementType = (PmxNode.ElementType)s.ReadByte();
     PmxNode.ElementType elementType = this.ElementType;
     if (elementType != PmxNode.ElementType.Bone)
     {
         if (elementType == PmxNode.ElementType.Morph)
         {
             this.Index = PmxStreamHelper.ReadElement_Int32(s, f.MorphSize, true);
         }
     }
     else
     {
         this.Index = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
     }
 }
コード例 #21
0
        // Token: 0x06000162 RID: 354 RVA: 0x0000F3B4 File Offset: 0x0000D5B4
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            this.Target    = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
            this.LoopCount = PmxStreamHelper.ReadElement_Int32(s, 4, true);
            this.Angle     = PmxStreamHelper.ReadElement_Float(s);
            int num = PmxStreamHelper.ReadElement_Int32(s, 4, true);

            this.LinkList.Clear();
            this.LinkList.Capacity = num;
            for (int i = 0; i < num; i++)
            {
                PmxIK.IKLink iklink = new PmxIK.IKLink();
                iklink.FromStreamEx(s, f);
                this.LinkList.Add(iklink);
            }
        }
コード例 #22
0
        // Token: 0x06000204 RID: 516 RVA: 0x000113DC File Offset: 0x0000F5DC
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            this.Name       = PmxStreamHelper.ReadString(s, f);
            this.NameE      = PmxStreamHelper.ReadString(s, f);
            this.SystemNode = (s.ReadByte() != 0);
            int num = PmxStreamHelper.ReadElement_Int32(s, 4, true);

            this.ElementList.Clear();
            this.ElementList.Capacity = num;
            for (int i = 0; i < num; i++)
            {
                PmxNode.NodeElement nodeElement = new PmxNode.NodeElement();
                nodeElement.FromStreamEx(s, f);
                this.ElementList.Add(nodeElement);
            }
        }
コード例 #23
0
        public void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            Target    = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
            LoopCount = PmxStreamHelper.ReadElement_Int32(s);
            Angle     = PmxStreamHelper.ReadElement_Float(s);
            int num = PmxStreamHelper.ReadElement_Int32(s);

            LinkList.Clear();
            LinkList.Capacity = num;
            for (int i = 0; i < num; i++)
            {
                IKLink iKLink = new IKLink();
                iKLink.FromStreamEx(s, f);
                LinkList.Add(iKLink);
            }
        }
コード例 #24
0
 public void FromStreamEx(Stream s, PmxElementFormat f = null)
 {
     Name       = PmxStreamHelper.ReadString(s, f);
     NameE      = PmxStreamHelper.ReadString(s, f);
     Diffuse    = V4_BytesConvert.FromStream(s);
     Specular   = V3_BytesConvert.FromStream(s);
     Power      = PmxStreamHelper.ReadElement_Float(s);
     Ambient    = V3_BytesConvert.FromStream(s);
     Flags      = (MaterialFlags)s.ReadByte();
     EdgeColor  = V4_BytesConvert.FromStream(s);
     EdgeSize   = PmxStreamHelper.ReadElement_Float(s);
     Tex        = PmxStreamHelper.ReadString(s, f);
     Sphere     = PmxStreamHelper.ReadString(s, f);
     SphereMode = (SphereModeType)s.ReadByte();
     Toon       = PmxStreamHelper.ReadString(s, f);
     Memo       = PmxStreamHelper.ReadString(s, f);
     FaceCount  = PmxStreamHelper.ReadElement_Int32(s);
 }
コード例 #25
0
 // Token: 0x060001A8 RID: 424 RVA: 0x0000FFCC File Offset: 0x0000E1CC
 public void FromStreamEx(Stream s, PmxElementFormat f)
 {
     this.Name       = PmxStreamHelper.ReadString(s, f);
     this.NameE      = PmxStreamHelper.ReadString(s, f);
     this.Diffuse    = V4_BytesConvert.Vector4ToColor(V4_BytesConvert.FromStream(s));
     this.Specular   = V3_BytesConvert.Vector3ToColor(V3_BytesConvert.FromStream(s));
     this.Power      = PmxStreamHelper.ReadElement_Float(s);
     this.Ambient    = V3_BytesConvert.Vector3ToColor(V3_BytesConvert.FromStream(s));
     this.Flags      = (PmxMaterial.MaterialFlags)s.ReadByte();
     this.EdgeColor  = V4_BytesConvert.Vector4ToColor(V4_BytesConvert.FromStream(s));
     this.EdgeSize   = PmxStreamHelper.ReadElement_Float(s);
     this.Tex        = PmxStreamHelper.ReadString(s, f);
     this.Sphere     = PmxStreamHelper.ReadString(s, f);
     this.SphereMode = (PmxMaterial.SphereModeType)s.ReadByte();
     this.Toon       = PmxStreamHelper.ReadString(s, f);
     this.Memo       = PmxStreamHelper.ReadString(s, f);
     this.FaceCount  = PmxStreamHelper.ReadElement_Int32(s, 4, true);
 }
コード例 #26
0
            public void FromStreamEx(Stream s, PmxElementFormat f = null)
            {
                ElementType = (ElementType)s.ReadByte();
                switch (ElementType)
                {
                case ElementType.Bone:
                    Index = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize);
                    break;

                case ElementType.Morph:
                    Index = PmxStreamHelper.ReadElement_Int32(s, f.MorphSize);
                    break;
                }
                if (f.WithID)
                {
                    base.UID = PmxStreamHelper.ReadElement_UInt(s);
                    base.CID = PmxStreamHelper.ReadElement_UInt(s);
                }
            }
コード例 #27
0
        public void FromStreamEx(Stream s, PmxElementFormat f = null)
        {
            Name       = PmxStreamHelper.ReadString(s, f);
            NameE      = PmxStreamHelper.ReadString(s, f);
            SystemNode = (s.ReadByte() != 0);
            int num = PmxStreamHelper.ReadElement_Int32(s);

            ElementList.Clear();
            ElementList.Capacity = num;
            for (int i = 0; i < num; i++)
            {
                NodeElement nodeElement = new NodeElement();
                nodeElement.FromStreamEx(s, f);
                ElementList.Add(nodeElement);
            }
            if (f.WithID)
            {
                base.UID = PmxStreamHelper.ReadElement_UInt(s);
                base.CID = PmxStreamHelper.ReadElement_UInt(s);
            }
        }
コード例 #28
0
 public void FromStreamEx(Stream s, PmxElementFormat f = null)
 {
     Name            = PmxStreamHelper.ReadString(s, f);
     NameE           = PmxStreamHelper.ReadString(s, f);
     Kind            = (JointKind)s.ReadByte();
     BodyA           = PmxStreamHelper.ReadElement_Int32(s, f.BodySize);
     BodyB           = PmxStreamHelper.ReadElement_Int32(s, f.BodySize);
     Position        = V3_BytesConvert.FromStream(s);
     Rotation        = V3_BytesConvert.FromStream(s);
     Limit_MoveLow   = V3_BytesConvert.FromStream(s);
     Limit_MoveHigh  = V3_BytesConvert.FromStream(s);
     Limit_AngleLow  = V3_BytesConvert.FromStream(s);
     Limit_AngleHigh = V3_BytesConvert.FromStream(s);
     SpConst_Move    = V3_BytesConvert.FromStream(s);
     SpConst_Rotate  = V3_BytesConvert.FromStream(s);
     if (f.WithID)
     {
         base.UID = PmxStreamHelper.ReadElement_UInt(s);
         base.CID = PmxStreamHelper.ReadElement_UInt(s);
     }
 }
コード例 #29
0
        // Token: 0x060000DD RID: 221 RVA: 0x0000DD78 File Offset: 0x0000BF78
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            this.Name  = PmxStreamHelper.ReadString(s, f);
            this.NameE = PmxStreamHelper.ReadString(s, f);
            this.Bone  = PmxStreamHelper.ReadElement_Int32(s, f.BoneSize, true);
            this.Group = PmxStreamHelper.ReadElement_Int32(s, 1, true);
            ushort bits = (ushort)PmxStreamHelper.ReadElement_Int32(s, 2, false);

            this.PassGroup.FromFlagBits(bits);
            this.BoxType  = (PmxBody.BoxKind)s.ReadByte();
            this.BoxSize  = V3_BytesConvert.FromStream(s);
            this.Position = V3_BytesConvert.FromStream(s);
            this.Rotation = V3_BytesConvert.FromStream(s);
            this.Mass     = PmxStreamHelper.ReadElement_Float(s);
            Vector4 vector = V4_BytesConvert.FromStream(s);

            this.PositionDamping = vector.x;
            this.RotationDamping = vector.y;
            this.Restitution     = vector.z;
            this.Friction        = vector.w;
            this.Mode            = (PmxBody.ModeType)s.ReadByte();
        }
コード例 #30
0
        // Token: 0x060001F6 RID: 502 RVA: 0x00010F20 File Offset: 0x0000F120
        public void FromStreamEx(Stream s, PmxElementFormat f)
        {
            this.Name  = PmxStreamHelper.ReadString(s, f);
            this.NameE = PmxStreamHelper.ReadString(s, f);
            this.Panel = PmxStreamHelper.ReadElement_Int32(s, 1, true);
            this.Kind  = (PmxMorph.OffsetKind)PmxStreamHelper.ReadElement_Int32(s, 1, true);
            int num = PmxStreamHelper.ReadElement_Int32(s, 4, true);

            this.OffsetList.Clear();
            this.OffsetList.Capacity = num;
            for (int i = 0; i < num; i++)
            {
                switch (this.Kind)
                {
                case PmxMorph.OffsetKind.Group:
                case PmxMorph.OffsetKind.Flip:
                {
                    PmxGroupMorph pmxGroupMorph = new PmxGroupMorph();
                    pmxGroupMorph.FromStreamEx(s, f);
                    this.OffsetList.Add(pmxGroupMorph);
                    break;
                }

                case PmxMorph.OffsetKind.Vertex:
                {
                    PmxVertexMorph pmxVertexMorph = new PmxVertexMorph();
                    pmxVertexMorph.FromStreamEx(s, f);
                    this.OffsetList.Add(pmxVertexMorph);
                    break;
                }

                case PmxMorph.OffsetKind.Bone:
                {
                    PmxBoneMorph pmxBoneMorph = new PmxBoneMorph();
                    pmxBoneMorph.FromStreamEx(s, f);
                    this.OffsetList.Add(pmxBoneMorph);
                    break;
                }

                case PmxMorph.OffsetKind.UV:
                case PmxMorph.OffsetKind.UVA1:
                case PmxMorph.OffsetKind.UVA2:
                case PmxMorph.OffsetKind.UVA3:
                case PmxMorph.OffsetKind.UVA4:
                {
                    PmxUVMorph pmxUVMorph = new PmxUVMorph();
                    pmxUVMorph.FromStreamEx(s, f);
                    this.OffsetList.Add(pmxUVMorph);
                    break;
                }

                case PmxMorph.OffsetKind.Material:
                {
                    PmxMaterialMorph pmxMaterialMorph = new PmxMaterialMorph();
                    pmxMaterialMorph.FromStreamEx(s, f);
                    this.OffsetList.Add(pmxMaterialMorph);
                    break;
                }

                case PmxMorph.OffsetKind.Impulse:
                {
                    PmxImpulseMorph pmxImpulseMorph = new PmxImpulseMorph();
                    pmxImpulseMorph.FromStreamEx(s, f);
                    this.OffsetList.Add(pmxImpulseMorph);
                    break;
                }
                }
            }
        }