本文是基于《刺客信条:奥德赛》 电影级对话自动生成系统学习整理的资料,工具开发作者是Ubisoft一个名为Francois Paradis的程序员,集结他21年来剧情生成系统之精华。第二部部分是《巫师3》剧情对话系统简单介绍,工具作者是动画技术导演Piotr。最后是国产游戏对话表现类型总结。
《刺客信条:奥德赛》
-Procedural Generation of Cinematic Dialogues in Assassin’s Creed Odyssey
1200段场景对白,30小时场景对白 25000行对白文本
项目组分工
- 剧情编写
- 动画:主要是角色、动物动作,摄像机。
- 自动化工具:程序化生成的优势是稳定输出,可基于现有资源产生Inspiration,工具化内容数量有保证。
- 任务设计
工具
- 剧情对话内容分支可视化工具
- 时间轴可视化工具
- 可自动生成轨道结构和内容
- 控制不了太细的角色动画细节
完全机器自动化生成—–完全手工定制
L1 完全自动化生成 20% L2 少数手工调整无需额外新增资源 70% L3 大量手工调整需要额外新增资源 9% L4 完全定制 1%
流程
- 提交-> 测试-> 确认
- 可随时手动生成,随时调整效果,每天晚上定时生成。
美术沟通
- 展示效果,直到满意
- 设计规则去满足
- 系统能做什么,不能做什么,设计瓶颈是什么
- 美术配合调整自动化效果
- 美术有完全控制力
- 耐心解释有些是资源问题,不是自动化问题
- 持续稳定的展现效果
生成器的输入
- 对话内容
- 说的人、说的对象
- 情绪标签
- 音频
生成器的输出
- 角色
- 对白
- 动作
- 相机
- 灯光
- 环境
舞台
- 先确定对话角色的位置,创建所有可能相机的位置
- 相机厂库:通过镜头参数排列组合
-
三种站位 a. 标准(角色稍微侧身) b. 侧身 c. 越肩
-
由近到远五种摄像机距离
- 所有镜头完全程序化生成,算出摄像机位置。保持角色头部在屏幕上部视野范围内,根据人的高矮(四种级别),产生摄像机俯仰。
- 三种不同的镜头跟随模式(Unity可用Cinemachine插件开发) a. Handheld b. Steadicam c. Fixed
- 基本规则谁说话给谁镜头,根据选项打分,比如多人说话保证都在镜头内,有表情的给特写。
- 时间维度上增加细节,过长切开和过短合并,镜头提前或滞后。
- 分析情绪标签、文本从动作库中选择合适动作(动作事先标记好动作幅度和峰值得),根据分析数据融合动画。
周边系统
- 口型匹配方案,不同国家
- LooAt没说话的看着说话的,说话的看着对话目标。
- 眼球动画制造情绪
- 镜头方向补光
- 设置禁区,排除npc干扰
- 适配多语言语音对话长度在时间轴上的差异
《巫师3》对话系统
Behind the Scenes of the Cinematic Dialogues in The Witcher 3: Wild Hunt
为什么电影级对话对于玩家如此重要?
《巫师3》定于不是基于一条故事线进行的开方世界的RPG*,根据玩家自己的想法给予一定的选择机会,以及选项有情绪代入的功效;效果直接展示给玩家,而不是平铺直述给玩家。
三十五小时对话内容,二个半小时过场动画
过场动画 Cut Scene
手工制作过场动画成本巨大,调整RPG对话也需要花费大量时间。
游戏过场动画主要使用于进入新场景、引入新角色、预告战斗、渲染故事情绪、预告新章节。和传统CG的区别是一般无需重新制作场景和人物高模,但部分近景动画需要制作更写实的人物头部、表情动画、姿势等。
Quest Graph
任务系统是可视化脚本语言实现,其中包含有Dialogue Node,分歧用流程线来联系。
Dialogue System
-
时间轴编辑有角色、摄像机、物件、灯光、面部表情、天气等 ,每个作为事件派发,可以裁剪、插值融合,加权重。可以手动制作,也可以通过大概180个规则以及模板自动生成对话时间轴。
-
不仅仅可以制作动画相关内容,还可调整光照、天气(时间、太阳光源)等气氛感视觉的后处理。
The PipeLine
对话类型
面板对话
相比镜头对话,面板UI化对话大大减少角色资源编辑量,只是简单的头像、半身像、搭配UI文案面板。资源可是2d静帧图,3d固定模型,Live2d动画、Spine动画等。相对镜头对话表现力弱很多,主要是承载更多的文字量,加重说书体验。
- 近景对话
- 头像悬浮
- 半身像
- 冒泡
分支对话
分支对话是对话界面加上分支选项,可做剧情的跳转。注意不要用太多无效分支干扰玩家的游戏进程。部分关键分支可做限时,营造紧张感,督促玩家按直觉选择。
- 面板按钮
- 转盘
交付对话
资料:
[Procedurally Generating Level Sequences from a Dialogue Script | Unreal Fest 2024](https://dev.epicgames.com/community/learning/talks-and-demos/63xP/unreal-engine-procedurally-generating-level-sequences-from-a-dialogue-script-unreal-fest-2024) |