角色与台词
角色是剧本的核心。DraMark 使用 @ 标记来声明角色并进入角色台词模式。
角色声明
语法:@<角色名>[<情绪/状态提示>] 或 @<角色名>【<情绪/状态提示>】
重要:角色声明必须独占一行。
基本用法
dramark
@小帕
真好喝!
@@
@小塔
晚上好?夜宵?<<BGM_ENTER STOP>>
@小帕
咳哼,我是伟大的吸血鬼公主小帕,你等食材速速报上名来!带情绪提示
dramark
@小帕 [惊喜地]
人类 人类
竟然是没见过的人类
让我猜猜 你从哪来
又为何会 在这熟睡使用方括号 [] 或中文方括号 【】 都可以。
dramark
@小帕[哼]
{起身}
作为提供 夜宵的回赠
我可以满足 你一个愿望角色名含空格
对于包含空格的角色名,推荐使用引号包裹:
dramark
@"冉 阿让"
我已经赎清了我的罪过。如果不使用引号,解析器会裁剪首尾空白,以下写法等价:
dramark
@ 冉 阿让
我有话要说。行尾附着内容
角色声明行允许附加以下内容:
- 行内 Tech Cue:
<<...>> - 注释:
% ...
dramark
@小帕 [兴奋地] % 检查麦克风状态
你好!除上述附着内容外,声明行不得包含普通对白正文。
台词内容
一旦进入 CharacterBlock,后续的 CommonMark 区块(段落、列表、引用块等)均作为该角色的台词内容:
dramark
@小帕 [惊喜地]
人类 人类
竟然是没见过的人类
让我猜猜 你从哪来
又为何会 在这熟睡
何如 何如
我已经饿得坚持不住
要不趁他 还没醒来
吃饱喝足 然后跑路
虽说可以等天明
但眼前就有一名
还飘过来一阵垂涎欲滴的香气
就算出了什么问题
也不会是啥大问题
毕竟现在肚子饿才是当务之急退出角色
隐式退出
遇到以下标记时自动退出角色台词模式:
@新角色名:切换到新角色---:场景分隔#标题:新场景/幕$$:进入唱段
dramark
@小帕
真好喝!
@@
小塔往左挪一个位置。<<BGM_ENTER STOP>>
@小帕
晚上好呀夜宵先生。显式退出
使用 @@ 显式退出角色:
dramark
@小帕
真好喝!
@@
小塔往左挪一个位置。<<BGM_ENTER STOP>>@@ 作为一个显式的状态边界标记,不生成 AST 节点,仅触发栈关闭操作。
多角色声明(可选)
允许同一声明行出现多个 @ 角色标识:
dramark
@小塔 @小帕
看着她 粉白色的脸|$夜宵先生$
她 清澈的双眼|$你为什么不说话$
我 无法移开视线|$你从哪里来的呀$这在合唱或齐声对白场景中很有用。
注意事项
- 独占一行:角色声明必须独占一行,否则会被降级为普通文本
- 前导空白:
@后的前导空白会被跳过 - 终止符:角色名读取到以下任一字符终止:
[、【、换行、下一个@ - 空角色名:空角色名非法,会产生警告