靳超《星尘:机械侵蚀》制作经验分享

发表于2017-07-25
评论2 4.5k浏览

靳超本人从业已经十几年了,05年加入搜狐畅游,一待就是11年,基本上一直在做技术上的工作。16年我跟王滔、就是畅游的创始人,一起创造了天镜科技来做VR游戏。到现在已经一年多,我们的团队大概有不到20人的样子的规模,目前我们这个团队主要有两个方向,一个就是下面我要介绍的《星尘》的这个系列,是科幻游戏,后面我会介绍一些技术相关的一些经验。另外我们跟中影游、也就是王滔的另外一家公司合作的一个精细的VR游戏,这个因为还没有正式公布,所以我没有写在PPT里面,但是大家可以想象一下,就是现在武侠类VR游戏还没有出现,我们也是找准市场的这个契机吧,然后我们跟香港一个名导演合作的一个精英的VR游戏,第一部可能就是小江湖。所以我们也会在下半年开始这部分的制作。

 

故事背景

《机械侵蚀》这款游戏我们来做一下简单的介绍一下,故事呢瞎编的,大家看一下就知道了。我们描述了一个未来的科幻背景,地球被毁掉了。我们上一款做的那个叫《星尘:地球之书》的游戏。游戏描述的基本就是地球被外星人给炸掉了,然后人类移居到了外太空,进入星际时代后发生了一件事情,是一种神秘的病毒感染了整个人类,逐渐有些人就变成了机械形态,身体会变得机械化,后来发现病毒来源于一个叫伊塔的星球上,一支探险队来到这个星球去探索,他们发现这里的生物都已经开始机械化,然后去探索去生存去发现后面的秘密。

核心玩法

整个游戏有点像什么游戏呢?我跟大家举个例子就知道了,就是《怪物猎人》,整个游戏我们就想设计成一个人类,以VR玩家在VR环境里面和巨大的怪兽来对战的这么一款游戏。中间可以是单人来做,另外也可以是做游戏副本,开放出去和其他玩家来合作,它的框架属于生存,你要在这么一个恶劣的环境下……我们会加入很多随机的元素,比如说收集啊、去升级你的装备啊这些。去维护你的基地来生存下去,另外一个你要去跟巨兽来作战。再一个你就是做一些装备的这么一些的维护。整个游戏他还是这样一个VR FPS的核心乐趣,我们加入各种很智能的AI来跟大家作战。比如我们这段时间AI蓝图几乎拆了个遍,然后我们发现里面有一些非常有意思的一些细节,怎么样把怪物的AI做得非常逼真,这里面有机会我会跟大家再介绍一下。

单人生存和多人协作

其实我们就是一个生存类的单人和多人协作可以同时来玩的游戏。

 

引擎技术

首先我们用的技术是UNREAL engine,这里面我也想给大家安利一下UNREAL engine,可能在座的各位可能大部分还是用Unity,但是我确实是建议大家,如果在不考虑移动VR的话,其实用UNREAL,它的效果和上手度,可能比大家想象的都要好。因为大家印象里面,可能UNREAL engine的成本比较高或者比较难,但其实UNREAL现在刚出的4.16,新出的这个功能和应用蓝图已经非常好用了。

另外Substance Designer这样一个PBR的材质工具,也是非常有利于大家的材质制作的,后面我会给大家介绍一下。

SIMPLYGON其实是一款LOD的工具,它已经寄生到UNREAL擎里面了,可以很容易来生成。以前这是一款非常昂贵的工具,现在针对开发者已经免费了。

Powered by Wwise是一款声音引擎。基本上可以说这个是……如果大家做PC或者主机上的VR游戏,这个可以说是标配。

 

经验分享:基础材质库的建立

所以今天我跟大家分享的主要是一个关于PBR材质的一个问题,大家可能经常会听到,很多团队在用PBR材质,像工业光魔这样的公司在做电影的时候也会提到这个概念。究竟PBR材质跟我们传统的这个材质有什么区别?大家可能……如果大家以前传统做过十几年前的游戏,可能那时候的材质是一个单纯靠美术来画的这么一个概念,比如TBAR、纹理、Depuce或者Banp、截图啊,这些个都画出来。这种方式来做的,基本上全是来靠美术来调这种效果,后来出现了索尼的次世代,次世代是个非常美的概念,其实他并没有定义什么叫次世代,其实无所谓,把发线做得更细一些,那就叫次世代了。其实那只是一个工作量的问题,但PBR的概念是一个非常革命性的变化,首先它是一个特别依赖材质库的这样一个概念,PBR材质并不是美术做出来的,它是通过物理的参数来算出来的。所以用PBR材质,可能很大程度减少对美术尤其是画细节的这个依赖,因为大多数都是物理参数来设计的,更多的是靠你对材质的管理和把握来进行的。

比如说这张图,是个Unpake的(charer板)的材质库,我们也有类似的材质库,但没有放出来,没有它好看。这个材质库里面,基本上把Unpake里面的金属啊、体格啊、毛发啊这些,都放在里面了,做那些模型那些材质,基本上挑一个就能做出来了。

经验分享:通用金属材质

我们也做了一些类似的工作,比如说我们用得最多的这个材质,叫SimplePaint,这个材质就是我们一个非常典型的用PBR材质技术来做的一个材质层,基本上用这个材质层,可以把大部分我们在游戏中用到硬表面的模型都可以用上。因为我们的游戏里面有大量机器,比如飞机啊这些硬表面的材质。这个材质有什么作用呢?第一就是它是一个Parameter的这么一个规范,所谓的Parameter规范,就是说你只需要设定这些物理参数的细节,比如说金属度啊、粗糙度啊,然后其他的一些属性,参数就可以帮你渲染出来。比如说右边这个的模型,它基本是有玻璃金属和涂漆的金属,这样的几部分组成的,然后我们这个材质可以支持八个层,比如说一个模型有八个不同的部分,每个部分都有一些独特的参数,然后就可以把这个模型给渲染出来。所以说,左边的这个就是具体的参数的一个区域,比如说Background是它的基础层,然后Layer2Layer3456,加上Background,再加上这个贴花啊、粗糙度啊,还有划痕啊这些。

 

然后呢,除了这8个层之外呢,还有我们刚才的划痕层,划痕层其实……这个投影的精度可能有点不太高,其实如果你仔细看一下,会发现金属的表面,除了我们看到的那种亮亮反光,它还有一些污渍、或者油渍这样的东西,因为金属它放时间长之后,表面的反光不是那么均匀的。这是一种脏迹层。

还有这种划痕层,就是在金属这种弯曲的地方,所产生的这种磨损,以前我们在用传统的方法来做模型的时候,所有这些细节都是要美术来一笔一笔画出来的。其实用PBR材质工具,以及用Substance Designer这种工具呢,这些细节都是生成出来的,用Designer的蓝图来自动算出来的。然后算出的一个贴图。

另外像贴画层和自发光层,这个很好理解,都是以前用的技术。

所有的这些细节,都是在刚才的材质层里面,用这些参数来设计出来的。然后每一层的具体的,我是让它的比如说Base color,这个细节就是涂漆的这种区域,漆的颜色以及金属度粗糙度这些细节都左上。它自己就生成出来了。

 

还有这个里面,比如说怎么把Designer里面的数据导进来,用的是这种方法,就是说:我们设定了一些叫Model Inputs这些层,比如说具体哪个通道来放哪个东西,比如说,每个层都有个MASK,就是说这模型哪些区域是Layer 1的,哪些区域是Layer 2的,把这些数据全放在Detail MASK数据里面,这些数据同样也是用Detail Designer来生成的。比如说像自发光层这些,全是在这里面生成的。

还有些LOD层,来控制金属具体的表现细节。

 

最终呢,比如刚才那个模型的一个展现细节,这个模型虽然看起来在这个投影上效果可能有点差,其实在游戏里面是非常漂亮的,但它用到的贴图非常少,基本上就是些很通用的一些纹理组合起来,在游戏里就会渲染出来。真正的这些大块的纹理呢,其实并不需要。

 

经验分享:使用材质烘焙进一步塌陷材质

以上这种材质唯一的缺点呢,就是它的材质层非常复杂,所以我们后面会用到一些塌陷的方式,来生成一些更简化的材质层。比如说像这就是我刚才说的材质的一个蓝图,这个蓝图看起来好像就是这么几块,但是如果中间这么一个小块都是这么一个复杂的方式,把它打开又是非常大的一个蓝图。所以整个材质层的组成是一个非常可怕的复杂度。

如果你在游戏里面用到这样的材质层,那就基本上就不可能再做其他的事情了,基本上是在开发状态才会用到。在游戏中为了优化,我们可能要做一些塌陷,比如说我要把那些纹理合并到一张纹理上,这样材质层可以在最小的规模上,再做一些跟场景相关的技术。

 

比如说我这里面,有一个场景是雪地,雪地有一个要求,就是说模型放在雪地里面,上面会有一些积雪,雪会落在模型上面。比如其他的如沙地、沙漠也有类似的需求,比如我在沙漠里放的模型,在模型的表面是有一层沙子堆在上面的,而雪地上面要堆一些雪。其实把这些本身并不复杂,需要用一些堆雪的法线来计算这种方法来实现,但是不可能每一个材质都这么计算,所以我们就用到了刚才说的这种塌陷的方式,把刚才那几个复杂的材质启用到塌陷的纹理面,然后再把雪的函数加上,材质层的复杂程度就得到了一个很有效的控制。

基本上这就是我们后面做的效果,把雪直接落在这个上面,这是堆雪的函数,把堆雪的函数放在这儿,再烘焙出来,这是最终的材质层,就是说我把烘焙出来的纹理再加上。堆雪函数就变成了这种效果。整个这里面的材质层,它足够在那些主机比如PS4上跑得非常快。

 

正在研发中的场景

这是我们正在做的几个场景中的截图吧,这个(左上)是一个山洞,这里面用到了AO和石头的渲染;这(左下)是我们做的残骸区,一些功能区,沙漠区,这是我们的雪地但是雪地暂时先停掉了,专心想把一个场景先做好。这个场景基本上由山洞部分和室外部分组成。

这(右边)是我们在做的一些模型,这里边有一些实现了,比如说我们把这个金蜂做出来了。但是我们现在最主要是把精力放在了机械的模型上面,因为它更容易展现出一些比较适合的动作。

以往作品

简单介绍一下我们去年做的游戏《地球之书》,这款游戏其实是一个非常简单的射击游戏,这款游戏已经上Steam,但是我本人并不是太满意,它只是一个射击游戏,大家可以玩一下,感受一下这个所谓的宇宙的环境就足够了。玩法我们就没有太多的深入来做一些细化,我们可能把最主要的精力还是放在刚才所说的生存的这款游戏,以及我刚才说的新的武侠VR上面。

刚才几位大佬已经说过了,VR团队坚持到现在其实都是很不容易的,因为从去年、前年的最火,今年其实非常冷,给我的感觉就是活下去里面包含了很多要素,第一个就是你初心不能忘,不管你做什么,你对它如果没有兴趣就不要再做了。另外一个团队要养活自己,要想各种办法让自己这个团队有钱继续运转下去。比如我们这次最重要的跟中影游的这次联动,后面就会有一些大的动作来支撑我们。

这是我们公司的公共微信号,而且我们这个团队呢,有非常荣誉开源的这样一个传统,所以我们会把比如刚才的一些开放的技术放在我们的网站上面,大家感兴趣的话可以关注下我们的官网,好,谢谢大家。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: