diff --git a/CreatureControl/Editor/Scripts/CreatureAnimator_Editor.cs b/CreatureControl/Editor/Scripts/CreatureAnimator_Editor.cs index b7177d8..adaff4e 100644 --- a/CreatureControl/Editor/Scripts/CreatureAnimator_Editor.cs +++ b/CreatureControl/Editor/Scripts/CreatureAnimator_Editor.cs @@ -20,21 +20,6 @@ namespace CreatureControl { ComputeRootVelocities(animator); - // showRootVelocities = EditorGUILayout.Foldout(showRootVelocities, "Root Velocities", true); - // if (showRootVelocities) { - // EditorGUI.indentLevel++; - // foreach (CreatureAnimator.RootMotion rm in animator.rootVelocities) { - - // //foreach (KeyValuePair kvp in animator.rootVelocities) { - // EditorGUILayout.LabelField(rm.animationClipName); - // EditorGUI.indentLevel++; - // EditorGUILayout.Vector3Field("Linear Velocity", rm.linearVelocity); - // EditorGUILayout.Vector3Field("Angular Velocity", rm.angularVelocity); - // EditorGUI.indentLevel--; - // } - // EditorGUI.indentLevel--; - // } - EditorUtility.SetDirty(animator); serializedObject.ApplyModifiedProperties(); } @@ -56,6 +41,7 @@ namespace CreatureControl { } clipIx++; } + animator.CalculateRootMotionScale(); } } diff --git a/CreatureControl/Runtime/Scripts/CreatureAnimator.cs b/CreatureControl/Runtime/Scripts/CreatureAnimator.cs index 6085e73..19037d6 100644 --- a/CreatureControl/Runtime/Scripts/CreatureAnimator.cs +++ b/CreatureControl/Runtime/Scripts/CreatureAnimator.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEditor.Animations; +using LinearAlgebra; namespace CreatureControl { @@ -28,14 +29,46 @@ namespace CreatureControl { } //public Dictionary rootVelocities = new(); public List rootVelocities = new(); - public RootMotion GetRootMotion(string name) { + public RootMotion GetRootMotion(string name) { return this.rootVelocities.Find(rm => rm.clipName == name); } public Dictionary animationDirections = new(); + public float rootMotionScaleForward = 1; + public float rootMotionScaleRight = 1; + public float rootMotionScaleRotate = 1; + public void CalculateRootMotionScale() { + this.rootMotionScaleForward = 0; + this.rootMotionScaleRight = 0; + this.rootMotionScaleRotate = 0; + // We may want to check for consistency: + // rm scale for an axis should be the same for all animations + foreach (RootMotion rootVelocity in this.rootVelocities) { + if (IsDirectionCloseTo(Vector3.forward, rootVelocity.linearVelocity)) { + if (rootVelocity.linearVelocity.z > 0) + this.rootMotionScaleForward = rootVelocity.linearVelocity.z; + } + else if (IsDirectionCloseTo(Vector3.right, rootVelocity.linearVelocity)) { + if (rootVelocity.linearVelocity.x > 0) + this.rootMotionScaleRight = rootVelocity.linearVelocity.x; + } + else if (IsDirectionCloseTo(Vector3.up, rootVelocity.angularVelocity)) { + if (rootVelocity.angularVelocity.y > 0) + this.rootMotionScaleRotate = rootVelocity.angularVelocity.y; + } + } + } - protected virtual void Awake() { + private bool IsDirectionCloseTo(Vector3 direction, Vector3 vector, float threshold = 0.9f) { + if (vector.sqrMagnitude == 0) + return false; + // Normalize the target vector to ensure comparisons are based on direction + Vector3 normalizedTarget = vector.normalized; + return Vector3.Dot(normalizedTarget, direction) > threshold; + } + + protected virtual void Start() { this.creature = GetComponent(); this.animator = creature.animator; // GetComponent(); @@ -44,13 +77,9 @@ namespace CreatureControl { protected virtual void Update() { if (rootMotionMode == RootMotionMode.Inverse) { - Vector3 speed = new(0, 0, 0.024f); - this.transform.localPosition += speed * Time.deltaTime; //0.0048f * Time.deltaTime * this.transform.forward; InverseRootMotionUpdate(); } else { - this.animator.SetFloat("Forward", 1f); - // Ensure that the pose of the model matches the target rig this.creature.targetRig.transform.GetPositionAndRotation(out Vector3 targetRigPosition, out Quaternion targetRigOrientation); this.creature.transform.SetPositionAndRotation(targetRigPosition, targetRigOrientation); this.creature.targetRig.transform.SetPositionAndRotation(targetRigPosition, targetRigOrientation); @@ -58,19 +87,26 @@ namespace CreatureControl { } private Vector3 lastPosition; + private Quaternion lastOrientation; protected void InverseRootMotionUpdate() { if (lastPosition.sqrMagnitude > 0) { Vector3 translation = this.transform.position - lastPosition; Vector3 worldVelocity = translation / Time.deltaTime; Vector3 localVelocity = transform.InverseTransformDirection(worldVelocity); - RootMotion rootMotion = this.GetRootMotion("AntWalkForward"); - Vector3 animationVelocity = rootMotion.linearVelocity; // rootVelocities["AntWalkForward"].linearVelocity; - - float fwdAnimationSpeed = localVelocity.z / animationVelocity.z; + float fwdAnimationSpeed = localVelocity.z / rootMotionScaleForward; this.animator.SetFloat("Forward", fwdAnimationSpeed); + float rightAnimationSpeed = localVelocity.x / rootMotionScaleRight; + this.animator.SetFloat("Right", rightAnimationSpeed); + + Quaternion rotation = this.transform.rotation * Quaternion.Inverse(lastOrientation); + float rotationAngleY = Angles.Normalize(rotation.eulerAngles.y); + float rotationSpeed = rotationAngleY / Time.deltaTime; + float rotAnimationSpeed = rotationSpeed / rootMotionScaleRotate; + this.animator.SetFloat("Rotation", rotAnimationSpeed); } lastPosition = this.transform.position; + lastOrientation = this.transform.rotation; } void RetrieveBlendTreeAnimations(Animator animator, string parameterName, float targetValue) { diff --git a/Samples/Animation/AntAnimator3.controller b/Samples/Animation/AntAnimator3.controller index 6ea2b31..3548c46 100644 --- a/Samples/Animation/AntAnimator3.controller +++ b/Samples/Animation/AntAnimator3.controller @@ -32,7 +32,7 @@ BlendTree: m_CycleOffset: 0 m_DirectBlendParameter: Forward m_Mirror: 0 - m_BlendParameter: Rotate + m_BlendParameter: Rotation m_BlendParameterY: Forward m_MinThreshold: -1 m_MaxThreshold: 1 @@ -87,7 +87,7 @@ BlendTree: m_CycleOffset: 0 m_DirectBlendParameter: Forward m_Mirror: 0 - m_BlendParameter: Strafe + m_BlendParameter: Right m_BlendParameterY: Forward m_MinThreshold: 0 m_MaxThreshold: 1 @@ -124,13 +124,13 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} - - m_Name: Rotate + - m_Name: Rotation m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} - - m_Name: Strafe + - m_Name: Right m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 diff --git a/Samples/Animation/AntIdle.anim b/Samples/Animation/AntIdle.anim index 51d876e..1afe677 100644 --- a/Samples/Animation/AntIdle.anim +++ b/Samples/Animation/AntIdle.anim @@ -28,7 +28,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -53,7 +53,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -78,7 +78,7 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -93,7 +93,7 @@ AnimationClip: m_ScaleCurves: [] m_FloatCurves: [] m_PPtrCurves: [] - m_SampleRate: 24 + m_SampleRate: 30 m_WrapMode: 0 m_Bounds: m_Center: {x: 0, y: 0, z: 0} @@ -133,7 +133,7 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 1.6666666 + m_StopTime: 0.26666668 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -163,7 +163,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -193,7 +193,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -223,7 +223,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -253,7 +253,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -283,7 +283,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -313,7 +313,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -343,7 +343,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -373,7 +373,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -403,7 +403,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 1.6666666 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 diff --git a/Samples/Animation/AntRotateLeft.anim b/Samples/Animation/AntRotateLeft.anim index b3475f5..ee8b745 100644 --- a/Samples/Animation/AntRotateLeft.anim +++ b/Samples/Animation/AntRotateLeft.anim @@ -20,35 +20,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: 67.5, z: 0} - outSlope: {x: 0, y: 67.5, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.16666667 - value: {x: 0, y: 11.25, z: 0} - inSlope: {x: 0, y: -0.0000038146973, z: 0} - outSlope: {x: 0, y: -0.0000038146973, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.5 - value: {x: 0, y: -11.25, z: 0} - inSlope: {x: 0, y: -0.0000076293945, z: 0} - outSlope: {x: 0, y: -0.0000076293945, z: 0} + inSlope: {x: 0, y: 168.74998, z: 0} + outSlope: {x: 0, y: 168.74998, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.6666667 + time: 0.06666667 + value: {x: 0, y: 11.25, z: 0} + inSlope: {x: 0, y: -0.000015258789, z: 0} + outSlope: {x: 0, y: -0.000015258789, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.2 + value: {x: 0, y: -11.25, z: 0} + inSlope: {x: 0, y: -0.000022888184, z: 0} + outSlope: {x: 0, y: -0.000022888184, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.26666668 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: 67.49999, z: 0} - outSlope: {x: 0, y: 67.49999, z: 0} + inSlope: {x: 0, y: 168.74997, z: 0} + outSlope: {x: 0, y: 168.74997, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -63,35 +63,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: -67.5, z: 0} - outSlope: {x: 0, y: -67.5, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.16666667 - value: {x: 0, y: -11.25, z: 0} - inSlope: {x: 0, y: 0.0000038146973, z: 0} - outSlope: {x: 0, y: 0.0000038146973, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.5 - value: {x: 0, y: 11.25, z: 0} - inSlope: {x: 0, y: 0.0000076293945, z: 0} - outSlope: {x: 0, y: 0.0000076293945, z: 0} + inSlope: {x: 0, y: -168.74998, z: 0} + outSlope: {x: 0, y: -168.74998, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.6666667 + time: 0.06666667 + value: {x: 0, y: -11.25, z: 0} + inSlope: {x: 0, y: 0.000015258789, z: 0} + outSlope: {x: 0, y: 0.000015258789, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.2 + value: {x: 0, y: 11.25, z: 0} + inSlope: {x: 0, y: 0.000022888184, z: 0} + outSlope: {x: 0, y: 0.000022888184, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.26666668 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: -67.49999, z: 0} - outSlope: {x: 0, y: -67.49999, z: 0} + inSlope: {x: 0, y: -168.74997, z: 0} + outSlope: {x: 0, y: -168.74997, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -106,17 +106,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: -67.5, z: 0} - outSlope: {x: 0, y: -67.5, z: 0} + inSlope: {x: 0, y: -168.74998, z: 0} + outSlope: {x: 0, y: -168.74998, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: {x: 0, y: -45, z: 0} - inSlope: {x: 0, y: -67.5, z: 0} - outSlope: {x: 0, y: -67.5, z: 0} + inSlope: {x: 0, y: -168.74998, z: 0} + outSlope: {x: 0, y: -168.74998, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -139,16 +139,16 @@ AnimationClip: inWeight: {x: 0, y: 0.33333334, z: 0.33333334} outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.16666667 + time: 0.06666667 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: -0, z: 0} - outSlope: {x: 0, y: 0.012, z: 0} + outSlope: {x: 0, y: 0.03, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0, y: 0.33333334, z: 0.33333334} outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.13333334 value: {x: 0, y: 0.002, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -157,9 +157,9 @@ AnimationClip: inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.5 + time: 0.2 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: -0.012000001, z: 0} + inSlope: {x: 0, y: -0.030000003, z: 0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 weightedMode: 0 @@ -182,25 +182,25 @@ AnimationClip: inWeight: {x: 0, y: 0.33333334, z: 0.33333334} outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.16666667 + time: 0.06666667 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: -0.012, z: 0} + inSlope: {x: 0, y: -0.03, z: 0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0, y: 0.33333334, z: 0.33333334} outWeight: {x: 0, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.5 + time: 0.2 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: -0, z: 0} - outSlope: {x: 0, y: 0.011999999, z: 0} + outSlope: {x: 0, y: 0.029999996, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: {x: 0, y: 0.002, z: 0} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} @@ -215,7 +215,7 @@ AnimationClip: m_ScaleCurves: [] m_FloatCurves: [] m_PPtrCurves: [] - m_SampleRate: 60 + m_SampleRate: 30 m_WrapMode: 0 m_Bounds: m_Center: {x: 0, y: 0, z: 0} @@ -273,13 +273,13 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.6666667 + m_StopTime: 0.26666668 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 m_LoopTime: 1 - m_LoopBlend: 0 + m_LoopBlend: 1 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 m_LoopBlendPositionXZ: 0 @@ -296,56 +296,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: localEulerAnglesRaw.x - path: Body/LeftFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 67.5 - outSlope: 67.5 + inSlope: 168.74998 + outSlope: 168.74998 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.06666667 value: 11.25 - inSlope: -0.0000038146973 - outSlope: -0.0000038146973 + inSlope: -0.000015258789 + outSlope: -0.000015258789 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.5 + time: 0.2 value: -11.25 - inSlope: -0.0000076293945 - outSlope: -0.0000076293945 + inSlope: -0.000022888184 + outSlope: -0.000022888184 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: 0 - inSlope: 67.49999 - outSlope: 67.49999 + inSlope: 168.74997 + outSlope: 168.74997 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -365,77 +344,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: localEulerAnglesRaw.z - path: Body/LeftFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: localEulerAnglesRaw.x - path: Body/RightFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: -67.5 - outSlope: -67.5 + inSlope: -168.74998 + outSlope: -168.74998 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.06666667 value: -11.25 - inSlope: 0.0000038146973 - outSlope: 0.0000038146973 + inSlope: 0.000015258789 + outSlope: 0.000015258789 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.5 + time: 0.2 value: 11.25 - inSlope: 0.0000076293945 - outSlope: 0.0000076293945 + inSlope: 0.000022888184 + outSlope: 0.000022888184 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: 0 - inSlope: -67.49999 - outSlope: -67.49999 + inSlope: -168.74997 + outSlope: -168.74997 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -448,27 +385,6 @@ AnimationClip: classID: 4 script: {fileID: 0} flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: localEulerAnglesRaw.z - path: Body/RightFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - serializedVersion: 2 curve: serializedVersion: 2 @@ -504,16 +420,16 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.06666667 value: 0 inSlope: -0 - outSlope: 0.012 + outSlope: 0.03 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.13333334 value: 0.002 inSlope: 0 outSlope: 0 @@ -522,9 +438,9 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.5 + time: 0.2 value: 0 - inSlope: -0.012000001 + inSlope: -0.030000003 outSlope: 0 tangentMode: 69 weightedMode: 0 @@ -538,27 +454,6 @@ AnimationClip: classID: 4 script: {fileID: 0} flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalPosition.z - path: Body/LeftFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - serializedVersion: 2 curve: serializedVersion: 2 @@ -594,25 +489,25 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.06666667 value: 0 - inSlope: -0.012 + inSlope: -0.03 outSlope: 0 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.5 + time: 0.2 value: 0 inSlope: -0 - outSlope: 0.011999999 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: 0.002 inSlope: 0 outSlope: 0 @@ -628,27 +523,6 @@ AnimationClip: classID: 4 script: {fileID: 0} flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalPosition.z - path: Body/RightFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - serializedVersion: 2 curve: serializedVersion: 2 @@ -663,7 +537,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -686,17 +560,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: -67.5 - outSlope: -67.5 + inSlope: -168.74998 + outSlope: -168.74998 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.6666667 + time: 0.26666668 value: -45 - inSlope: -67.5 - outSlope: -67.5 + inSlope: -168.74998 + outSlope: -168.74998 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -738,7 +612,7 @@ AnimationClip: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z + attribute: m_LocalEulerAngles.x path: classID: 4 script: {fileID: 0} @@ -762,83 +636,11 @@ AnimationClip: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x + attribute: m_LocalEulerAngles.z path: classID: 4 script: {fileID: 0} flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z - path: Body/LeftFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.y - path: Body/LeftFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x - path: Body/LeftFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x - path: Body/RightFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.y - path: Body/RightFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 - - serializedVersion: 2 - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z - path: Body/RightFeetTarget - classID: 4 - script: {fileID: 0} - flags: 0 m_HasGenericRootTransform: 1 m_HasMotionFloatCurves: 0 m_Events: [] diff --git a/Samples/Animation/AntRotateRight.anim b/Samples/Animation/AntRotateRight.anim index 43b88f1..94332f8 100644 --- a/Samples/Animation/AntRotateRight.anim +++ b/Samples/Animation/AntRotateRight.anim @@ -279,7 +279,7 @@ AnimationClip: m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 m_LoopTime: 1 - m_LoopBlend: 0 + m_LoopBlend: 1 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 m_LoopBlendPositionXZ: 0 diff --git a/Samples/Animation/AntWalkForward.anim b/Samples/Animation/AntWalkForward.anim index f2202c1..6dbe9c8 100644 --- a/Samples/Animation/AntWalkForward.anim +++ b/Samples/Animation/AntWalkForward.anim @@ -21,44 +21,44 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: 0, z: -0.024} - outSlope: {x: 0, y: 0, z: -0.024} + inSlope: {x: 0, y: 0, z: -0.03} + outSlope: {x: 0, y: 0, z: -0.03} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: {x: 0, y: 0, z: -0.002} - inSlope: {x: 0, y: -0, z: -0.024} - outSlope: {x: 0, y: 0.024, z: 0.024000002} + inSlope: {x: 0, y: -0, z: -0.03} + outSlope: {x: 0, y: 0.03, z: 0.030000003} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.16666667 + time: 0.13333334 value: {x: 0, y: 0.002, z: 3.4924597e-10} - inSlope: {x: 0, y: -9.313226e-10, z: 0.024000008} - outSlope: {x: 0, y: -9.313226e-10, z: 0.024000008} + inSlope: {x: 0, y: -0.0000000018626451, z: 0.03000001} + outSlope: {x: 0, y: -0.0000000018626451, z: 0.03000001} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.25 + time: 0.2 value: {x: 0, y: 0, z: 0.002} - inSlope: {x: 0, y: 0, z: 0.024000002} - outSlope: {x: 0, y: 0, z: -0.023999998} + inSlope: {x: 0, y: 0, z: 0.030000003} + outSlope: {x: 0, y: 0, z: -0.029999996} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: 0, z: -0.023999998} - outSlope: {x: 0, y: 0, z: -0.023999998} + inSlope: {x: 0, y: 0, z: -0.029999996} + outSlope: {x: 0, y: 0, z: -0.029999996} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -73,35 +73,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0.002, z: 0} - inSlope: {x: 0, y: 0, z: 0.024} - outSlope: {x: 0, y: 0, z: 0.024} + inSlope: {x: 0, y: 0, z: 0.03} + outSlope: {x: 0, y: 0, z: 0.03} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: {x: 0, y: 0, z: 0.002} - inSlope: {x: 0, y: -0.024, z: 0.024} - outSlope: {x: 0, y: 0, z: -0.024000002} + inSlope: {x: 0, y: -0.03, z: 0.03} + outSlope: {x: 0, y: 0, z: -0.030000003} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.25 + time: 0.2 value: {x: 0, y: 0, z: -0.002} - inSlope: {x: 0, y: -0, z: -0.024000002} - outSlope: {x: 0, y: 0.023999998, z: 0.023999998} + inSlope: {x: 0, y: -0, z: -0.030000003} + outSlope: {x: 0, y: 0.029999996, z: 0.029999996} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0.002, z: 0} - inSlope: {x: 0, y: 0, z: 0.023999998} - outSlope: {x: 0, y: 0, z: 0.023999998} + inSlope: {x: 0, y: 0, z: 0.029999996} + outSlope: {x: 0, y: 0, z: 0.029999996} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -116,17 +116,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: 0, z: 0.024} - outSlope: {x: 0, y: 0, z: 0.024} + inSlope: {x: 0, y: 0, z: 0.03} + outSlope: {x: 0, y: 0, z: 0.03} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0, z: 0.008} - inSlope: {x: 0, y: 0, z: 0.024} - outSlope: {x: 0, y: 0, z: 0.024} + inSlope: {x: 0, y: 0, z: 0.03} + outSlope: {x: 0, y: 0, z: 0.03} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -138,7 +138,7 @@ AnimationClip: m_ScaleCurves: [] m_FloatCurves: [] m_PPtrCurves: [] - m_SampleRate: 24 + m_SampleRate: 30 m_WrapMode: 0 m_Bounds: m_Center: {x: 0, y: 0, z: 0} @@ -178,7 +178,7 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.33333334 + m_StopTime: 0.26666668 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -208,25 +208,25 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0 inSlope: -0 - outSlope: 0.024 + outSlope: 0.03 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.13333334 value: 0.002 - inSlope: -9.313226e-10 - outSlope: -9.313226e-10 + inSlope: -0.0000000018626451 + outSlope: -0.0000000018626451 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0 inSlope: 0 outSlope: 0 @@ -235,7 +235,7 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -258,35 +258,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: -0.024 - outSlope: -0.024 + inSlope: -0.03 + outSlope: -0.03 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: -0.002 - inSlope: -0.024 - outSlope: 0.024000002 + inSlope: -0.03 + outSlope: 0.030000003 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0.002 - inSlope: 0.024000002 - outSlope: -0.023999998 + inSlope: 0.030000003 + outSlope: -0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 - inSlope: -0.023999998 - outSlope: -0.023999998 + inSlope: -0.029999996 + outSlope: -0.029999996 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -313,25 +313,25 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0 - inSlope: -0.024 + inSlope: -0.03 outSlope: 0 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0 inSlope: -0 - outSlope: 0.023999998 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0.002 inSlope: 0 outSlope: 0 @@ -354,35 +354,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0.024 - outSlope: 0.024 + inSlope: 0.03 + outSlope: 0.03 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0.002 - inSlope: 0.024 - outSlope: -0.024000002 + inSlope: 0.03 + outSlope: -0.030000003 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: -0.002 - inSlope: -0.024000002 - outSlope: 0.023999998 + inSlope: -0.030000003 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 - inSlope: 0.023999998 - outSlope: 0.023999998 + inSlope: 0.029999996 + outSlope: 0.029999996 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -402,17 +402,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0.024 - outSlope: 0.024 + inSlope: 0.03 + outSlope: 0.03 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0.008 - inSlope: 0.024 - outSlope: 0.024 + inSlope: 0.03 + outSlope: 0.03 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 diff --git a/Samples/Animation/AntWalkLeft.anim b/Samples/Animation/AntWalkLeft.anim index ee03b1a..3ff3c2f 100644 --- a/Samples/Animation/AntWalkLeft.anim +++ b/Samples/Animation/AntWalkLeft.anim @@ -21,44 +21,44 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0.024, y: 0, z: 0} - outSlope: {x: 0.024, y: 0, z: 0} + inSlope: {x: 0.03, y: 0, z: 0} + outSlope: {x: 0.03, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: {x: 0.002, y: 0, z: 0} - inSlope: {x: 0.024, y: -0, z: 0} - outSlope: {x: -0.024000002, y: 0.024, z: 0} + inSlope: {x: 0.03, y: -0, z: 0} + outSlope: {x: -0.030000003, y: 0.03, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.16666667 + time: 0.13333334 value: {x: -3.4924597e-10, y: 0.002, z: 0} - inSlope: {x: -0.024000008, y: 0, z: 0} - outSlope: {x: -0.024000008, y: 0, z: 0} + inSlope: {x: -0.03000001, y: 0, z: 0} + outSlope: {x: -0.03000001, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.25 + time: 0.2 value: {x: -0.002, y: 0, z: 0} - inSlope: {x: -0.024000002, y: -0.024000002, z: 0} - outSlope: {x: 0.023999998, y: 0, z: 0} + inSlope: {x: -0.030000003, y: -0.030000003, z: 0} + outSlope: {x: 0.029999996, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0.023999998, y: 0, z: 0} - outSlope: {x: 0.023999998, y: 0, z: 0} + inSlope: {x: 0.029999996, y: 0, z: 0} + outSlope: {x: 0.029999996, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -73,35 +73,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0.002, z: 0} - inSlope: {x: -0.024, y: 0, z: 0} - outSlope: {x: -0.024, y: 0, z: 0} + inSlope: {x: -0.03, y: 0, z: 0} + outSlope: {x: -0.03, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: {x: -0.002, y: 0, z: 0} - inSlope: {x: -0.024, y: -0.024, z: 0} - outSlope: {x: 0.024000002, y: 0, z: 0} + inSlope: {x: -0.03, y: -0.03, z: 0} + outSlope: {x: 0.030000003, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.25 + time: 0.2 value: {x: 0.002, y: 0, z: 0} - inSlope: {x: 0.024000002, y: -0, z: 0} - outSlope: {x: -0.023999998, y: 0.023999998, z: 0} + inSlope: {x: 0.030000003, y: -0, z: 0} + outSlope: {x: -0.029999996, y: 0.029999996, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0.002, z: 0} - inSlope: {x: -0.023999998, y: 0, z: 0} - outSlope: {x: -0.023999998, y: 0, z: 0} + inSlope: {x: -0.029999996, y: 0, z: 0} + outSlope: {x: -0.029999996, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -116,17 +116,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} + inSlope: {x: -0.030000042, y: 0, z: 0} + outSlope: {x: -0.030000042, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: -0.008000012, y: 0, z: 0} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} + inSlope: {x: -0.030000042, y: 0, z: 0} + outSlope: {x: -0.030000042, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -138,7 +138,7 @@ AnimationClip: m_ScaleCurves: [] m_FloatCurves: [] m_PPtrCurves: [] - m_SampleRate: 24 + m_SampleRate: 30 m_WrapMode: 0 m_Bounds: m_Center: {x: 0, y: 0, z: 0} @@ -178,7 +178,7 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.33333334 + m_StopTime: 0.26666668 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 @@ -201,35 +201,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0.024 - outSlope: 0.024 + inSlope: 0.03 + outSlope: 0.03 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0.002 - inSlope: 0.024 - outSlope: -0.024000002 + inSlope: 0.03 + outSlope: -0.030000003 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: -0.002 - inSlope: -0.024000002 - outSlope: 0.023999998 + inSlope: -0.030000003 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 - inSlope: 0.023999998 - outSlope: 0.023999998 + inSlope: 0.029999996 + outSlope: 0.029999996 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -256,16 +256,16 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0 inSlope: -0 - outSlope: 0.024 + outSlope: 0.03 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.13333334 value: 0.002 inSlope: 0 outSlope: 0 @@ -274,16 +274,16 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0 - inSlope: -0.024000002 + inSlope: -0.030000003 outSlope: 0 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -313,25 +313,25 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0 - inSlope: -0.024 + inSlope: -0.03 outSlope: 0 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0 inSlope: -0 - outSlope: 0.023999998 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0.002 inSlope: 0 outSlope: 0 @@ -354,35 +354,35 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: -0.024 - outSlope: -0.024 + inSlope: -0.03 + outSlope: -0.03 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: -0.002 - inSlope: -0.024 - outSlope: 0.024000002 + inSlope: -0.03 + outSlope: 0.030000003 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0.002 - inSlope: 0.024000002 - outSlope: -0.023999998 + inSlope: 0.030000003 + outSlope: -0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 - inSlope: -0.023999998 - outSlope: -0.023999998 + inSlope: -0.029999996 + outSlope: -0.029999996 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 @@ -402,18 +402,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 + inSlope: -0.030000042 + outSlope: -0.030000042 + tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: -0.008000012 - inSlope: 0 - outSlope: 0 - tangentMode: 136 + inSlope: -0.030000042 + outSlope: -0.030000042 + tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 diff --git a/Samples/Animation/AntWalkRight.anim b/Samples/Animation/AntWalkRight.anim index a6fc699..b2c7fcc 100644 --- a/Samples/Animation/AntWalkRight.anim +++ b/Samples/Animation/AntWalkRight.anim @@ -22,42 +22,42 @@ AnimationClip: time: 0 value: {x: 0, y: 0, z: 0} inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: -0.024, y: 0, z: 0} + outSlope: {x: -0.03, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: {x: -0.002, y: 0, z: 0} - inSlope: {x: -0.024, y: -0, z: 0} - outSlope: {x: 0.024000002, y: 0.024, z: 0} + inSlope: {x: -0.03, y: -0, z: 0} + outSlope: {x: 0.030000003, y: 0.03, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.16666667 + time: 0.13333334 value: {x: 3.4924597e-10, y: 0.002, z: 0} - inSlope: {x: 0.024000008, y: -9.313226e-10, z: 0} - outSlope: {x: 0.024000008, y: -9.313226e-10, z: 0} + inSlope: {x: 0.03000001, y: -0.0000000018626451, z: 0} + outSlope: {x: 0.03000001, y: -0.0000000018626451, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.25 + time: 0.2 value: {x: 0.002, y: 0, z: 0} - inSlope: {x: 0.024000002, y: -0.024000002, z: 0} - outSlope: {x: -0.023999998, y: 0, z: 0} + inSlope: {x: 0.030000003, y: -0.030000003, z: 0} + outSlope: {x: -0.029999996, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0, z: 0} - inSlope: {x: -0.023999998, y: 0, z: 0} + inSlope: {x: -0.029999996, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 weightedMode: 0 @@ -74,33 +74,33 @@ AnimationClip: time: 0 value: {x: 0, y: 0.002, z: 0} inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0.024, y: 0, z: 0} + outSlope: {x: 0.03, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: {x: 0.002, y: 0, z: 0} - inSlope: {x: 0.024, y: -0.024, z: 0} - outSlope: {x: -0.024000002, y: 0, z: 0} + inSlope: {x: 0.03, y: -0.03, z: 0} + outSlope: {x: -0.030000003, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.25 + time: 0.2 value: {x: -0.002, y: 0, z: 0} - inSlope: {x: -0.024000002, y: -0, z: 0} - outSlope: {x: 0.023999998, y: 0.023999998, z: 0} + inSlope: {x: -0.030000003, y: -0, z: 0} + outSlope: {x: 0.029999996, y: 0.029999996, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0, y: 0.002, z: 0} - inSlope: {x: 0.023999998, y: 0, z: 0} + inSlope: {x: 0.029999996, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 weightedMode: 0 @@ -116,17 +116,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: {x: 0, y: 0, z: 0} - inSlope: {x: 0.024000023, y: 0, z: 0} - outSlope: {x: 0.024000023, y: 0, z: 0} + inSlope: {x: 0.030000027, y: 0, z: 0} + outSlope: {x: 0.030000027, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: {x: 0.008000008, y: 0, z: 0} - inSlope: {x: 0.024000023, y: 0, z: 0} - outSlope: {x: 0.024000023, y: 0, z: 0} + inSlope: {x: 0.030000027, y: 0, z: 0} + outSlope: {x: 0.030000027, y: 0, z: 0} tangentMode: 0 weightedMode: 0 inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} @@ -138,7 +138,7 @@ AnimationClip: m_ScaleCurves: [] m_FloatCurves: [] m_PPtrCurves: [] - m_SampleRate: 24 + m_SampleRate: 30 m_WrapMode: 0 m_Bounds: m_Center: {x: 0, y: 0, z: 0} @@ -178,13 +178,13 @@ AnimationClip: m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseTime: 0 m_StartTime: 0 - m_StopTime: 0.33333334 + m_StopTime: 0.26666668 m_OrientationOffsetY: 0 m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 m_LoopTime: 1 - m_LoopBlend: 0 + m_LoopBlend: 1 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 m_LoopBlendPositionXZ: 0 @@ -202,33 +202,33 @@ AnimationClip: time: 0 value: 0 inSlope: 0 - outSlope: -0.024 + outSlope: -0.03 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: -0.002 - inSlope: -0.024 - outSlope: 0.024000002 + inSlope: -0.03 + outSlope: 0.030000003 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0.002 - inSlope: 0.024000002 - outSlope: -0.023999998 + inSlope: 0.030000003 + outSlope: -0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 - inSlope: -0.023999998 + inSlope: -0.029999996 outSlope: 0 tangentMode: 69 weightedMode: 0 @@ -256,34 +256,34 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0 inSlope: -0 - outSlope: 0.024 + outSlope: 0.03 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.16666667 + time: 0.13333334 value: 0.002 - inSlope: -9.313226e-10 - outSlope: -9.313226e-10 + inSlope: -0.0000000018626451 + outSlope: -0.0000000018626451 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0 - inSlope: -0.024000002 + inSlope: -0.030000003 outSlope: 0 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 inSlope: 0 outSlope: 0 @@ -307,33 +307,33 @@ AnimationClip: time: 0 value: 0 inSlope: 0 - outSlope: 0.024 + outSlope: 0.03 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0.002 - inSlope: 0.024 - outSlope: -0.024000002 + inSlope: 0.03 + outSlope: -0.030000003 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: -0.002 - inSlope: -0.024000002 - outSlope: 0.023999998 + inSlope: -0.030000003 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0 - inSlope: 0.023999998 + inSlope: 0.029999996 outSlope: 0 tangentMode: 69 weightedMode: 0 @@ -361,25 +361,25 @@ AnimationClip: inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.083333336 + time: 0.06666667 value: 0 - inSlope: -0.024 + inSlope: -0.03 outSlope: 0 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.25 + time: 0.2 value: 0 inSlope: -0 - outSlope: 0.023999998 + outSlope: 0.029999996 tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0.002 inSlope: 0 outSlope: 0 @@ -402,17 +402,17 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: 0.024000023 - outSlope: 0.024000023 + inSlope: 0.030000027 + outSlope: 0.030000027 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 - time: 0.33333334 + time: 0.26666668 value: 0.008000008 - inSlope: 0.024000023 - outSlope: 0.024000023 + inSlope: 0.030000027 + outSlope: 0.030000027 tangentMode: 34 weightedMode: 0 inWeight: 0.33333334