摘要:在Unity中制作路径动画是有挺多方式的,基于Cinemachine的Dolly Path是一个简单便捷的方法,咱们来快速的学习一下吧!
洪流学堂,让你快人几步。你好,我是跟着大智(VX: zhz11235)学Unity的萌新,我叫小新,这是我本周的学习总结报告哦。
制作路径动画在Unity中是100%会遇到的一个需求。方式也有很多,列举几种:
1、通过Animation制作动画(优点:简单;缺点:不直观,无法直观看到路径中间的插值位置,灵活性差)
2、通过Tween插件(优点:灵活性高,可通过代码运行时修改路径点;缺点:有一定学习成本,可视化插件需付费,如Dotween Pro)
3、通过代码手撸一个路径动画(优点:灵活性高,最适配自己项目的需求;缺点:难度较高)
4、通过Cinemachine的Dolly Track(优点:Unity官方插件,版本适配好,功能够用;缺点:灵活性稍差)
最近咱们一直在学习Cinemachine,当然这篇理所当然应该尝试下Cinemachine的Dolly Path。Let‘s go!
路径动画有两个部分:如何创建路径以及如何使用这个路径。
Cinemachine中有两种Dolly Path组件:
方法一:如果是在相机上制作路径动画,可以直接创建Dolly Camera。菜单栏Cinemachine > Create Dolly Camera with Track。点击后会创建一个虚拟相机和dolly path。这个Path默认是SmoothPath。虚拟相机会自动设置好Body属性为Dolly Track并且Path属性赋值为创建出来的Dolly path。
方法二:如果是给GameObject制作路径动画,可以直接创建Dolly Cart。菜单栏Cinemachine > Create Dolly Track With Cart。点击后会创建一个虚拟相机和DollyCart。这个Path默认是SmoothPath。只需要把做路径动画的物体作为Cart的子物体即可。
方法三:直接创建Dolly Path。创建一个空物体,给空物体添加CinemachinePath或CinemachineSmoothPath组件。
1、在Hierarchy中选中Path物体。这时候能在Scene中看到整个路径以及上面的路径点(小白球)。
2、可以在Inspector上的路径点列表右下角点击加号+添加路径点。
3、可以点击场景中的小白球或者Inspector上路径点前面的序号按钮选中一个路径点。
4、选中路径点时,场景中路径点上会有移动工具,可以用来可视化移动。此外还可以在Inspector上直接修改数值。
CinemachinePath中定义了一系列的路径点,定义在世界空间中。每个路径点都有位置、切线和翻滚角度。在路径点之间使用贝塞尔曲线插值,来获得平滑、连续的路径。
提示:尽管路径位置始终是平滑连续的,但沿路径设置动画时仍然可能会产生不稳定的现象。当设置的切线没有保证一阶和二阶导数的连续性时,就会发生这种情况。手动做到这一点并不容易,为避免这种潜在的不稳定现象,尽量使用CinemachineSmoothPath。CinemachineSmoothPath自动设置切线以确保完全平滑。
属性详解
Resolution 每个路径点之间采样的次数。Cinemachine在计算路径距离时使用此值来限制粒度。场景视图中路径Gizmo上的交叉线反映了该值。
Appearance 路径在场景中显示的外观。只在编辑器中生效。
Looped 选中后,路径会首尾相连。
Path Length 整个路径长度,这个数据是只读的,根据所有路径点计算出来的。
Selected Waypoint 当前选中的路径点的信息。
Prefer Tangent Drag 当切线和位置的Gizmos在Scene视图中重合时,选中该选项将Gizmo用来调节路径点的切线。
Waypoints 定义路径点的列表。
与Cinemachine Path不同,CinemachineSmoothPath组件保证了一阶和二阶连续性,这意味着沿路径动画的对象不仅位置而且角速度也将是平滑且连续的。
属性详解
Resolution 每个路径点之间采样的次数。Cinemachine在计算路径距离时使用此值来限制粒度。场景视图中路径Gizmo上的交叉线反映了该值。
Appearance 路径在场景中显示的外观。只在编辑器中生效。
Looped 选中后,路径会首尾相连。
Path Length 整个路径长度,这个数据是只读的,根据所有路径点计算出来的。
Waypoints 定义路径点的列表。
滑轨路径(Dolly Path)是场景中的路径点数组形成的一条路径。
使用滑轨路径分为相机路径动画和其他物体路径动画:
Cinemachine Dolly Cart翻译过来是滑轨小车。相当于把一个物体放在小车里,然后在轨道上移动。这个组件就是把当前所附着的GameObject沿着path移动。
可以直接从菜单栏创建Cinemachine > Create Dolly Track With Cart,这会创建出来一个CinemachineSmoothPath和CinemachineDollyCart。也可以直接给GameObject添加CinemachineDollyCart组件。
属性详解
Path 路径对象
Update method 更新的方法。
Position Unit 位置的单位
Speed 移动小车的速度。基于Position Unit设置的单位。如果速度不为0,则小车会根据速度自动移动。
Position 当前小车所处的位置。基于Position Unit设置的单位。
【扩展学习】在洪流学堂公众号回复
timeline
可以下载Timeline&Cinemachine系列教程全文带目录PDF哦,更有本文的视频教程等着你!
呼~ 今天小新絮絮叨叨的真是够够的了。没讲清楚的地方欢迎评论,咱们一起探索。
我是大智(欢迎加我微信:zhz11235),你的技术探路者,下次见!
别走!点赞,收藏哦!
好,你可以走了。