演出段把一组指令放到同一条时间轴上。开始标记「演出段」和结束标记「演出结束」之间的指令各有一个开始时间,到点执行,可以同时进行。播放期间玩家不能点击推进,整段播完后才继续剧情。
适用场景
适合开场、过场、回忆闪回这类台词、立绘、镜头和音效要卡在同一个节奏上的内容,也适合多个立绘同时移动,或一边说话一边推镜头。剧情继续推进时,要在背景里一直循环粒子、闪光或环境音效,就开启「后台循环」。
玩家逐句点击的普通对话用普通对白。中途要玩家选择或输入的内容放在段外,这类指令不能进演出段。
插入演出段
新建一段
插入起止标记
在剧本里按 Tab,搜索并选择「演出段」。开始标记和结束标记成对插入。
起个名字
在组头的名称框里输入名称,按回车保存。名称用来在全屏编辑和「停止后台演出」里识别这一段。
放入指令
把光标放到开始标记或段内的任意一行,按 Tab,从演出指令选择框里选择指令。段内的空行上也可以直接写台词。
进入全屏编辑
双击组头,在时间轴上调整每条指令的时间。
往段里加指令
| 入口 | 结果 |
|---|
| 光标在段内或开始标记上按 Tab(卡片模式) | 打开演出指令选择框,可以输入名称搜索,只列出能放进演出段的指令 |
| 右键某一行,选择「在上方插入」或「在下方插入」 | 得到一个空行,再写台词或按 Tab 选指令 |
| 纯文本模式下输入 | 行首补全和候选下拉只列出段内能用的指令 |
| 全屏编辑时右键时间轴空白处 | 在右键的时刻插入,见下文「插入指令」 |
把已有内容包成演出段
选中相邻的几条内容,右键选择「包成演出段」。选中的内容必须连续,不能已经在别的演出段里,也不能含有段内不允许的指令。选区里的计时「等待」会换算成后面指令的开始时间。
工程构建过时,Studio 会先弹出确认。包成演出段会改变之后内容在存档里的位置,已发布游戏的旧存档可能读到错误位置。
解散和删除
| 操作 | 结果 |
|---|
| 右键开始标记或结束标记,选择「解散演出段」 | 只删除两个标记,段内指令保留,按普通顺序逐条播放 |
| 右键开始标记,选择「删除整段」 | 两个标记和段内内容一起删除 |
| 单独删除结束标记 | 不允许,需要时请解散演出段 |
剧本里的显示
演出段在剧本里像一组连续对白,可以照常写和读。
| 位置 | 内容 |
|---|
| 组头 | 名称、总长和指令数,右侧是「全屏编辑」。开启后台循环时多一个「后台循环」标记 |
| 左侧虚线 | 这段的时间线,预览时从上往下填色,显示播到哪里 |
| 时间框 | 每条指令前的时间。实线框是你定的时间,虚线框是自动接在上一句后 |
| 框角圆点 | 琥珀色是提醒,红色是错误,悬停查看说明 |
| 组尾 | 点「之后」在「继续剧情」和「等待点击」之间切换 |
开始标记被禁用时整组变灰,段内指令按普通顺序播放。
点时间框改时间
点时间框输入秒数,回车保存,Esc 取消。这条指令固定在输入的时刻,前后顺序变了时会自动换位。
点指令即从那里播放
在剧本里点中段内的指令,预览从这条指令的时刻开始播放到段尾。按住 Shift、Ctrl、⌘ 或 Alt 点击只做选择。
不需要时,在预览设置里关闭「点击演出段指令时从那里播放」,关闭后只定格到那一刻。
纯文本模式
每行行号左侧显示 @开始时间 · 长度。开始标记那一行右侧有全屏编辑按钮。
哪些指令可以放进段内
| 分组 | 指令 |
|---|
| 文字 | 对白、旁白、段落、关闭对话框 |
| 角色 | 立绘上场、更新立绘、移除立绘 |
| 镜头 | 镜头特效、复位镜头 |
| 声音 | 声音、调整音量、声音控制 |
| 画面 | 场景、销毁场景、幕布、蒙层、粒子效果、视频、停止视频、浮动文字、隐藏浮字 |
| 其他 | 设置对话参数、设置段落参数、设置立绘演出状态、赋值、停止后台演出、显示界面、隐藏界面、Steam 操作、解锁 Steam 成就、打开外部链接 |
段内的镜头运动和单个对象的动画都用镜头特效来做,立绘的连续动作用多条首尾相接的更新立绘。注释也可以留在段内,只在编辑时可见。
下面这些指令不能放进段内。放进去后,指令上会显示错误,运行时被跳过。
| 指令 | 原因 |
|---|
| 选项、条件、平铺分支与条件的标记、调用片段、终止章节、返回入口章节 | 不能改变剧情流程 |
| 玩家输入、标准消息框、等待玩家点击的「等待」 | 不能等待玩家操作 |
| 计时的「等待」 | 改用开始时间安排后面的指令 |
| 进入自动播放、退出自动播放 | 不能切换自动播放 |
| 加载策略 | 需要放在演出段之前 |
| 镜头动画 | 请用镜头特效 |
| 另一个演出段的开始标记 | 演出段不能嵌套 |
| 模态的显示界面 | 演出会一直停住等玩家关闭它 |
整段演出可以放进某个选项或某条条件分支里。
开始时间和停留时长
选中段内的指令后,检查器顶部多一个「演出段」小节,显示这段的名称和总长。
开始时间
| 模式 | 说明 |
|---|
| 自动 | 接在上一条会推进时间的指令结束之后,只读显示秒数 |
| 固定 | 输入秒数,或用输入框旁的按钮每次加减 0.1 秒 |
下方的滑杆也能调整开始时间,自动模式下拖动后改成固定。
开始时间不能早于上一条指令。要把一条指令挪到前一条之前,在时间轴上拖动它,或在时间框里输入更早的时间,它会自动换位。
哪些指令会把后面的时间往后推
自动模式下,只有下表「推进」为「是」的指令会让后面的指令等它。
| 推进 | 指令 |
|---|
| 是 | 对白、旁白、段落、场景、幕布、立绘上场、移除立绘、更新立绘、有时长的镜头特效和复位镜头、蒙层(只按入场或退场时长) |
| 否 | 声音、视频、粒子效果、浮动文字、声音控制、调整音量、停止视频、隐藏粒子、销毁场景、关闭对话框、隐藏浮字、赋值、界面等 |
段长等于最晚结束的那条指令的结束时刻。没有限定时长的持续型指令不会把段拉长。
停留时长
对白、旁白和段落在段内不等玩家点击,到点自动走。这段时间就是停留时长。
| 模式 | 说明 |
|---|
| 跟随配音(段落显示「自动」) | 有配音时按配音时长,没有配音时按字数估算 |
| 手动 | 输入秒数。在时间轴上拉伸长条也会改成手动 |
检查器同时显示最慢文字速度打完这句需要多久。手动值比它短时,到点文字会被直接补完。
开始标记的设置
选中开始标记,在检查器里设置整段的行为。
| 设置 | 说明 |
|---|
| 演出段名称 | 组头和全屏工具条上显示的名称 |
| 后台循环 | 主线不等这段演出,它在后台一轮接一轮地播,直到「停止后台演出」或换章 |
| 结束后 | 「自动继续」或「等待点击」。选「等待点击」时,演出播完后等玩家点击再继续 |
| 强制必看 | 已读也不能快进跳过这段演出 |
| 重播 | 在预览里从头播放这一段 |
| 全屏编辑 | 打开这一段的全屏时间轴 |
开启后台循环后,「结束后」和「强制必看」不再生效。
全屏编辑
进入和退出
双击组头,点组头或开始标记检查器里的「全屏编辑」,或右键段内的指令选择「全屏编辑」,都能进入。纯文本模式下双击开始标记那一行。
点工具条左端的「返回剧本」退出。
默认预览在时间轴上方,检查器在右侧。拖动预览和时间轴之间的分隔条调整预览高度,双击恢复。
不想要这种布局时,在工作区的「布局模式」菜单里取消勾选「演出段全屏编辑时,预览放在时间轴上方」。
工具条
| 项目 | 说明 |
|---|
| 返回剧本 | 回到剧本并定位到这段演出 |
| 名称与总长 | 段名和指令数。章节只读时带「只读」标记,可以查看和播放,不能修改 |
| 定位到开头 / 结尾(Home / End) | 时间指针回到第 0 秒或段尾 |
| 播放 / 暂停(Space) | 从时间指针处开始播放 |
| 停止并回到开头 | 停下并定格在第 0 秒 |
| 时钟 | 时间指针位置 / 演出段总长 |
| 跟随时间指针 | 时间指针走出可见范围时,时间轴自动翻页跟上 |
| 改后重播 | 在检查器里改了指令的参数后,自动重播这条指令 |
| 提醒 | 悬停查看每一条,点击依次选中有提醒的指令 |
| 吸附 | 拖动时吸附到其他指令的边缘、时间指针和 0 秒 |
| 路线 | 选中立绘后,在画面上显示它的运动路线和每段的终点 |
| 缩放时间轴 | 放大、缩小按钮和滑杆,双击滑杆恢复适配宽度 |
| 视图切换 | 自由轨道、提词本、台本轨道 |
三种视图
打开时默认是自由轨道。切换过的视图下次打开仍是上次的视图。
自由轨道
像剪辑软件的多轨。每条轨道都一样,什么指令都能放,轨道怎么分由你决定。
- 上下拖动指令换轨道,拖到最下面一行就新开一条。也可以选中后按 Alt+↑ 或 ↓。
- 最下面一行的「添加轨道」在底部加一条空轨道。
轨道头的控件:
| 控件 | 说明 |
|---|
| 小眼睛 | 停用这条轨道。轨道上的指令不播放(游戏里也一样),但时间照常占着,指令显示为变淡 |
| 锁 | 锁定这条轨道。轨道上的指令不能选中、拖动或修改,也不能往这条轨道上放指令 |
| 轨道名 | 双击改名 |
| 删除 | 先弹出确认。轨道上的指令并到相邻轨道,可以撤销。锁定的轨道不能删 |
除小眼睛之外,轨道只影响编辑时的摆放,不影响播放。
提词本
按剧本顺序每条指令一行,左边读完整台词,右边对时间,适合看节奏。
- 左列显示时间框、类型、内容和时长。时长列的「瞬时」「持续」表示这条指令没有固定长度。
- 标尺下方的「同时在动的对象」密度条显示每一刻有多少对象在动。
- 点左列的一行(时间框和时长除外)从这一行开始播放。
台本轨道
最上面一条台本带显示完整台词,下面按每个出场角色、镜头、声音、画面效果和其他分轨,适合看谁和谁同时在动。
- 轨道由指令类型决定,不能手动换轨。
- 在角色轨上右键插入角色类指令或对白时,自动填好这个角色。
- 角色轨表头的「接一段」在这个角色最后一条指令的结尾新建一条更新立绘。
- 底部的空白区可以右键插入不归属某条轨道的指令。
时间指针和预览
时间指针是时间轴上的竖线,预览跟着它显示对应时刻的画面。
- 点标尺定位,按住标尺或整条竖线的任意位置拖动。吸附打开时,拖动吸附到指令的边缘。
- 拖动时画面一路跟着变。跨过某条指令的开始或结束时,画面等手停下或松手时补上,期间显示「正在更新画面…」。
- 那一刻正在进行的镜头推拉、场景过渡、立绘移动等停在当时的进度,对白和旁白直接完整显示。
定格、拖动和点击时间指针时一律不出声。从中途开始播放时,横跨这一刻的音乐、音效和语音从时间线上对应的位置开始放。
插入指令
右键轨道空白处,弹出「在 3.6s 处插入」菜单,可以搜索,只列出能放进演出段的指令。
- 自由轨道里在哪条轨道上右键,新指令就放在哪条,最下面一行放到新的一条轨道上。
- 新插入的对白、旁白、段落和浮动文字直接打开编辑框,其他指令选中后在检查器里设置。
- 不用鼠标时按菜单键或 Shift+F10:没有选中指令时在时间指针处打开插入菜单,选中指令时打开它的右键菜单。
选择、移动和调整
| 操作 | 方法 |
|---|
| 选中 | 点指令条,右侧检查器显示它的参数 |
| 框选 | 在轨道空白处按住拖动 |
| 全选 | Ctrl/⌘+A,之后拖动任意一条整组一起移动 |
| 改开始时间 | 拖动指令条中间 |
| 改时长 | 拖动长条两端。持续型指令拖虚线尾巴末端的把手,见下文「限定时长」 |
| 取消这次拖动 | 拖动中按 Esc |
左列和时间轴之间的分隔线可以拖动调宽,双击恢复默认宽度。
多选同一种指令时,检查器进入批量编辑,改动会同时应用到全部。
右键菜单
右键指令条,菜单按当前情况显示以下项目。
| 菜单项 | 说明 |
|---|
| 复制 / 剪切 / 粘贴 | 与剧本共用剪贴板。不能放进演出段的指令会跳过并提示 |
| 复制一份,放在它后面 | 在这条结束时放一份副本 |
| 复制属性… / 粘贴属性 | 挑选要复制的属性,再写到另一条指令上 |
| 接一段(时刻) | 立绘上场和更新立绘专用,在这个角色最后一条指令的结尾新建一条更新立绘 |
| 移到时间指针 | 把这条指令(多选时整组)移到指针处 |
| 限定时长 / 取消限定时长 | 声音、视频、粒子和蒙层专用 |
| 在此处停止 / 在此处隐藏 | 持续型指令专用,在右键的位置插入对应的结束指令 |
| 在剧本中显示 | 回到剧本并定位到这条指令 |
按 Ctrl/⌘+V 粘贴时,有选中指令就放在它之后,没有就放在时间指针处。
原地改台词和换说话人
在时间轴上双击对白、旁白、段落或浮动文字,弹出编辑框。其他指令双击后跳到检查器。
- 对白的编辑框顶部可以直接选择说话人,或改为「未指定说话人」。
- 正文含有行内标签时不能在这里改,编辑框会给出「在剧本中显示」,到剧本里编辑。
限定时长:声音、视频、粒子和蒙层
声音、视频、粒子和显示中的蒙层开始后会一直存在。在演出段里可以给它们限定时长,到时自动淡出结束,不用再放停止或隐藏指令。
没有限定时,它们画成「头 + 虚线尾巴」。有三种方法限定:
- 拖动虚线尾巴末端的把手,条有多长就持续多久。
- 右键选择「限定时长(到时自动结束)」,按现在画出来的长度限定。
- 在检查器「演出段」小节的「持续时长」里选择「限定时长」,输入秒数。
限定后,拖动长条右端或在检查器里调整总时长,拖动长条底边两端的小线或用检查器里的双滑块调整淡入和淡出。右键「取消限定时长」或在检查器里选「不限时长」恢复持续状态。
限定时长只在演出段里生效。把指令移出演出段后,它按原来的方式一直存在。
没有限定时长的声音、视频、粒子和蒙层不会因为演出段结束而停止。时间轴上的虚线只画到段尾,段结束后它们还在,需要关闭时限定时长,或放一条停止或隐藏指令。
右键显示中的蒙层,选择「在此处隐藏」,在右键的位置插入一条「移除蒙层」。
蒙层本身的设置见蒙层。
浮动文字
浮动文字在时间轴上是一条长条,长度等于入场 + 停留 + 退场。
- 新插入后直接打开编辑框写字,之后可以双击长条修改。写字之前不会播放。
- 拉长条两端调整停留,拖底边两端的小线调整入场和退场时长。
- 开启「无限」停留时变成持续条,右键选择「在此处隐藏」插入一条隐藏浮字。
- 文字含有行内标签或带格式时,只能在剧本里修改。
幕布合上再打开
幕布的动作选「合上再打开」时,在时间轴上是一条长条。拖底边两端的小线调整合上和打开各用多久,拉长条两端改总时长。
详细参数见幕布。
在预览画面上拖动立绘
全屏编辑时暂停播放,可以直接在预览画面上操作立绘。
| 操作 | 结果 |
|---|
| 点画面里的立绘 | 选中它,显示变形框 |
| 拖动立绘 / 变形框四角 / 旋转手柄 | 移动位置 / 缩放 / 旋转 |
| ← → ↑ ↓ | 每次微调 0.5%,加 Shift 每次 5% |
| 拖动中按 Esc | 取消这次拖动 |
变形框下方的提示说明这次拖动的去向:
- 「拖动:改第 N 段的终点」:修改当前选中的那条更新立绘。
- 「拖动:接第 N 段」:在时间指针处新建一条更新立绘。
打开工具条的「路线」后,画面上显示立绘的运动路线和每段终点的数字点,可以拖动数字点修改对应那段的终点。
想让立绘做一段接一段的动作,用右键、台本轨道表头或检查器里的「接一段」。各属性的含义见更新立绘。
后台循环
开启后,主线不等这段演出,它在后台一轮接一轮地播放,剧情照常推进。适合雷光、飘雪、远处的音效这类不抢戏的环境演出。
开启方法
打开「后台循环」
组头出现「后台循环」标记,组尾变成「之后:回到开头循环」。
编排一轮
只放下表允许的指令。每一轮都从开头再播,让结尾回到开头的样子,循环才看不出接缝。
安排停止
在需要结束的位置放一条停止后台演出,可以指定一段或全部。换章时会自动停止。
能放什么
| 类别 | 指令 | 说明 |
|---|
| 可以放 | 粒子效果、浮动文字、隐藏浮字、视频、停止视频、蒙层、移除蒙层、音效、声音控制、调整音量、注释 | 声音只能是音效。已有的精灵动画只有作用于场景图层时才能放 |
| 可以放,有提醒 | 场景、销毁场景 | 主线换了场景,下一轮又会被换回来 |
| 可以放,有提醒 | 镜头特效、复位镜头 | 只在主线不动镜头时使用 |
| 不能放 | 对白、旁白、段落、关闭对话框、设置对话参数、设置段落参数 | 会和主线抢对话框 |
| 不能放 | 立绘上场、更新立绘、移除立绘、设置立绘演出状态 | 会和主线互相顶掉 |
| 不能放 | 幕布 | 会挡住主线的画面 |
| 不能放 | 背景音乐、语音 | 会和主线抢同一条声道 |
| 不能放 | 赋值、Steam 操作、解锁 Steam 成就、调用扩展方法、显示和隐藏界面、打开外部链接 | 每一轮都会再执行一次 |
不能放的指令在段内显示错误,运行时被跳过。
循环里换了场景时,建议在主线换场景之前先放一条「停止后台演出」,避免下一轮把主线的场景换回去。
运行规则
- 同一时间可以有多段后台循环。
- 下一轮接在上一轮结尾,只是把指令再执行一遍,不会把画面倒回开头。
- 读档或跳转后从这一轮的开头重新播放。
在 Studio 里预览
- 光标停在后台循环段内时,预览按真实游戏运行,主线直接走到段后面。点段内的行不触发「从那里播放」。
- 全屏编辑里的播放和时间指针仍在前台播这一轮,方便编排。
- 光标在开始标记上时,预览停在演出开始之前。
- 段内右键「运行到这里(本章)」,重新运行本章,从这条指令的时刻开始播放。
- 定格时在预览画面上点击会放开定格,预览继续运行段后面的内容。
- 预览可以分离到独立窗口,时间指针、播放和定格都照常使用。
玩家看到的效果
- 会暂停:玩家打开存档、读档、历史、设置等界面,窗口最小化,或 Steam 浮层弹出时,整段演出暂停。
- 中途存档:读档后这段从头重新播放。
- 快进:未读或开启了「强制必看」的演出段不能快进。已读且没有强制必看时,直接跳到整段结束的画面。
- 已读:整段播完才算已读。
快捷键
以下按键在时间轴获得焦点时生效,进入全屏编辑时焦点默认在时间轴上。
| 操作 | 按键 |
|---|
| 播放 / 暂停 | Space |
| 时间指针定位到开头 / 结尾 | Home / End |
| 在指令之间切换 | ↑ / ↓ |
| 微调开始时间 10 毫秒(加 Shift 为 100 毫秒) | ← / → |
| 自由轨道:移到上一条或下一条轨道 | Alt+↑ / Alt+↓ |
| 编辑选中的指令 | 回车 |
| 删除选中的指令 | Delete / Backspace |
| 取消选择 | Esc |
| 全选这段的指令 | Ctrl/⌘+A |
| 多选 | Shift / Ctrl / ⌘ + 点击 |
| 复制 / 剪切 / 粘贴 | Ctrl/⌘+C / X / V |
| 撤销 | Ctrl/⌘+Z |
| 重做 | Ctrl/⌘+Shift+Z、Ctrl/⌘+Y |
| 打开右键菜单 | 菜单键 / Shift+F10 |
| 拖动时暂时关闭吸附 | 按住 Alt |
| 缩放时间轴 | Ctrl/⌘+滚轮,触控板捏合 |
| 左右滚动时间轴 | Shift+滚轮,触控板横滑 |
| 原地编辑:保存 / 换行 / 取消 | 回车 / Shift+回车 / Esc |
代码视图写法
在代码视图里,演出段写成一对标记。对白和旁白用括号写开始时间和停留时长,单位是秒,其他指令在属性里写 segmentStart,单位是毫秒。
performance begin "雨夜":
segmentEndBehavior waitForClick
scene school with crossfade duration 1
play sound se/rain.ogg loop:
segmentStart = 0
"雨越下越大。" (at=0.5, hold=2.5)
show alice happy at left
alice "你还是来了。" (hold=2)
performance end
开始标记的属性体还可以写 segmentForceWatch = true(强制必看)和 segmentBackgroundLoop = true(后台循环)。在自由轨道里摆放过的对白和旁白括号里会多一个 track=2,保持原样即可。
限制和常见问题
段内指令上的提醒分为错误和提醒两级,全屏工具条的「提醒」可以依次定位。
| 错误或提醒 | 怎么处理 |
|---|
| 与前面的文字重叠 | 调整开始时间或缩短停留 |
| 文字里的「等待玩家继续」会让文字一直停住 | 改成定时暂停 |
| 演出段内不能累加变量、不能增加 Steam 统计 | 中途读档后会重复累加,移到段外 |
| 文字里的镜头标记时刻不固定 | 建议改用段内的镜头指令 |
| 调用扩展方法 | 如果它会等待玩家或跳转剧情,演出可能无法正常进行,详见扩展方法 |
| 打开 Steam 浮层、打开外部链接 | 玩家可能错过画面 |
| 这条会打断上一条的某些属性 | 错开时间,或改用不同的属性 |
| 演出段缺少结束标记 | 在段尾加上「演出结束」 |
| 这个「演出结束」前面没有对应的演出段开头 | 可以删除 |
全屏编辑打不开? 开始标记被禁用,或者这个开始标记落在上一段演出里(演出段不能嵌套)。悬停按钮可以看到原因。
工具条上不能播放? 段内还没有会产生指令的内容,或者缺少结束标记。
段结束后音乐还在响? 没有限定时长的声音会继续播放。需要在段内结束时限定时长,或放一条「声音控制」停止它。