VR设计

10+人的团队如何用Unity打造一个完美的VR世界

2017-03-13  本文已影响73人  元宇宙云课堂

Making the World of Firewatch

今天要分享的是GDC2015的一篇演讲,关于Firewatch的。

首先是关于团队合作。

10+人的团队如何用Unity打造一个完美的开放世界。

分工如下

一共有11-12人

8个人在San Francisco 3个在海外,3个人全职美术

演讲者是团队中的一个3D美术。

故事的简介

遇到的一些挑战

如果有多个Level,每个人负责不同的level,那么合作就不会有问题

在Fire Watch 中,一共有11个人一起工作在一个大场景中

场景的合并会变得非常的复杂。

解决方法如下

首先是利用Prefab,把能做成prefab的地方尽量做成prefab,再由scene去load对应的prefab,减少工作的耦合度。

其次是同一时刻,只有一个人去改变scene.这个人要告知其他人,他正在修改。

版本管理工具用的是perforce。(unity配合perforce确实非常好用)

将一个场景内的对象进行分类,这样对应的人就可以只负责对应的部分。

为了实现这种效果,我们用了一个Unity的工具,Sector

作用就是将数据分为一个一个的sector。每个sector都可以独自工作,又能动态地加载到main level里

在Unity中通过不同的天数来作为不同的对话逻辑SubSector。

对于不同的天数,加载不同的subsector。

对于游戏场景则是通过空间的划分来处理。

下面是第一条超级建议!

不管你用的是什么引擎,努力去做到让团队里的每个人都能并行地工作。

接下来的内容是

关于世界的加载与卸载。

最开始是尝试根据玩家的位置来加载玩家附近的内容,称为Nearby Loading

但是一个在上面的例子中,如果玩家在Floor2,Floor1也会被加载,这并不是太好。

最后的选择是根据门来处理

比如角色在Floor2的时候

角色在Floor1的时候。

整个游戏场景被划分为下面几个Sector,在不同的Sectr之间都有一些虚拟的门。

当玩家在这些虚拟的门,这些门作为Trigger,当玩家穿过这些门的时候就会加载/卸载对应的Sectr。下面就是那些门

接下来是在不同的Sectr之间穿梭的一个例子。

每个Sectr还会被分为两个部分加载,上层的树木,下层的地形和低矮灌木,从一个很高的地方往下望的时候,其实只要加载上层的部分就可以了。

在两个Sectr之间通过一个山坡进行遮挡。

当在贴近地面的时候,我们又会把Sector的上层部分给卸载掉,这些对于玩家是没有用的。

在很多地方的地形都会做一些弯弯曲曲的地方,除了显得更加自然,更是防止玩家回头看的时候穿帮。

第二条超级建议

利用Streaming。

Steam可以让你在保证一定性能的情况下添加更多的资源。

下面聊到的是自然环境的处理。

当时用的是4.5版本的Unity,没有Speed Tree,只有UnityTree。

用这个东西并没法去做一些好看的树,用起来可能很方便,但是太多局限。

所以我们自己做了很多树…

上面的14种树用的最多。

整个场景大概摆了4600多颗树,都是手动摆上去的…

左边是树的模型,中间是把树放在Unity里面的样子,右边是贴图。

一棵树主要由下面几个部分组成

树的主干,底部的一些枯枝,和装饰

还有上面的一些用面片做的树叶。

为何底部有这么多的细节?因为相对于角色,树非常的高大。

一共做了4级的LOD

注意Lod1和Lod2不仅仅是面数上的变化,还有投影上的变化。

这些Lod都是手动去制作的。

在Lod的切换上并没有使用Lod Cross fading,因为在Cross fading 的时候,需要同时去draw两个lod,这会带来draw call上的负担,特别是对于我们这种树特别多的场景。

下面聊一下树的shader

首先是通过alpha通道来cutoff,(其实就是alpha test)。当树越远的时候,alpha cutoff越小,这样树看起来就更加的葱郁。

通过顶点动画来控制树的晃动

红色是控制横向的运动,所以顶部的运动最大,其它两个通道也有不同的作用。

第三条超级建议

模型的多样性被高估了,有10个制作精良的模型然后通过缩放,旋转进行复制可能比200个不同的模型有用。

模块化思考!

下面说的是地形

游戏中用的是Unity的地形,非常方便,但是有挺多地方需要注意。

首先是在垂直的地方会有UV的拉扯。

第二个问题是,Unity的Grass会比你想象的更费。

关于地形的投影

第四条超级建议

更早的去进行性能分析。

最后讲的是世界的构建。

我们不实在构建一个森林,而是一个目的性很强的世界,每个区域的都是带有叙事目的的

从一张地图设计开始。

同时进行一些美术概念设计。

理论上把这两者结合起来就可以构建出游戏世界了,但是还是存在一些问题。

尝试用白模搭建场景。

还是会有问题

解决的办法是实现游戏的一个切片,这个过程花了我们15个月,当时的压力很大。但是

最初的美术设计都很简单

树只有一种,地形也很秃,简单的光照和影子,这已经够了

最终的效果

最后一条建议

在我们游戏制作过程的最后1/3,感觉哪里都在着火。

做游戏不易,如果你是在尝试新的事物,不管你是否是一个老司机,你都会像一个新手一样。

所以

上一篇下一篇

猜你喜欢

热点阅读