近日,Unity官方发布了一本名为《关键工具集和工作流程》的免费电子书,该手册整合了“所有Unity系统、功能和工作流程的详细摘要”。这份91页的指南汇集了经验丰富的技术美术师的意见,包括《Enemies》、《TheHeretic》、《BookoftheDead》以及其他创作者的演示。
本书介绍了渲染管线、世界构建、着色、照明、动画、视觉特效、过场动画。以及还有一些章节讨论了脚本编写、分析和调试项目以及2D游戏开发。
而本篇连载将以中文翻译的形式分享给大家,英文阅读能力不错的同学可以直接去官方下载原版文档。(地址在文章末端)
由于个人能力有限,如有纰漏之处欢迎留言指出。
角色的绑定对环境的反应有一系列的限制
注意:如果你对Unity的动画系统非常熟悉,那么你可以跳过本章节,直接浏览动画绑定AnimationRigging
1动画系统
Unity项目中的动画通常是通过动作捕捉,或使用Blender、AutodeskMaya或Autodesk3dsMax等软件来创建。Unity的动画系统提供了修改、完善、程序化改编和混合这些动画的工具,使它们在你正在创建的游戏或互动体验中变得生动。
Unity的动画系统是基于AnimationClips的概念,它包含了关于某些对象应该如何随时间改变其位置、旋转或其他属性的信息。每个片段可以被认为是一个单一的线性记录。来自外部的动画片段,比如上面提到的那些,被带入Unity(见roundtripping部分)然后被组织到一个结构化的流程图系统中称为AnimatorController。
2动画状态管理器
在Unity中,Animator控制器允许你为一个角色或物体安排和维护一组动画片段和相关的动画转场。在大多数情况下,有多个动画并在某些游戏条件发生时在它们之间切换是正常的。例如,当你按下空格键时,你可以从行走动画片段切换到跳跃动画片段。动画控制器,管理器管理着各种动画片段和它们之间的转换。状态管理器可以被认为是动画片段和转换的流程图,或者是用Unity的可视化编程语言编写的简单程序。
动画片段和参数在动画师控制器中的流程
混合树可以有效地隐藏复杂的计算流程。混合树没有状态,也不会回调到代码中。它只是根据你定义的参数,在不同的片段之间进行混合。这一点很重要,因为你可以对混合树进行迭代,而不用担心破坏游戏的其他部分。更重要的是,你可以隐藏一个复杂的状态网络,以防止接下来的错误。
Unity提供了动画层来管理复杂的状态机。例如,使用动画图层创建一个用于行走和跳跃的下半身图层,以及一个用于投掷物体和射击的上半身图层。除了视觉动画,动画状态还可以触发声音效果或c#代码。
3动画窗口
动画窗口允许你在Unity中直接创建和修改动画剪辑。它被设计用来作为外部三维动画软件的替代品,或者在开发过程中根据需要创建简单的动画。它提供了动画所需的标准工具集,如关键帧、播放指示器、动画时间线和动画曲线。
除了为运动的资产制作动画,你还可以为材质和组件的变量制作动画(几乎所有的GameObject属性),并用动画事件来增强你的动画剪辑,这些事件是在时间轴上的特定点上调用的函数,在编辑器中。
Unity的动画视图窗口也使你能够制作动画:
游戏对象的位置、旋转和比例
组件属性,包括材质颜色、光的强度和声量大小
脚本中的属性,如Float,Integer,Enum,Vector,andBoolean
在自己的脚本中调用函数的时间位置
生成的动画片段可以被动画师控制器或动画装配使用,并在游戏或电影序列中用时间轴进行调用。
在你的项目调用动画工具,如关键帧和曲线。
3动画绑定
使用AnimationRigging包,在运行时为动画骨架设置程序性运动。在这个包中,有一组预定义的动画约束,可以手动为你的角色建立包含层次结构的控制器,或者在C#中开发你自己的自定义的绑定。这使得在游戏过程中完成复杂的动作成为可能,如世界互动、骨架变形和基于物理的二次运动。
动画绑定的其他好处,包括能够修改你可能不容易获得的动画,或者使动画可以适应原始动画中没有考虑的新情况。
Unity中的AnimationRigging包允许你创建覆盖某些骨骼动画的rigs,或者为动画对象添加程序化的运动设置约束。你可以创建动态的动画,也可以用动画工具修改或用动画工具创建新的动画片段,或用时间轴创建电影序列。
动画装配中的骨骼功能
这个HDRP模板包括一个教程,它将引导你通过一个简短的动画片,来重点介绍创建和编辑电影、电视节目和其他动画线性内容的专业工具。
离线渲染的时代已经过去了。有了Unity,你可以创建剪影和身临其境的电影,配备了许多曾经需要离线渲染的功能。要获得在你的项目中创建你自己的电影、预告片和插图所需的所有功能,请下载功能集。从软件包管理器下载功能集:电影工作室,或从UnityHub中使用UnityLTS或更新版本启动一个新项目,并选择电影工作室样本。
4时间线
时间线是Unity的虚拟电影制作工具的骨干。它的界面允许你控制场景的元素,包括行为、动画和启用或禁用对象。用它来测试你作为导演和编辑的编辑技能。
由于你组成的场景的实时可视化,你不需要像传统动画或VFX项目那样广泛地依赖动画或故事板。正如在非线性视频编辑中,时间线界面中的每一层都是一个轨道。
通过组装多个音轨,你可以创建一个由音频、游戏序列、粒子效果等组成的电影专题。昔日的动画短片比以往任何时候都更接近于电影长片的动画。
对于创意团队来说,编辑对象的额外自由度,可以确保影片在接近交付期限时,以非破坏性的方式进行重大修改和重新剪辑,大多数情况下,这在其他媒体工具上是不可想象的。
ThedemoteamcustomizedTimelinewithitsAPIstoedittheirfilm,TheHeretic,inUnity.
5Sequences
Sequences是UnityLTS中一个新的工作流程工具,有助于保持你的电影编辑内容井然有序。使用"序列"来加强你的项目的编辑结构和创意内容,为有效的创作和协作组装元素。
序列窗口汇集了你的影片中的资产,以定义每个序列所需的资产,可以根据时间线进行剪辑,并保持你项目的整体结构。
AstillfromWiNDUP,ananimatedshortmadewithUnityandproducedwithUnityRecorder
6UnityRecorder
UnityRecorder可以渲染你的离线视频、预告片、插图或用任何渲染管道制作的电
影。它包括几种记录器类型,可以生成视频、剧照、任意输出变量(AOVs)或捕获特定的渲染通道(使用HDRP)。在UnityLTS和更新的版本中,UnityRecorder支持帧插值的运动模糊和记录路径跟踪帧,以保证拥有广播级别的质量。
Alembicsupport
Alembic是一种用于优化播放那些复杂动画的文件格式,如头发或布料。你可以导入和导出Alembicfiles(.abc),以及在Unity中直接记录和传输Alembic格式的动画。Alembic格式通常用于在应用程序之间,以烘焙数据的形式传输动画。
FBXExporter
关于FBXExporter,在上一节中提到过,允许你将内容往返于DCC。VFX和3D艺术家可以对Unity中生成的几何体或动画进行迭代,并将最终的资产送回Unity,不会有任何麻烦
Cinemachine
Cinemachine是一个虚拟摄像师,或者说是一个可以驱动的摄像系统,它能够让你对游戏中的摄像机进行移动、跟踪和缩放,类似于好莱坞摄像师在片场工作的方式。
使用Cinemachine通过取景和跟踪你的主题,而不需要编码,它为你处理所有复杂的逻辑。你可以简单地将一组模块插入到一个特殊的摄像机设备上,输入一些参数,然后看着Cinemachine完成剩下的工作。
用时间轴和Cinemachine设计电影画面
如果您已经开发了自己的摄像机系统,Cinemachine可以与您的定制摄像机解决方案一起工作。
Cinemachine对游戏中和场景中的摄像机动画都很有效。在所有的游戏类型中使用它:第一人称射击游戏(FPS)、第三人称、侧滚轴、自上而下和实时战略(RTS)。
7实施捕捉
实施捕捉包可以帮助你利用支持增强现实(AR)的iPad和iPhone的力量,在Unity中捕捉真实的表演。使用该软件包可以连接到以下两个配套的应用程序:
·Unity虚拟摄像机:一个用于使用你的移动设备来驱动Unity相机,可以直观地记录运动,这是可以手持拍摄。
·UnityFaceCapture:一个用于制作面部表情动画的app,对于动画师来说,捕捉这些信息并将其应用于角色,可以大大减少为角色面部制作动画的时间。
UnityVirtualCamera(left)andUnityFaceCapture(right)inaction
官方文档地址