UNITE2018见闻录

前言:从去年Unite上海到今年Unite北京,从Unity5.x的版号命名改成2017的年份命名之后,确实Unity改进了好多,不管是从易用性还是渲染方面。长期看多。

KEYNOTE

往年第一天上午keynote,下午开始正式分享讲演。今年Unite第一天,下午开始Keynote,晚上是party,以为只是商务洽谈,再加上确实饿得不行,所以8点就走了,没想到后面竟然是一个晚会,有人唱歌跳舞,还有饮料啤酒。

下午在keynote的时候跟同事聊,说Unity本来做游戏做不下去,后改做引擎,提供服务,一来对非C++的脚本程序员特别友好,又有完美的并且在商业上十分提前的跨平台方案,无脑上手,所以建立了庞大的社区,并且有AssetStore来让初创者在没有美术加入的情况下获取开发原型需要的美术资源。

并且之后在发展站住脚跟之后开始挖人,开发足够商业使用的工具链,研发更好的渲染系统。不得不说,在做企业方面,确实甩了Unreal一条街[二哈]。

江毅冰

育碧的组织架构和开发流程

一直在强调一线的专业人士是非常令人尊敬的。工资有可能比管理者高。工作任务的交接审核都会向上提交。灯光师的重要性。音频师的重要性。

利用Timeline和Cinemachine在40分钟内做一个小短片

很强大。基本上是用做影视的思路来做的这俩插件,包括比如机位、机轨,角色脚本操作。绝对够游戏剧情使用了。

光照图烘焙并不是完全不使用RealtimeGI的数据

光照图的静态烘焙中,哪怕你没有勾PreComputeRealtimeGI,实际上底层还是会按照实时GI的配置产生中间对用户不可见的中间贴图,比如用来计算间接光照用的贴图。

所以在烘焙静态Lightmap中,其中控制实时GI参数也会对最终的结果产生影响。比如哪怕你静态Lightmap的精度非常高,但是如果你实时烘焙的精度不高,这样在最终静态Lightmap的间接光照计算中会产生瑕疵。
另外就是讲了一些基本的Lightmap优化策略。这些我以前写过,请参照谈Unity烘焙光照图

ARKit方案

实时生成面部网格数据。用BlendShape做表情变换。

LiveTune的A/B测试

效率对于留存特别重要。部署玩家看不到的两个服务器,一个正常功能,一个是想尝试修改的功能,自动将玩家分配到不同服务器,分析各留存数据。其实就是以前做物理化学实验中的控制自变量的对照实验。

SRP

讲的太浅显了。以后等我研究了再说吧。

线性和伽马空间

PBR必须线性。光照的计算都在线性空间。平时我们使用各种软件都是伽马空间。伽马的原因还是因为阴极显像管的电压和亮度不成线性变化。

Unity中的机器学习

个人还是很感兴趣的。讲演的作者做了一个小游戏,坦克大战。分PVE,和PVP。PVE就是敌方不动。价值网络就是杀死敌方得5分,自己被杀扣1分。

然后通过修改策略网络重新学习还是能很容易看到AI的变化。比如当自己被杀扣1分的时候,AI就会不要命的往前冲,死亡率特别高,但如果把价值网络中自己被杀的扣分提高为3分,明显看到AI怂了。对,怂了。

进军泛娱乐

自从Timeline和Cinemachine公布之后,确实很多以前传统做动画影视CG的公司转型了,这次得到了验证。开发周期、开发成本都得到了大量的下降。原因基本如下。

  1. 不需要小时量级的时间来让导演确认镜头打的对不对,因为实时渲染的效果足够ok,导演基本在开发期就能确定。
  2. 资源库的复用。
  3. 可以写max、sunstance等等软件完美配合。甚至在unity2018,substance为unity单独开发了实时预览的插件。

NVIDIA FLEX

软体物理。流体物理。看着挺棒的。有点兴趣。

ProBuilder

ProBuilder在keynote就展示了,这一点还是很佩服unity。确实解决了一部分人的需要,而且在我看来还是很重要的。
一来经常在项目里会有这种问题,策划对于地图尺寸、场景布局没有太多概念,美术花了大量时间做好完整场景之后发现不合适,或者被兼修方要求修改。

虽然说这主要是国内团队没有做原型开发、迭代开发的锅,但是这中间确实有些跨部门沟通的难题。
现在probuilder可以直接在Unity的拉出白膜,就会很好的解决这个问题,而且最主要的,根据我的经验来说,要一个策划或者程序,能很快速的找到3dmax里的操作,比如挤出一个表面的步骤不是一件容易的事情。而如果unity提供这种工具,我觉得最主要是在基本模型操作的学习成本上降低了特别多

这个工具最大的优点是,在初创团队没有美术人员的情况下就能做原型。反正场景白膜就行。原来看到守望先锋的开发流程,中间地图设计就完全是白膜。因为对于射击游戏来说,本来地形就会在设计阶段频繁修改,如果不这么做,要死人的。

自定义渲染问题CRT

贴图+材质=一张新贴图。然后这张新贴图你可以赋值个另外一个使用贴图的材质。

说白了就是程序生成纹理。啥意思呢,就是通过代码生成一张贴图或者对一张贴图进行修改。如何通过代码生成贴图可以参考Shadertoy,另外数学里面的分形就是很基础的用法。

这一点跟Substance Designer的理念一模一样。Substance原来写过一篇文章请参考Substance Designer心得

Shader Graph

unity终于开始做了shader连线工具,那场爆满,都挤不进去,不过预估计在3.0版本之前应该还不如shaderforge好用。不过总体说来这确实是趋势,让美术人员(包括TA),能把自己的想法直接实现出来而不是通过引擎图形程序员。

Mihoyo的分享

米喝油今年又去了,对于角色渲染不过没讲啥新东西,讲了云的制作方式,不同光照环境下的,还是挺有收获的,不过真的需要美术帮我重现,引擎程序员的软肋即在此。

优化MMORPG

基本是老生长谈。其实主要还是执行力吧。

Cinemachine以及Timeline在除了过场之外的应用

虽然Cinemachine和Timeline主要设计是为了给影视使用,但是我觉得这俩还是能抽象出来给游戏使用。

做过这么多项目,基本每个项目的镜头都不一样,而且基本上每个项目镜头是不同的人写的,设计理念上有一些区别。虽然我们后来尽量重构成了父类负责接口通信,子类负责镜头具体策略的架构,但还是架不住新的奇葩需求和兼容以前配置数据的坑。所以想过要不之后完全用Cinemachine来做,这样不管是MMO、ARPG、体育竞技类、TPS、大招、过场都能通过这个搞定。

二来,Timeline我觉得也可以评估替代我们之前的ACT系统和剧情过场系统,完全由美术所见即所得的在Unity里编辑。目前想,主要还是动态加载比较烦。

资源管理架构

可寻址Asset,也可以利用这个机会重构重写。

CRIWARE

音频插件,若峰说挺好使的,之后也要改过去。