From 90af884c2c64f312c1a21285b699a9b540bb71c3 Mon Sep 17 00:00:00 2001 From: OLDREDSTONE Date: Sat, 18 Oct 2025 14:10:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=B2=BE=E7=81=B5=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/captions.md | 30 +++++++++++++++--------------- pages/changelog.md | 2 +- pages/spritesheet.md | 34 +++++++++++++++++++++++++++++----- 3 files changed, 45 insertions(+), 21 deletions(-) diff --git a/pages/captions.md b/pages/captions.md index da3a0b0..4eda511 100644 --- a/pages/captions.md +++ b/pages/captions.md @@ -13,28 +13,28 @@ **需要注意的是:** -**1、**你可以一次性输入多行文本,这样在实际显示时就会在同一对话框内逐步刷新每一行台词;如果使用多个显示对话事件,每个事件只输入一行文本,那么对话框有可能在一个事件之后消失再生成,影响连贯性。 +1. 你可以一次性输入多行文本,这样在实际显示时就会在同一对话框内逐步刷新每一行台词;如果使用多个显示对话事件,每个事件只输入一行文本,那么对话框有可能在一个事件之后消失再生成,影响连贯性。 -**2、**显示对话事件一次只能显示一个对话框,如果前一个事件的台词没有走完下一个事件就开始了,那么前一个会直接被顶替掉。即使设置为屏幕上方和屏幕下方各一个也会被顶替。 +2. 显示对话事件一次只能显示一个对话框,如果前一个事件的台词没有走完下一个事件就开始了,那么前一个会直接被顶替掉。即使设置为屏幕上方和屏幕下方各一个也会被顶替。 -**3、**一个对话框只能显示两行文字,多出来的会无法显示,请注意分段。分段后需要再输入一次立绘人物,否则立绘就不再显示了。 +3. 一个对话框只能显示两行文字,多出来的会无法显示,请注意分段。分段后需要再输入一次立绘人物,否则立绘就不再显示了。 -**4、** 如果需要实现像官方教程一样的可以手动跳过的对话框效果,可以添加自定义方法`activeDialogues = true`或`activeDialoguesImmediately = true`。 -- 如果启用`activeDialogues = true`, -在对话事件所在小节已经播放完毕而对话仍未结束时,游戏会等待至游戏音乐的下一个小节开始时继续播放; -- 如果启用`activeDialoguesImmediately = true`, - - 如果对话事件结束时所在小节仍然未播放完毕, - 游戏会等待至游戏音乐的下一个节拍开始时立即从时间轴的下一个小节继续播放。 - - 如果对话事件所在小节已经播放完毕而对话仍未结束, - 游戏会等待至游戏音乐的下一个节拍开始时继续播放。 +4. 如果需要实现像官方教程一样的可以手动跳过的对话框效果,可以添加自定义方法`activeDialogues = true`或`activeDialoguesImmediately = true`。 + - 如果启用`activeDialogues = true`, + 在对话事件所在小节已经播放完毕而对话仍未结束时,游戏会等待至游戏音乐的下一个小节开始时继续播放; + - 如果启用`activeDialoguesImmediately = true`, + - 如果对话事件结束时所在小节仍然未播放完毕, + 游戏会等待至游戏音乐的下一个节拍开始时立即从时间轴的下一个小节继续播放。 + - 如果对话事件所在小节已经播放完毕而对话仍未结束, + 游戏会等待至游戏音乐的下一个节拍开始时继续播放。 -**5、**编辑器会自动识别标点符号,并在标点符号的位置自动添加不同程度的语句停顿,非常智能。但要注意,数学上的小数点“.”是会被判定为英文的句号的,从而产生停顿,非常不智能。 +5. 编辑器会自动识别标点符号,并在标点符号的位置自动添加不同程度的语句停顿,非常智能。但要注意,数学上的小数点“.”是会被判定为英文的句号的,从而产生停顿,非常不智能。 -**6、**从外界复制粘贴进入的文本中,换行符是有问题的,要退格两次才能被删掉,否则台词会叠在一起;最好的做法当然是不要复制进多余的换行符号。 +6. 从外界复制粘贴进入的文本中,换行符是有问题的,要退格两次才能被删掉,否则台词会叠在一起;最好的做法当然是不要复制进多余的换行符号。 ![对话事件](../images/captions-dialoguecontent.png) -**7、**可以使用对话标签控制对话的显示效果,这些标签总是被包裹在中括号里的。支持的标签如下: +7. 可以使用对话标签控制对话的显示效果,这些标签总是被包裹在中括号里的。支持的标签如下: - `[vslow]` - 非常慢 - `[slow]` - 慢 @@ -54,7 +54,7 @@ - `[swirlSpeed=X]` - `[static]` - 让此前设置移动方式的标签失效,位于该标签后的文本将不受前面的标签影响。 -**8、**可以使用颜色标签更改文字的颜色,只需按以下格式输入:`要更改颜色的文字`。代码中的颜色可以使用十六进制颜色值(不透明的 #RRGGBB 或包含透明度信息的 #RRGGBBAA) ,也可以使用[Unity富文本的颜色名](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/StyledText.html): +**8、** 可以使用颜色标签更改文字的颜色,只需按以下格式输入:`要更改颜色的文字`。代码中的颜色可以使用十六进制颜色值(不透明的 #RRGGBB 或包含透明度信息的 #RRGGBBAA) ,也可以使用[Unity富文本的颜色名](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/StyledText.html): | 颜色(中文) | 颜色(英文) | RGB | 示例 | | :--- | :--- | :--- | :--- | diff --git a/pages/changelog.md b/pages/changelog.md index a3c55a7..1a8a2c9 100644 --- a/pages/changelog.md +++ b/pages/changelog.md @@ -1,7 +1,7 @@ # 更新信息 #### 2025-10-18 -- [自制角色与精灵资源](../pages/spritesheet.md)页添加了部分提示 +- [自制角色与精灵资源](../pages/spritesheet.md)页添加了音效和表情命名规则相关内容。 #### 2025-10-16 - 更新了字体版本 diff --git a/pages/spritesheet.md b/pages/spritesheet.md index ee8d783..3650763 100644 --- a/pages/spritesheet.md +++ b/pages/spritesheet.md @@ -102,13 +102,14 @@ 里面是对每个表情分别进行设置。 - **`"name"`** 后续出现的name指的是人物的各个表情, - 以下四个表情是默认存在的,因为和按拍效果有关,但你也可以在此基础上增加新的表情,自己命名一个其他表情,这会在紫色版块**播放表情**中有效。 + 以下四个表情是默认存在的,因为和按拍效果有关,但你也可以在此基础上增加新的表情,自己命名一个其他表情,这会在紫色版块**播放表情**中有效。 - `neutral` 表示普通状态下的默认表情, - `happy` 是**击中**时的表情, - `barely` 是**失误**的表情, - `missed` 是**错失**的表情。 > `neutral` 表情是**必需**的,无论是轨道角色还是精灵资源。 在早期,以上四个表情在轨道角色上时也是必需的,不过在后来的版本中移除了其他三个表情的限制。 + 此字段需要满足[这些要求](../pages/spritesheet.md#自定义角色的表情机制)。 - **`"frames"`** 这是每种状态所涉及的帧数。在精灵图里从左往右,从0开始计算。例如: - `[0,1]`:第1张和第2张组合成两帧的动图; @@ -130,11 +131,33 @@ - **`"portaitSize"`** 截取动图中的一部分作为显示对话时的立绘,两个数字表示截取立绘图片的像素大小。第一个数字为立绘的宽度,第二个数字为立绘的高度。 - **`"portaitScale"`** - 图片放大比例,这是显示对话时的立绘用的,因为立绘画面一般都只是人物的头部和上身,且立绘窗口也比较大,这里最好填写大于1的数字。 + 图片放大比例,这是显示对话时的立绘用的,因为立绘画面一般都只是人物的头部和上身,且立绘窗口也比较大,这里最好填写大于1的数字。 -## 回到编辑器添加人物 +## 自定义角色的音效 -一切准备就绪,现在进入编辑器添加一个人物,然后在人物设置里面点一下文件夹图标,选择刚才我们写好的.json文件。 +游戏在运行到**显示对话**事件时,如果遇到对应的表情 [ID](../pages/spritesheet.md#自定义角色的表情机制) 时,会尝试: + +- 寻找此自定义角色的同名 ID 音频文件 +- 若无,寻找此自定义角色的默认 ID 音频文件 +- 若无,设为默认对话音频文件。 + +游戏会尝试在对话框内每弹出一个字就播放一次。 + +## 自定义角色的表情机制 + +一个自定义角色可以拥有多个表情,每个表情都对应一个 ID, +为便于理解,这里假设我们的精灵名为 `吾夜犹明`。 +ID 的规则如下: + +- `neutral` 表情对应无后缀的精灵名,即 `吾夜犹明`。 +- 其他表情对应 `[精灵名]_[表情名]`,例如 `happy` 对应 `吾夜犹明_happy`。 + +此规则会影响**显示对话**事件的角色表情选取和音效文件选取。 +这也是为什么表情名不能含有 `_` 和文件名不合法字符。 + +## 回到编辑器添加自定义角色 + +一切准备就绪,现在进入编辑器添加一个自定义角色,然后在人物设置里面点一下文件夹图标,选择刚才我们写好的.json文件。 ![](../images/spritesheet-openfile.png) @@ -155,7 +178,8 @@ ## 选择立绘 -在[这里](../pages/captions.md#显示对话)我们已经提到过,显示对话的对话框中手动写下立绘名字也是可以插入立绘的。如果我们在这里导入一个文件名为“吾夜犹明”的猫猫,然后在对话框的开头写下`吾夜犹明:`,那么播放的立绘就是默认的neutral那一项。**依然需要注意是英文的冒号**。如果想要选择其他表情作为立绘,则需要额外写一个下划线,后面加上表情名,例如`吾夜犹明_happy:`,`吾夜犹明_barely:`和`吾夜犹明_missed:`。 +在[这里](../pages/captions.md#显示对话)我们已经提到过,显示对话的对话框中手动写下立绘名字也是可以插入立绘的。如果我们需要让对话显示立绘,需要在一行中输入 `[表情 ID]:[对话内容]`。表情格式见[表情 ID](../pages/spritesheet.md#自定义角色的表情机制)。 +例如 `吾夜犹明_happy:今天真是美好的一天。`。 如果我们在json文件中自己添加了名为`Error`自定义表情,例如: