private static void RemoveTangents(IEnumerable<Dictionary<string, AnimationCurve>> curves)
{
//TODO: Remove duplicate keys?
foreach (var animationCurve in curves)
{
foreach (var curve in animationCurve.Values)
{
Keyframe last = curve.keys[0];
for (int i = 1; i < curve.keys.Length; i++)
{
Keyframe keyframe = curve.keys[i];
var diff = keyframe.value - last.value;
var time = keyframe.time - last.time;
last.outTangent = diff/time;
keyframe.inTangent = diff/time;
curve.MoveKey(i - 1, last);
curve.MoveKey(i, keyframe);
last = keyframe;
}
}
}
}