云来山更佳,云去山如画,山因云晦明,云共山高下,欢迎来到我的博客,这里便是山云汇雾之处~

《怪谈》开发记录 02

记录 PG7GO 44℃ 0评论

 

前记

上一篇日志已经记录了大约6个月的内容,再次编辑起来,以前内容太多比较繁杂,于是决定另起一篇

 

2020年3月

游戏机制上的疑问

在初步做AI时就遇到了点问题,NPC是一直走在玩家前面,还是在玩家旁边

如果走在前面,交流看不见脸,如果走在旁边,玩家侧着身子走?不然也看不见NPC。

这里问了一下朋友,得到的回答是:

在其他游戏里一般按NPC和玩家的关系放位置,如果NPC处于引导的那一方的话就走前面,如果是玩家引导NPC的话就NPC跟在后面,基本没有平行着走你看着我我看着你这种情况,有的话也是过场CG。第一人称的话一般都是NPC走前面,使命召唤系列所有这种情景都是NPC在前面,如果想发生对话的时候自然一点可以让NPC停下转头。

第一人称上学场景我还真没找到完全类似的,在很多第三人称游戏里倒是出现了与NPC并排着边说话边走的场景,比如热血无奈的序章,荒野大镖客2也有很多这样的场景,这种时候都会限制玩家的移动速度,不会比NPC走的更快,而且如果落后一点NPC就会停下催你或者转头叫你。第一人称都是NPC领先一两步的样子,注重细节的就会两步一回头,或者转过来面向玩家背着走一小段说话,更多的就是NPC在前面走然后还在说话。

你想想我们俩平时放学回去路上说话也不会盯着对方看啊,那多尴尬,顶多说一会儿看一眼

我想了一下,确实是这样的,这类游戏一般都会做成第三人称。

还有一种是像T社游戏或者《黑相集》那样的导演控制镜头,玩家选对话选项,这样一般能做出许多绝妙的镜头,电影感很强。

 

全程第一人称会失去很多细节,举个例子,下图这个袜子,在近处看是这样的:

 

但是在玩家的视角,正常的第一人称视角下,就是带粉顶的白袜,就算你靠得很近,也看不清细节:

 

《合金装备》在这方面就做得很好,幽灵兵出来都会给个特写,各种细节展现得淋漓尽致。

原本我想的主角是没有模型的,因为第一人称游戏是看不见自己的,最多看个手,在现在看来还是加上第三人称,但是也保留第一人称。

 

主要角色的定妆

所有主要角色的定妆照出来啦!这月算是把人物、服装模型和贴图做完了,感觉我都可以转行做3D美术了,哈哈,开玩笑的。

 

苏苏(主角)

 

叶子哥

 

川子

 

主角母亲

 

西西,项目一开始就给定过妆了

 

原本主角的设计是这个样子的,后来做睡衣时把发型给改了下,结果似乎大家更喜欢第一张图发型……但是可能有点违背剧本了,因为主角颜值设定并没有西西好看。

总结一下这里吧,最早建西西的时候学到了许多技巧,这里人物建模做起来也比较顺畅,稍微难些的地方可能是在面数的控制上,建完一般都得手动减面,不然游戏引擎渲染起来会比较吃力,特别是头发,这里的主角在游戏里是只剩下了1/50的发量(不过看起来差别不大)。

 

西西着装的修改

最右边的是最早版本,中间是第二个版本(衣服年代化),但是发现没最早的好看,于是有了第三个版本(最左),结合前两的优点。

上衣目前还没画贴图上去,还没来得及……

 

这里用了一个trick,百皱裙实际上是一个纸片,上面的褶皱是我画的一个简单的法线贴图来实现的。

这里我也试过用高度图,但是发现效果不如法线贴图好。

 

人物零零散散的修改

皮肤材质改了下,法线贴图换了下,所有人头发材质都修改了下,做了下各向异性的修改。

 

(这个动画好僵硬)目前还是用的mixamo的动画库,之后可能换一些自然点的。这里主角睡衣没做布料模拟了,直接用的蒙皮,因为在家里运动幅度也不大,看起来差别也不大。

 

让剧情按照剧本发展

这里我写了一个词法分析器,用于读取我的剧本文件(txt),语法是按照正常人易读的方式。

最早我是打算用inky,因为我上一个项目用过,挺好用的。不过这里发挥不了ink的强项,因为不是多文字分支,而更多是触发方式,所以我自己写了个。

上编译原理课时就写过词法分析器,在这里算是轻车熟路了。

大概有以下功能:

  • 基础对话语法
  • 表情、动作、神态控制语法
  • 条件语法(触发)
  • 延时执行语法
  • 自定义调用语法(用于给其他脚本绑定事件,类似Vue的Emit功能)
  • 自定义语法识别模块(扩展用)

 

在语音方面,能自动查找目录下对应的语音文件,并读到内存,如果没有找到,则启动备用语音模块。

用于下载生成的临时语音,之前我服务器上有一个文字转语音的模块,这里直接调用,测试起十分方便。

 

人物跟随与找路

目前用状态机做了5个状态,花了不少时间来调参数,测试起来没有太大的问题,只是感觉有些不自然。这里应该还需要继续打磨。

原本还是想记录一下的,想到还要录视频,然后上传,太麻烦,还是算了,也没啥好看的。

这一模块暂时就这样吧,以后再进行修改优化。

 

三月总结

本月看似进展很多,但暗下却让我有些担心,人物多了后场景渲染会吃力许多,主要消耗在CPU上,DrawCall太多,因为材质比较多,我担心Unity对分层贴图没有进行很好的优化,不是合并一起渲染,而是分开渲染的。人物方面,如果性能消耗过大必将进行出场限制,会导致剧本改动,要么进行人物优化,又会使得画质下降,有点进退两难。

翻一翻RoadMap,下个月计划就选中这些吧:

  • 完善家里场景,确保动画正常
  • 小段日常的衔接
  • 完善山
  • 做第一天,第二天,除开夜晚

 

 

2020年4月

第一人称视角与玩家模型的面部剔除

刚开始做的时候,遇到了这么一个问题:

抬头时头部穿模

我想实现的效果是既能看见身体下半部分以及腿、手这些部位的动作,又不会在四处望时导致脑袋穿模。

 

时间仿佛又回到了去年,在我上一个项目时也遇到过同样的问题,当时我是这样解决的:

用暴力把脑袋和手臂藏起来,第一人称视角玩起来毫无违和感

后来我也发现了,锤子的没有违和感啊!明明影子就会把你暴露得一干二净。

所以我上一个项目后来想出了个解决方法,是这样做的,设置两个摄像机,一个正常渲染,但是裁剪平面距离设置比较远(即看不见近处的东西),另一个专门渲染近处,但是不渲染自己的模型,这么做完全可以,但是会导致性能开销比较大,两个摄像机都要分别做剔除、后处理这些操作(这可能就是我上一个游戏优化很差的原因)

如果摄像机在眼睛前面的话,那么只有往前望的时候才不会有遮挡,但是摄像机会旋转,那么如果头部能跟随视线方向旋转呢?

于是我尝试把头部和视线绑定一起:

 

看起来还挺自然的,不过问题依旧存在。在我观察摄像机运动轨迹时,想起之前为了模拟真实视角,我把脖子部分扭动运动也加上去了,轨迹是这样的:

 

这里卡了我好一段时间,后来才想起来做剔除处理,保留影子。但是这样在镜子里看不见,不过也有解决办法,就是把另外一个光照层里正常的渲染到镜子里。

剔除后的效果:

 

自己做动画!

我从来没有想过有一天会到自己做动画的地步,可能是因为受到过“六年工作经验动画师.gif”、”高端动画师求职,擅长大幅度动作平滑过渡.gif”的耳濡目染,一直感觉动画这一块儿是特别高深难的东西,听过手动k帧一个月的故事,心中充满了恐惧。

原计划是在成都找个地方租套动捕设备,花时间把所有动作给录了,但是挠挠头,这方面是一点经验也没有啊,可能还是得请个动画师。

不过和本项目开始的初衷一样,初生牛犊不怕虎,硬着头皮学一点吧,以后找工作可能也用得着,不说多了,至少了解一下也好。

目前主流的方式是FK/IK,从这里下手,大概找到了以前做视频时用关键帧插值的顺滑感觉,特别是IK,原以为很复杂,得自己写解算代码,后来发现自己想多了,这东西就像你点了只鸭子以为要自己处理,结果别人都帮你做好端上来了,你负责吃就行了。

 

朋友评价:我是一个面无表情的吃饭机器

 

昼夜交替

 

昼夜交替做起来实际上很容易,不过对场景烘焙太不友好了,可能白天晚上都得分别烘焙一份,再动态切换lightmap,之前说写一份代码测试来着,结果我烘焙总是内存溢出,不知道是不是场景太大了,24G内存,我还分配了100G虚拟内存在固态,都还是不够,真的很迷。

 

升级渲染管线至HDRP 7.3.1

实际上很早就琢磨着把unity从2019.2升级到2019.3,因为预览版的HDRP太多BUG了,之前遇到了些比较棘手的渲染问题,处理起来有心无力。

深知Unity版本升级是大忌,想起前不久的做影视动画《windup》的制作组也是和我一样用的2019.2 HDRP 6.9,他们材质全用的是Tessellation,结果升级到2019.3后连项目都打不开了……

于是我做了个备份,开始了漫长的升级之旅,第一次版本升级后,弹了各种错误,我把library重建后,错误消失差不多了,然后又按照官方文档替换volume中弃用的组件,先前本版的问题大多解决了,不过很多新问题又如雨后竹笋般出现了,反射探针曝光过度,SSR在某个角度会渲染出杂乱的图像,体积雾的参数发生了改动,导致得把场景中所有雾参数改一遍,同时,天空volume的曝光过渡会有奇怪的卡顿,无奈,把所有曝光调成一致,然后改后处理的间接光强度和自动曝光来实现同样的效果。地形贴图也开始疯狂闪耀,把draw instanced关了就好了,但是性能下降不少,真头疼。

 

版本更新后照了下镜子,吓死我了,这材质……

 

彩蛋

经 典 重 现

 

四月总结

本月把人物的移动、交互、视角切换、基础动画打磨得差不多了。

把第一天做完了(除开Gameplay的剧情部分),但是效果不是很满意,对话、动作、表情显得太僵硬,不过目前也没有太好的办法,之后再想想办法。

 

下月计划:

  • 优化材质
  • 把几个僵硬的动作改了
  • 第二天做完
  • 完善山
  • 把剩下的场景模型给建完
  • 实现部分Gameplay功能

计划有点多,所以下月目标是挑一半的计划来做。

 

 

2020年5月

讲个坏消息吧,接下来半年应该都不会再推进进度了,我准备去考研啦。

原本是打算把这个作品做完去找工作的,无奈身边的朋友都选择了考研,我也被鼓动了几分。

运气好考上了话,应该会继续开发走,如果没有的话,可能只有工作之余再继续开发了。

想一想这个游戏还是开发了蛮长时间的,我最大的收获还是开发过程中学到的各种技能,以及处理问题的办法,比如说给插件作者写信就是个常用的方式。

唉,还是有点小惋惜的。不过按照我的这个开发进度,确实也不能保证毕业能开发完,考研算是一条保险些的路吧。

 

最后想说:谢谢大家的支持!

 

本月的一些琐碎开发

名字定下来啦,《怪谈:如水》。

游戏流程上算是完成一个整天了。

贴几张图吧。

做梦境做起来感觉顺手多了,终于能发挥想象力了。

 

—未完待续,定时更新—


PG7GO , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:《怪谈》开发记录 02
喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址