您当前的位置: 首页 >  动画

开发游戏的老王

暂无认证

  • 1浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

虚幻引擎图文笔记:什么是动画曲线(AnimCurve)

开发游戏的老王 发布时间:2021-02-04 20:37:19 ,浏览量:1

在这里插入图片描述

文章目录
    • 什么是曲线(Curve)
    • 什么是动画曲线(AnimCurve)
    • 一个简单的例子
      • 添加动画曲线
      • 在动画蓝图中应用动画曲线
    • 小结

什么是曲线(Curve)

这里的曲线就是我们初中学的函数曲线,给定一个X轴的值,就可以获取唯一的Y轴值,仅此而已。在游戏开发的时候曲线的X轴一般是(但不仅限于)时间,Y轴是什么就多种多样了。

在这里插入图片描述

什么是动画曲线(AnimCurve)

动画曲线是UE4提供的一种机制:

  • 我们可以借助的动画编辑器在动画片段的时间轴上编辑这种曲线。它的优点就是直观:动画每一帧(X值)对应的曲线值(Y值)一目了然,而且便于编辑。

  • 然后在运行动画的时候获取这个曲线,动画播放到哪一帧,我们也同步地获得了该帧对应的曲线值。

一个简单的例子

这个例子和官方教程提供的很类似,只不过本文我们使用横板游戏模板再现一下:

添加动画曲线

我们在Idle动画上添加一个动画曲线用于控制角色头部的缩放

在这里插入图片描述

进入动画编辑器

在这里插入图片描述

添加曲线

在这里插入图片描述 将曲线命名为“HeadScale”

在这里插入图片描述

双击曲线进行编辑,为曲线添加关键帧(Key)

在这里插入图片描述

然后可以通过移动关键帧来调整曲线的值

在这里插入图片描述

这时如果你尝试播放动画,你会发现它毫无变化,那是必然的,因为动画曲线只不过是借助动画编辑器编辑一下,你不调用它,它就如同不存在一般,接下来我们就介绍如何调用动画曲线。

在动画蓝图中应用动画曲线

默认的"Idle/Run(state)"是如下连接的 在这里插入图片描述

更改成下面的样子,注意Transform(Modify)Bone节点需要在它的细节面板上做一些设置

在这里插入图片描述 运行一下

在这里插入图片描述

我们发现,当角色处于Idle动画的时候,头部会像“呼吸”一样缩放,但是跑动起来头部就消失了。这是因为横板游戏模板中,Idle/Walk/Run三组动画被做成了一个BlendSpace作为Idle/Run状态,而我们仅在Idle动画中添加了名为 “HeadScale”的动画曲线,那么播放其它两个动画时,GetCurveValue获取不到对应的曲线,就返回了默认值0。

从这里我们也可以看出来动画曲线和动画片段的从属关系

我们可以在 Walk和Run中也加上名为"HeadScale"的曲线,本例中为了区分效果,我把 Walk和Run中的"HeadScale"的曲线值设为常量3 在这里插入图片描述 再次运行一下,我们看到,Idle时头部时大时小地呼吸,而跑起来时头部变成了原来的3倍。

在这里插入图片描述

小结

曲线的应用场景非常多,除了像本例一样修改角色的形变,通过曲线改变动画混合的Alpha值也是极为常见的用法。

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0368s