使用Unity创作《塞尔达传说:旷野之息》风格的视觉特效

《塞尔达传说:旷野之息》是任天堂游戏公司出版发行的开放世界动作冒险游戏。 发售以来获得业界极高评价,2017年获金摇杆奖年度最佳游戏奖 ,TGA 2017年度最佳游戏。

今天将由来自巴西的视觉特效师Gregory Silva,分享使用Unity创作类似《塞尔达传说:旷野之息》风格令人惊艳的视觉特效。

制作过程视频观看:[anyplayer:url=http://super007fbi.kmdns.net:444/wp-content/uploads/video/saierda_fx.flv width=640 height=360 title=制作过程视频 open=no]

《塞尔达传说》的视觉特效
新版《塞尔达传说:旷野之息》游戏比以往更为出色。在E3游戏展上它的首个游戏视频发布时,我记得视频里的爆炸效果是多么引人眼球。

当我对处理粒子和着色器拥有足够的经验后,观看这些爆炸效果,我开始思考总体时间设置,怎样使其从一个核心点展开,然后像面向摄像机的公告牌一样操作。我把仿制这样特效作为对自己的挑战。

着色器工具
从头编写着色器需要大量的时间,如果使用可视化着色器工具来编译并即时测试着色器,会给开发过程带来很大帮助。

本文中项目中使用的是Shader Forge,但其已停止更新并开源。开发者可以使用Unity 2018.1版本提供支持可编程渲染管线SRP的可视化着色器编程工具Shader Graph

Shader Graph下载:
你可以直接通过Unity编辑器中的资源包管理器Package Manager进行下载使用。

Shader Forge源码:
https://github.com/FreyaHolmer/ShaderForge

光束
在多次观看游戏视频后,我分析了原始效果上纹理所用的形状,然后尝试在Photoshop中仿制这些形状。这些形状基本上是圆形、星形或十字形。

下面原始效果和我制作的粒子效果对比图:144421yulbuv62i7zli28l

 

虽然这些粒子大多是简单的Alpha混合纹理,但需要对带有明亮线条的能量弧进行一些特别处理。为此,我在处理纹理Alpha时使用了二个平滑插值,其中一个插值的最小值比另一个稍微大一些,另一个插值则带有较大的衰减值,然后将这二个值相减,与此同时,使用来自粒子系统的顶点颜色信息来替换最小值。最后将这些线条添加到纹理颜色上。

得到的结果如下图所示

144428vfbwzfqa7tcwt77m

能量的条纹使用了另一个自定义着色器。这些条纹使用了带有曲线形状的简单几何,我在不同的轴上变换缩放大小和旋转角度,创造出多样化效果。

对于着色器,我使用其自带UV制作的遮罩来抹除边框,然后使用滚动噪声值来削减粒子,这一步再次使用了平滑插值和顶点颜色。

 

144435yv2x3ex26753e6ey
光束形状的解决方案非常简单。我使用具有缩放动画的球体,通过粒子系统进行处理,并特别设置其位置使它看起来在向目标移动。对于定位过程,由于这仅用于视频部分,不会在实际游戏中使用,所以可以手动进行定位。

在该特效的实现过程中,可以将粒子位置和目标位置相减来得到方向,然后使用二者之间的距离作为给定轴上的比例大小来进行正确定位。粒子旋转也可以使用之前计算出的方向来设置。

下图是光束的缩放动画:

144441pip5dzrbgcjzlz5h
为了在光束上制作出最后的消逝特效,我使用了效果类似能量条纹的着色器,但是由于球体的UV布局和平面不同,我必须使用与噪声纹理相乘的Fresnel参数来削减不透明度。

下面是效果截图:

144442qrio1yl3tkj31ovv

144442gt55c5t4ttvygqvu
在光束偏转动画上,我也使用了同样的方法,但在比例大小上使用了稍微不同的曲线。我将球体保持在较小的比例,使其面向目标,再增大球体,从而营造一种光束被护盾压缩的感觉,然后快速快速增大光束大小,并使光束变细来产生光束速度加快的效果。

 

144450qj0jane7wqw0ya7z
镜头光晕带有一个复杂的着色器。由于它是《塞尔达传说:旷野之息》中古代之箭特效的主要部分,我花了不少时间制作这个着色器。这个着色器会生成由四边形的UV布局制作的遮罩,添加带有滚动效果并被UV遮罩的焦散纹理,但它带有不同的不透明值。让纹理出现在不透明网格前的技巧是,使用反面视图方向在摄像机方向偏移顶点。

虽然它看起来像在原地不动,但其实它正朝你接近。下图是与其它效果分离的镜头光晕特效:

 144456tbbpu3e57c3b7y31

下图是守护者机器人光束特效的图集:

 144456wzs4tktkchtpghi9

炸效果
大多数爆炸粒子是使用带有Alpha削减的简单纹理,缩放动画来实现。

爆炸效果分为五个阶段,前三个阶段发生速度很快,后二个阶段则比较慢,使得效果较为简洁。这五个阶段是:
1、出现带尖刺的球体;
2、产生冲击波,冲击波是面朝摄像机的圆形网格的一部分,然后快速缩放大小;
3、飞出碎片或残渣,产生猛烈的撞击感,就像开始时从明亮球体飞出的快速粒子;
4、产生高温烟雾;
5、烟雾消散。

下图是原始爆炸效果和仿制爆炸效果分阶段对比图。

 144457z1vh2phv4vxlxvhk

处理烟雾的技巧是使用自发光或使用着色器。在原始特效上烟雾会远离中心点,然后表现得像公告牌一样。

我仿制这个效果的方法是结合使用拉伸公告牌和常规公告牌。拉伸公告牌不会朝摄像机方向发射,这样避免它们看上去像纸张一样薄。我使用了二个半圆环作为发射器,通过脚本使圆环的方向总是朝着摄像机:

144533lt8up8h830v8z6pj
烟雾图都是手工绘制,包括削减的噪声。烟雾的纹理使用了四个通道以及一个自定义着色器,包括:
1、红色通道上的颜色渐变,用来设置烟雾的着色,并为二个颜色做插值,然后乘以顶点颜色;
2、绿色通道上的手绘噪声,用来制作火焰效果,噪声值会与颜色和亮度值相乘,然后添加到粒子颜色上;
3、蓝色通道上是削减动画制作的手绘噪声;
4、带有Alpha上烟雾的形状,用来处理不透明度的遮罩。 144533zfr270tio7k9htr2

另一个纹理用于创建在烟雾消散时龙卷风特效。我使用了一个Photoshop制作的旋转流图,用来在蓝色通道上扭曲噪声的UV。为了只旋转噪声,我给纹理使用二个采样器。

火焰、消散和扭曲的效果都是用自定义数据和顶点流来控制的。Unity的粒子效果有选项用来创建自定义的数据流,通过将粒子数据传入使用UV数据的着色器来实现。

此项目中,我使用了TEXCOORD1.xyzw来控制特效的每个部分:
1、X控制火焰消散效果。我用它来将粒子作为火球启动,然后在火焰消逝时制作冷却效果;
2、Y控制着色的抠出值。这意味着我会控制在烟雾颜色上所带有的阴影数;
3、Z控制Alpha消散;
4、W控制消散噪声的旋转角度。

144534cfftunl7c7sc31t1

古老之箭特效
在多次观看游戏画面后,我将古老之箭特效分离为四个阶段:
1、弓箭蓄力状态;
2、带有焦散的巨大镜头画面;
3、出现一个突然打开然后缓慢关闭的传送门;
4、命中目标被传送门吞噬。

 144535vb36s3auyggo9rug

对于镜头光晕,我使用了制作守护者光束镜头光晕时用到的相同着色器。为了使它带有明亮的核心效果,我使用了二个镜头光晕,一个光晕在另一个之前;一个在Y轴上较小,另一个则几乎覆盖整个屏幕。

传送门的打开过程和爆炸效果类似。我给传送门使用了大量爆炸效果的粒子。当传送门打开时,我使用了相同的冲击波和碎片,换成不同的颜色,从而创造出冲击特效和镜头光晕。

144541giiw3ci5ji5rx36d
然后,我使用了来自守护者机器人光束特效的能量条纹,以及爆炸效果修改了颜色的琥珀,这次琥珀会向特效中心移动,而不是被弹出。

和传送门开启过程相反,吞噬特效的过程较慢。慢速粒子在传送门着色器的作用下会移动到中心,这个着色器拥有向中心滚动的纹理。我还制作了旋涡形状的模型,上面也有纹理向中心滚动。

下图是用于传送门和旋涡的几何体。

144541ibbbv9q44z0pq9pr
开启过程的高潮部分是在旋涡完成后,这个准备过程由弓箭蓄力特效产生。它取决于向守护者机器人发射前的蓄力过程。

大小和动态效果
对于特效的大小,我使用了一个球体作为林克大小的参考对象。这个球体的直径为1个单位,我根据这一点设置场景中守护者机器人的大小。我尝试使特效的大小尽可能接近原始特效,所以我通过观看光束偏转的视频来了解守护者机器人身上的爆炸效果。这让我对仿造的特效大小拥有更好的了解。

对于动画,我尝试为准备状态的每个特效创建顶点曲线,该曲线就在最高顶点之后,它会以较慢的速度结束。除了偏转特效,它还拥有二个顶点。

我还在某些时间点给时间刻度设置了动画,从而让观众注意到特定事件。例如:当守护者光束被偏转后,光束击中护盾时会有短暂的慢动作效果。这个过程会突出护盾被击中的过程,产生击中时的冲击感。守护者机器人的动作也帮助表现了序列的整体动画流。当守护者机器人被击中时,它会被击退,花一些时间来恢复,然后再走回初始位置。

 144543smqui8ko26u8uwov

心得体会
介绍一下我制作这个项目一些心得体会。

首先是时间。像爆炸和古代之箭这样复杂特效的制作大概需要3~5天时间,但这取决于调整时间点和纹理所花费的时间,以及根据艺术总监的反馈做出的调整次数有关。

本项目中,我花了大量时间来制作爆炸效果,因为我正研究原始的爆炸效果,试图通过学习发射技术来模仿出它的行为,并且从烟雾中绘制不同的纹理等。制作古代之箭特效所花的时间就少多了,因为我已经有一些可以使用的纹理和着色器。我花了一个晚上来制作守护者机器人的死亡动画。

学习曲线是个很大的挑战,因为很难找到关于实时VFX制作的较好学习材料。需要观看大量关于特效制作的视频,并不断尝试不同的方法来仿制特效,直到制作出满意的作品。

Unity制作蝴蝶烟火视觉特效

今天由育碧的工程师Parag Ponkshe为我们介绍如何制作蝴蝶攻击的视觉特效。

Parag Ponkshe曾在电影和动画行业担任视觉特效美术师,参与制作的作品包括:《波斯王子:时之逃亡》、《爱心小熊肚皮碰碰对》、《南方公园:手机毁灭者》等。本文中的作品是他为Riot Creative Contest 2017而开发的作品。

作品构思
当拳头公司宣布Riot Creative Contest 2017举行的时候,我立即决定参加,这次大赛11月开始,我花费了长达2个月来思考项目的创意和内容。某天我正在观看《魔戒》时,电影中一个优美的蝴蝶烟火吸引了我。尽管这个画面在电影中只持续了很短的时间,但我立刻意识到,可以为这次大赛去创作什么了。

由于仅有1个月实践进行创作,我不想再浪费时间考虑创意或绘制概念草图,我决定直接使用这个概念。说起蝴蝶,我们通常会想到美丽、平和等特征,但这些不是它的必然特征,蝴蝶也可以变得很危险!

005302xxq86va3qf3m1fu1
说明:Riot Creative Contest 2017为美国拳头公司举行的创意大赛,参赛者为《英雄联盟》创作动画、VFX、原画、角色、音效等,仅限制个人参赛。

原型制作
在早期阶段,我仅用基础的纹理和Unity标准粒子着色器制作了一大片蝴蝶从烟火中飞出的效果。最初我仅想要它们飞出来即可,但之后觉得,要是它们还能飞回来并进行攻击该多好。

这个想法从概念来看很棒,但我不确定蝴蝶返回冲刺的特效该怎么做。这里的关键要素是外部作用力模块,我从未使用过这个模块去吸引和驱散蝴蝶。

我使用充能特效和发射体制作出了几个原型。

005309t6ujjjllcmjl3cka
005312c63q17bib63h67c9
005316pe7ttn5tr5te17r9
特效的主要组成图层
这个特效在早期十分简单,仅有少数几个发射器。随后渐渐地变得复杂起来,因为我加入了很多嵌套子发射器。

详细的发射器层级如下图所示。

005317nwvqx6pccxcchm65
制作粒子特效
关于这个特效我有很多要说的。我制作了蝴蝶迸出锥体发射器的效果,在这个过程中使用了噪声模块,所以这些蝴蝶飞出来的动作十分自然。

为了让它们再返回攻击,我曾尝试使用‘force over time’(作用力时间),但那无法实现想要的效果,因为我想要所有的蝴蝶都飞回到一个特定点, 而不是飞向同一个指定的方向。

于是我在蝴蝶粒子系统中创建了一个子发射器,使蝴蝶在其父粒子消失后的相同位置再次生成。在这个子发射器中,我加入并启用了外部作用力模块,其作用力的值是负数,这样就能将粒子吸引到其中心点了。

005317ugjhoy86y32g3jzk
005317n9gzr99z9jz7y9b7005326hcrpg2mpaxpxc2rp 005323r2935yg5cbkrtygv
在子发射器中,我启用了碰撞模块使其与球体进行碰撞,这样会在消失的地方生成带有Glow子发射器和Explosion_Sparks子发射器的贴花粒子系统。子发射器中又有子发射器听起来有点复杂难理解。

你可以查看以下截图来理解这句话,子发射器都被标了红色。

005326g14cil5lbvt1fulc.jpg.thumb

在蝴蝶冲刺效果中,我也使用了相同的方法。除了负外部作用力外,它们还有一些额外的速度属性,从而实现螺旋式的动作。当然它们还有噪声模块来保持动作的自然流畅。

所有的蝴蝶都用拖尾(Trail)粒子实现了逐渐消失的拖尾效果。此外蝴蝶渲染模式设为了拉伸广告牌(Stretched Billboard),这样蝴蝶会与其移动方向对齐,从顶部视图你可以看到它们的轨迹是平行的。

最后的烟雾则是一个很简单的发射器,上面带有噪声模块和拖尾粒子,渲染模式为空,这样就能只渲染拖尾粒子。

下图中查看烟雾的具体属性设置。

005326nlsylnp4pyadflal
花瓣动画
最初我打算添加花的图片素材,但它的平面感太强了。另一个办法是通过建模制作花朵,然后用Unity给它做动画。最后从性能方面考虑,我决定只建模一个花瓣,然后使用粒子系统来制作动画效果。

注意看它的旋转动画:

005342ullmt0gulbulb33r 005334sbfobsozass99aea
同样的,花瓣也会从初始位置逐渐显现,所以我使用顶点颜色和Alpha值0来绘制花瓣,然后平滑修改这些数值实现所需效果。

粒子舞动
在创作粒子舞动效果时,我遇到了一些难题。

花瓣发射器的问题是,它们必须与多个花瓣在圆环发射器上均等对齐。我费了不少心思来解决这个问题,后来我偶然发现在Unity中就有这个功能。

形状(Shape)模块中的半径厚度(Radius thickness)属性会让粒子发射到圆环的边缘,但这样花瓣仍然没有均等分布。于是我将弧度的模式(Arc Mode)设为爆炸式扩散(Burst Spread),解决了这个问题。

查看下面图片中标志红色属性进行参考。

005343g7qnzsyvgsq0o0y3 005343zdb3d6m4hobmq416
另一个问题是将爆炸贴花对齐到球体上的法线方向。为了解决这个问题,我反复修改了很多次设置属性。

通过给粒子添加极少量速度,并将其渲染对齐(Render Alignment)属性设为速度(Velocity)解决了这个问题。

005344zcz7hz9c6wslscs7
粒子舞动特效的关键要素是外部作用力模块,这是一个非常有趣的模块。

此外增加自定义着色器以添加发光效果,也使效果更为出众。我还使用了Unity的Post-Processing Stack后期特效包,它能给你的场景带来令人惊叹的效果。

总的来说,粒子舞动是一个十分有趣的特效,制作这个效果的过程中我学到了很多东西,包括如何编写用于在指定时间触发特效的C#脚本。

小结
这便是Parag Ponkshe创作蝴蝶烟火特效的制作流程心地,这个特效还有很大改善空间。希望你学习到这篇文章后得以启发,在自己的作品中创作出精彩的视觉特效。

太空动作游戏《Phobos Vector Prime》创作经验分享

本文将由来自Gunstar Studio的几位技术大牛将分享他们在太空动作游戏《Phobos Vector Prime》中制作爆炸效果、角色纹理和构建关卡的方法技巧。

项目简介
Gunstar Studio是由4名成员组成的一家独立游戏工作室,《Phobos Vector Prime》项目始于2016年6月,我们一起构思了这款游戏。由于热衷与朋友们一起玩游戏,所以一开始是希望制作一款多人对战游戏,体验体验竞技的快感。但是作为一家独立游戏工作室,要想制作一个大型多人游戏显然是十分困难的,所以在首个游戏设计文档中,我们加入了单人游戏模式,这个模式主要用于帮助玩家了解游戏玩法,并为扩大玩家群体做准备。

首个游戏原型由多个太空飞船组成,而后演变成了MOBA类游戏,因为很多玩家很喜欢这种游戏类型。一开始我们打算做出一款竞技性十足的游戏,它将结合MOBA游戏的策略性和80年代街机游戏的爽快感。

《Phobos Vector Prime》的画面应该充满怀旧感,就像童年时的那种风格,但不会完全照抄那样的游戏,而是将街机游戏中的可玩要素提取出来,结合当下最新技术进行制作。这意味着,不会使用像素风画面和8比特音乐风格,而会参考街机游戏中逼真的环境和富有挑战的游戏体验。所以当玩家玩《Phobos Vector Prime》时,玩家会看到各种颜色和灯光,会听着复古音乐击杀大量敌人。这些要素本应在八十年代的游戏中出现,但由于技术限制,当时没能制作出这样的效果。

技术角度
《Phobos Vector Prime》所使用的引擎是Unity,因为Unity对小型或者独立游戏工作室更为实用。开发的主要目标是实现流畅易玩的游戏体验,使这类游戏的老玩家在几分钟内掌握太空飞船的操作方法,同时让新玩家也能适应游戏的难度曲线。

为了达到目前的游戏效果,我们不断基于玩家反馈对游戏进行了大量修改,玩家们的想法帮助我们大大改善了游戏。

在开发期间,考虑到游戏中大量敌人所带来的紧张感,我们对屏幕画面中的敌人数量十分重视,我们想要让玩家有一种四面楚歌的感觉,在枪林弹雨中躲闪的同时终结所有敌人。我们希望重现经典子弹地狱类游戏的特色,但我们也知道,那样会对游戏的性能产生很大影响,所以一开始我们就制作了多个相应的Unity工具。

下面是我们所用到的二个提高性能的基本技巧:
1. 优化物理效果:在开发早期定义参与物理交互的元素,使用图层系统组织好这些元素,配置出图层碰撞矩阵。这个方法能防止引擎不断计算物体之间是否发生碰撞,根据游戏设计内容,有些物体无论何时都不应与其它对象有任何关系。Unity所限定的最大图层数是32个,所以你必须谨慎管理好图层,避免使用过多图层,毕竟它们各自都有特定的用途。

在决定要创建哪些图层前,我们推荐先设计一个简单的表格,上面列出不同的游戏元素并指出它们的相互关系。这是我们为首个原型所定义的表格。

当决定好要使用哪些图层后,先创建图层,然后在引擎中配置图层碰撞矩阵(依次点击Edit> Project Settings> Physics打开)。这就是我们当前的配置:

2. 对象池(Object Pooling):当要在游戏中创建并摧毁大量对象时,例如子弹和敌人,在引擎中将对象不断实例化并移除是个效率很低的方法。最常用的解决方案是先预实例化对象,把它们设为禁用状态,然后在需要时激活。

环境设计
为了构建关卡,我们首先在图纸上进行设计,然后使用Photoshop将设计图呈现在电脑上。我们的游戏设计师会处理每个关卡的草图,然后在设计完成后,将草图传入Unity中,经过如下步骤构建出地图:首先放置各类资源,例如石块、墙体和建筑,建筑类型取决于任务中所要呈现的艺术风格,这些资源用来限制玩家的移动路径。

对于那些不在开放空间(但会在小行星或行星上)中开发的地图,我们使用了Unity的Terrain功能。


当场景布置好后,我们就开始将资源与可交互对象进行整合,例如:门和生成器。为了加速开发进程,我们的开发人员创建了一个专用关卡编辑器,它能帮助实现对象并迭代关卡设计。

开发游戏元素(包括飞船、炮塔和敌人等)也是个十分有趣的过程,因为它们的设计直接影响了关卡的构造。最初,游戏中的太空飞船外观质量较低,主要用于设计机械装置的原型。在核心游戏内容完成后,我们便开始专注于提高游戏的图形效果,所以我们决定完全重新设计所有模型,呈现出更为专业和精细的美学风格。

为了给游戏对象建模,我们使用了多个工具,其中主要用的是Cinema 4D,用来设计所有元素的低多边形模型。我们的工作流程开始于在Cinema 4D中创建具有少量多边形的设计模型,然后用Zbrush给它加入丰富的细节,从而转变为高多边形模型。

下面是游戏中猎鹰号太空飞船和敌方炮塔的UV图和相应低多边形模型。

为了制作出太空飞船等细节丰富的游戏对象,我们使用了各种Zbrush工具:细分工具、alpha笔刷、采样工具、ZRemesher等。我们尝试保留了最初的低多边形形状,因为我们想要让模型设计既简单又吸人眼球,与此同时还能拥有良好的游戏性能。在我们实现出想要的效果后,我们便把最后的高多边形模型利用Xnormal导出,从中获取了ID、法线、环境光遮蔽、Bent 法线、高度和弧度(Curvature)通道。

有了这些贴图,我们接着用Quixel Suite给模型制作纹理。我们首先制作的是用于底座的金属材质,然后我们再制作油漆图层,附上污迹和尘土。表示损伤状态的遮罩会放在边缘位置,而表示划痕的遮罩则放在物体表面。

这是得到的最终效果。

VFX视觉特效
游戏的视觉特效会很大程度影响大众对游戏专业性的评价,而且能从本质上影响游戏的感觉,所以我们花费了大量时间来研究如何制作视觉特效直到实现当前效果。

在创建效果时,我们通常遵循这二个基本步骤:
1  在纸上绘制一个对象不同状态的草图,包含从它的被创建到被摧毁的所有状态,然后预估每个状态的持续时间。
2 从游戏市场上搜索并选取与理想效果接近的参考图样。我们的爆炸效果受到了《Just Cause 3》和《Battlefield 1》这二款游戏的很大影响,我们仔细研究过它们,然后制作出了我们希望的爆炸效果。

一旦确定要实现的效果,并决定好所使用的方法后,我们就开始在引擎上进行测试,直到实现理想的视觉效果。如果发现某个想法无法实现出来,便会放弃掉。根据效果的不同,这个过程的持续时间从几小时到数周不等。

我们在此用制作爆炸效果的过程作为例子来详细讲解。
1. 首先我们使用流体模拟器来生成爆炸效果。例如:FlumeFX、Phoenix FD等工具。

2. 然后我们将完整的爆炸动画以32帧的画面导出到二个渲染器中,其中一个只包含爆炸的火焰,而另一个包含完整的爆炸效果,每个.PNG文件的分辨率为256×256像素。因为爆炸效果的整体形状为圆形,我们决定使用前面提到的渲染器,使爆炸效果在游戏中从任意角度看都有不错的效果。

3. 我们使用GlueIt来从渲染器生成的画面中获取精灵图集。本示例中,火焰动画较短,所以我们去除了结尾的多个帧。最后,我们会得到.JPG格式的纹理图片,分辨率为1536×1024,共有24帧,背景色为黑色。此外,我们决定移除纹理中的黑色再将纹理导入Unity材质中,从而获取我们想要的颜色。对于烟雾动画的精灵图集,其纹理分辨率为2048×2048,一共有64帧,为了方便处理渲染器的透明度,PNG格式。


4. 在Unity中我们创建了二种材质,一种使用了Additive混合模式,用于火焰,它能为爆炸增加亮度;另一种使用了Alpha混合模式,用于烟雾, 放在火焰材质之下。

5. 我们使用了名为Particle Playground的粒子系统,你也可以使用Unity的默认工具达到类似效果,在其中我们创建了二个粒子系统,并且每个粒子系统都使用之前创建的相应材质。我们定义了粒子实例化的位置,这样会决定爆炸效果的形状大小。烟雾和火焰必须共享实例化的位置,这样会使每个火焰粒子都能添加到对应烟雾粒子上,从而增加亮度并正确匹配爆炸动画。我们使用了Texture Sheet Animation纹理图集动画功能来配置和复制精灵图集的动画,要记住,设置好分类方法很重要,这样能使火焰在烟雾中显示出来。

6. 我们还为爆炸效果的其它部分创建了相应的材质、着色器和纹理。

火焰余烬:这些粒子生成时会带有作用力属性和随机旋转方向,这个方向会在爆炸效果周围沿着圆形锯齿线随机选取。


震荡波形:包含一个粒子和一个附加着色器,着色器的大小会在存在周期中不断增大。


波形扭曲:它和震荡波形有相似的属性,只不过它还多了个扭曲着色器。

火光:带有一个粒子,它会为爆炸中心带来更多光亮。

火花:带有小型闪光,它们会带来受到伤害和破坏的感觉。

7. 最后我们将效果的各个部分组合起来,创建出爆炸效果的预制件,以供需要时使用。当然了,使用后期处理效果进行美化也十分重要,这样能使效果看起来更好。本示例中,我们只使用了Amplify Bloom来提升场景的光亮效果。

多人游戏部分
首先我们制作了一个多人游戏演示视频,然后用同样的机械基础构建了单人游戏模式。也许这个过程听起来有点奇怪,但从一开始,我们就认为《Phobos Vector Prime》会拥有很多种游戏方式,而其中一种便是故事战役。

我们的故事模式能让玩家了解MOBA模式中的三个对立阵营的起源故事,这三个阵营分别是叛乱军、自卫队和赏金猎人,与此同时还能了解游戏的核心玩法。

我们制作出这个模式是为了介绍MOBA游戏的经典策略。例如:第一个战役中的主角所担任的角色是坦克,所以关卡会要求玩家承受伤害并保卫建筑。我们还增强了每艘飞船特定技能的功能,随着故事的发展,这些技能会一一被激活。

小结
《Phobos Vector Prime》今年4月在PlayStation 4上发行。在完成首个战役的发布后,会继续开发其他故事战役和完善多人游戏模式。今天的分享都就到这里了,希望每个独立游戏开发者都能开发出受到玩家欢迎的游戏。更多游戏制作经验分享尽在Unity官方中文社区(UnityChina.cn) !