Animation evaluation improvements

This commit is contained in:
dexy
2019-11-08 19:53:29 +11:00
Unverified
parent 629ee125a5
commit d60234469a
2 changed files with 10 additions and 12 deletions
+4 -8
View File
@@ -496,8 +496,7 @@ namespace CodeWalker.GameFiles
public override float EvaluateFloat(int frame)
{
if(frame<Frames?.Length) return Values[Frames[frame]];
if (Values?.Length > 0) return Values[0];
if (Frames?.Length > 0) return Values[Frames[frame % Frames.Length]];
return Offset;
}
}
@@ -526,8 +525,7 @@ namespace CodeWalker.GameFiles
public override float EvaluateFloat(int frame)
{
if (frame < Values?.Length) return Values[frame];
if (Values?.Length > 0) return Values[0];
if (Values?.Length > 0) return Values[frame%Values.Length];
return Offset;
}
}
@@ -637,8 +635,7 @@ namespace CodeWalker.GameFiles
public override float EvaluateFloat(int frame)
{
if (frame < Values?.Length) return Values[frame];
if (Values?.Length > 0) return Values[0];
if (Values?.Length > 0) return Values[frame % Values.Length];
return Offset;
}
}
@@ -690,8 +687,7 @@ namespace CodeWalker.GameFiles
public override float EvaluateFloat(int frame)
{
if (frame < Values?.Length) return Values[frame];
if (Values?.Length > 0) return Values[0];
if (Values?.Length > 0) return Values[frame % Values.Length];
return 0.0f;
}
+6 -4
View File
@@ -430,11 +430,12 @@ namespace CodeWalker.Rendering
var clipanimlist = cme.Clip as ClipAnimationList;
if (clipanimlist?.Animations != null)
{
float t = clipanimlist.GetPlaybackTime(CurrentAnimTime);
//float t = clipanimlist.GetPlaybackTime(CurrentAnimTime);
foreach (var canim in clipanimlist.Animations)
{
if (canim?.Animation == null) continue;
UpdateAnim(canim.Animation, t*canim.Rate + canim.StartTime);
//UpdateAnim(canim.Animation, t*canim.Rate + canim.StartTime);
UpdateAnim(canim.Animation, canim.GetPlaybackTime(CurrentAnimTime));
}
}
@@ -561,11 +562,12 @@ namespace CodeWalker.Rendering
var clipanimlist = cme.Clip as ClipAnimationList;
if (clipanimlist?.Animations != null)
{
float t = clipanimlist.GetPlaybackTime(CurrentAnimTime);
//float t = clipanimlist.GetPlaybackTime(CurrentAnimTime);
foreach (var canim in clipanimlist.Animations)
{
if (canim?.Animation == null) continue;
UpdateAnimUV(canim.Animation, t*canim.Rate + canim.StartTime, rgeom);
//UpdateAnimUV(canim.Animation, t * canim.Rate + canim.StartTime, rgeom);
UpdateAnimUV(canim.Animation, canim.GetPlaybackTime(CurrentAnimTime), rgeom);
}
}