- [Core] address issue with some AnimationClip.

This commit is contained in:
Razmoth
2023-09-26 00:42:26 +04:00
parent c9c0ec0d8e
commit 27a7de1fe0
5 changed files with 11 additions and 1 deletions

View File

@@ -1690,7 +1690,7 @@ namespace AssetStudio
m_MuscleClipSize = reader.ReadUInt32();
m_MuscleClip = ClipMuscleConstant.ParseGI(reader);
}
else
else if (muscleClipSize > 0)
{
m_MuscleClipSize = (uint)muscleClipSize;
m_MuscleClip = new ClipMuscleConstant(reader);

View File

@@ -322,6 +322,8 @@ namespace AssetStudioCLI
return false;
var m_AnimationClip = (AnimationClip)item.Asset;
var str = m_AnimationClip.Convert();
if (string.IsNullOrEmpty(str))
return false;
File.WriteAllText(exportFullPath, str);
return true;
}

View File

@@ -1292,6 +1292,8 @@ namespace AssetStudioGUI
private void PreviewAnimationClip(AnimationClip clip)
{
var str = clip.Convert();
if (string.IsNullOrEmpty(str))
str = "Legacy animation is not supported";
PreviewText(str.Replace("\n", "\r\n"));
}

View File

@@ -321,6 +321,8 @@ namespace AssetStudioGUI
return false;
var m_AnimationClip = (AnimationClip)item.Asset;
var str = m_AnimationClip.Convert();
if (string.IsNullOrEmpty(str))
return false;
File.WriteAllText(exportFullPath, str);
return true;
}

View File

@@ -144,6 +144,10 @@ namespace AssetStudio
}
public static string Convert(this AnimationClip clip)
{
if (clip.m_Legacy || clip.m_MuscleClip == null)
{
return string.Empty;
}
var converter = AnimationClipConverter.Process(clip);
clip.m_RotationCurves = converter.Rotations.Union(clip.m_RotationCurves).ToArray();
clip.m_EulerCurves = converter.Eulers.Union(clip.m_EulerCurves).ToArray();