diff --git a/Assets/Graphics/Models/Soldier/SoldierAnim.fbx b/Assets/Graphics/Models/Soldier/SoldierAnim.fbx index 6c7795b..5ca11fd 100644 Binary files a/Assets/Graphics/Models/Soldier/SoldierAnim.fbx and b/Assets/Graphics/Models/Soldier/SoldierAnim.fbx differ diff --git a/Assets/Graphics/Models/Soldier/SoldierF.fbx b/Assets/Graphics/Models/Soldier/SoldierF.fbx index 62167ec..efba4bc 100644 Binary files a/Assets/Graphics/Models/Soldier/SoldierF.fbx and b/Assets/Graphics/Models/Soldier/SoldierF.fbx differ diff --git a/Assets/Graphics/Models/Soldier/SoldierM.fbx b/Assets/Graphics/Models/Soldier/SoldierM.fbx index 6f6166c..f0150ab 100644 Binary files a/Assets/Graphics/Models/Soldier/SoldierM.fbx and b/Assets/Graphics/Models/Soldier/SoldierM.fbx differ diff --git a/Assets/Scripts/Animation/SoldierProceduralAnimator.cs b/Assets/Scripts/Animation/SoldierProceduralAnimator.cs index 9cb9eb0..52c039e 100644 --- a/Assets/Scripts/Animation/SoldierProceduralAnimator.cs +++ b/Assets/Scripts/Animation/SoldierProceduralAnimator.cs @@ -23,7 +23,10 @@ namespace NeonTea.Quakeball.Animation { private Animator Animator; private Transform BehindHand; private Transform FrontHand; - private Transform Head; + private Transform Torso; + + private float VisualYaw; + private float VisualPitch; private void Awake() { foreach (Animator animator in Soldiers) { @@ -31,7 +34,8 @@ namespace NeonTea.Quakeball.Animation { } Animator = Soldiers[(int)Model].GetComponent(); Animator.gameObject.SetActive(true); - HeadCollider.parent = Head = TransformUtil.FindChildWithName(Animator.transform, "HEAD"); + HeadCollider.parent = TransformUtil.FindChildWithName(Animator.transform, "HEAD"); + Torso = TransformUtil.FindChildWithName(Animator.transform, "RIBS"); BehindHand = TransformUtil.FindChildWithName(Animator.transform, "HAND.R"); FrontHand = TransformUtil.FindChildWithName(Animator.transform, "HAND.L"); if (GunGluedToHand) { @@ -47,8 +51,11 @@ namespace NeonTea.Quakeball.Animation { } private void LateUpdate() { - transform.localEulerAngles = new Vector3(0, Player.Yaw, 0); - Head.localEulerAngles = new Vector3(Player.Pitch, 0, 0); + VisualYaw = Mathf.Lerp(VisualYaw, Player.Yaw, 10f * Time.deltaTime); + VisualPitch = Mathf.Lerp(VisualPitch, -Player.Pitch, 10f * Time.deltaTime); + + transform.localEulerAngles = new Vector3(0, VisualYaw, 0); + Torso.localEulerAngles = new Vector3(VisualPitch, 0, 0); if (GunGluedToHand) { Vector3 GunOffset = GunHandle.position - Gun.position; diff --git a/RawAssets/Soldier/SoldierF.blend b/RawAssets/Soldier/SoldierF.blend index ce97098..6a18f37 100644 Binary files a/RawAssets/Soldier/SoldierF.blend and b/RawAssets/Soldier/SoldierF.blend differ diff --git a/RawAssets/Soldier/SoldierM.blend b/RawAssets/Soldier/SoldierM.blend index 93f09de..99f3867 100644 Binary files a/RawAssets/Soldier/SoldierM.blend and b/RawAssets/Soldier/SoldierM.blend differ