跳转至

Dialog

引用

什么是 Dialog

顾名思义就是游戏中一切跟文本有关的东西, 主要包括

  • 对话(人物对话文本)
  • UI(例如开始界面的文本, Mod选项界面的文本, 暂停界面的文本, 选关界面的文本, 明信片等)

这么多文字必定要存放在某个地方, 不同的语言也要做不同的区分, 那么官方的做法是什么呢

官方的做法是一种语言对应一个特定的.txt, 一段 文本 对应 .txt 中唯一的id, 叫做, 或者说key, 形如 test_key=文本, 这样游戏就可以根据你的语言使用对应语言文件中的 test_key 来获得对应的 文本, 就像这样

dialog_file_example

知道原理后我们就可以添加新的key来生成我们需要的文本, 甚至是替换官图文本(同名的key后加载的的会覆盖先加载的, 如 FunnyDialog), 在使用上我们只需要写好对话, 在地图里放个触发对话的Trigger, 然后填入对应的 key 就好了

编写 Dialog

首先在你 Mod 根目录下创建一个 Dialog 文件夹形成类似 Celeste/Mods/你的mod名/Dialog/ 的目录结构

接着你就可以在该目录下创建各种语言的.txt 文件来做不同语言的翻译和添加文本的工作, 但一般加英文 English.txt (必备)跟中文 Simplified Chinese.txt 就够了

写好对应的文本后在对应 Trigger 中填入对应 id/key 即可

常用对话 Trigger

如果要添加自定义文本键名一定要长~, 不然很可能和别人重了出问题, 一般建议是 作者名_图名_键名

  • Minitextbox Trigger(trigger)
  • Everest Dialog Cutscene(trigger)
  • Custom NPC(entity)

注意事项

  • =左边不要有空格
  • 如果你开着游戏新建了文件和文件夹可能导致热更失效, 这也是很多时候 key 填对了但是没对话的原因, 建议按住 Ctrl + F5 快速重启游戏看看是🐖了还是热更坏了

常用部分

推荐下载 VSCode 并安装 Celeste Dialog Highlighter 插件

修改自己地图名称和吃心文本

最简单粗暴识别哪些东西是键名的方法就是那一串东西是不是被大括号{}或者中括号[]包着(因为蔚蓝会把无法识别的键用括号包着显示出来), 所以照抄就好了, 例如

localization localization

localization localization

localization localization

Simplified Chinese.txt
1
2
3
Lucky_Tutorial= 教程小标题
Lucky_Tutorial_CelesteWikiTutorial= 教程主标题
poem_Lucky_Tutorial_CelesteWikiTutorial_A= 你好, 我是爱心

常用工具

FAQ

为什么我文本缺字了

因为蔚蓝字库里没有, 请自己按示例生成(字库生成网站), 或者你直接依赖 Extended Chinese Font/Chinese Font Pack这个Mod, 大概率不会缺字(虽然可能还是会缺)

常用 Dialog 实体/Trigger

MaxHelpingHand/CustomCh3Memo

memo_with_icon

制作无 Icon 版本

素材

memo

然后把官图素材从 Graphics/Atlases/Memo 粘贴到你的 Mod 下, 改个名, 之后在属性栏 Paper Sprite Folder Name 里填上文件夹名字即可(比如我这里的 awa), 还有就是别忘了把另两个素材给清空, 不然还是会有 icon

s1

成品

memo_with_no_icon