diff --git a/AssetStudioUtility/ModelConverter.cs b/AssetStudioUtility/ModelConverter.cs index b9a4320..ddb0c57 100644 --- a/AssetStudioUtility/ModelConverter.cs +++ b/AssetStudioUtility/ModelConverter.cs @@ -884,7 +884,7 @@ namespace AssetStudio var m_ClipBindingConstant = animationClip.m_ClipBindingConstant ?? m_Clip.ConvertValueArrayToGenericBinding(); var m_ACLClip = m_Clip.m_ACLClip; var aclCount = m_ACLClip.m_CurveCount; - if (m_ACLClip.m_CurveCount != 0 && Game.Name != "SR_CB2" && Game.Name != "SR_CB3") + if (m_ACLClip.IsSet && Game.Name != "SR_CB2" && Game.Name != "SR_CB3") { m_ACLClip.Process(out var values, out var times); for (int frameIndex = 0; frameIndex < times.Length; frameIndex++) @@ -908,7 +908,7 @@ namespace AssetStudio var index = frame.keyList[curveIndex].index; if (Game.Name != "SR_CB2" && Game.Name != "SR_CB3") index += (int)aclCount; - ReadCurveData(iAnim, m_ClipBindingConstant, (int)index, frame.time, streamedValues, 0, ref curveIndex); + ReadCurveData(iAnim, m_ClipBindingConstant, index, frame.time, streamedValues, 0, ref curveIndex); } } var m_DenseClip = m_Clip.m_DenseClip; @@ -925,7 +925,7 @@ namespace AssetStudio ReadCurveData(iAnim, m_ClipBindingConstant, (int)index, time, m_DenseClip.m_SampleArray, (int)frameOffset, ref curveIndex); } } - if (m_ACLClip.m_CurveCount != 0 && Game.Name == "SR_CB2" && Game.Name != "SR_CB3") + if (m_ACLClip.IsSet && (Game.Name == "SR_CB2" || Game.Name == "SR_CB3")) { m_ACLClip.ProcessSR(out var values, out var times); for (int frameIndex = 0; frameIndex < times.Length; frameIndex++)