《怪谈》开发记录(05)

《怪谈》开发记录(05)

2020 年 3 月

游戏机制上的疑问

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

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

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

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

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


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

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

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

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

《怪谈》开发记录(05)

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

《怪谈》开发记录(05)

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

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

主要角色的定妆

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

《怪谈》开发记录(05)

<small>苏苏(主角)/<small>

《怪谈》开发记录(05)

<small>叶子哥/<small>

《怪谈》开发记录(05)

<small>川子/<small>

《怪谈》开发记录(05)

<small>主角母亲/<small>

《怪谈》开发记录(05)

<small>西西,项目一开始就给定过妆了/<small>

《怪谈》开发记录(05)

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

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

西西着装的修改

《怪谈》开发记录(05)

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

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

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

《怪谈》开发记录(05)

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

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

《怪谈》开发记录(05)《怪谈》开发记录(05)

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

让剧情按照剧本发展

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

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

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

大概有以下功能:

  • 基础对话语法

  • 表情、动作、神态控制语法

  • 条件语法(触发)

  • 延时执行语法

  • 自定义调用语法(用于给其他脚本绑定事件,类似 Vue 的 Emit 功能)

  • 自定义语法识别模块(扩展用)

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

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

《怪谈》开发记录(05)

人物跟随与找路

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

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

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

三月总结

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

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

  • 完善家里场景,确保动画正常

  • 小段日常的衔接

  • 完善山

  • 做第一天,第二天,除开夜晚

《怪谈》开发记录(05)《怪谈》开发记录(05)


分享到:


相關文章: