文档
角色

角色

角色控制角色的对话。

注意: 角色不控制角色的外观或图像。为此,您可以使用 图像

公共方法

constructor

  • name: string | null - 如果为 null,则为旁白。旁白在对话框中不显示任何名字。
  • config?: DeepPartial<CharacterConfig> - CharacterConfig

[[Callable]]

character.say 可以作为标签函数使用。

character`Hello, ${Word.color("Alice", "#f00")}!`, // will output "Hello, Alice" with "Alice" in red color
 
// 等价于
 
character.say`Hello, ${Word.color("Alice", "#f00")}!`

注意: 使用一些打包工具,如 Webpack,你不能像这样链式调用这个方法:

scene.action([
    character`sentence 1` `sentence 2`, // 这会抛出一个错误
]);

链式方法

say

重载 1 / 4

说一句话。

character
    .say("Good morning!")
    .say("How are you?")

重载 2 / 4

使用自定义句子对象。

character.say(
    new Sentence(character, [
        "早上好,我是 ",
        new Word("Alice", {color: "#f00"}), // 一些单词可以着色
    ])
) // // 将输出 "早上好,我是 Alice,其中 "Alice" 为红色

注意: 对话的名称将与句子的名称相同。

重载 3 / 4

使用字符串和 Word 对象的混合内容。

character.say([
    "你好,",
    new Word("艾丽斯", {color: "#f00"}), // 一些单词可以着色
]) // 将输出 "你好,艾丽斯",其中 "艾丽斯" 为红色

重载 4 / 4

使用 SentencePrompt 的简写形式。

    character.say`你好,${Word.color("艾丽斯", "#f00")}!` // 将输出 "你好,艾丽斯",其中 "艾丽斯" 为红色
  • texts: TemplateStringsArray - 模板字符串数组
  • ...words: SingleWord[] - SingleWord

setName

设置角色的名称。

character
    .setName("艾丽斯(生气)")
    .say("你想要什么?")
  • name: string - 角色的名称

apply

这是一个 say 的特殊别名。

character`Hello, ${Word.color("Alice", "#f00")}!`;

注意: 使用一些打包工具,如 Webpack,你不能像这样链式调用这个方法:

scene.action([
    character`sentence 1` `sentence 2`,
]);

但你可以像这样:

scene.action([
    character`sentence 1`.setName("Alice"),
]);

这个方法在角色只说一句话时缩短了代码。

scene.action([
    character`Hello, ${Word.color("Alice", "#f00")}!`,
]);
  • texts: TemplateStringsArray - 模板字符串数组
  • ...words: SingleWord[] - SingleWord