对话
对话
注意
每条对话的冒号、分号应当为英文字符!
编写角色对话的方式非常简单,且与自然语言几乎无异。
相关信息
在字体为中和大时,文本框显示2行,而字体为小时,显示3行。
基本角色对话
首先,使用记事本或 VS Code 、sublime 等文本编辑器,打开游戏资源目录下 scene
文件夹中的 start.txt
,然后你就可以开始编写你的第一条对话了。
编写角色对话的方法非常简单,你只需要输入 角色:对话;
示例:
雪之下雪乃:请用茶;
由比滨:啊,谢谢;
小町:谢谢雪乃姐!;
一色:谢谢学姐。;
在每条对话/剧本后,使用分号作为结束。(如果不写分号有时候也行,但是作者还是建议加上分号以防止 bug)。
连续对话
如果你的多条对话没有改变角色名称,你可以使用连续对话,而可以省略角色名称,再在你需要的时候使用:
雪之下雪乃:你到得真早;
; // 此时,对话的角色名称仍然是 “雪之下雪乃”
对不起,等很久了吗?;
比企谷八幡:刚到而已;
旁白
如果你想要创建没有角色名称的旁白对话,请在冒号前留空(但不能省去冒号):
:这是一句旁白;
黑屏文字
在许多游戏中,会以黑屏显示一些文字,用来引入主题或表现角色的心理活动。你可以使用 intro 命令来演出独白:
intro:回忆不需要适合的剧本,|反正一说出口,|都成了戏言。;
独白的分拆以分隔符(|)来分割,也就是说,每一个 | 代表一个换行。在实际演出中,上面的文字会变成:
回忆不需要适合的剧本,
反正一说出口,
都成了戏言。
如果你想要在独白结束后保持独白界面,而不是继续游戏流程,请使用 -hold
参数
intro:回忆不需要适合的剧本,|反正一说出口,|都成了戏言。 -hold;
获取用户输入
使用getUserInput
指令来获取用户输入,并写入变量,例如:
getUserInput:name -title=如何称呼你 -buttonText=确认; 将用户输入写入 name 变量中
其中,title
参数是提示的文本,buttonText
是确认按钮的文本
变量插值
可以在语句中使用 {}
语法来进行变量插值,将某个变量传入语句中,例如:
WebGAL:很高兴遇见你,{name}!
变量插值也适用于人物名称,例如:
{name}:我也最喜欢 WebGAL 了!;
注音
在对话文本中注音是日语游戏中的一种很常见的演出效果。因为日语中经常会出现一些写法和读法不一致的词语。
注音的语法是 [要注音的词](注音)
示例:
『[笑顔](えがお)』なんて、『[笑う](わらう)』なんて、[誰](だれ)でも[出来](でき)るもん…!
文本拓展语法
在 WebGAL 4.5.3 中,加入了“文本拓展语法”功能。该语法可以为部分文字添加文本样式。
文本拓展语法是对某段特定文本的增强。被[]包裹的,且后面跟随着()作为文本增强描述的文本是符合文本拓展语法定义的文本。
简单来说,形如以下形式:
[文本](style-alltext=font-style:italic\; style=color:#66327C\; ruby=wen ben)
这代表这段文本的字体大小是偏小的,并应用了加粗,颜色为 #005CAF,并具有注音和提示。
对于文本拓展语法中的不同参数,使用空格分开,并且形式总是 argk=argv
这样的形式
特别需要注意的是,由于 ; 是 WebGAL 的注释语法,所以在文本拓展语法中应用 ; 需要加 \ 转义,成为 ;
不同参数对应的样式作用范围
在先前的示例语法中,注意到,有两个不同的参数可以为文本定义样式:style
和 style-alltext
。
为文本样式区分作用域,是因为 WebGAL 为了为文本提供更好的描边效果,将一个字分为了三层——文本、描边和占位。
文本是最上层的部分,也是主要部分。描边在文本下方,被文本覆盖,用于提供白色描边且不至于破坏文字的内部形状。最下层是提供定位的透明占位符。
简而言之,如果你只需要修改文本颜色,只需要使用 style
参数。如果你想要应用斜体、文本大小、内外边距等效果,你则需要同时为 style-alltext
设置效果。
特别注意:由于4.5.3 版本中的一个 bug,目前不能只应用 style-alltext 参数,因为只有检测到 style= 这样的语法,才会启动文本拓展语法
与注音的兼容性
为了兼容先前的语法,如果没有识别到 style=
这样的语法,则我们会将 ()[]
语法视为注音。
如果使用了新的文本拓展语法,注音则写在 ruby=
参数里,上面的示例也说明了这一点。
关闭文本框
有时候,为了一些特殊的演出效果,可能你希望临时关闭文本框,所以你可以使用以下指令来关闭文本框:
setTextbox:hide; // 关闭文本框
当 setTextbox
指令的值为 hide
时,会关闭文本框,且用户无法以任何方式打开。如果想要重新显示文本框,请再次调用此命令,并输入除hide
以外的任意值。
setTextbox:on; // 可以是除 hide 以外的任意值。
结束游戏并返回到标题
如果你想要在剧情结束后结束游戏并返回到标题,请使用:
end;
这样,就可以使游戏返回标题界面。
电影模式(测试功能)
使用 filmMode:enable;
来开启电影模式。
使用 filmMode:none;
来关闭电影模式。