Unity引擎学习笔记之【动画、动画器操作】

动画Animate

  • Animation是基于关键帧的动画系统,适用于简单的动画需求;
    而Animator是一种状态机驱动的动画系统,适用于更复杂的动画逻辑和交互式动画。

  • 通常,Animator组件更适合用于游戏中的角色动画控制,
    而Animation组件则更适合用于简单的动画效果。

一、旧版Animation(动画)组件

1.基本属性

  • 动画(Animation Clip)选择一个动画clip

  • Animations:添加动画列表

  • Play Automatically:自动播放

  • Animate Physics:在游戏中模拟物理效果和运动。编写脚本来控制游戏对象的物理行为,例如重力、碰撞、力的应用等。

    • 使用Animate Physics时,游戏对象的物理行为会在FixedUpdate函数中进行模拟,而不是在常规的Update函数中。这是因为在FixedUpdate中,物理引擎会以固定的时间间隔进行更新,以确保物理模拟的稳定性和一致性。

  • Culling Type(剔除类型):

    • 总是动画化(AlwaysAnimate):无论物体是否在相机视野内,动画都将播放并更新。这个选项会消耗更多的性能,因为即使物体不可见,动画仍然在播放。

    • Based On Renderers:根据物体的渲染器来确定是否需要播放动画。如果物体的所有渲染器都在相机视野内,则播放动画;否则停止动画。这个选项可以减少不必要的动画计算,提高性能。

  • Ctrl+6打开动画时间轴

    • 相当于逐帧动画,可以添加属性等

2.基本方法

  1. Play/Stop 播放/停止动画:

    • Animation.Play("animationName"):播放指定名称的动画。
    • Animation.Stop("animationName"):停止指定名称的动画。
  2. CrossFade 渐变切换动画:

    • Animation.CrossFade("animationName", fadeLength):从当前动画渐变切换到指定名称的动画,fadeLength为过渡时间。
  3. IsPlaying 判断动画是否正在播放:

    • Animation.IsPlaying("animationName"):返回指定名称的动画是否正在播放的布尔值。
  4. Blend 动画混合:

    • Animation.Blend("animationName"):将指定名称的动画与当前动画进行混合。
  5. Rewind 倒放动画:

    • Animation.Rewind("animationName"):将指定名称的动画倒放。
  6. Sample 动画采样:

    • Animation.Sample():在当前时间点采样动画,用于手动控制动画播放的进度。

二、新版Animator(动画机)

1.基本属性

  • 控制器:项目–创建–动画器控制器。可将创建的动画器控制器拖拽至控制器属性上。

  • Avatar:阿凡达,代表用户或角色的虚拟人物或数字化的形象。

    在使用Unity时,可以通过以下步骤创建Avatar:

    1. 创建人物模型:在Unity中创建一个3D模型,例如角色或怪物。确保该模型包含骨骼系统,以便后面的动画制作。

    2. 导入动画数据:将已经制作好的动画数据导入到Unity中,例如FBX文件或其他支持的格式。您可以使用Unity的Animation窗口来预览和编辑动画效果。

    3. 创建Avatar:在Unity的Project视图中右键单击导入的动画文件,选择"Rig->Create Avatar"来创建Avatar。Unity会自动为您生成默认的Avatar,并将其绑定到人物模型上。

    4. 配置Avatar:根据人物模型的具体情况,您可以进一步配置Avatar的参数。例如,您可以调整Avatar的身高、骨骼长度、旋转角度等属性,以确保动画效果正确地应用到人物模型上。

    5. 应用动画:将Avatar应用到人物模型上,以便在游戏中播放动画。您可以使用Animator组件来控制Avatar的行为和状态,例如切换不同的动画片段、设置动画参数等。


  • 应用根运动(Root Motion):允许使用动画的根骨骼来驱动角色或对象的移动。
    按照以下步骤进行操作应用根运动:

    1. 创建动画:在3D建模软件中创建角色的动画,确保动画中包含根骨骼的平移和旋转信息。例如,一个角色行走的动画应该包含根骨骼在世界空间中的移动。

    2. 导入动画:将动画导入到Unity中,并将其设置为角色的动画剪辑。确保在导入时启用"Import Root Motion"选项。

    3. 创建Animator组件:在角色对象上添加Animator组件,并将导入的动画剪辑分配给Animator Controller。

    4. 配置Avatar:确保角色的Avatar已经正确配置。在Avatar的"Motion"部分,选择"Default"或"Humanoid"选项, 以便使用根运动。

    5. 设置动画参数:在Animator Controller中创建适当的参数,例如"Speed"来控制角色移动的速度。

    6. 应用根运动:选择角色的Animator组件,在Inspector窗口中找到"Apply Root Motion"选项,并勾选它。

2.基本方法

    
public class AnimatorControllerExample : MonoBehaviour
{
    private Animator animator; // Animator组件的引用

    private static readonly int IsRunning = Animator.StringToHash("IsRunning"); // Animator参数名称的哈希值

    private void Start()
    {
        // 获取Animator组件的引用
        animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // 按下空格键时,设置Animator参数的布尔值为true,播放动画
        if (Input.GetKeyDown(KeyCode.Space))
        {
            animator.SetBool(IsRunning, true);
        }

        // 松开空格键时,设置Animator参数的布尔值为false,停止动画
        if (Input.GetKeyUp(KeyCode.Space))
        {
            animator.SetBool(IsRunning, false);
        }
    }
}

你可能感兴趣的:(#,Unity学习笔记,unity,学习,笔记)