- Home /
Adding animation transition between idle and walk
i want to add animation transition between animation between idle and walk..i mean there are another animation between idle and walk... most of games have this..is this posible to do this in unity?if yes how to do that?
if script needed where should i put it?
this is the script that i used in my project :
using UnityEngine;
using System.Collections;
/// MouseLook rotates the transform based on the mouse delta.
/// Minimum and Maximum values can be used to constrain the possible rotation
/// To make an FPS style character:
/// - Create a capsule.
/// - Add the MouseLook script to the capsule.
/// -> Set the mouse look to use LookX. (You want to only turn character but not tilt it)
/// - Add FPSInputController script to the capsule
/// -> A CharacterMotor and a CharacterController component will be automatically added.
/// - Create a camera. Make the camera a child of the capsule. Reset it's transform.
/// - Add a MouseLook script to the camera.
/// -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.)
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook : MonoBehaviour {
public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
public RotationAxes axes = RotationAxes.MouseXAndY;
public float sensitivityX = 15F;
public float sensitivityY = 15F;
public float minimumX = -360F;
public float maximumX = 360F;
public float minimumY = -60F;
public float maximumY = 60F;
float rotationY = 0F;
void Update ()
{
if (axes == RotationAxes.MouseXAndY)
{
float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
}
else if (axes == RotationAxes.MouseX)
{
transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
}
else
{
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
}
}
void Start ()
{
// Make the rigid body not change rotation
if (rigidbody)
rigidbody.freezeRotation = true;
}
}
sorry im so noob at scripting, so i put the whole script in here...i am a modeller..
Answer by Cherno · May 22, 2014 at 03:17 AM
If you just want a smooth transition from the walking animation tothe running animation, just use animation.CrossFade. Check the User Reference for further information.
Animation.CrossFade will transition to the specified animation clip and play it right away. You can also add the transition time parameter to make the transition slower or faster. Note that your animation clips' WrapMode can't be set to Once when the crossfading begins, best is Loop or ClampForever.
thanks for the answer but i want to put another fbx animation between idle to walk..not automatic smooth transition...and i dont understand why the staff wont approve my post...
You don't need another animation. Do as Cherno said and use CrossFade, it'll smoothly transition from idle to walk for you.
sure i need..this crossfade only make the transition smooth...but it will me more realistic if there are animation transition..most of third person game have it...gta, saint row, do you ever play them? not just idle to walk they also have walk to idle and run to idle and even more..i think its a standard feature for third person games nowaday...
Well, in that case, I don't undestant what the problem is. You already know how to create and play animations, so just create a new transition animation, and play it before playing the walking/ruuuning animation.
the problem is i dont know how to do that...could you tell me please? actually i was following this tutorial http://www.youtube.com/watch?v=Xx21y9eJq1U≈p=desktop but there not explain about animation transition...
It seriously doesn't look like you are willing to a $$anonymous$$imum amount of research yourself. The official Unity resources are more than enough to get started in animation. Animation.Play
And as I have already written, there is no specific way of doing transitions if you don't want to use CrossFade. Play your idle animation, and if you want to set the cahracter in motion, play the transition clip for a second or so and then play the run animation. What's the deal?
i dont know about that unity resource before..thanks for that..
i just do what you told :
is that correct?
I have never used this animation editor, I do everything by script, so I can'T help you with that. From the looks of it, it'S ok though :)