Fw: [心得] 最后2 NPC名字系统 (技术解说)

楼主: cjcat2266 (CJ Cat)   2020-06-20 20:52:13
※ [本文转录自 PlayStation 看板 #1UxW8c9Y ]
作者: cjcat2266 (CJ Cat) 看板: PlayStation
标题: Re: [心得] 最后2 NPC名字系统 (技术解说)
时间: Sat Jun 20 20:33:38 2020
NPC有名字,的确不是什么新概念
是否会产生共感也见仁见智
至于沉浸感,我自己玩起来的感觉是有点助益的
评论会特别提到,可能是之前哪次发表的时候有人提起吧
但这不是本文重点
这边我只专注于技术方面分享一些见解,有兴趣的人可以参考看看
要达到NPC有名称的效果,换取增加些微的沉浸感
总组合量与可整合的台词片段数量呈相乘成长关系
整合起来可是 天、杀、的 费工哪
先来看看前一阵子掀起讨论的Fallout 4有被配音的玩家名称
https://fallout.fandom.com/wiki/Codsworth/recognized_names
这些名称都有被配音
若玩家取的名称与其中之一相同
Codsworth便会在对话开头或结尾的时候加上
"Mister/Misses + 名称" 的语音
可能的做法有两种
方法1: Mister和Misses两种版本的语音
两个称号和每个名字的组合各录一次,录音量是名字数量x2
方法2: Mister和Misses两个字分开录
然后每个名字只录一次,然后即时将称号和名字串起来播放
实际使用的应该是方法2
录音量等于名字数量,工程量为方法1的一半
但每个名称录音片段就必须 *确保裁切妥当*
Mister/Miss称呼与名称之间的留白时间,稍有差错听起来就会怪怪的
从名单的大小看来,前置留白裁切应该是自动化,否则靠人力会吃力又不靠谱
"Mister/Misses + 名称" 都是以独立完整肯定句呈现,前面后面衔接完整句子
所以每个组合总共需要一种语调变体
印象中之前媒体和玩家整合出来的名字有上千个
素材规划与整理肯定需要消耗一定量的资源
接着看The Division
我自己是没有玩,不过初步研究的结果
是NPC死亡的时候其他人会叫"They got XX!"
作法应该是跟上述方法2一样
"They got" 和名称分开录制
确保每个名称的前置留白正常,即时将两个语音传在一起播放
然后这也是独立完整肯定句,所以语调变体也是一种
然后是The Last of Us 2
会使用到名称的台词,不是只有一种语调
名称在句中定位,又有不同轴向的分类
语调:肯定、疑问、惊叹、命令、相互确认
能量:远距喊话、近距对话、自言自语
位置:独立、句首、句尾
每个组合需要一种语调和留白,好与句子和前后文串起来且听起来自然
以下是一些范例
"XX. You Alright?"
"XX? You there?"
"XX..."
"XX is dead!"
"They got XX!"
"Go get them, XX!"
素材的录制和管理量大,需要专人负责
所有句子使用的名称语调轴向组合必须一一手动确认,否则听起来就会不自然
然后在整个不断叠代的开发过程中,QA需要不断确保各种句子的组合没有坏掉
背后所需的人力不容小觑
换来的只是多了那么一点点的沉浸感,值不值得? 我认为非常不值得
但对龟毛的人来说,这是开发工程的浪漫
小团队或没钱烧的团队,千万、千万不要跳到这个坑里面
这么费工的事情,我认为未来朝用机械学习辅助的方向前进是无可避免的
可以将留白裁切、语调协调自动化 (但QA的环节应该还是得靠人力)
像是角色移动推进动作生成的motion matching (MM)技术
现世代的作法是从动作池中选出适合片段混和
未来有可能会演变成用机械学习的方式生出动作
Bungie在十多年前雇用初始MM论文作者
想要在Halo Reach中使用MM技术,结果因为硬件效能不足而作罢
后来Ubisoft的研发团队开发出自己的一套MM系统
在For Hornor中使用,是游戏首例,在GDC上分享之后在开发者间广为流传
同个团队已发表使用机械学习搭配MM的变体,就我所知还没用在实战中
未来可能可以在游戏中看到
优点是自动化的流程能够节省人力和时间
缺点是当下动态生成的动作,很难得知是如何训练出来的,除错上有一定的阻碍
题外话
一个跟NPC名字不太相关,但是跟语音有关的环节是 "对主词状态的了解程度"
若不是摸到相关的AI组件,我压根不会去注意到声效团队有默默地在做这件事
情境上来说,NPC还没有看过玩家之前,不会知道主词的性别或单复数
这个时候的台词会偏向于使用中性主词
"Did you see anything?"
"I think someone's over there."
初次看到玩家和伙伴NPC之后,台词会整组换掉,变成已确认主词性别和单复数
"He went over there!"
"Has anyone seen her?"
"They're here!"
然后每场遭遇的开场状态不同
有时候NPC一开始完全不知道主角状态
有时NPC以为主角只有孤身一个
又有时NPC已知某人存在而不知道主角的存在
所以每场遭遇的开场状态都需要一一手工标记
这是一个容易忽略的小地方,但我觉得值得提出来褒奖一下声校团队
题外话2
调查(investigation)对话也颇费工
这是指NPC观察到有异样时,去调查的演出,是有匿踪要素的游戏中很重要的环节
同样有不同轴向的要素,不同组合的对话类型也就不同
异样种类:视觉、听觉
异样主体:玩家、物件、尸体、伙伴失踪
调查种类:孤身调查、命令调查(叫人去调查)、掩护调查(叫人掩护自己去调查)
可疑程度:初次异样、二次异样、多次异样
根据不同的异样种类和主体,开场句就有很多种变化了
"I think I saw something."
"Did you hear something?"
"Hey. Are you okay?"
"Hey. Where are you?"
叠加上调查种类会有更多变化
"XX. Go check it out."
"I'll take a look. Cover me."
然后根据可疑程度,最后有可能会演变成直接进入搜寻模式
"What was that?"
"Again?"
"Someone's messing with us. Start a sweep!"
因为我负责调查演出AI,所以很喜欢去注意其他游戏做到什么程度
A Plague Tale真的是匹黑马,演出和龟毛程度都不是盖的,是我很喜欢的游戏之一
里面就有做出不同可疑程度的调查演出
作者: patrickleeee (派脆)   2020-06-20 21:05:00
辛苦了
作者: wulouise (在线上!=在电脑前)   2020-06-20 21:34:00
关系设定也是很麻烦,ML读脚本标定关系或是做二次验証不知道有没有人这样做
作者: dklassic (DK)   2020-06-20 21:34:00
辛苦了 XD我觉得理想上未来应该是直接合成语音然后可以直接调情绪表现,就不需要大量标注资料,也可以确定一定接得起来个别录音更有效的可能是建立自己的语音库,可以非重要 NPC 都完全合成,也方便改台词
作者: ilohoo (ilohoo)   2020-06-20 22:59:00
辛苦了工程师
作者: coolrobin (泳圈)   2020-06-20 23:54:00
推推推
作者: xdorz87 (87)   2020-06-21 10:07:00
我本身做游戏配音相关工作五年了,要用合成语音去做情绪这件事到目前为止还是完全不可能的,情绪这种东西是很细微的东西,多一点气声或断句改变,整句感受会完全不一样
作者: dklassic (DK)   2020-06-21 10:26:00
Ubisoft 的看门狗新作好像就在实验类似的系统,为了配合任何路人都可以招募的机制不过确实还是用二十组样本声音去处理,而不是更泛用的做法
作者: jackyT (Ubuntu5566)   2020-06-21 20:01:00
合成的还是会比较不自然 然后这种都是特别想雕的功能应该宁愿麻烦也想做到最好
作者: rickkcir (多果汁)   2020-06-23 17:43:00
长知识了,这游戏的npc躲藏系统我觉得也很有趣
作者: Pony5566 (Luna Akbar)   2020-06-24 06:28:00
难怪会需要血汗加班来搞好这些
楼主: cjcat2266 (CJ Cat)   2020-06-24 06:58:00
躲藏系统是说stalker的行为?
作者: LayerZ (無法如願)   2020-06-24 15:31:00
其实AI应该能做到?未来的话啦
作者: LuMya   2020-06-25 14:46:00
好猛
作者: jimmylily (jimmylily)   2020-06-29 03:07:00
辛苦cj猫大了,自从游戏发行后一直很期待上站分享,可惜这次因为剧情吵的沸沸扬扬,反而没特别赞扬这次厉害的游戏物理和系统
作者: cp11225637a (= =)   2020-07-02 19:03:00
推,虽然有些看不懂(可能是我太菜了
作者: seedamen (Amen)   2020-07-07 17:50:00
推分享,谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com