王者游戏攻略网

当前位置:首页 >> 游戏资讯

游戏资讯

TipsWorks丁成甲:《帕斯卡契约》的创作与美术表现

2020-11-20 14:20:07游戏资讯
TipsWorks近日发布,旗下买断制手游《帕斯卡契约》在全球范畴内销量突破了100万份。制造团队是如何把一个拥有巨大世界的动作游戏搬到手机平台的,从视觉设计到游戏玩法又是如何贯彻统一的世界观的?TipsWorks的总导演&美术总监丁成甲就此在近日的Unity线上技巧大会分享了《帕斯卡契约》的创作流程与美术表示。以下是分享实录:大家好,我是《帕斯卡契约》

TipsWorks丁成甲:《帕斯卡契约》的创作与美术表现图

TipsWorks近日发布,旗下买断制手游《帕斯卡契约》在全球范畴内销量突破了100万份。

制造团队是如何把一个拥有巨大世界的动作游戏搬到手机平台的,从视觉设计到游戏玩法又是如何贯彻统一的世界观的?TipsWorks的总导演&美术总监丁成甲就此在近日的Unity线上技巧大会分享了《帕斯卡契约》的创作流程与美术表示。

以下是分享实录:

大家好,我是《帕斯卡契约》的总导演兼美术总监,负责项目里的剧情框架,游戏玩法还有美术表示。

本期分享会我会以游戏制造的角度来介绍一下《帕斯卡契约》的创作流程,展现一下在创作《帕斯卡契约》中,我们阅历了哪些阶段,最后我会举一些游戏中的例子来解析一下游戏中的美术表示与优化。

项目初期

首先我要介绍一下我们项目,最早的时候是应用unity来制造的一款动作角色扮演项目,最开端我们用的是unity的5.6版本,后来到我们升级到unity 2018,从2016年开端研发,大概三年的研发周期。

制造人员大概从第一年有10个人,一点一点扩展,到最后一年我们大概30个人,全部项目95%的资源都是自己产出的。

这是我们公司的一面墙,早期的时候我们会在墙上面去做很多的尝试,当时我们没有太多的方向,做了非常多的作风尝试。

之后我在的处所出了一个这样的小稿——一组黑暗中世纪题材的概念图。

当时工作室里的每一个看了稿子的人都感到非常有兴致,大家出乎意料的一致,感到方向可以试一试。

断定了目的以后,我又持续做了一些人设的细化,就有了现在的这张图。

有剑士,有女巫,有贵族,《猎魔人》,《重甲骑士》。

但是因为我们当时就10个人左右的人力,决议还是把体量把持的小一点,我们和磋商了一下,做一款中世纪题材的动作对战游戏,可能是一个比拟保险的计划。

然后为项目定初期目的,这阶段我们感到订立的目的始终要量力而为,订立一个可实际完成的体量,订立一个可实现的玩法,而不是说我头脑里有非常多、非常决战的点子,但是实际制造的时候处处碰壁,成果你只能完成它的60%或者70%。

所以我们斟酌了很多,盼望把制造体量把持在一个可掌控的范畴之内,这是我们当时做的一个初期的联机对战demo。

当时10个人花了一年,做了一个已经可以刷到手机上的联机对战模式,可以WiFi联机,就像《光荣战魂》一样的PVP。

但当时游戏性和画面都没有调得很好,游戏内容略微有点薄弱,所以我们决议参加一些PVE元素。

调剂阶段

我们接下来为 PVE模式出了一张场景设定,一个看起来有点诡异而破败的村落。

为此我们开端思考游戏的世界观和简略的一些故事。

我们做了一个所谓基地的PVE玩法,怪物不断从远方涌过来,玩家维护基地,须要不断的击杀怪物获得能量,然后用能量强化自身,不断的迎接下一波怪物。

这个PVE玩法现在看起来非常简略,但是对于当时的我们来说意义重大,因为我们终于得到了一个像样的游戏框架,而且玩起来确切也蛮有趣。

这给了我们前期非常大的信念,想着以后还不如把这块好好做一做。

有幸的是场景最后被保留了下来,就是这个场景。

这个场景现在是我们最终上线了以后,第一关海格姆的画面,基础保存了本来那块区域,然后在这个基本上又持续扩大了场景。

这个时候我们目的就比拟明白了,项目正式开端推进起来,就像滚雪球一样越滚越大。

世界观与玩法包装

关于世界观的包装,我感到我们有一些自己的想法,特殊是做一款手游,当游戏受到了体量的限制,我们不能去做地图很大的游戏,不能让玩家随心所欲地去任何处所,否则玩家必定会想为什么我去不了对面那座山,我过不了对面那条河。

我们必定要给玩家一个合理的说明,让玩家感到这是一个合理存在的世界。

所以我们的做法是在世界受骗时加了一个设定,比如说这个世界失去了光亮,只有在有光的处所才是人类正常可以运动的区域。

那么世界就须要一种发光体,可以让故事、剧情,还有全部世界聚焦,于是我设计了上图所示的生物,它为世界带来光亮,人们依靠他而活,构成了游戏的世界观。

相对应的,我们须要一个与世隔断的被黑雾覆盖的世界。

在这里生涯的人们的故事以及挖掘这背后的机密自然就成了剧情核心。

我们创立的场景就应当是生涯在这世界的人们的生态环境,同时也须要一个完全的故事链。

主线剧情和重要人物一点一点地添加进来。

然后,世界观的设定得到不断的完美,再回滚,在全部世界观里面不断的回滚,关卡设计也在不断的更新。

最后得到了我们想要的故事系统和世界观。

当世界观设定好以后,我就盼望世界中的一切系统,一些体系,包含玩法体系都是服务于世界观的。

所以当时设计了理智体系,这是一个失望、失控的世界,每个人都有可能在瓦解的边沿,主角也不例外。

他看见的所有的猖狂的事情,或者是这些猖狂会燃烧他的理智,他时时刻刻都处在理性和非理性的边沿。

在凌乱的世界中,人物理智瓦解时会遇到什么?看见什么?是灵异的怪物,还是发狂的boss,背叛的队友,这些都是通过游戏的理智体系所表示出来的。

但依旧处在一个统一的世界观之下,所以这是一个完全的包装,不是说把玩法还有美术,还有剧情全体拆开来处置。

我们盼望无时无刻的提示玩家,你正处在一个猖狂的世界中。

画面设定与取巧。

斟酌到当时我们就这么点人力,要想措施去节俭资源和减少工作量。

世界都处在黑雾中,全部游戏都处在浓雾中,光源微弱,看不清远处,我们奇妙地应用了当时做的世界观设定,游戏的视距不用开的很高,也不须要制造一些非常繁琐的细节,让我们制造的实际体量小了很多。

角色制造

这是我们的一个主角团。

其实在做最开端的角色设计的时候,斟酌过很多,比如说手机屏幕比拟小,人物占比会比拟小,所以在设计的时候会把比例稍微做的夸大一点,物件的厚度都做得比拟敦实,没有特殊渺小的设计,基础上以体块为主,这样的话哪怕东西缩小了,在屏幕上并不是很大,你还是能感受到它的体积感和体块感。

上面这张图是一个基础的角色制造流程,比如说从原画到高模,再到一个材料的绘制。

材料绘制流程上,我们是用painter来对材料进行一个写实的绘制,基础上是用PBR的这套基础流程。

手机内存非常可贵,贴图应用有限,我们重要还是把重点放在了材料的调节上。

这是用unity还原出来的一个实际后果。

在做的时候我们基础上是一个全尺码贴图,最终会依据游戏的内存来进行优化。

我们不会去专门去紧缩贴图,像diffuse和Specular可能会看情形进行一些紧缩,重要是看内存的盈余。

我们深刻的去研讨了unity的尺度材料,SubstancePainter和unity做了非常好的连接,几乎可以直接依照unity5的尺度材料输出。

最终我们用到的贴图有三种,一种是Specular这种金属度或者是粗糙度,基础上是在阿尔法通道里去调剂,整体来说用的是一个比拟省资源的做法。

这是另一个角色,贝妮塔。

她的特点是攻击别人的时候,同时可以接收别人的性命,将其存在身上的血瓶里。

血瓶会依据她自身的攻击,或者是对自身的回血高低浮动变更。

针对这个血瓶,我们是用Shader graph来实现后果。

随着人物的位移,你可以看到液体在里面晃动,它基础上是可以坚持程度面的一个移动。

这个只是做到一半,最终实际后果要比这个好一点。

这是我们的一个小罐,主角团和boss我们基础上是应用了一个PBR的流程。

由于主角或者是boss都是相对单数呈现的,所以每个角色的材料球的数目控可以把持地比拟准。

我们大概是做了3~4个,分为兵器、服装、头发和皮肤基这几个材料球。

而作为一款ACT游戏,普通的怪物可能会是复数地,一个场景里会呈现很多,所以基本底冰用的材料相对照较简略。

虽说如此,生产流程还是跟boss一样,是用SubstancePainter里面来导出来的,只不过说是材料球用的是比拟一个传统的材料球,它的一些反射度或者什么,基础上用的是一些反射环境球来模仿的。

帕斯卡契约里有非常多的非人性boss,给动作添了很多麻烦,我们角色有300多根的骨骼,不过因为boss战里面只有主角和boss,所以还能接收。

大型 boss战我们应用的都是骨骼碰撞,会依据打击点的部位做出IK的收集反馈。

甚至还有一些,就是比如说这家伙,他的沙漏是一个弱点收集断定,而小怪基础上应用的是胶囊体碰撞,这就是刚才说过的一个场景里,单个一个怪和很多很多怪,中间要做一个取舍。

场景制造

场景制造,这里我会以阿达米亚的一个场景来解析一下它的制造流程。

从制造思路上来说,第一关结尾向玩家展示出了这么一个世界观——玩家知道头顶的那个大月亮其实是一个我们游戏里的一个具像,在正对着你。

那这一关的目标就是让玩家知道这是一个什么样的世界,场景设计的主题就是让玩家始终能看到具像,确保全部游玩进程中可以看到这个大家伙就一直在身边行走。

确立了剧本以后,我会先出这样的一个概念设计图转达出大的思路方向,以及确立一些重要的特别事件场景。

因为当时第一关画面有点昏暗,所以盼望第二关可以明亮起来,但是又要有那种诡异孤寂的氛围,所以思路明白了以后,就用unity的地形工具,以及简略的一些石块刷,迅速出一个layout。

这个重要是用来供给给谋划,让他们清楚全部关卡和睦氛还有大的一些构造。

关卡谋划在看了layout、概设以后,他可能大概就清楚了,像阿达米亚这样的一个场景,它是一个以悬崖为主题的场景,在接下来进入白盒阶段的时候,就不会因为懂得过错而走偏方向。

为什么要做这一步?就是如果你直接让关卡来搭,很有可能会导致氛围、剧情还有一些美术不是能很好地联合在一起。

所以一开端虽然是多做了一步,但是你只要转达出一个概念或者给出一点元素后,对后期来说其实是会省很多问题的。

接下来我们交给关卡设计师进入白盒阶段。

这个阶段就是不断的完美回滚,把角色放进去,不断的测试玩法、测试路线,待全部关卡验证完成以后,才开端用美术资源逐步的取代白盒。

这是一个当时做的关卡的白盒测试,重要是用来测试路线和场景比例,即使是这样,有时候还是会呈现比例问题。

白盒阶段要搭场景,记得必定要搭得广大一点,可能会看起来有点空,但是随着中后期的话,你那些中景或者一些细节东西放进去以后,慢慢会变成一个比拟舒适的比例。

我们在做帕斯卡的进程中,确切有好多次做白盒的时候感到还行,但是小物件一添加后,几乎没有战役空间,最后只能砍掉重来。

所以这也是一个须要注意的点,盼望大家引认为戒。

然后是场景的路线优化。

在阶段我会请求关卡,谋划同窗特殊注意,因为我们后面会用到剔除遮挡和视锥裁剪这两个东西,所以我们前期计划的时候必定要特殊注意,在路线设计的时候,要多转几个弯或者进入室内,或者是你让远处的视野里被一些宏大的物体遮挡住。

游玩路线的计划也会决议游戏后期的优化是否便利,其重要是把持视野内的模型面数与Draw call。

作为手机游戏,在前期计划路线的时候,应当要斟酌到各个方面,这就是刚才说的那个遮挡剔除。

比如说场景尽量减少呈现一条又长又直的路,或者是视野范畴特殊宽广的处所,比如说像上图标示的绿色的部分,即露出的前景,其实运算量还是能接收的,更远处的景其实已经被其他远处的房子剔除掉了,基础上不会参与运算。

如果真的你有特殊大的需求,要做这种大视野的场景,一般会专门去定制,比如说你要做一个特殊大的塔,从底层到高层也都可以看得特殊明白,那你可能只是底层这一段会做的比拟精致一点,上面可能也就是透掉了,或者是做简化处置。

然后是场景材料这一块。

场景材料我们基础上是用的Substance Designer来制造,场景的材料球数目把持是相对照较严厉的,基础上30~50之间。

这也造成了一些问题,帕斯卡契约里的场景材料反复过高。

这就是两边的一个取舍了,你做的是大的场景、内容,要么内存,要么在视觉上做出一些让步,比如用designer来做砖墙的材料。

我感到,designer的最大优势是可以迅速的用衔接节点,依据需求迅速修正,迅速迭代,效力会非常高,做出来的东西你也可以依据一些实际的须要进行修正和加工,非常节俭成本。

尤其是当场景比拟大,特殊巨大,须要很多材料、须要反复应用时,designer 制造材料它可以重新采样,随机生成一道符合美术作风的新的材料,大大节俭了时光成本和人力成本。

我们项目中其实并没有应用 unity的那套地表编纂器,重要是因为我们地表的场景有时候会到达3~4层,而且地表的面积相对也比拟窄,用编纂器比拟难处置,对后期优化也比拟艰苦。

不过是要看具体项目需求的。

如果是项目比拟开阔,地图开阔或者平整的话, unity的地图编纂器其实是相对非常成熟的。

我们这里其实是做了一个材料球,通过一张MASK贴图来混杂两种地表纹理,用顶点色其实也是可以到达雷同的目标。

灯光这一块,场景制造的场景光照,全部游戏其实是应用了实时灯光加烘培,加light Probe。

实时灯光这一块的话重要用在角色和怪物,还有场景里的实时灯光,这三块灯光其实是离开的。

重要是为了便利调剂场景的光线,整体场景用的是一盏mix灯,来供给全部场景的主光线,角色和怪物是用另一盏实时灯光来打全部人身上的明亮度和高光。

烘焙这一块我们重要应用的是混杂灯光进行烘焙,模式应用的是Shadow Mask。

我们在用的时候有一个小小的问题,就是它暗部被笼罩的面积比拟大时,高光会被这张MASK贴图盖住,造成全部暗部比拟平。

针对问题我们应用了两种方式来解决,一种是在材料上,在场景的本身体质上给一个环境反射贴图,让材料在暗部时看起来也会有高光和立体度。

另一种是在一些非常特别的情形下用的,在材料上模仿一个反向的光,就是让我们的程序员在材料里就写了一盏反向光,它是一些比拟特别的情形在用的。

再加上人物走进暗影里的时候,自身会打开一盏点光源,我们在一些山洞里或者是洞穴里,或者是一些黑暗的建筑内部都会这样处置。

烘焙的时候可能有些注意的点就是尽可能减少lighting map张数来把持整体的Draw Call。

比如说像我们项目,用了很非常多的预制组件,就是Prefab那是雷同的模型和雷同的材料,但是由于你不会被散布在两张不同的lighting map上,那它的Draw Call其实是不汇合并的。

这也就是有一个非常大的抵触点,如果你lighting map应用得过多,那Draw Call可能会多,但是如果你应用得少的话,你就要把持住lighting map的尺码,否则暗影会很含混。

所以lightingmap的UVS的散布,一个是会造成暗影含混,一个是会造成内存增添,这两个是须要你在做项目标时候去进行一些取舍。

关于light Probe,重要我们是用来给一些动态物体附着光影,比如说角色、怪物还有一些可互动的机关,后来我们就发明场景里有一些特殊小的物件,其适用烘焙的后果不是很好。

因为那个小物件本身UV就很小,你这张lighting map最后再一紧缩以后,那个UV会聚焦在几个像素点上,那个像素点如果你没有处置好的话可能就是黑片,但是如果完整不着色的话,这些物件在暗部和亮部的表示是完整一样的,那就非常奇异。

物体在暗部的时候可能会表示有点亮,它在亮部的时候可能又表示得非常暗,所以我们后期就改为应用light Probe进行着色,因为物件本身比拟小,你放在那里,放在暗部里,本身会着一个比拟暗色的,其实也看不大出来,反而会比你烘焙的后果更好一点。

打光这块,因为场景的反复度比拟高,所以我们在制造的时候有一个概念,就是必定要用灯光来给玩家作为记忆点,这就造成了光对我们来说非常主要,应用雷同的素材,要依据打光的不同,营造出不同的场景氛围,这点是对我们来说在全部制造场景中的一个难点。

游戏暗影这一块是分为角色暗影、场景暗影,还有一些其他动态暗影。

用我们投影的方式其实也是一个较为通用的做法了,用专门的投影相机,依照光照方向给场景、角色拍一个剪影,拍到RT贴图上,再依据投影投射到地表上,这样做的话可以无论再多的怪和角色,那只发生一次Draw Call,超越主角的范畴又可以不会被渲染,而且你可以依据这张RT贴图,这张RT贴图的格局设置,你可以做一些处置,还可以加一些抗锯齿什么的。

场景暗影,我们基础上用的就是传统的烘焙暗影,其他动态暗影,比如说像云雾投射下来的这些暗影,基础上是用跟角色一样的,是用RT贴图来实现的。

场景里的物件动画,像植被,还有飘着的旗子什么的这些,我们基础上是用顶点动画来完成的,相对来说比拟省资源。

除此之外,人走到草上把草压弯是以人物坐标与草的地位远近,程序把持,顶点偏移来实现的。

视距这块是如同前面所说,我们世界观的时候设计的比拟讨巧,全部世界是处在黑雾之中,所以我们的这个游戏作风开得非常强。

如图例所示,这几个红圈基础上几乎都是雾气了,你里面其实都可以不要有细节了。

那我们只要留下大石头的剪影,还有一些建筑的剪影,其他基础上能关的都关了,这样的话我们做起来其实就是把这些所有的物品进行分组,依据体量分组,越大的物体它的可视范畴越远。

例如一些建筑剪影,或者一些造成全部场景的一些大石头,越小的物体它的格局范畴越近,基础上参照这个规矩,所有的物领会被分到不同的层里,然后去给每一层去做一个可视范畴的设置,再加上LOD,这样可以大大的减少耗费。

其实像我们这样做了以后,LOD的工作量其实也不是很大。

雾气这一块,雾气分为体积雾、定制雾片和基本雾。

体积雾我们是用一些Shader模仿的,基础上就是传统GodRays的那种后果,然后定制雾片是用渲染粒子实现的,基础上是我们全部游戏里面的定制雾片,基础上是放到地上的一些模仿流动的云雾,靠近会消散,然后你用软粒子也不会呈现硬边,一个比拟便利的做法。

镜头调节这一块,因为游戏里的敌兵种类体型跨度都非常大,针对不同的体型和怪物,我们去做了一套专门调节镜头的工具,可以说每一种怪物你锁定他的时候都是专门独立去调节的,你在这个进程中还会去斟酌这个怪物它的攻击方法。

比如说远程法师它的攻击抛物线比拟高的话,我们镜头当时调的时候,距离和镜头的远近都会拉得相对照较宽一点。

在制造角色面部表情和口型动画上,我们简略的为角色设置了22个面部骨骼点来实现游戏中面部所须要的基本动画,口型和表情其实都是提前设置好的一段动画片断,然后依据音频调用这些片断。

对于Blend Tree这一块,在3D游戏中,不管是虚拟摇杆,还是实际的手柄摇杆,玩家在操控这些角色移动的时候,都可以朝任意方向来进行移动。

例如我们当时在设计维奥拉的时候,为了拉开和另一个角色泰伦斯的差别,在锁定目的以后的移动方法,我们大概设计了10种,前后左右、斜上斜下10个动画片断来做融会,这就是当时维奥拉的一个Blend Tree。

除了一般的走路位移动画之外,角色的攻击动画也盘踞了非常大的一部分资源,其中攻击和受击的逻辑断定非常主要,我们通过联合状况机的参数制,自定义曲线取值,让程序去剖析当前的动画逻辑状况,实现角色在攻击动作时的一个目的的断定。

比如说兵器断定,依据预定的攻击类型编号,然后去调取相应的攻击碰撞盒来实现这些做法。

另外像攻击中是否可以转向、攻击碰撞打开的机会,还有连段断定等等,我们在项目制造中其实是破费了大批的时光来去调这些Curve的参数,这些调剂的成果都直接影响了全部游戏的手感,特殊像动作游戏,你这些手感的好坏其实都去拉这些曲线来实现。

我们全部游戏可能有非常多的功夫是在不停的去调剂这些曲线上,然后我们全部角色是用了全身的IK体系,包含人物瞄准、脚步IK,然后收集IK的,比如说现在看到的这张图就是人物站在不同的地表上,脚部骨骼会做出一些变形。

关卡制造

我们在做关卡的时候,其实为敌兵制造了非常丰盛的状况机机制,制造了若干种休息动画,暗藏的攻击动画,你会在全部游戏中看到有的怪物它暗藏在角落,在这偷袭你,这些其实都是专门定制的,然后怪物都会有视觉和听觉方向还有范畴。

比如说像这张图里黄色的圈,就是一个听觉范畴,红色的三角区是视觉范畴,如果怪物在没有看见你的情形下,你慢走的话是不会惊醒他们的,但是如果你跑过去可能就会引发他们的攻击。

关卡中是采取了动态加载的方法加载怪物的,加载场景时会把这些怪物预先放到内存里,场景中放了很多点,然后又放了很多专门设置过的这种显示盒,就是这种绿色的盒子,只有角色进入这个绿色的盒子范畴内的时候,绿盒子范畴内的怪物才会被动态加载,这样的话可以比拟稳妥的把持怪物的加载上线,而且也可以比拟准确的把持,我想哪些怪显示,哪些怪不用显示。

过场动画

最后谈一谈过场动画。

一般是我跟编剧先聊,聊完,断定了大概的剧情,然后先出一个故事板,把头脑里的想法一些画面先具像化,加上谋划以及程序来一起斟酌修正。

这个阶段重要是断定一些后果是否能实现,如果不行的话,那可能还要磋商一个可行的计划,再不断的持续的去修正故事版。

当故事板断定了以后,我们会在max里面去做一个layout,这个重要是用来确认故事构造以及镜头的合理性。

可以放一下给大家看一下。

我们会做一个这样的后果,这个阶段不会去加面部表情,加口型,而且会拿给配音去做参考,待他们把配音部分完成以后,那确认没有任何问题,才会持续添加表情和口型。

游戏中有一些比拟庞杂的过场动画,为了不占用过多的内存资源,我们自定义了一套及时加载体系,在演出完成后也可以立即释放出游戏内存。

依据预设的摄像机,调用角色ID以及相应的过场动画资源,比如说场景作风,一些灯光和一些音效等等。

同时程序也可以通过代码来把持美术的表示。

Unity的Timeline功效非常强盛,早期的时候我们其实并没有应用,是用笨的措施,去实现游戏里的一些过场需求。

Unity Timeline功效实现了以后,我们发明应用了以后确切非常棒,效力直线晋升,而且我们联合了自身的项目,设计了一套状况把持器,可以通过断定当前把持的角色,动态的调用相应的一些演出动画。

另外在一些GamePlay状况下的简短动画,也可以用一些简略的一镜到底的方法。

那这一块其实我们是有一个视频专门放一下给大家看一下。

以上就是我为大家带来的一个分享,其实想说的是我们其实本身并没有用一些特殊庞杂的或者是自己自定义的一些功效,其适用的还是unity本身的强盛的那些自身功效。

可以说这些东西的怎么应用,我们这个项目,或者是通过今天的分享会能给大家带来一些思考。

以上就是我为大家带来的分享,谢谢。

了解更多关于TipsWorks丁成甲:《帕斯卡契约》的创作与美术表现,为玩家提供最新的游戏新闻、游戏攻略、单机资讯、游戏下载、游戏问答。