龙空技术网

Unity在添加新样本项目,以展示全新的工作流和图形渲染功能

XR圈中圈 539

前言:

眼前姐妹们对“unity怎么整合场景”大约比较关切,朋友们都想要知道一些“unity怎么整合场景”的相关内容。那么小编同时在网络上收集了一些有关“unity怎么整合场景””的相关资讯,希望小伙伴们能喜欢,你们快快来学习一下吧!

Unity在2019年发布周期实现了他们的目标计划——赋予2D艺术家和创作者一套完整的2D游戏制作工具。Unity的2D软件包包括角色骨骼动画、反向运动学(IK)、平铺视图的平面设计、样条曲线形状和像素艺术工具等多种功能。

如今Unity的2D团队已经优化了这些工作流并改进了图形技术:通用渲染通道中的2D渲染器。

使用一个新的样本项目来测试这些全新功能成为了展示这些改进后功能的最好方法,通过全新的图形技术Unity让2D视觉效果闪闪发光——Dragon Crashers正是这样的一个样本案例。

关于Dragon Crashers

Dragon Crashers是一个在Unity 2020.2中制作的官方示例项目,展示了Unity的2D本地工具和图形技术套件。Dragon Crashers已经成为当今移动平台上流行的侧滚式闲置RPG游戏。

当游戏中的英雄们自动攻击敌人时,你可以通过触摸/点击不同的头像来触发特殊攻击。Dragon Crashers目前已经在桌面、移动和网络平台上完成了测试。

即将举行的网络研讨会

Dragon Crashers的概述网上研讨会将于美国东部时间4月14日上午11:00(欧洲中部时间下午5:00)举行。

艺术家Jaroslaw创造的概念艺术和资产为构建场景提供了必要的指导。

让我们开始吧

首先需要确定的是,确保你已经安装了Unity 2020.2或2020 LTS版本。之后,我们需要开始一个新的2D项目,从包管理器——我的资产入口,进入Dragon Crashers。你将看到一些项目设置的弹出消息;我们选择全部接受。

项目导入后,你会在菜单栏中看到一个新选项,它提供了项目场景的快捷方式。选择加载游戏菜单点击PLAY进入游戏测试。

我们建议在游戏视图中使用高清显示设置,例如全高清(1920×1080)设置或4K UHD(3840×2160)。

一个动画人体模型对应六个角色

英雄和敌人的队伍是多样化的,可以使用不同的装备、配件和变化来进行装饰。然而,它们都是两足动物,体型相似。

为了避免用他们各自每个动画的2D反向运动学约束,我们创建了一个人体模型。动画师可以使用人体模型进行动画制作,而角色角色设计师则可以使用人体模型为角色创造独特的皮肤和配件。

人体模型预制件用于为每个角色创建预设变体。这些变体的唯一区别是sprite库资源,在这里我们可以交换两足动物角色的视觉外观。

所有角色的sprite库资源都有相同的类别和标签来定义主体部分及其变体。例如,骑士和骷髅敌人都有一个名为“口型”的类别,在动画中使用的sprite变体被标记为“张开口型”、“露出牙齿”和“正常口型”。

要将动画应用到所有角色,需要确保每个角色的视觉资源或PSB都有类似的装备。换句话说,这些装备必须以相同方式命名并附着到身体的相同类别和标签的部分。为了节省时间,可以复制人体模型的骨骼(或参考角色骨骼),并将其粘贴到不同的角色中。此选项在sprite编辑器的蒙皮编辑器中可用。

要从另一个角色复制并粘贴骨骼信息,请确保sprite的类别和骨骼名称匹配。同时为了与新的子画面配合良好,你可能还需要调整几何图形。

预设包括使角色更生动的特征,如反向运动学、法线和遮罩贴图等,以改善在2D灯光环境中的集成性。

龙有着不同的骨骼结构,因为它在解剖学上不同于两足动物角色。动画也不会被重复使用。

合成场景、sprite、平铺图和人物外形

在原型制作过程中,没有必要那么早就把你的关卡设计固定下来。Unity中包含的世界构建2D工具让你能够轻松有趣地设计关卡,然后再轻松地在其上进行迭代。平铺贴图编辑器和Sprite Shape有助于自动化任务,例如设置碰撞器以符合对象或地形形状,而场景视图将会使游戏更加精彩和美观。

最重要的方面是在平铺调色板中准备好所有的“画笔”,它包含可重复的平铺、动画平铺、等轴或六边形平铺等功能,甚至是用一个渲染器(平铺图渲染器)高效渲染游戏对象。对于网格中的所有元素,请参考地面和墙面平铺调色板。

这里的地面是白色的,而在游戏中看起来不是白色的,这是由于我们将2D空气与灯光添加到了环境中。

另一个经常被忽视的在关卡设计中有用的特性是sprite绘制模式。该模式用于背景层的平铺sprite,可以用一个sprite覆盖一个大的场景区域,以创建一个不错的视差效果。

图中的四层背景是简单可重复的sprite。

平铺图网格可能不是向项目中添加更多有机外观的对象或基于样条线的元素的最实用的解决方案。因此,我们推荐一个基于样条的工具,比如2D Sprite形状,它很像一个矢量绘图软件。可在背景道具中使用或者作为游戏的一部分而存在。Sprite Shape渲染器能帮助你高效地渲染附着在形状的样条线或边框上的许多sprites。

预制的桥和矿车轨道还有一些例子说明了Sprite形状的边界不是一条简单的线,而是代表更复杂的元素——在本例中是一座桥和一条铁轨。

Sprite形状用于装饰元素,如铁轨,甚至前景元素,如木材结构等。

2D着色器,法线贴图和动画道具

使用2D渲染器,使用sprite照明着色器获得高级照明效果。通过给你的sprite配备二级纹理来充分展示这些效果。

法线和遮罩贴图是原始角色资源(PSB)的副本,可以在艺术创作工具中绘制。

法线贴图可以在sprite编辑器中添加。这些RGB图像代表像素所面对的XYZ方向,向2D光源发出信号,最终向我们展示光源将如何对他们产生影响。2D渲染器数据资产也可以利用遮罩贴图(在项目中的RenderData_2D.asset),它是“灯光混合样式”功能的一部分。“菲涅尔”的灯光混合风格可以用于突出人物和sprite周围的边缘灯光。例如,要实现菲涅尔效果,请选择使用遮罩贴图中的R通道信息。在这个特定的项目中,我们只有一种灯光混合风格,所以三个通道——R、G、B——看起来是一样的(黑色和白色)。这使得创建遮罩贴图的过程更加方便。

艺术家Jaroslaw同时制作法线贴图和遮罩贴图

着色器图形经常用于演示动画道具,而其本身不会对CPU造成负担。你可以观察到风推动蜘蛛网,发光的晶体,以及熔岩流动的动画,它利用一个流动贴图纹理来控制主纹理的UV坐标的方向。流动纹理使用红色和绿色来指示每个帧中像素遵循的XY方向。

手绘的流动图赋予了熔岩流粘性和卡通效果,这与项目的艺术方向相匹配。

在同一龙战场景中,还有另一种着色器动画技术,我们称之为“动画阿尔法剪辑”,它通过单个纹理创建平滑动画。这是通过基于像素的alpha值在每一帧中显示特定范围的像素来实现的。视觉效果如熔岩飞溅或点击动画等都是用这种技术和着色器图形来完成制作的。

该粒子的平滑动画是由一个单独的纹理和应用着色器图形的动画阿尔法剪辑技术制成的。

用2D灯光给场景着色

演示中的艺术风格是在考虑到2D灯及其多种可能性的情况下创造的。如大家所见,手工法线贴图和遮罩贴图对于sprites的增强是显而易见的。有些sprite,像平铺地板贴图,是灰阶的;这意味着它们是使用平铺贴图渲染器中的“颜色”选项结合环境中的发光区域进行着色的。

重要的是要考虑Unity的2D图形的可能性,我们可以最大限度地利用所有可用的选项。

实时2D灯让你在Unity编辑器中的最后一个游戏场景中花费更多的时间。你可以直接观察画面的结果,同时用灯光和物体组成你的理想场景,或者甚至能够边走边玩,让你更好地为你的游戏建立出想要的情绪和氛围。

此外,你还可以通过制作元素动画来增加沉浸感。例如从预设中选择挂起灯笼展示了如何在一个动画物体上附加一盏灯,或者给女巫角色一根带有sprite光粒子的棍子

在项目中使用2D光源的另一个好处是能够重用元素。环境和道具看起来会有很大的不同,这取决于光照条件,这允许你用相同的sprite重建许多不同的层次。

游戏架构

为了创建、架构、管理和迭代游戏,Unity的演示项目使用了可编写脚本的对象和预制构件。

所有七个角色,不管是英雄还是反派,都是从基本单位预设继承了他们的核心结构,并使用相同的行为代码。为了区分字符之间的值,Unity对基于单位的值的不同“块”使用了可脚本化对象。硬编码值让非程序员很难平衡游戏,导致游戏玩法僵化,所以Unity在可脚本化对象中设置了“攻击伤害量”、“能力冷却时间(秒)”和“单位生命值”等单位值;任何参与项目的人都可以快速调整。这些值的变化由游戏代码动态处理。

每个单元预设都有一个核心的“单元控制器”脚本,作为单元的“大脑”,它负责处理内部预设脚本引用和行为排序。例如,当龙受到攻击时,“单位控制器”会执行相关的行为事件,例如转换为退缩动画、播放吼声效果和减少龙的生命值。

例如,生命值行为单元只处理逻辑,包括设置和删除单元的生命值,以及报告重要的事件回调,如“生命值已更改”或“生命值为零”等。而“Unity控制器”会根据游戏过程中发生的场景和动作向生命值行为单元发送值。

在某些情况下,如果发生特定事件,设备外部的系统需要更新。

例如:当女巫受到攻击的伤害,并且“生命值行为单元”执行事件“生命值改变(内部生命值)”时,外部看到的“生命值行为单元UI”则可以根据该值更新女巫的生命值栏。

使用代理功能允许我们隔离和测试区域,而不依赖于其他系统。比如;在一个单独的场景中测试弹出式伤害显示数字系统的性能,而不需要模拟游戏战斗。

时间线和信号

Unity的时间线特性用于两个领域:线性过场动画和每个单位的能力序列。

线性过场发生在战斗的开始和结束。它们处理各种区域的排序,例如相机转换,角色动画,音频剪辑,粒子效果,UI动画等。每个轨迹都会绑定到相关的场景实例。

时间线信号嵌入在介绍的末尾,以便在过场动画结束时调用Unity事件。这是游戏开始战斗的逻辑的“信号”。

时间线被用来为每个单元创建预设嵌入能力序列。这使得每个单位都有自己的特殊能力,这些能力与他们的角色相关联;类似于MOBA游戏中的角色能力。

每个单位包含两个能力时间线;一个“基本”自动攻击和一个“特殊”手动攻击。“能力行为单元”脚本根据当前播放的能力、能力序列队列和开始/停止能力冷却时间(取决于高级游戏逻辑,如开场过场动画是否正在播放,或者一个单元是否已经死亡)来处理两个能力时间线的逻辑。

能力时间线轨道绑定在单位预设的本地系统中,包括角色的攻击动画和粒子系统的VFX动画。这使得程序员和艺术家们都可以单独使用预设编辑模式对游戏中的每一个预设单位进行修改。

时间线信号通常用于当一种能力对一个单位目标的生命值造成伤害时。

比如骑士挥剑时,我们希望剑一到了动画中的临界点就施加伤害,而不是挥剑的开始或结束就会造成伤害。

随着动画和VFX在开发过程中的迭代,艺术家们可以以非常快速的工作流程将“能力使用”信号重新定位到序列的新的期望点,而不需要依赖程序员来更改代码中的任何值。

这也允许我们在连续攻击中添加多个“能力使用”信号,例如龙向英雄们喷火的时候。

总结

Unity的2D游戏创作功能在全新版本公布后得到了全面的提升,通过将Dragon Crashers加入Unity2D游戏制作工具的样板案例,Unity向其使用者展示了如何使用全新的图形渲染通道和时间线工具打造出具有流畅逼真动画特效和沉浸式玩法的2D横板闯关游戏。

全新的图形渲染通道让游戏角色更加饱满,反向运动学功能让角色的动作更加真实,而时间线工具更是提升了玩家的游戏沉浸感,而Unity本身的功能整合也使得创作者们的工作流程大大简化,避免了重复的操作步骤,节省了宝贵的游戏开发和迭代时间。

对于2D游戏创作充满热情的创作者们现在可以下载Unity全新版本来感受与之前截然不同的2D游戏创作体验。

标签: #unity怎么整合场景