本文出自https://www.youtube.com/watch?v=WZqeVU09h_A,讲者是Chase Cooper。
正文
虚幻引擎做的动画怎么样?看看下面这个动画混剪:https://www.youtube.com/watch?v=KPq7a8INxyI。
平时接触动画比较多的小伙伴估计都知道,之前想在虚幻引擎中制作动画需要在DCC与引擎之间来回切换。改个骨骼、调整权重、调整UV等等工作都需要在DCC内完成,然后再通过Pipeline传回引擎,好麻烦!所以我们希望给动画创作者们一个更灵活方便的工具集,让他们能够按照自己喜欢的工作流程制作动画,使工作更方便快捷。
刚才也提到,在引擎与DCC之间来回切换调整内容的过程是很痛苦的,所以我们要尽可能减少这个过程中的往返,并减少这个过程中的数据丢失。
Sequencer是虚幻引擎中用于K动画的工具之一,我们可以将Control Rig放入Sequencer中直接制作动画。我们可以直接拉着控制点就位,在时间轴上加关键帧,调整曲线等等。这些工作和DCC很像,但都能在引擎内完成,并且直接看到结果,有渲染有画面,一切都可视!并且Sequencer在5.4更新后有了更多自定义的选项,帮助动画师能够按照自己更熟悉的界面去K动画,包括隐藏一些图标,调整界面布局等。
并且我们还可以给这套Control Rig读取动画,并且在动画的基础上修改出自己想要的动画。
并且为了方便动画师K帧更方便更有熟悉感,我们做了一个新Gizmo插件,可以在编辑器偏好中打开New Gizmo选项就能使用这款Gizmo调整变换。大部分动画师应该不能没有这款Gizmo,因为我们可以在选中之后,按住鼠标中键就能在屏幕内任何一个地方移动来调整物体的变换。
3.3 轴曲线独立
调整骨骼,加关键帧,调整骨骼,再加关键帧,很多动画师都熟悉K帧的流程。但现在我要介绍一个看起来很方便的功能,在Sequencer中我们可以单独选定某个轴然后在动画曲线编辑器中调整它的曲线。这样我们就不用在曲线中找半天我们希望调整的轴曲线了。
3.4 约束2.0
然后给小恐龙添加一个Look At的约束动画。并且这个约束可以在Sequencer中K“是否启用约束”关键帧或者“Look At物体选择”关键帧等等。除了这些以外,我们的约束功能现在能通过关卡序列带到别的关卡中,之前的约束是受关卡限制的,并且没有一个约束管理器去管理各种约束。
现在我们有Pose Library(姿势库)、Tween Tool(补间工具)、Snapper Tool(对齐工具)、Motion Trail(运动轨迹)、Pivot(临时中心点)、空间切换、Animation Layer(动画层)等等,并且我们会在虚幻5.5中发布更多的动画工具。
在这个网站中,我们可以了解到更多动画相关的偏好设置以及热键,帮助小伙伴们将编辑器调整成自己更熟悉的样子。
俗话说“好Rig配好动画”,只有Rig够强大,才能K出更好看的动画。在虚幻引擎中我们使用Control Rig做绑定,Control Rig是基于节点的绑定系统,它是一个独立的轻量VM,用来跑动画的运算。只要把节点连在一起就能自动计算各种骨骼变换。
Control Rig真的非常强大,假设我们现在想绑定一个魔方,我们肯定是希望在引擎中K魔方能和现实生活中一样简单。所以我们做了个这样的Control Rig,它能在我们用户调整完旋转之后(或者之前),重新分配这些小方块的父项,让下次旋转时一个面的小方块都能跟着那个面的父项旋转。这种就是动态的结构层级,没有固定结构层级的烦恼。
接下来看看这个魔方是怎么绑定的,好像没什么好说的,就是一个根骨骼加各种小方块的骨骼。
再来看看Control Rig,这里我们使用了Interaction Event去处理我们的动态结构层级,并且我们使用了一个叫做Find Closest Control的函数,这个稍后会解释。
这个Find Closest Control函数的基本逻辑就是找一个离控制点最近的九个小方块骨骼,然后将他们约束在控制点上,实现动态结构层级。利用这个Interaction Event,我们其实可以做很多很强大的动画效果。
Debug不能少。这个例子中就是简单的画线连到要控制的骨骼上。
Control Rig中的Spring Interpolate节点可以帮助我们制作像弹簧一样的条状物体形变,就像UEFN示例项目中的那条龙一样。我们只需要移动一个控制器,整个身体的控制器就能跟着并且像一根绳子一样移动。这个二维码可以进入一个网站,用来教您如何自己实现这个效果。并且这条龙能够在Control Rig Sample Pack中找到,感兴趣的小伙伴们可以自行查看与研究,传送门:https://www.unrealengine.com/marketplace/en-US/product/control-rig-samples-pack。
接下来是小演示,笔者强烈建议观看原视频中的这一部分(19:00~23:30),可以帮助我们更直观地了解如何装配模块化Control Rig。这段演示中,我们可以通过拖入不同类型的模块Control Rig到对应的Socket中,设置各自所需的骨骼与参数,当这些模块Control Rig都齐了,就能像普通的Control Rig一样K动画了。这样的话,Rig一个角色便充满了乐趣,我们只需要将模块Control Rig拖到对应的地方就能搞定Rig工作。
我们绑定好一个骨架之后,如果另一个骨架有相似的结构层级,只需要在右下角切换对应的骨骼网格体,这些模块Control Rig就会自动适应现在的骨架,非常的方便!
甚至刚刚提到的魔方也能做成模块Control Rig。三阶、四阶等等,不管多少阶,都能用这个模块Control Rig直接搞定。
右键动画序列,打开重定向窗口,我们可以选择目标网格体,并且我们可以预览动画的效果。然后我们选择要导出的动画,点击导出即可,非常简单,点几个按钮就能完成重定向。但我们也可以再制作IK Retarget资产完成IK相关的设置。
然后在Control Rig中启用Convert To Layered。
然后角色的Control Rig就会跟着动画动,这时候我们只要根据场景调整Control Rig的控制器即可让我们的动画按照现在Control Rig变换。这些控制器跟着骨骼动其实就是逆向求解事件的功劳,逆向求解是让骨骼驱动控制器,而正向求解自然就是让控制器控制骨骼。
我们可以用Deformer Graph实现骨骼网格体的实时变形。这个轮胎例子,除了自动滚动以外,还会根据地面产生形变。
在Control Rig中,我们可以使用Sphere Trace检测地面碰撞,获得一个Deformer需要用到的平面。为了能够让Control Rig和Deformer之间能够互相发信息,我们还有一个节点叫Set Animation Attribute。
在Deformer中,我们的流程如下。粉色箭头所指的节点正是接收Control Rig数据的节点,这个节点将平面的变换信息传递到变形器中使用。利用这个传递信息的节点我们可以混合使用Control Rig和Deformer,实现一些有意思的动画效果。
我们有时候不希望Deformer会影响整个网格体,只希望某些部分产生形变,这时候Paint Map就派上用场了。这个Paint Map会以类似于顶点遮罩的形式传递到Deformer中使用。
在Skeletal Editor中我们可以新建一个Weight Map,然后像刷权重一样将遮罩刷在顶点上,然后我们再在Deformer中读取这个遮罩信息,就能使用Deformer进行对应的变形。
在这个例子中,我们将尝试修复手臂形变的问题,将四元数骨骼形变混合到线性骨骼形变中。
我们想要用的工具虚幻里也有。除了能够直接修改骨骼和权重的优势外,我们还能直接在游戏内看到对应的变化,做到真正快捷与实时。并且我们在刷权重的工具中加了一些类似于延展与放松的功能,让权重向外延伸或者平滑,使骨骼形变更自然。
这些新建出来的头发骨骼就能在Control Rig中添加物理效果。顺带一提,虚幻5.4中的Control Rig多了很多预设置好的Control Rig函数,我们能够直接使用这些函数做一些很酷的动画效果。
未来将支持把Deformer直接拉进Sequencer中使用K帧。
未来模块Control Rig将推出升级工具以及替换模块的功能。
未来骨架编辑器将支持隐藏面来刷权重,并且推出更多更方便的功能。
未来我们将为Control Rig做出更多物理上的支持,并实现程序化的角色物理动画。
近期焦点
扫描下方二维码,关注后点击菜单栏按钮“更多内容”并选择“联系我们”获得更多虚幻引擎的授权合作方式和技术支持。
长按屏幕选择“识别二维码”关注虚幻引擎
“虚幻引擎”微信公众账号是Epic Games旗下Unreal Engine的中文官方微信频道,在这里我们与大家一起分享关于虚幻引擎的开发经验与最新活动。