Skip to content

命令列表

This content is not available in your language yet.

标准框架内置了一系列命令,用于在剧本中控制文本显示、背景切换、角色管理、音频播放和流程控制等。命令在剧本(.sixu)中以 @ 开头调用:

@命令名 参数1=值1 参数2=值2

字符串值需要用引号包裹,数字和布尔值直接书写,数组使用方括号:

@addchar name="Alice" src="characters/alice.png" scale=0.8 pivot=[0.5,1]

未提供的可选参数将使用默认值,仅设置你需要更改的字段即可。

命令说明
text显示对话或旁白文本
textClear清空文本框内容
textBox配置文本框样式
textBoxShow显示文本框
textBoxHide隐藏文本框
命令说明
changebg切换背景图片
setBgTint设置背景色调
命令说明
addchar添加角色到舞台
charchange修改舞台上角色的属性
charremove从舞台移除角色
charclear清除舞台上所有角色
charname修改角色的显示名称
charpreset定义或修改角色位置预设
命令说明
bgm播放背景音乐
bgmStop停止背景音乐
sfx播放音效
sfxStop停止所有音效
voice播放角色语音
voiceStop停止语音播放
sound在指定通道播放音频
soundStop停止指定通道音频
命令说明
wait等待指定时间
waitclick等待玩家点击
leaveStage离开舞台并跳转页面
命令说明
setTitle设置故事标题

在实际编写剧本时,你很少会直接使用 text 命令。剧本引擎提供了更自然的对话语法来显示文本:

::entry {
// 旁白(无说话人)
这是一段旁白。
// 带说话人的对话
[Alice] "你好,很高兴认识你。"
// 省略引号也可以
[Alice] 你好,很高兴认识你。
}

对话语法本质上是 text 命令的简写形式,方括号中的角色名会被设置为说话人名称。

在一行引号包裹的文本末尾以 # 开头可以添加修饰符来控制文本的显示行为:

修饰符效果等效参数
+不清空已有文本,追加显示clear=false
&不在文本前换行newline=false
!显示后自动推进,不等待点击
::entry {
// 仍旧会等待点击
[Alice] "这是第一段话。" #&+
// 下面这段文本将直接追加在上面文本的末尾,而不是换行显示
[Alice] "接着说的内容……"
// 直接显示文本并自动推进到下一行,适合描述连续的动作或环境音效
"窗外传来一阵风声。" #!
@wait time=1000
[Alice] "听," #+&!
// 相当于直接和上面一行写在一起
[Alice] "这是什么声音?"
}

显示一段文本。执行后脚本将暂停,等待玩家点击继续。

@text content="你好,欢迎来到这个世界。" name="Alice"
参数类型默认值说明
contentstring必填要显示的文本内容
namestring说话人名称,显示在文本框的名称区域
newlinebooleantrue在文本前插入换行符
clearbooleantrue显示前清空已有文本
skippablebooleantrue是否允许快进跳过

清空文本框中的所有内容,同时清除说话人名称。

@textClear

此命令没有参数。


配置文本框的显示样式和排版属性。仅更新显式提供的字段,未指定的字段保持不变。

基本用法——设置打字机模式和文字颜色:

@textBox printMode="typewriter" printSpeed=30 fillColor="#f0f0f0"

设置文本框位置和排版:

@textBox position=[100,600] lineHeight=1.8 indent=64

启用文字描边效果:

@textBox stroke=true strokeColor="#000000" strokeWidth=2

启用文字阴影效果:

@textBox shadow=true shadowColor="#000000" shadowOffsetX=2 shadowOffsetY=2 shadowBlur=4

position [number, number] 文本框的 x, y 坐标。

printMode "instant" | "typewriter" | "printer" 文本打印模式。instant 立即显示全部文本;typewriter 按字逐字显示;printer 按行逐行显示。

printSpeed number 打印速度。typewriter 模式下为每秒字符数,printer 模式下为每秒行数。

fillColor string 文字颜色,支持十六进制颜色值如 "#f0f0f0"

lineHeight number 行高倍数。

indent number 每段首行缩进的像素数。

stroke boolean 是否启用文字描边。

strokeColor string 描边颜色。

strokeWidth number 描边宽度(像素)。

shadow boolean 是否启用文字阴影。

shadowColor string 阴影颜色。

shadowOffsetX number 阴影 X 方向偏移(像素)。

shadowOffsetY number 阴影 Y 方向偏移(像素)。

shadowBlur number 阴影模糊半径(像素)。

shadowWidth number 阴影宽度(像素),仅在 shadow=true 时生效。


显示文本框。文本框默认是可见的,通常在使用 textBoxHide 隐藏后需要重新显示时调用。

@textBoxShow

此命令没有参数。


隐藏文本框。常用于展示全屏 CG 或过场动画时临时隐藏文本框。

@textBoxHide

此命令没有参数。


切换背景图片,支持渐变过渡效果。执行后脚本将等待渐变完成。

@changebg src="bg/classroom.png"

带自定义渐变时间:

@changebg src="bg/sunset.png" fadeTime=2000

允许玩家跳过渐变:

@changebg src="bg/night.png" fadeTime=1500 skippable=true
参数类型默认值说明
srcstring必填背景图片的素材路径(相对于 assets/
fadeTimenumber1000渐变过渡时间(毫秒)
skippablebooleanfalse是否允许玩家点击跳过渐变

设置背景的色调叠加。可用于营造氛围变化,如夕阳色调或暗色滤镜。

// 添加暖色调
@setBgTint tint="#ffcccc"
// 移除色调
@setBgTint tint="off"
参数类型默认值说明
tintstring必填色调颜色值,设为 "off""none" 取消色调

角色命令用于管理舞台上的立绘。每个角色通过 name 参数标识,同名角色的后续命令会修改已存在的角色而不是创建新的。

角色支持三个内置位置预设:left(左侧)、center(居中)和 right(右侧),也可以通过 x/y 手动指定坐标。

添加一个角色到舞台。如果同名角色已存在,则更新其属性。

// 使用位置预设
@addchar name="Alice" src="characters/alice/normal.png" preset="center" fadeTime=500

手动指定坐标和缩放:

@addchar name="Alice" src="characters/alice/normal.png" x=960 y=1080 scale=0.8 pivot=[0.5,1]

初始不可见,稍后再显示:

@addchar name="Alice" src="characters/alice/normal.png" preset="left" visible=false
@charchange name="Alice" visible=true fadeTime=300
参数类型默认值说明
srcstring必填角色立绘的素材路径
namestring角色标识名称,用于后续修改或移除
preset"left" | "center" | "right"位置预设
xnumber0X 坐标(提供 preset 时会被预设值覆盖,除非同时指定 x
ynumber0Y 坐标
scalenumber1缩放比例
tintstring"#fff"着色,可用于让非活跃角色变暗
pivot[number, number][0.5, 1]旋转和定位的锚点
visiblebooleantrue是否可见
fadeTimenumber500淡入动画时间(毫秒)

修改舞台上已有角色的属性。仅更新显式提供的字段,可用于切换立绘、移动位置、改变色调等。

切换立绘:

@charchange name="Alice" src="characters/alice/smile.png"

移动到新位置并改变色调:

@charchange name="Alice" preset="right" tint="#999" fadeTime=300
参数类型默认值说明
namestring要修改的角色标识名称
srcstring新的立绘素材路径
preset"left" | "center" | "right"位置预设
xnumberX 坐标
ynumberY 坐标
scalenumber缩放比例
tintstring着色
pivot[number, number]锚点
visibleboolean是否可见
fadeTimenumber动画过渡时间(毫秒)

从舞台移除指定角色。

@charremove name="Alice" fadeTime=300
参数类型默认值说明
namestring要移除的角色标识名称
fadeTimenumber淡出动画时间(毫秒)

清除舞台上的所有角色。

@charclear fadeTime=500
参数类型默认值说明
fadeTimenumber淡出动画时间(毫秒)

修改角色的显示名称。可以将角色的内部标识名映射为另一个显示名。

@charname name="Alice" to="爱丽丝"
参数类型默认值说明
namestring角色的内部标识名
tostring必填要显示的新名称

定义或修改一个角色位置预设。内置预设有 left(400, 800)、center(960, 800)和 right(1520, 800),你可以用此命令覆盖它们或创建新的预设。

@charpreset preset="far-left" x=200 y=800
参数类型默认值说明
presetstring必填预设名称
xnumber必填预设的 X 坐标
ynumber必填预设的 Y 坐标

标准框架提供四种音频通道,各有不同用途:

通道命令特性
BGM(背景音乐)bgm / bgmStop全局单通道,默认循环播放,通过 state 管理
SFX(音效)sfx / sfxStop一次性播放,快进模式下会被跳过以避免音频重叠
Voice(语音)voice / voiceStop角色语音,可按角色名分通道
Sound(自定义)sound / soundStop自定义命名通道,用于需要独立控制的音频(如环境音)

播放背景音乐。同一时间只能有一首背景音乐,调用新的 bgm 会替换当前播放的。

@bgm src="audio/bgm/theme.opus"

自定义音量和渐入时间:

@bgm src="audio/bgm/battle.opus" volume=0.8 fadeTime=1000

不循环播放:

@bgm src="audio/bgm/ending.opus" loop=false
参数类型默认值说明
srcstring必填音频文件的素材路径
loopbooleantrue是否循环播放
volumenumber1音量,范围 0 ~ 1
fadeTimenumber600渐入时间(毫秒)

停止当前播放的背景音乐。

@bgmStop

缓慢淡出:

@bgmStop fadeTime=2000
参数类型默认值说明
fadeTimenumber600淡出时间(毫秒)

播放一次音效。每次调用会创建一个独立的音效实例,多个音效可以同时播放。

@sfx src="audio/sfx/door_open.opus"

循环音效:

@sfx src="audio/sfx/rain.opus" loop=true volume=0.5
参数类型默认值说明
srcstring必填音频文件的素材路径
loopbooleanfalse是否循环播放
volumenumber1音量,范围 0 ~ 1
fadeTimenumber600渐入时间(毫秒)

停止所有正在播放的音效。

@sfxStop
参数类型默认值说明
fadeTimenumber600淡出时间(毫秒)

播放角色语音。可以通过 name 参数将语音绑定到特定角色通道,方便后续单独停止。

@voice src="audio/voice/alice_001.opus" name="Alice"

不指定角色名(使用默认通道):

@voice src="audio/voice/narrator_001.opus"
参数类型默认值说明
srcstring必填语音文件的素材路径
namestring角色名称,用于标识语音通道
volumenumber1音量,范围 0 ~ 1

停止语音播放。可以停止指定角色的语音,或停止默认通道的语音。

// 停止指定角色的语音
@voiceStop name="Alice"
// 停止默认通道语音
@voiceStop
参数类型默认值说明
namestring角色名称,省略时停止默认通道

在指定的命名通道上播放音频。适用于需要独立管理的长时间音频,如环境音、雨声等。

@sound channel="rain" src="audio/sfx/rain_loop.opus" loop=true volume=0.3
参数类型默认值说明
channelstring必填通道名称,用于后续停止控制
srcstring必填音频文件的素材路径
loopbooleanfalse是否循环播放
volumenumber1音量,范围 0 ~ 1
fadeTimenumber600渐入时间(毫秒)

停止指定通道上的音频播放。

@soundStop channel="rain" fadeTime=1000
参数类型默认值说明
channelstring必填要停止的通道名称
fadeTimenumber600淡出时间(毫秒)

暂停脚本执行指定的时间。

// 等待 2 秒
@wait time=2000
// 可跳过的等待
@wait time=3000 skippable=true
参数类型默认值说明
timenumber必填等待时间(毫秒)
skippablebooleanfalse是否允许玩家点击跳过

暂停脚本执行,等待玩家点击后继续。

@waitclick

此命令没有参数。


离开当前舞台并跳转到指定页面。此命令会重置游戏状态,且不可被快进跳过。

@leaveStage gotoPage="title"
参数类型默认值说明
gotoPagestring必填要跳转到的页面名称(如 "title"

设置当前故事的标题。通常在剧本开头使用,用于在存档等界面显示当前章节名。

@setTitle text="第一章 相遇"
参数类型默认值说明
textstring必填故事标题文本