Say 和 Portrait 命令是构建角色对话的有效方法,但通过这种方式添加大量对话可能很繁琐。
对话系统提供了一种简化的格式,使您可以快速控制:
- 哪个角色在说话
- 使用哪幅肖像图像(在“说对话框”或“舞台肖像”上)
- 将角色移动到哪个舞台位置(如果使用舞台)
- 何时隐藏角色
要创建对话,请将对话命令(叙述 > 对话)添加到块并输入对话文本。
例子
格式
对话文本的格式为:
- character:说话角色的游戏对象名称或名称文本值。
- 肖像:角色肖像列表中精灵的名称。
- position:舞台中位置对象的名称(例如,左、中、右、屏幕外左、屏幕外右)
- 隐藏:隐藏角色
- <<<:肖像脸左侧
- >>>:肖像脸右侧
- clear | noclear:在 clear 时使用 true 覆盖 ClearPreviousLine 默认值,在 noclear 时使用 false 覆盖
- wait | nowait:在等待时使用 true 覆盖 WaitForInput 默认值,或在 nowait 时使用 false 覆盖 WaitForInput 默认值
- fade | nofade:在淡入时使用 true 覆盖 FadeDone 默认值,在 nofade 时使用 false。这很少需要,因为它只会对对话的最后发言产生影响。
参数位于冒号左侧,对话文本位于右侧。您可以省略任何参数并以任何顺序指定它们。参数以空格分隔。如果您需要使用包含空格的名称,请将其括在引号中,例如“John Watson”。参数不区分大小写。空白行和以 -- 开头的注释行将被忽略。一行对话文本将由最近的角色说出。您可以省略对话文本,但请记住您仍需要在行末添加 : 字符。
字符串替换
您可以在对话文本的任何地方使用常规字符串替换语法 {$VarName}。例如,如果您有一个名为 PlayerName 的字符串流程图变量,则可以将其嵌入对话中,如下所示:
本土化
您可以使用上面的字符串替换功能和Lua 字符串表“Lua 字符串表”来将对话本地化为多种语言。
对话系统不能与 Fungus 中的本地化组件一起使用,因为语法使得通过这种方式进行本地化变得困难。
Lua
对话系统也可以从 Lua 使用@ref lua_controlling_fungus。