@@ -1027,10 +1027,12 @@ public sealed class AnimationClip : NamedObject
1027
1027
public ClipMuscleConstant m_MuscleClip ;
1028
1028
public AnimationClipBindingConstant m_ClipBindingConstant ;
1029
1029
public AnimationEvent [ ] m_Events ;
1030
+ public byte [ ] m_AnimData ;
1031
+ public StreamingInfo m_StreamingInfo ;
1030
1032
1031
1033
public AnimationClip ( ) { }
1032
1034
1033
- public AnimationClip ( ObjectReader reader , byte [ ] type , JsonSerializerOptions jsonOptions ) : base ( reader )
1035
+ public AnimationClip ( ObjectReader reader , byte [ ] type , JsonSerializerOptions jsonOptions , ObjectInfo objInfo ) : base ( reader )
1034
1036
{
1035
1037
var parsedAnimClip = JsonSerializer . Deserialize < AnimationClip > ( type , jsonOptions ) ;
1036
1038
m_AnimationType = parsedAnimClip . m_AnimationType ;
@@ -1051,6 +1053,22 @@ public AnimationClip(ObjectReader reader, byte[] type, JsonSerializerOptions jso
1051
1053
m_MuscleClip = parsedAnimClip . m_MuscleClip ;
1052
1054
m_ClipBindingConstant = parsedAnimClip . m_ClipBindingConstant ;
1053
1055
m_Events = parsedAnimClip . m_Events ;
1056
+ if ( ! reader . version . IsTuanjie )
1057
+ return ;
1058
+ m_AnimData = parsedAnimClip . m_AnimData ;
1059
+ m_StreamingInfo = parsedAnimClip . m_StreamingInfo ;
1060
+ if ( ! ( m_AnimData ? . Length > 0 ) )
1061
+ return ;
1062
+ m_MuscleClipSize = ( uint ) m_AnimData . Length ;
1063
+ using ( var muscleStream = new MemoryStream ( m_AnimData ) )
1064
+ {
1065
+ using ( var muscleReader = new EndianBinaryReader ( muscleStream , EndianType . LittleEndian ) )
1066
+ {
1067
+ _ = muscleReader . ReadUInt32 ( ) ;
1068
+ var objReader = new ObjectReader ( muscleReader , assetsFile , objInfo ) ;
1069
+ m_MuscleClip = new ClipMuscleConstant ( objReader ) ;
1070
+ }
1071
+ }
1054
1072
}
1055
1073
1056
1074
public AnimationClip ( ObjectReader reader ) : base ( reader )
@@ -1094,28 +1112,31 @@ public AnimationClip(ObjectReader reader) : base(reader)
1094
1112
}
1095
1113
}
1096
1114
1097
- if ( version >= ( 5 , 3 ) ) //5.3 and up
1115
+ if ( ! version . IsTuanjie )
1098
1116
{
1099
- int numEulerCurves = reader . ReadInt32 ( ) ;
1100
- m_EulerCurves = new Vector3Curve [ numEulerCurves ] ;
1101
- for ( int i = 0 ; i < numEulerCurves ; i ++ )
1117
+ if ( version >= ( 5 , 3 ) ) //5.3 and up
1102
1118
{
1103
- m_EulerCurves [ i ] = new Vector3Curve ( reader ) ;
1119
+ int numEulerCurves = reader . ReadInt32 ( ) ;
1120
+ m_EulerCurves = new Vector3Curve [ numEulerCurves ] ;
1121
+ for ( int i = 0 ; i < numEulerCurves ; i ++ )
1122
+ {
1123
+ m_EulerCurves [ i ] = new Vector3Curve ( reader ) ;
1124
+ }
1104
1125
}
1105
- }
1106
1126
1107
- int numPCurves = reader . ReadInt32 ( ) ;
1108
- m_PositionCurves = new Vector3Curve [ numPCurves ] ;
1109
- for ( int i = 0 ; i < numPCurves ; i ++ )
1110
- {
1111
- m_PositionCurves [ i ] = new Vector3Curve ( reader ) ;
1112
- }
1127
+ int numPCurves = reader . ReadInt32 ( ) ;
1128
+ m_PositionCurves = new Vector3Curve [ numPCurves ] ;
1129
+ for ( int i = 0 ; i < numPCurves ; i ++ )
1130
+ {
1131
+ m_PositionCurves [ i ] = new Vector3Curve ( reader ) ;
1132
+ }
1113
1133
1114
- int numSCurves = reader . ReadInt32 ( ) ;
1115
- m_ScaleCurves = new Vector3Curve [ numSCurves ] ;
1116
- for ( int i = 0 ; i < numSCurves ; i ++ )
1117
- {
1118
- m_ScaleCurves [ i ] = new Vector3Curve ( reader ) ;
1134
+ int numSCurves = reader . ReadInt32 ( ) ;
1135
+ m_ScaleCurves = new Vector3Curve [ numSCurves ] ;
1136
+ for ( int i = 0 ; i < numSCurves ; i ++ )
1137
+ {
1138
+ m_ScaleCurves [ i ] = new Vector3Curve ( reader ) ;
1139
+ }
1119
1140
}
1120
1141
1121
1142
int numFCurves = reader . ReadInt32 ( ) ;
@@ -1147,7 +1168,18 @@ public AnimationClip(ObjectReader reader) : base(reader)
1147
1168
if ( version >= 4 ) //4.0 and up
1148
1169
{
1149
1170
m_MuscleClipSize = reader . ReadUInt32 ( ) ;
1150
- m_MuscleClip = new ClipMuscleConstant ( reader ) ;
1171
+ if ( m_MuscleClipSize > 0 )
1172
+ {
1173
+ if ( version . IsTuanjie )
1174
+ {
1175
+ _ = reader . ReadUInt32 ( ) ;
1176
+ }
1177
+ m_MuscleClip = new ClipMuscleConstant ( reader ) ; //m_AnimData (Tuanjie)
1178
+ if ( version . IsTuanjie )
1179
+ {
1180
+ m_StreamingInfo = new StreamingInfo ( reader ) ;
1181
+ }
1182
+ }
1151
1183
}
1152
1184
if ( version >= ( 4 , 3 ) ) //4.3 and up
1153
1185
{
0 commit comments