随着新的2D工具不断推出,我们用最新的技术制作出了一个2D横版演示游戏。在本文中,我们将向大家演示如何使用这些2D工具在Unity中制作出高端图像。
有许多水平高超的团队多年以来用Unity制作出了许多美观的2D游戏,而我们希望让每个人,不论是个人艺术家还是大型团队,都能拥有更多的2D工具来制作同样吸引眼球的游戏。而许多工具将在Unity 2019.3中作为正式产品上线,请期待引擎的beta测试结束。我们使用了一整套2D工具来制作《失落的地穴》。在游戏栩栩如生的场景中我们使用了包括动画、光效、自然的地形、着色器和后期处理等功能,所有内容都以原生2D制作。任何规模的团队和项目,现在都能更高效地制作出美观又引人注目的作品了。《失落的地穴》可在任何桌面电脑上流畅运行,同时如果想要在iOS或者安卓设备上运行游戏,我们也使用了新的输入系统应用了屏幕控制器。在测试中,游戏可在如iPhone 6S这样的常见设备上以30帧每秒流畅运行。
从资源商店中下载完《失落的地穴》后,我们建议在引擎中新建一个New Project(新项目),类型选择2D,然后在资源管理器中从My Assets(我的资源)中导入项目,或者点击资源商店页面的My Assets选项。项目中包含了所有制作2D内容所需的资源包。在导入完成后,资源包将改写项目设置,将通用渲染管线中的渲染设置转换到2D渲染器选项。
在导入完成后,我们将看到一个主场景。点击运行按钮,我们就可以正常地使用方向键和空格键来游玩游戏。游戏的脚本和逻辑都是比较简单的,该演示项目的主要关注点是项目中用于实现概念美术的2D工具。整个demo的制作被划分成不同的任务,每种视觉制作都使用了特定的2D工具制作。
我们使用Photoshop设计出了人物,并使用2D PSD导入器直接将文件导入到了引擎中。使用精灵编辑器打开Sara.psb文件可以查看人物的设置和动画绑定。如果使用Photoshop打开文件,可以看到不同身体部位和图层信息都保存完整。
通用渲染管线的一个新功能是Sprite-Lit(精灵光照)材质。与普通的Sprite-Default(默认精灵)材质相比,该材质能让精灵受到2D光照条件的影响。我们在精灵编辑器中使用了Secondary Textures(次级材质)下拉菜单选项导入了人物的法线贴图。我们可以为2D人物动画、普通的精灵、块图和精灵形状加上法线和遮罩贴图。
人物的腿部还使用了2D IK解算器,动画制作只需将脚踝和脚部的位置摆放好,剩余的部分就能正确地形成动画了。
在完成动画绑定后,我们使用了动画工具制作了不同的动画,还用动画器来控制不同的状态。你可以在这个GDC 2019演讲中了解到工具的使用方法。人物的马尾辫则是一个独立的子对象,受2D Physics影响。辫子随人物运动会有逼真的动画,每个辫子的节点上都有一个Hinge Joint(铰链关节)组件和一些约束[a][b]。这样一来,主角的发辫就能随着移动自由摆动,还不会卷曲成团或者过度摆动。
在精灵上使用动态光照的一个最大的好处是改变整个环境的外貌。在同样的精灵中,我们可以改变氛围、时间或者特定区域的明暗,实现更多的游戏机制,如潜行机制和更富细节的世界。
我们在场景中使用了一个简单的脚本来控制光照。在脚本中,保存有一个渐变的颜色设置(从白天到夜晚的光照颜色),而光照和材质会随着父游戏对象的时间参数变化而改变颜色。有了这种设置方式,我们可以控制不同的光照互相糅合,形成不同的光照效果。
在早些时候,2D游戏开发者们所面临的一个大问题是高效地制作如山丘、山坡或其它不规则的地面,这些地面通常布满植被,只有用精心制作的图块表单才能高效地加入到游戏中。但是多年以后的现在,我们可以使用不同的精灵来组合成一块地形,更快地制作出生机勃勃的地形,同时工作流及性能表现会有更大的改善。
有了2D精灵形状图形,我们可以像作画一样通过拖动来生成地形和碰撞体。我们可以调整笔刷(在精灵形状图形配置中)后直接开始创作,还无需在更改环境时调整成堆的精灵或碰撞体。《失落的地穴》还使用了一些额外的精灵形状图形,比如NodeAttach脚本可以确保元素贴近样条,随样条展开。在演示项目中,石块部分使用了脚本和花朵图层上的ConformingSpline,确保岩石能跟随草地的样条生成。各位可以学习我们在关前的草地图层上的做法,使用这个功能制作游戏或装饰性元素。
块图可能是最重要的2D工具之一了,它不仅能将地图分成一个个图形小块,节省许多内存空间,还能让我们重复“堆砌”地图,对关卡设计至关重要。
在《失落的地穴》中,我们使用了2D块图编辑器(可在包管理器中下载)来构建墓穴的内部景观,还用了额外的块图工具(可在GitHub上或在下方下载)让关卡设计更加高效。比如,我们在制作时使用了Rule Tile(尺规块图),可以像用笔刷一样在关卡中画出块图。块图会根据相邻的块图或端点自动生成正确的块图。
火焰特效是游戏中最常见的元素之一了,我们在《失落的地穴》中也加进了火焰。我们先用2D的Paritcle System(粒子系统)和Shader Graph(着色器节点图)创建了一些火炬游戏对象,然后在输出着色器上使用了Sprite-Lit(精灵光照)主节点。我们使用了传统的精灵表单制作出了火焰动画,再使用了粒子系统来播放动画。
在火焰的着色器上使用了一种HDR颜色,还使用了Volume(体积)后期处理效果来增加对象周围的光照强度。在父对象上还包含了一些火星粒子和特殊光照来照亮壁龛。
游戏中另一种常见的着色器使用方法是反射和折射(比如水、冰、镜面或显示器上的景象)。
在墓穴中的水体效果完全使用Shader Graph制作的。我们将不同的参数(如水体颜色、波纹速度、图像扭曲和涟漪效果等等)公开到了场景中,方便调整最终效果。为了将环境的图像镜面投射到水上,我们添加了一个额外的镜头,将纹理输出到Shader Graph中用于进一步处理。此外,我们还添加了一个Bloom(泛光)后期处理通道,来制作水体焦散发光,给水的表面加上更加漂亮的效果。
我们给环境添加的一种动画是让树枝随风摆动。为了实现此种特效,我们决定为每个树的枝叶预制件单独添加一个着色器,以做出多样的动画,防止单调地重复。
在Vegetation Wind-Lit(植被风力影响)图表中,可以看到我们是如何制作出两种效果的。其中在晃动动画制作中,我们添加了一个噪声模式,将顶点位置偏移到相近的位置上。第二种效果则是使用G(绿色)通道来调整枝叶周围环绕光的色调。
“Light Blend Styles(光照混合风格)”是一个2D渲染器属性集合,它描述了光照如何影响精灵。比如,我们可以创建一种只影响特定通道的混合风格。当在场景中添加进该种风格的光照时,光照只会影响遮罩贴图通道中指定的精灵区域。在下方示例中,光照使用了Direct Lighting(直接光照)混合风格,会只影响精灵的遮罩贴图R通道指定的区域。
《失落的地穴》中,当我们的探险者抓起地穴的魔棒时,会播放一个简短的过场。为了让过场显得更为特殊,我们改变了环境的氛围,同时为了体现出晚上环境的不同,还根据时间轴在正确的时机生成粒子。为了让镜头跟随粒子飞进丛林中,我们还加上了一个混合动画轨道镜头,用于替换原来的Cinemachine镜头。
当玩家拾起魔棒时出现的光环是用精灵类型的光照制作的。光环图像会扩大、淡出,形成一种照亮环境的光圈效果。大部分的粒子发光效果都是用Volume(体积)后期处理中的泛光效果制作的。同时,粒子和尾迹的材质/着色器使用了HDR颜色,来定义该对象上后期处理效果的强度。
如果仔细观察树丛,会发现那里有一些幽灵般的生物。为了做出这种效果,我们创建了一个鬼怪身上通用的着色器。生物本身是透明的,但是我们用菲涅尔效果为精灵的边缘添加上了一些发光效果,让生物像漂浮着一样晃来晃去。着色器中有一个非常有意思的效果:追踪魔棒游戏对象变换的位置。当魔棒靠近夜鬼,它们会变得更加明亮。而为了实现这种效果,我们为魔棒添加上了一个小脚本,在材质着色器上更新对象的位置。
夜鬼还有一个由两张图形互相切换构成的小动画。为了实现这个效果,我们在每个通道上用不同的规划图表创建了一个遮罩贴图:R包含了一个图像,G包含了另一个图像,而B上则是菲涅尔效果。
最后为了加上一层润色效果,我们添加上了通用渲染管线中的部分后期渲染效果。举个例子,我们创建了一个空游戏对象,在其中加入了一个Volume组件。在《失落的地穴》中,我们使用了泛光、白平衡和剪影,此外还有许多可以用到2D项目中的效果,如动态模糊、胶片颗粒效果中的颜色矫正。
希望《失落的地穴》能帮助各位学习如何在类似项目中使用我们的整合2D工具套。如果有任何关于《失落的地穴》的问题,可以在论坛上联系我们。如果对我们的2D工具有疑问,可以看看论坛2D板块和Beta & Experimental下的专门话题。
想要了解《失落的地穴》幕后?会上全球内容布道Andy Touch将详细解释我们在《失落的地穴》中使用的2D光照、着色器和后期处理效果。同时R&D的2D团队也会在会上解答大家关于2D工具和项目的问题。
席位有限,先到先得,别忘了将研讨会加入你的日程。