예제 #1
0
        public void Read(AssetReader reader)
        {
            RootX.Read(reader);
            if (IsVector3(reader.Version))
            {
                LookAtPosition.Read3(reader);
            }
            else
            {
                LookAtPosition.Read(reader);
            }
            LookAtWeight.Read(reader);
            m_goalArray = reader.ReadAssetArray <HumanGoal>();
            LeftHandPose.Read(reader);
            RightHandPose.Read(reader);
            m_doFArray = reader.ReadSingleArray();

            if (IsReadTArray(reader.Version))
            {
                if (IsVector3(reader.Version))
                {
                    m_TDoFArray = reader.ReadVector3Array();
                }
                else
                {
                    m_TDoFArray = reader.ReadAssetArray <Vector4f>();
                }
            }
        }
예제 #2
0
 public void Read(AssetStream stream)
 {
     RootX.Read(stream);
     Skeleton.Read(stream);
     SkeletonPose.Read(stream);
     LeftHand.Read(stream);
     RightHand.Read(stream);
     if (IsReadHandles(stream.Version))
     {
         m_handles       = stream.ReadArray <Handle>();
         m_colliderArray = stream.ReadArray <Collider>();
     }
     m_humanBoneIndex = stream.ReadInt32Array();
     m_humanBoneMass  = stream.ReadSingleArray();
     if (IsReadColliderIndex(stream.Version))
     {
         m_colliderIndex = stream.ReadInt32Array();
     }
     Scale         = stream.ReadSingle();
     ArmTwist      = stream.ReadSingle();
     ForeArmTwist  = stream.ReadSingle();
     UpperLegTwist = stream.ReadSingle();
     LegTwist      = stream.ReadSingle();
     ArmStretch    = stream.ReadSingle();
     LegStretch    = stream.ReadSingle();
     FeetSpacing   = stream.ReadSingle();
     HasLeftHand   = stream.ReadBoolean();
     HasRightHand  = stream.ReadBoolean();
     if (IsReadHasTDoF(stream.Version))
     {
         HasTDoF = stream.ReadBoolean();
     }
     stream.AlignStream(AlignType.Align4);
 }
예제 #3
0
        public void Read(AssetStream stream)
        {
            RootX.Read(stream);
            if (IsVector3(stream.Version))
            {
                LookAtPosition.Read3(stream);
            }
            else
            {
                LookAtPosition.Read(stream);
            }
            LookAtWeight.Read(stream);
            m_goalArray = stream.ReadArray <HumanGoal>();
            LeftHandPose.Read(stream);
            RightHandPose.Read(stream);
            m_doFArray = stream.ReadSingleArray();

            if (IsReadTArray(stream.Version))
            {
                if (IsVector3(stream.Version))
                {
                    m_TDoFArray = stream.ReadVector3Array();
                }
                else
                {
                    m_TDoFArray = stream.ReadArray <Vector4f>();
                }
            }
        }
예제 #4
0
 public void Read(EndianStream stream)
 {
     RootX.Read(stream);
     Skeleton.Read(stream);
     SkeletonPose.Read(stream);
     LeftHand.Read(stream);
     RightHand.Read(stream);
     m_handles        = stream.ReadArray(() => new Handle(m_assetsFile));
     m_colliderArray  = stream.ReadArray(() => new Collider(m_assetsFile));
     m_humanBoneIndex = stream.ReadInt32Array();
     m_humanBoneMass  = stream.ReadSingleArray();
     m_colliderIndex  = stream.ReadInt32Array();
     Scale            = stream.ReadSingle();
     ArmTwist         = stream.ReadSingle();
     ForeArmTwist     = stream.ReadSingle();
     UpperLegTwist    = stream.ReadSingle();
     LegTwist         = stream.ReadSingle();
     ArmStretch       = stream.ReadSingle();
     LegStretch       = stream.ReadSingle();
     FeetSpacing      = stream.ReadSingle();
     HasLeftHand      = stream.ReadBoolean();
     HasRightHand     = stream.ReadBoolean();
     HasTDoF          = stream.ReadBoolean();
     stream.AlignStream(AlignType.Align4);
 }
예제 #5
0
        public void Read(EndianStream stream)
        {
            RootX.Read(stream);
            if (IsVector3)
            {
                LookAtPosition3.Read(stream);
            }
            else
            {
                LookAtPosition4.Read(stream);
            }
            LookAtWeight.Read(stream);
            m_goalArray = stream.ReadArray(() => new HumanGoal(m_assetsFile));
            LeftHandPose.Read(stream);
            RightHandPose.Read(stream);
            m_doFArray = stream.ReadSingleArray();

            if (IsReadTArray)
            {
                if (IsVector3)
                {
                    m_TDoFArray3 = stream.ReadArray <Vector3f>();
                }
                else
                {
                    m_TDoFArray4 = stream.ReadArray <Vector4f>();
                }
            }
        }
예제 #6
0
파일: Human.cs 프로젝트: yaoya/UtinyRipper
        public void Read(AssetReader reader)
        {
            RootX.Read(reader);
            Skeleton.Read(reader);
            SkeletonPose.Read(reader);
            LeftHand.Read(reader);
            RightHand.Read(reader);
            if (IsReadHandles(reader.Version))
            {
                m_handles       = reader.ReadAssetArray <Handle>();
                m_colliderArray = reader.ReadAssetArray <Collider>();
            }

            int[] HumanBoneIndex = reader.ReadInt32Array();
            m_humanBoneIndex = UpdateBoneArray(HumanBoneIndex, reader.Version);
            float[] HumanBoneMass = reader.ReadSingleArray();
            m_humanBoneMass = UpdateBoneArray(HumanBoneMass, reader.Version);
            if (IsReadColliderIndex(reader.Version))
            {
                int[] ColliderIndex = reader.ReadInt32Array();
                m_colliderIndex = UpdateBoneArray(ColliderIndex, reader.Version);
            }

            Scale         = reader.ReadSingle();
            ArmTwist      = reader.ReadSingle();
            ForeArmTwist  = reader.ReadSingle();
            UpperLegTwist = reader.ReadSingle();
            LegTwist      = reader.ReadSingle();
            ArmStretch    = reader.ReadSingle();
            LegStretch    = reader.ReadSingle();
            FeetSpacing   = reader.ReadSingle();
            HasLeftHand   = reader.ReadBoolean();
            HasRightHand  = reader.ReadBoolean();
            if (IsReadHasTDoF(reader.Version))
            {
                HasTDoF = reader.ReadBoolean();
            }
            reader.AlignStream(AlignType.Align4);
        }