语法设计
为使得剧本写作与演出设计更加便利, 语法设计中对剧本与演出进行了一定程度的分离. 以下分别针对剧本和演出进行说明:
剧本
对话框
台词可以采用对话框展示:
[对话框]
这是采用对话框的显示方式
少女:这是对话框下少女的说话方式全屏
还可以用全屏展示:
[全屏]
全屏支持显示多段内容
但不支持由角色说话
全屏状态下支持同时说12行
[全屏]
我们也可以再次定义以提前切换行数选项
选项的展示方式与对话框和全屏相同, 但是会将选项的内容进行存储, 并允许玩家进行选择:
[选项]
{script:测试3.txt}跳转测试3
{jump:循环1}跳转循环1
继续
[全屏]
选择全屏以后可以看到这段话专业名词
台词支持bbcode语法, 我们可以通过使用以下方法定义一些专业名词:
[全屏]
这是一个[url=专业名词]专业名词[/url]通过选择专业名词会出现字典框, 我们可以在dictionary文件夹定义专业名词.txt文件, 实现设置专业名词的功能.
演出
跳转
出现需要回溯的剧本位置时可以通过@设置跳转的标记位置, 比如以下方式:
@循环1
这里是一个死循环
{jump:循环1}在进行跳转时会回到@循环1的位置, 除了设置标记位置之外的演出方式统一用大括号进行管理, 比如以下方式:
{bg:封面.png}#切换封面
{少女:normal.png-1200x650-1.1}少女:大家好#设置立绘
{script:测试2.txt, jump:循环1}#跳转到测试2脚本的循环1位置独立演出
一般情况演出依赖于剧本的文字内容,当需要不以文字内容作为依附进行演出时(比如展示CG场景)可以添加持续时间将演出作为独立演出事件进行控制,比如以下方式:
少女:更换封面时会将在更新对话内容时一并更新
{bg:封面1.png}少女:比如更换[color=red]封面1[/color]时会与当前对话一并更新
{bg:封面2.png, wait:0}
少女:当识别到设置wait时需要先点击更新[color=blue]封面2[/color]以后才能再次点击更新以下对话
{bg:封面1.png, wait:3}
少女:wait不为0时需要等待[color=blue]封面1[/color]存在3秒后才会进行更新演出参数
以下定义了大括号内的参数如下:
| 参数 | 说明 | 例子 |
|---|---|---|
| bg | 设置背景, 背景应该在./image/background/文件夹中 | bg:封面.png |
| script | 跳转到设定的脚本位置 | script:测试3.txt |
| jump | 跳转到设定的标记位置 | jump:循环1 |
| wait | 设置当前事件的维持时间(秒) | wait:0 |
| ef | 我想用来设置特效, 但是还未实现 | |
| [default] | 用来设置角色立绘, [default]需要在./image/文件夹下具备对应名字, 里面定义的名称如下[图片名称]-[图片高度]x[图片宽度]-[缩放比例] | 少女:normal.png-1200x650-1.1 |
语序
语序(语言顺序)是剧本与演出在执行时的调用顺序,Ezlang的语序规范如下所示:
默认情况
默认情况下演出依附剧本进行呈现,剧本自动匹配当前行的演出和下一行的演出,例如以下三个例子:
# 例1
{bg:test.png}处于当前行
# 例2
处于当前行{bg:test.png}
# 例3
处于当前行
{bg:test.png}独立演出
独立演出中演出不依附剧本进行呈现,按台本的先后顺序进行识别:
# 例1
先发言后切换场景{bg:test.png, wait:0}
# 例2
{bg:test.png, wait:0}先切换场景后发言兼容语序
兼容语序用于非常规输出时用于兼容性运行。在切换展示类型时先单独调用不独立的演出,演出将自动搜索下一行台本进行适配:
[全屏]
{bg:test.png}
图片切换将绑定当前文本