查看原文
其他

新2D示例项目《Lost Crypt》提供下载

Unity Unity官方平台 2022-05-07

我们发布使用最新2D工具制作的2D横向滚屏游戏示例项目《Lost Crypt》。本文将介绍如何在Unity中使用最新的2D工具制作出高质量视觉效果。


多年以来,许多技术出众的开发团队使用Unity制作了不少精美的2D游戏,而我们希望让每个人,不论是独立美术师还是大型团队,都可以使用更多2D工具来制作受玩家喜爱的游戏。在Unity 2019.3中,许多新的2D工具将可用于正式的制作流程。


下面视频展示了一些使用Unity制作的精美2D游戏。



我们使用Unity 2019.3中最新的2D工具制作《Lost Crypt(失落的地穴)》项目。在游戏中,我们使用了包括动画、光照效果、自然的地形、着色器和后期处理等功能,所有内容都使用2D工具制作。


《Lost Crypt》项目展示了无论面向不同平台,各种规模的团队,现在都可以使用Unity 2D工具高效的制作出更为精美的作品。


《Lost Crypt》项目可以在任何桌面端平台流畅运行,如果想要在iOS或者Android设备上运行该项目,我们也使用新的输入系统实现了触屏控制功能。在我们的测试中,《Lost Crypt》游戏可以在iPhone 6S等常见设备上以30fps的速度流畅运行。


下载《Lost Crypt》项目:

https://assetstore.unity.com/packages/essentials/tutorial-projects/lost-crypt-2d-sample-project-158673


设置项目

我们从Asset Store资源商店中下载《Lost Crypt》项目,然后在Unity中新建空白的新项目,创建时选择2D模板,然后在资源包管理器中从My Assets(我的资源)导入项目,或者点击Asset Store资源商店的My Assets页面进行导入。


《Lost Crypt》项目包含所有制作2D内容所需的资源包。在导入完成后,资源包将重写项目设置,将通用渲染管线中的渲染设置改为2D Renderer渲染器选项。


如下图所示,我们可以看到《Lost Crypt》项目中使用的渲染管线资源,以及通用渲染管线和2D渲染器。


 

在导入完成后,我们将看到Main Scene主场景。点击运行按钮后,我们就可以使用方向键和空格键来玩游戏。


游戏的脚本和逻辑都比较简单,该示例项目的重点是使用2D工具来实现概念艺术我们将示例项目的制作过程分成多个小任务,并选取合适的2D工具来制作视觉效果。


下图是原始的概念艺术图,是我们与B2tGame工作室合作的成果。


角色动画

我们使用Photoshop设计游戏角色,并使用2D PSD Importer导入工具直接将文件导入到Unity中。这避免了我们在Photoshop将文件导出为单独的精灵,并在Unity中逐个将它们拼接。


我们使用Sprite Editor精灵编辑器打开Sara.psb文件后,可以查看角色的设置和绑定。如果使用Photoshop打开文件进行对比,我们可以发现不同身体部位和图层信息都完整地导入了Unity。

 


通用渲染管线的一个新功能是Sprite-Lit材质。与普通的Sprite-Default材质相比,该材质能够让精灵受到2D光照条件的影响。

 

我们在精灵编辑器中使用Secondary Textures(次级纹理)下拉菜单选项,导入了角色的法线贴图。我们可以在此为2D动画角色、普通精灵、Tilemap和精灵形状添加法线贴图和遮罩贴图。

 

如下图所示,角色身上的法线贴图表示精灵不同部分反射的光照量。



角色的腿部使用了2D IK解算器,有助于动画师调整脚踝和脚尖到正确位置,从而让整个腿部实现正确的动画。



在完成角色绑定后,我们使用了动画工具制作了不同的动画,还使用Animator来控制不同的动画状态。


请观看下面的视频演讲,学习动画工具的使用方法。



游戏角色的辫子是一个特别的子对象,使用2D Physics物理功能来控制。辫子随角色运动会有逼真的动画,辫子上的每个骨骼都有一个Hinge Joint 2D组件和一些约束。这样,角色的辫子就能随着角色移动而自由摆动,而不会卷曲成团或者过度摆动。


如下图所示,我们在辫子上添加了2D物理的链条配置功能,在链条末端设置了权重值。

 

昼夜的光照循环

在精灵上使用动态光照的最大好处之一是能够改变整个环境的外观。在同样的精灵中,我们可以改变氛围、时间或者特定区域的明暗程度,实现更多的游戏机制和效果,例如:潜行机制和细节丰富的世界。

 

如下图所示,2D Light光照功能开启和关闭时的对比。我们可以使用同样的精灵制作不同的天气条件和氛围。



我们在场景中使用简单的脚本来控制光照。脚本包含一个Color渐变值,控制从白天到夜晚的光照颜色,光照和材质会随着父游戏对象的Time参数而改变颜色。有了这种设置方式,我们可以可视化控制不同光照互相结合的光照效果。

 

如下图所示,通过给光照加入着色,我们可以让相同的精灵有不同的外观,从而实现不同的游戏体验和艺术风格。


大型户外纹理地形

早期的2D游戏开发者面临的一个重要问题是:如何高效地制作自然的地形,例如:山丘、斜坡和不规则的地面。


过去只能使用精心制作的瓦片图集来制作,现在我们可以使用多个精灵表示地形的不同部分,更轻松地制作出这类地形,同时工作流程和性能都可以得到改善。

 

如下图所示,我们在地面图层和右边的Sprite Shape Profiles(精灵形状配置文件)中使用了2D Sprite Shape功能。



通过使用2D Sprite Shape精灵形状功能,我们可以像使用基于矢量的绘图工具一样,来生成地形和碰撞体。我们可以在Sprite Shape Profile配置文件调整笔刷,直接开始创作,而且不必在迭代环境时调整大量精灵或碰撞体。

 

《Lost Crypt》项目还使用了Sprite Shape精灵形状的其它功能,例如:NodeAttach脚本可以把场景元素附加到样条曲线,让这些元素根据样条曲线变化。


在示例项目中,石块部分在花图层上使用了该脚本和ConformingSpline,确保岩石能够根据草样条曲线的形状生成。我们可以使用这个功能处理游戏内容和装饰性元素,就像在草图层的做法。


使用网格布局构建地穴环境

Tilemap是最重要的2D工具之一,它不仅能够将地图分成多个图形块,节省许多内存空间,还能够重复平铺图形,这对关卡设计至关重要。


下图是示例项目中的瓦片图集和法线贴图图集。


 

在《Lost Crypt》项目中,我们使用了2D Tilemap Editor编辑器来构建地穴的内部环境,也使用了Tilemap的额外工具,让关卡设计过程更加高效。例如:我们使用了Rule Tile规则瓦片,这种瓦片类型可以像笔刷一样在关卡中绘制瓦片,会根据相邻的瓦片或端点,自动选择使用正确的瓦片。

 

下载Tilemap的额外工具:

https://github.com/Unity-Technologies/2d-extras

 

访问Rule Tile文档地址:

https://github.com/Unity-Technologies/2d-extras/blob/master/Documentation~/RuleTile.md

 

如下图所示,为了改善工作流程,我们在地穴的制作中使用了2D extras代码库中的Rule Tiles规则瓦片。


火焰效果

火焰效果是游戏中最常见的特效之一,我们在《Lost Crypt》项目也加入了火焰效果。


首先,我们使用2D粒子系统和Shader Graph着色器视图创建了火把的游戏对象。然后在输出着色器上使用了Sprite-Lit主节点。我们使用传统的精灵图集制作了火焰动画,粒子系统会使用精灵图集来播放动画。

 

下图为我们使用动态2D着色器和粒子来制作火焰效果。



火焰效果着色器使用了HDR着色和Volume体积后期处理效果,来增加对象周围的光照强度。父对象包含火花粒子和其它光照,用来照亮壁龛部分。


水面反射

戏中另一种常见的着色器使用方法是实现反射和折射效果,例如:水、冰、镜面或显示关卡其它部分的屏幕。


如下图所示,通过更改水着色器上的参数,便可实现不同的效果。



地穴中的水面效果完全使用Shader Graph着色器视图来制作。我们将多个参数公开到检视窗口中,例如:水面颜色、波纹速度、扭曲效果和涟漪效果等,方便在场景调整最终效果。


为了将环境的反射画面投射到水面上,我们添加了一个额外的摄像机,它会将图像输出为Shader Graph着色器视图可以读取的纹理。此外,我们还添加了Bloom(泛光)后期处理通道,用来制作水体焦散发光效果,给水面增加更加美观的效果。

 

如下图所示,我们将Shader Graph着色器视图分成多个分组,并加上了相应的标签,以便于理解。


风的动画和混合风格




如下图所示,在《Lost Crypt》项目中,我们使用了Sprite Shape精灵形状、2D Lights光照和Shader Graph着色器视图实现了树木和草地的效果。



使环境充满生机的一种方法是使树枝在风中摇曳。为了实现这种效果,我们决定在每个树叶预制件只添加一个着色器,它可以产生多样的动画,而且不会有单调重复的效果。

 

如下图所示,在精灵窗口中,我们添加了法线贴图和遮罩贴图,它们将在Shader Graph着色器视图中使用。



在Vegetation Wind-Lit视图中,可以看到我们制作出树叶的两种效果。第一种是树叶摆动的动画,我们通过使用修改噪声图案的参数,来替换顶点位置,从而实现摆动效果。第二种效果使用G通道即绿色通道,来调整枝叶周围边缘光的色调。

 

请注意下图中,我们如何在着色器中使用遮罩贴图的G通道,来改变右侧画面的树叶边缘颜色。



Light Blend Styles(光照混合样式)是 2D渲染器的属性集合,它描述光照对精灵的影响。例如:我们可以创建只影响特定通道的混合样式。当在场景中添加该混合样式的光照时,光照只会影响遮罩贴图通道中指定的精灵区域。

 

在下面示例中,参数光照使用了Direct Lighting(直接光照)混合样式,该样式只影响精灵遮罩贴图中R通道指定的区域。


左侧可以看到2D渲染器中使用的光照混合样式设置,右侧是使用混合样式的2D光照设置。


过场动画和粒子效果




在《Lost Crypt》项目中,当探险者抓起地穴的魔棒时,游戏会播放简短的过场动画。为了让过场动画看起来比较特别,我们改变了环境的氛围,同时为了体现晚上环境的变化,我们使用Timeline在正确时机生成粒子。


为了让画面随着粒子飞进丛林中,我们添加了混合动画轨道摄像机,从而切换原来的Cinemachine摄像机。

 

如下图所示,我们使用Timeline组合摄像机、音频和图像,来制作出过场动画。



当玩家捡起魔棒时出现的光环是使用精灵类型的光照制作的,光环图像会逐渐扩大和消失,形成照亮环境的光圈效果。

 

大部分粒子发光效果都使用Volume体积后期处理功能中的泛光效果来实现。同时,粒子和尾迹的材质和着色器使用了HDR颜色,来定义该对象上后期处理效果的强度。


如下图所示,粒子可使用Random Seed功能,确保动画总是有相同效果。


幽灵动画




如果仔细观察树丛,我们会发现那里有幽灵生物。为了制作出这种效果,我们创建了用于其它幽灵的着色器。这些幽灵本身是透明的,但是我们使用菲涅尔效果为精灵的边缘添加上了发光效果,让幽灵有在空中摇摆的效果。

 

该着色器中有一个非常有意思的效果:魔棒游戏对象位置的跟踪效果。当魔棒靠近幽灵时,幽灵会变得更加明亮。


为了实现这种效果,我们为魔棒对象添加了一个脚本,它会在材质着色器上更新对象的位置。如下图所示,我们可以在着色器公开部分数值,根据游戏机制需要来调整图像效果。



幽灵还有通过切换两个图形实现的小动画。为了实现这个效果,我们在每个通道上使用不同的图形创建了遮罩贴图,通道的内容包括:R通道包含其中一个图像,G通道包含另一个图像,B通道是菲涅尔效果。

 

如图所示,当魔棒距离较远时,我们依旧可以看到幽灵,右侧是遮罩贴图的视图。


添加Volume后处理




为了给画面加入最后一层美化部分,我们添加通用渲染管线中的部分后期处理效果。

例如:我们创建了空白游戏对象,在该对象添加Volume组件。


在《Lost Crypt》项目中,我们使用了泛光、白平衡和晕影效果,此外还有许多可以用到2D项目中的效果,例如:动态模糊、胶片颗粒效果中的颜色矫正。

 

下图是《Lost Crypt》项目中的Volume后期处理设置。


《Lost Crypt》网络研讨会




我们在明年1月即将举行《Lost Crypt》网络研讨会,如果你想要了解《Lost Crypt》项目的幕后制作过程,欢迎参加我们的网络研讨会。


在网络研讨会上,全球内容技术经理Andy Touch将详细讲解我们在《Lost Crypt》项目中使用的2D光照、着色器和后期处理效果。此外,R&D的2D团队也会在研讨会上解答大家关于2D工具和项目的问题。

 

研讨会的名额有限,请尽快报名:

https://unity3d.zoom.com.cn/webinar/register/WN_-dymEZf5QT2GrU8_HxTbYg


结语




我们衷心的希望《Lost Crypt》示例项目能够帮助你学习如何在类似项目中使用我们的2D工具。


如果你有任何关于《Lost Crypt》项目的问题,请访问Unity官方论坛。

https://forum.unity.com/forums/2d.53/



下载Unity Connect APP,请点击此处观看更多Unity官方精彩视频,请关注“Unity官方”B站账户。


扫码在“技术交流“群聊组中提问,Unity社区和官方团队帮你解答。



推荐阅读

2D Pixel Perfect:使用Unity创建复古16位游戏

教程 | 使用Unity制作2D动作游戏

使用Tilemap创作等距2D环境

Unite Shanghai 2020正式启动

Unity Project Tiny HTML5 3D游戏开发入门

Unity问答 | 盘点2019年社区优秀问答

中国大学生VR/AR开发大赛获奖作品100%使用Unity打造

Unity制作人专场|打造3A级游戏渲染方案


Unite Shanghai 2020

Unite Shanghai 2020正式启动,暖冬特惠票热销中,购票即可获得多款Asset Store特定精品资源5折优惠码。[了解详情......


点击“阅读原文”立即下载示例项目

↓↓↓ 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存