Unite 2017 Unity罗志达分享《设计VR体验中的沉浸感》

发表于2017-05-15
评论0 1.5k浏览
我今天想要带给各位的是VR沉浸感的分享,不知道各位去年有没有参加过Unity?去年我们在这边分享了很多VR相关的内容,我想问一下,各位是开发VR内容的?可以举手让我看一下?挺多的,所以各位都还蛮厉害的,因为撑过了这一年,去年是VR元年,但去年分享的时候有提到VR元年其实是硬件商的,卖硬件给开发者。真的因为VR而买你的内容、产品的还没有那么多,但是为什么还是那么多人投入VR?就是因为有一些分享的技巧,我今天带给各位。除了沉浸感之外我还会说明一些优化技巧,可能对各位比较有帮助,如果各位是开发者的话。
    假设你是非技术人员也可以听,如果你是技术人员在后半段会稍微说明一下优化的部分。
    我自我介绍一下,我是Kelvin,我加入Unity4年了,今年是第4年来这边参加Unity,Unity也办了四届,越来越大,开发者越来越厉害。我觉得蛮开心,每一年开发者回答的问题越来越难,就代表各位开发的内容越来越好。
    沉浸感是什么?各位都是VR的开发者,同时也是VR的使用者。可是你要卖你的产品给你的客户,你可能会想我做VR内容卖给他,他会花钱买,但是经过这一年之后发现事实好像不是这样,但是你又不确定是为什么。因为有一些环节你是知道的,但是你没有意识到。
    VR沉浸感是什么东西呢?沉浸感就是如何来说服你的大脑,这是真的。什么样的沉浸感是最真实的呢?就是什么东西都没有戴的时候,现在在座各位坐在这里,听我演讲,什么都没有戴最真实,沉浸感是100%。其实你现在在家里睡觉,你不知道,你现在在母体里面。
    因为我们在现实生活的技术上没有办法达到没有设备帮你转移到另外一个场景,所以我们必须要仰赖很多设备,才会有VR头盔、眼镜、控制器、感应器、体感设备,一直推陈出新。但是当每一个设备加上去的时候沉浸感会下降,沉浸感降到一定程度的时候,消费者不会愿意花钱买你的内容,但是他会愿意体验你的内容。所以开发者族群里面分两大类,一大大类是做手游的,做手机VR的。另外一种是做体验,或者是playsationVR这种有线的,因为品质比较好,效果也比较好。你会发现做手机VR给任何人他们都很乐意体验,但是当你说你要花10块钱买是另外一回事儿,他就会开始思考这是不是他要的体验。
    这是重点,因为人体对VR的体验要求非常严格,假设你今天去线下体验店体验,正常来说这就是平常的你,但是要你去体验一个VR设备,你得戴上这么多东西,从外面看起来就是很傻。但是你要体验就必须戴这么多,你要感应到嗅觉、视觉,你要欺骗你的大脑体感,你就必须戴手环、控制器,因为你要欺骗你的大脑,每个人身体都有非常多的感觉系统,我们讲无感。但是每一个感觉缺少了沉浸感就会下降,沉浸感下降到一定程度的时候脑袋会知道这个东西是虚拟现实,虚拟现实不一定是好,也不一定是不好,看你的内容安排是什么。
    假设今天你要做一个产品有一个很关键的点,当你沉浸感到比较高程度的时候,客户会愿意花钱。国内的情况我不知道,在国外的情况在手游的VR也不太赚钱,但是在线下店有一些特殊的案例,在国内我听到的是如果要开线下店就开很多,3000间、5000间,但是内容、设备不是很好,因为要抢块。
    但是VR跟我们以往看到产品的市场不太一样,它比较面向于我必须要非常高大上,所以国外比较成功的案例有几个比较共同的特征。第一种就是每一个线下店都没有很多,都是定点式的。比如说在纽约、东京某一个点,这个点有线下的VR体验,它不会太久,三个月、两个月、一个月,要营造出什么呢?你如果现在不来体验,两个月就没了,所以它要把价格抬高,当然内容是非常好的。
    他们在线下体验店消费会高一点,美国纽约抓鬼特工队是最贵的。在国内有知户,有很多社群平台,有游戏。假设今天有一个人体验的VR内容可以到微信上告诉大家这个体验靠不靠谱,好不好玩,假如你现在有3000家体验店,我根本不用去到就能够知道这家体验店好不好玩。现在有所谓的“生存能力”大部分都会营造高大上的感觉。
    沉浸感有一些关键是大家了解但是却没有注意到的。
    第一,信任你的场景,各位在开发VR内容的时候一定是戴着头盔或者是有模拟去玩,假设你今天模拟一个非常光大的草原,但是你是在办公室里面开发的,你在开发的时候你会明白一件事情,你的人是在办公室里面的,所以你戴上眼镜开发的时候开发者不太懂,即使前面是广大的草原,但是你知道前面不是,所以你不会往前走。
    在现实生活的VR里面,这是很可惜的。假设你今天戴上眼镜之后玩家不信任你的场景,他脑袋就会知道这个是假的,会影响他付费的意愿,或许他觉得很好玩,但这个是假的他缺少美梦成真的感觉,没办法到外太空,没办法有太漂亮的女朋友,但是VR可以。如果这个女朋友不好看,你会买吗?不会。每一点环节都影响开发者付费的比例。
    最好的变化就是把场景做的一模一样,你在设计的时候必须要在策划面上很小心,假设这个场景有个椅子,你就要在里面摆个椅子。你的场景设计会有蜘蛛丝,你就放一些蜘蛛丝,假设你的场景会踩到线,那你就放些线。实际看到的东西跟真实是不一样的,比如很漂亮的沙发在真实环境里面是旧的,当体验者戴上你的眼镜之后,他发现他看到的东西和他摸到的是一样的时候,他就想要冒险,想在里面走。他会知道这个火熊熊地在燃烧,以现在大部分开发者设计的内容我知道去摸火也不会被烧到。如果是在真实的场景里面他会害怕。
    所见及所得,如果可以的话打造一模一样的场景。沉浸感必须要装很多东西,可是什么东西都可以不用装,有一个东西必须要装,就是头盔。头显一定要,眼睛看到的东西是最影响当时玩家的心态的。
    移动是开发者蛮常犯的错误,因为移动不好做。很多VR开发者都是由游戏开发者转过去的,游戏开发者很习惯用键盘操作,设计一个键盘操作、摇控器操作的游戏。这样最大问题是在于在VR里面因为人的体感不只是手,可能水平、重力、声音都会影响到沉浸感跟VR、3D晕眩,假设你今天是用摇控器移动,你会觉得很好用,很简单,我走的时候会非常快。但这会有问题的,因为VR里面的移动是非常难的,人在站立的时候身体还在微微地晃动,这个时候你的脑袋一直不断地更新这个环境所有的内容,你把它当做是屏幕渲染的过程,但是如果你是用遥控器玩的,我在往前走的时候在VR里面体感是每小时10公里的时速,但实际上我没有,眼睛会告诉脑袋,脑袋会强制重新想要去平衡你的平衡感,然后你就会头晕。年纪大的人会比较容易发生。
    假设你今天设计的是要面向某个年龄族群的,那你就可以根据这个族群去设计。如果你今天想设计一个APP,放在APPstore,你不知道谁会来下载。会有10%的用户不舒服,他到论坛去说不好玩,就是头晕,就会影响你的销售。越专业的开发者所做的内容在移动方面越保守,我们看到非常多的研究单位一直不断地在做新的机制,像无线回廊、空间定位等,非常多,要么就是设备非常多,要么也不是很好。目前看到针对游戏大部分比较常看到的是传送,传送是最安全,但说实在它在人的现实生活里面沉浸感不是那么好,但是也没办法。
    可以看一下这个游戏,它是用传送的,所以等于从A点传送到B点,因为游戏策划有点设计,所以是用开门的方式把环境打开,你可以先看到未来你要传送的点,再整个放大,变成你到哪里去。因为游戏设计为了解决晕眩的问题,所以整个都在一起。这个开发者蛮厉害的,他本身是非常厉害的图形程序工程师,他做这个游戏针对移动晕眩的议题,在国外论坛上有一篇很完整的分析。
    假设你今天要做移动,要么就是不要强制人体移动这件事情,一定会有部分比例的玩家造成不舒服,所以大部分看到的游戏内容都是禁止不动的。你会发现你们在商城看到的很多种体验,过山车、赛车、高空弹跳,很多一部分是禁止不动的。因为脚不动是最安全的,代表他不会走出去,晕眩感会比较好,比较好做。但是反过来代表大家做的都是一样,硬件在发展、演算法在发展,未来这个问题一定会有所解决的。
    再就是控制器,控制器也是开发者很容易犯的错误。大部分的开发者直接拿默认的控制器,所以你会看到游戏内容有个摇杆。大部分比较厉害的开发者会针对这个问题再做一些修正。因为是FPS设计游戏,所以用枪,用枪的情况下希望不要用摇杆,所以把摇杆插在枪上。
    我们想要大你的内容在控制器上加一点点的巧思就会非常好玩。假设大家有下载这个游戏,它里面有很多Demo,比如里面有射弓箭的,但是我个人在玩的时候总觉得少了些什么,回馈,少了反馈。这个弓箭中间是没有交互的,所以没有弹力。假设是我的话,会把第一支控制器真的绑一个比较重的弓、塑胶杆,让它有重量。中间绑一条有弹力的线,这个时候在拉的时候会感受到弹力,当然在正式商品要包装成为不会坏的,因为既然要做线下店很容易坏,所以你必须准备很完善的东西。
    比如你要做无双类的,我有一个客户是做双节棍的,但是甩起来没手感。既然控制器前面有个杆,可以绑一条真实的塑胶。这部分是最可惜的,大部分开发者没有针对这部分做设计,导致沉浸感本来可以到60,结果只有30,但只是差一点点。所以各位在设计相关控制器的时候这个地方可以做巧思。
    这个是枪,买了塑胶枪,把控制器直接插在上面。看起来好像很高端,但是你用塑胶绳把上面的扳机跟下面的扳机绑在一起就OK了。所以有很多巧思可以去设计你的控制器,重点不要让玩家真的拿实际的控制器,它只适合几种体验,敲打类的,并不适合拿的。毕竟它有很多限制,更好的方法是在控制器上做额外的设计。
    尽量不要做手跟手之间的交互,这是最难的,有很多玩家希望做多人连线,多人连线会有问题,场景物件要推倒它是很容易的事情,但对方如果另外一个玩家,你要跟他握手,这个时候物理会有障碍。现在虚拟现实的技术,所有的空间定位是针对本机的,所以我这边的控制是依照我的头盔、头显、控制器位移做控制的。如果我今天拍打对方的手,今天他没办法得到反馈。所以会变成很奇怪,你要做握手的行为会变的非常难,有些开发者想要实现,但这件事情要特别小心。
    再就是味道,味道有很多人是可以忽略的,但是不要用这种。设备是越少越好,尽量减少,所以如果要做味道尽量真的在空间,假设你今天去医院,有医院的消毒水味道在空间,如果你去工厂会有油的味道在空间,它会增加沉浸感觉,所以他会觉得真的在那个场景里面,搭配前面讲的几个就可以做。
    再是UI,UI是使用者界面。这是大部分开发者也会犯的错误,UI制作放在场景里面最好虚拟现实里面不要有,因为我们真实生活环境就没有那些东西,除非你是做比较特别的内容,比如说本来就是虚拟现实,外太空或者是未来的游戏场景。如果你今天是做模拟赛车,现实生活中的赛车在真实空间里面没有UI,就不要做。FPS开枪就真的给他看到弹夹有多少颗子弹,假设你今天的目的是为了让他相信你的场景是真的话,这件事情就不要做,不是说不要做,是小心制作,依照你的内容制作。
    声音部分很多人用耳机,当你是VR体验的时候,不是在家里在外面的时候,如果你不戴耳机环境音太多了,所以必须戴耳机。戴耳机有几个重点,第一,你可以用耳机去传达你的游戏音效,同时也可以在环境里面做音效。我们看到FPS设计游戏在场景里面要打Boss很厉害的,场景里面开枪打Boss声音听着很震撼,但是我来听少了一点什么,Boss出场的时候会很厉害,有吼声,有震动总地板传过来我会觉得很害怕,因为怪兽还没出来声音就先出来。如果是从重低音震动传过来会感觉到它的步伐,加一点点巧思会让你的声音传达,沉浸感比较好一点。
    还有我常常去体验VR会有解说人员,解说人员有两种,一种是在旁边抓着你告诉你这里要这样玩这里要这样玩。另外一种会有服务人员拿个麦跟你说前面有个枪,左边有个东西要捡,正常是不得已在这样做的,如果要做建议你有虚拟的角色在里面,有个人真的在里面,让他觉得是那个角色在跟他说话,本来我是很有感觉的,我觉得我现在就作这个战场里面,结果从天空来个声音,右边有把枪赶紧捡,我会觉得原来我在游戏里面,有点可惜。每一个环节的内容一点一点加起来会让你在社群里面产生不同的效应。
    再来就是重力感,重力感没有办法模拟,如果你没有设备的话不要模拟设备,你有OK,这种设备很麻烦,而且会影响到体验的装配时间,你在VR虚拟现实里面转180度,在现实生活中没有转,身体会告诉脑袋说其实你没有转,这样会造成不舒服的感觉,如果你有这样的设备你可以去模拟。国内有非常多的公司做这种设备,可以去尝试,国外比较少。国内在体感设备的机器上会比较特别发展,在这一块儿会有不一样的惊人表现。
    时间对体验来讲也很重要,假设体今天是2B的,你的内容不是卖给消费者,而是卖给厂商。很重要的一点是面罩的干净、损害度、时间。大排长龙的线下体验来的人大部分都第一次体验,来体验一次之后下次来是很久之后的事情,所以你要教他怎么玩,跟他装配这些设备大概要花掉90秒来穿戴,可能你的内容是10分钟,假设我们今天花了12分钟,最好的情况下是周末可以达到12小时都不要停,这是很不错的状况,每个小时只有5个人可以体验,一天只有60个人,请问各位你的票价要多少?你就可以知道这个店靠不靠谱,所以这些东西可以自己去算算看。
    我没有说这个东西是好还是不好,为什么他们会做只有那么一间体验店希望大家来体验?因为他们面临到相同的问题,假设他们今天可以开到3000间线下体验店,这个数字会非常庞大,但是必须先解决内容,所以现在所看到两个月就必须要换一次,现在的线下体验店在国外并不是大量地去买内容,而是自己来研发,去搭配商场。商场有一点可以分享,尽量不会是在百货公司里面,因为百货公司是可以随时来逛,可以不消费任何东西都走。大部分的VR体验会放在游乐院,或者那个地方是要买门票进去的。在这个前提下我已经买门票,我已经千里迢迢来这个地方了,我看到排这么多人我必须要体验一下,因为没有别的地方有了。整个环节配起来可以造成效应。
    最后Phobia,恐惧感。国外有一些案例是这样的,刚刚那些沉浸感的东西不要管可以做内容,帮助有恐惧症的人去接受治疗,因为有恐惧症的人会排斥。比如说居高症、空间狭隘症、怕蜘蛛、怕水、怕死人都有,怕不是真的怕,大部分是心理因素。所以有些国外的心理机构把刚刚那几感统统抽掉,只剩眼睛。几次疗程以后的目的是让他接受治疗,而不是透过VR来治疗他。
    中间这一段希望传达给各位一些信息,我刚刚讲的都不要信。为什么呢?因为VR改变太快了,刚刚那些都是基础,希望各位在这些基础上去衍生出你自己的,大家听我讲完回去做一样东西的话,大家做的都是一样的。虽然VR已经很久了,但是从2014年开始到现在,国外的起步水平都是一样,如果大家做的东西都是一样的,没有办法突破。
    现在投入VR的人非常多,失败的也非常多。成功的也有,但是让我们感觉起来很多东西必须要有自己的想法,假设刚刚我所讲的你觉得不认同,建议各位想办法去突破那些点。我讲的东西是外面的人惧怕这些问题,所以他不碰,或者用比较安全的方式去做。假设你要突破,你就会有别于那些产品内容,这是我们期望中国的VR客户开发者可以突破的事情,这是很重要的关键。
    再来就是讲跟优化相关的东西。我尽量收集的是没有那么技术性的,但是非常重要的。
    第一,因为VR比较特别,它是端游的设备,但是必须要做到手游的品质,必须要两个眼睛去渲染。很奇怪的是为什么用端游,最后跑出来的是晕眩感或者是交互没有办法像端游这么好。
    因为Unity里面有Resources,我建议用Resources做打包的行为,假设你要用Assets话就是在做你的原形或者做测试的时候可以用。它有很大的问题,它会打包成非常大的包,尤其是在最后一点Runtime之后会把包的内容产生Index,永远放在内存里面,它会有影响的。
    第二,要采用Single pass,Unity里面有把两个眼睛同时渲染的技术,不管你是用哪个,一定要选择某一个。因为这个会让你的两眼优化比较好一点,这个我们也是一直在做。
    第三,内存,尤其是纹理的内存。不管端游、手游、VR,占内存最大的就是纹理。从Unity5.3开始会有一个Memory frofiler在,下载点如果各位有兴趣的话可以去搜寻,但是要5.3之后,我建议你是用最新版。如果你用Memory frofiler看你的项目的话,你会看到大块的几乎都是纹理,这个纹理可以帮助你做几件事情。如果你的内存过大,可以先检查大章的纹理,有可能是美术在制作纹理的时候画太大了,或者在压缩的时候没有把它设置好。再就是你的纹理重复了,因为美术跟程序是分开的,有可能美术画完之后把资源导给程序员,导入之后没有注意到同一个纹理不同的点汇入了之后,会重复,内存就爆了。
    所以从Memory frofiler看到,假设你有两个一样的纹理,你可以点进去看它的信息,第一个是名字一样,我们再继续往前检查,第三个是Instance ID,这里很重要,是项目打开的时候才会产生的编号,假如你的编号是一样的,就代表这绝对是重复的纹理。所以你可以请美术、程序把这边调整一下,把InstanceID的相同的纹理删掉,虽然这个图一样,但是是有不同的纹理汇入的,我的美术画了一张一模一样的东西,但是却有不同模型产生的问题,是否要从美术端做修正。
    大部分的VR开发者很喜欢做后置,做环境遮挡、光晕、柔焦、动态模糊,从Memory frofiler里面会产生中介的Buffr,这个buffr会依照你的屏幕产生,所以你会注意到这是手游客户常发生的事情,他希望适配Ipad AIr,但是它的分辨率是2048×1536,所以在产生特效的时候开了这么大的内存空间,可能使用的人可能是苹果4、苹果5比较小分辨率的屏幕,造成你的内存用掉了很多,因为它是等比的。假设你今天扫一半,相当你的内存扫了四分之三,你的内存就爆掉拉,你只觉得套件不好用而已。
    Unity已经对外公开了一个叫Post processing stack,它的好处是什么呢?它会帮你把所有的特效叠成一层之后才送去GPU运算,所以不管你叠几层只算一个Memory Buffr。问题最大的地方是什么呢?目前特效没有很多,尤其是对VR柔边有特效,这个套件有提供FXAA,也不错。柔边很大的问题是很多开发者在分辨率上特别计较柔边效果,但是目前市面上能够找到可以处理柔边的效果包,大部分都没有支持刚刚提到的勾。如果有支持的话效果会非常好,如果你找到套间没有支持的话会变成效果不好,就会逼着你不要用,但是你的桢率会面临很大的挑战,你必须要买很好的显卡。所以你可以采用FXAA使用。这些列表是支持VR的,所以可以使用在VR的内容上。
    假设你今天希望的特效刚刚那个列表没有,只好自己写,如果你公司里面有写代码美术TA,就可以自己写。就是黄色的这一段。反色在算的时候如果是用旧的方法,或者不是用VR适配是算左眼的反射,给了你右眼,所以两眼看起来怪怪的。你在做VR特效的时候会发现有很多特效上面写非常厉害,但应用在VR特效里面会有问题。
    很多开发者都是用预色值,很多的纹理汇入之后很多勾。我们默认这些东西是有原因的,第一个是Read/Write enabled,CPU来运算的时候必须把纹理从GPU调用到CPU来,会耗时间,打了这个勾之后会减少时间。打了这个勾之后内存会重新消耗一份,所以这个勾在纹理里面最好是依照需求来勾,除非你那个地方要做物理运算才需要。
    再就是Mipmaps,远看的话会切换,默认值是没办法依照每个人的需求不同。
    再就是一模一样的东西,模型。你会发现Read/Write Enabled本来就是打勾的,如果你这个东西没有太复杂的运算的话,你取消了它的勾,当然也没有变化。
    你的模型在汇入的时候都会有骨架,每一个骨架都会占用资源,最好情况下是要用的骨架才显示出来。这个时候只要把设置改为在汇入的时候一改,会把所有的骨架缩起来,你只要把你要用的放在白名单里面会缩起来,在整体的效能上会好很多,尤其是你的场景里面有好几百个人的时候,好几百个人的骨架都像刚刚这么多的时候会出问题。
    今天下午一样在国外技术专场也有一场优化的,虽然不一定跟VR相关,但是演讲者是非常厉害的人,建议各位去听他的课。今天第一场的分享就到这边为止,待会儿是我的同事来分享另外一个VR跟大脑,也是非常精彩,所以我们休息一下子,因为我讲超时了,所以两分钟之后可以开始了。谢谢各位!

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