Releases: sheep-realms/Echo-Live
Releases · sheep-realms/Echo-Live
1.5.5
注意:本次更新对广播系统的 WebSocket 功能作出了破坏性更改,如果您此前高度依赖 WebSocket 功能,请您仔细阅读此更新日志。
从此版本开始可以通过 Echo-Live WebSocket Server 建立本地服务器以进行跨设备协同。
新增
编辑器
- 编辑器新增 WebSocket 连接,可向 WebSocket 服务器发送消息。
- 编辑器对话框状态仪表板新增支持右键标记对话框。
- 标记效果会在方块左侧显示对应的图标。
- 共有 3 种状态:
- 取消标记:无效果。
- 已选中:显示旗帜图标,此时未被选中的对话框将不会收到消息。
- 已排除:显示禁止图标,不会收到任何消息。
- 仅接收定向广播的对话框会在默认情况下显示一个半隐的禁止图标。
- 启用高对比度时,禁止图标会旋转 90 度以便和标记排除状态区分。
- 编辑器对话框状态仪表板新增移动设备震动反馈。
- 震动信号为:
- 发送下一条消息:短。
- 添加、更改标记:短、长。
- 移除标记:长、短。
- 震动信号为:
快速格式化代码
- 新增自定义类。语法:
@<类名>
—— 会自动添加echo-text-
前缀。@<:类名>
—— 不会添加前缀。
对话框
- 新增
targeted
URL 参数,填入任意内容即视为仅接收定向广播。- 仅在编辑器对话框状态仪表板中标记为 “已选中” 才能收到消息。
消息格式
- 消息格式中的
style
字段新增shadow
字段,用于设置文本投影,包含:x
、y
—— 偏移量,需要指定长度单位,默认为0
。blur
—— 模糊规模,需要指定长度单位,默认为0.25em
。color
—— 投影颜色,默认为#000000
。
音效
- 新增铅笔音效
pencil
,包含 12 条音频,用于打印音效。 - 新增翻页音效
paper
,包含 1 条音频,用于新对话入场音效。
广播
- 广播系统新增支持选中多个投递目标。
- 广播系统新增支持反选投递目标。
API
target
字段新增语法前缀-
,用于反选目标。
配置文件
- 新增
editor.websocket
配置项,用于控制编辑器的 WebSocket 连接,包含:enable
—— 启用编辑器的 WebSocket 连接,默认为false
。url
—— WebSocket 连接地址,默认为ws://127.0.0.1:3000
。auto_url
—— 启用自动设置连接地址,默认为true
。reconnect_limit
—— 最大重连尝试次数,默认为5
。
- 新增
advanced.performance
配置项,用于调整性能细节,包含:foreach_text_style_by_message_data
—— 基于消息数据遍历文本样式,默认为false
。row_search_threshold
—— 横向搜索触发阈值,默认为1
。
- 新增
advanced.device.enable
配置项,用于启用硬件设备控制,默认为true
。
注册表
- 新增
text_style
注册表,用于存放消息格式中的样式信息。注册表项包含以下字段:name
—— 样式字段名。class
、style
—— 应用的类名和样式名,类型为String
或Array<String>
,可使用通配符{value}
来填入值。- 当消息格式的样式字段值类型为
Object
时,可自定义通配符名称。 - 插入管道符
|
可定义默认值,例如{value|16px}
。
- 当消息格式的样式字段值类型为
custom_style
—— 自定义样式值,默认为false
,启用后,style
需填写完整的样式定义语句。- 例如:
text-shadow: {x|0} {y|0} {blur|0.25em} {color|#000000};
- 例如:
is_style
—— 是style
字段,为style
字段单独配置,默认为false
。
sound
注册表新增allow_duplicate
字段,用于控制是否允许随机音效随机到重复音效,默认为false
。sound
注册表新增type
字段,用于区分用途,可填写print
或next
。
其他
- 新增开发者工具:导出本地化文本,用于上传至 Crowdin,位于
dev/lang_export.html
。
更改
配置文件编辑器
- 更改配置名 “显示语言” 为 “界面语言” 以和其他显示相关的配置区分。
- 调整了配置文件编辑器一些元素的无障碍语义。
- 限制了配置文件编辑器中关于页面的 LOGO 高度。
- 配置文件编辑器现在会按用途排序音效列表。
配置文件
- 配置文件数据版本更改为 10。
accessible
配置项更名为accessibility
。其中:drotanopia_and_deuteranopia
配置项更名为protanopia_and_deuteranopia
。
广播
- 广播终端现在会忽略由自己发送的消息,用以应对来自 WebSocket 的广播。
- 【破坏性更改】 现在广播客户端会向 WebSocket 转发所有消息。
- 现在广播系统在接收 WebSocket 消息时会尝试读取二进制数据。
API
- 修正了
unknown
的拼写错误,API 名称由error_unknow
更改为error_unknown
。 target
字段现在可以是Array<String>
类型,以选定多个目标。
其他
- 消息格式中的样式现在基于数据驱动。
res/script/text-styles.js
移动至res/data/text_style.js
并重写。
- 更改了文本样式中下划线的实现方式。
- 将命令控制台函数执行结果消息的本地化文本中的
count
变量重命名为n
以支持复数变体。 - 现在可在编辑器输出标签页输出内容文本框中发送
/cmd
来打开 / 关闭命令控制台。
移除
- 由于动画冲突,消息格式
style
字段中实验性的rock
字段已于消息格式样式数据驱动化中被移除。
修复
1.5.X 版本前的漏洞
- 红色盲 protanopia 被错拼为 drotanopia。
- 随机音效有可能重复播放同一个音效。
- 随机音效可以随机到负数导致音效缺失。
- 历史记录在尝试重连 WebSocket 时在编辑器日志中的终端类型不正确。
- 编辑器输出标签页输出内容只有在同时开启插入头尾内容时才会正确裁切。
1.5.X 版本中的漏洞
- 翻译键名 date 错拼为 data。
- 客户端还是不会向 WebSocket 服务器发送除 hello 消息以外的消息。
Echo-Live 从此版本开始采用自动化打包,您可以在 build-info.txt
文件中查看打包信息。
1.5.4
新增
配置
- 新增
global.touchscreen_layout
配置项,用于启用后台页面的触屏布局,默认为false
。 - 新增
global.thin_scrollbar
配置项,用于启用后台页面的细滚动条,默认为false
。 - 新增
echolive.layout.username_text_align_right
配置项,用于控制对话框说话人文本是否靠右对齐,默认为false
。 - 新增
echolive.layout.diplay_controller
配置项,用于控制对话框的底部控制栏是否显示,默认为true
。 - 新增
accessible.font_size
配置项,用于控制后台页面的字体大小,默认为16
,单位为像素。- 在配置文件编辑器中尝试设置低于 8 或高于 32 的值会弹出确认对话框。
- 新增
accessible.unlock_page_width
配置项,用于解锁页面宽度,默认为false
。- 解锁页面宽度时通知气泡不再会略微向内容区靠拢。
配置文件编辑器
- 新增配置项搜索。
- 语法:
参数名:参数值 关键词1 关键词2
参数名:(参数值1, 参数值2) 关键词1 关键词2
"含有空格的关键词"
- 可选参数:
in
:配置项所在的顶级分类。type
:配置值类型。
- 搜索结果不会在按住 Alt 键点击时发生跳转。
- 语法:
- 配置文件编辑器新增 URL 参数 goto 用于跳转至指定配置。
其他
- 后台页面新增简单文件完整性校验。
更改
可访问性
- 无障碍相关描述更名为 “可访问性”。
- 优化了下拉输入框的无障碍属性以描述其展开状态。
- 调整了一些高对比度样式。
其他
- 配置文件数据版本更新为 9。
- 配置文件编辑器现在会在保存配置文件时提醒刷新页面。
- 配置文件编辑器讲述人语音资源下拉菜单不再列出远程资源。
- 编辑器日志输出的消息内容现在会在超过 128 个字符时被截断。
- 现在提取纯文本格式消息时会提取
ruby
字段内容并放入括号中。 - 对话框现在会预载音频资源以用于远程场景。
- 现在对话框说话人名称也会自动识别文本书写方向。
- 翻译键
ui.confirm
内容更改为 “确定”。 - 修正了台湾繁体的一些字词转换错误。
- 同步 Echo v1.0.14 更改。
修复
1.5.X 版本前的漏洞
- 编辑器文本框字符计数器不会随重置按钮重置。
- 编辑器文本框字符计数器会将 Unicode 扩展区字符错误统计为 2 字符。
- 编辑器可以对打印速度输入非法数值。
- 禁用动画时弹出对话框不能正确聚焦和关闭。
- 配置文件编辑器中文本框标签对于屏幕阅读器不可读。
1.5.X 版本中的漏洞
- 编辑器中的表情包列表存在重复内容。
- 弹出窗口未返回正确的返回值。
- 需要跳过一次打印循环的字符未正确匹配。
1.5.3
新增
- 新增
advanced.settings.display_hidden_option
配置项,用于显示隐藏的配置选项,默认为false
。 - 新增
advanced.broadcast.allow_send_duplicate_message
配置项,用于允许对话框接收重复的消息,而非忽略,默认为false
。
更改
- 配置文件数据版本更新为 8。
- 配置文件编辑器中默认不再显示 OBS 中不可用的打印动效。
- 现在于编辑器中发送消息时会使移动设备短暂震动。
- 如发送消息出错,则震动两次。
- 仅为未来开发做准备,目前仍不支持跨设备控制。
- 编辑器说话人输入框现在不再允许浏览器自动填充。
修复
- 缩放进入和放大进入打印动效在 OBS 中未正确生效。
- 启用高对比度时组件的标签边框颜色不正确。
- 在远程环境或极端情况下本地化会出现故障。
重新上传备注
- 修复了对话框和历史记录不可用的问题。
- 修复了编辑器图库无法正常显示的问题。
1.5.2
修复
- 启用高对比度时一些组件样式不正确。
- 即便使用了快速格式化代码,日志中依旧输出 “已发送纯文本消息”。
- 客户端不会向 WebSocket 服务器发送除 hello 消息以外的消息。
1.5.1
修复
- 回车未正确渲染。
1.5.0
新增
演出
- 新增主题玻璃(
glass
)。- 该主题使用半透明渐变背景,其对话框适合贴靠画面下端摆放。
- 使用该主题需要将对应的 OBS 浏览器源的混合方式设置为 “关闭sRGB”。
- 消息格式
style
字段中新增字段emphasis
,用于设置着重号。- 当
emphasis
设为true
时,文本下方会出现着重号。
- 当
- 新增字符打印动效,可在打印字符时播放入场动效。
- 可用值为:
none
(无)、fade-in
(淡入)、move-in-up
(从上方移入)、move-in-down
(从下方移入)、zoom-in-inside
(放大进入)、zoom-in-outside
(缩小进入)、blur-in
(聚焦)。
- 可用值为:
- 新增动效时间曲线,控制动效在不同时机的运动速率。
- 等效于 CSS 中的
easing-function
。
- 等效于 CSS 中的
数据驱动化
- 新增注册表,表情包、主题、调色板、打印动效、配置文件编辑器菜单、动效时间曲线写入注册表。
- 包含以下注册表:
echolive:root
、echolive:border_style
、echolive:emoji
、echolive:emoji_namespace
、echolive:language
、echolive:language_index
、echolive:live_theme
、echolive:palette
、echolive:print_effect
、echolive:script
、echolive:settings_data
、echolive:sound
、echolive:stylesheet
、echolive:system
、echolive:timing_function
。 - 设置注册表值时会尝试从当前命名空间的
root
注册表读取默认值用于合并。如果指定了继承,将会读取被继承的注册表的默认值。
- 包含以下注册表:
配置
- 新增
echolive.print_effect.name
配置项,用于配置打印动效名称,默认为none
。 - 新增
echolive.print_effect.duration
配置项,用于配置打印动效用时,单位毫秒,默认为250
。 - 新增
echolive.print_effect.scale
配置项,用于配置打印动效规模乘数,默认为1
。 - 新增
echolive.print_effect.timing_function
配置项,用于配置打印动效时间曲线,默认为ease-out
。 - 新增
history.message.live_display_hidden_latest_message_show
配置项,用于控制对话框隐去时是否显示最新的历史记录,默认为true
。
广播
- 新增
history_clear
API,用于清空历史记录。 - 新增
live_display_update
API,用于更新对话框显示状态。 - 新增
set_live_display
API,用于更改对话框显示状态。
控制台与命令
- 新增
livedisplay
命令,用于更改对话框显示状态。- 用法:
next <状态> [<目标>]
<状态>
hidden
:隐去。show
:显现。
<目标>
- 目标客户端的 UUID 或识别名。
- 用法:
其他
- 新增输入框控件标签,现在配置文件编辑器中的配置项会在需要时显示单位。
- 配置文件编辑器新增调试选项和扩展管理器菜单。
- 扩展管理器菜单暂不可用。
更改
数据驱动化
- 数据表从
res/script
文件夹移动至res/data
文件夹:res/script/config-define.js
->res/data/config_define.js
res/script/emoji.js
->res/data/emoji.js
res/script/themes.js
->res/data/live_theme.js
res/script/palettes.js
->res/data/palette.js
res/script/sounds.js
->res/data/sound.js
- 本地化数据不再硬编码。
- 更改了主题、调色板和表情的加载顺序,使数据与业务逻辑解耦。
- 对扩展系统做了一些破坏性的更改,现在扩展系统不再可用,计划在后续版本中重制扩展系统。
配置
- 配置文件数据版本更新为 7。
- 配置文件编辑器现在会删除不再使用的配置。
其他
- 历史记录现在可以在对话框隐去时显示最新消息。
- 略微放大了表情包 “绵羊的像素头像” 的尺寸,使其更易于阅读。
- 对话框字符打印时输出的内容不再是字符,而是 HTML 元素。
- 重制了部分 FHUI。
- 本地化程序不再因为本地化数据缺失而报错。
- 同步 Echo v1.0.13 更新。
- 调整了需要跳过一次打印循环的字符匹配范围,现在包括:
- 长破折号(
—
,\u2014
)和双破折号(―
,\u2015
); - 左单引号(
‘
,\u2018
)和右单引号(’
,\u2019
); - 左双引号(
“
,\u201c
)和右双引号(”
,\u201d
); \u2e80-\u9fff
- CJK 统一表意文字、康熙部首和部首补充;\uac00-\ud7ff
- 韩文音节;\uf900-\ufaff
- CJK 兼容表意文字;\ufe10-\ufe1f
- 竖排标点符号;\ufe30-\ufe4f
- CJK 兼容形式;\uff01-\uff60
、\uffe0-\uffe7
- 全角标点符号;\u{17000}-\u{1b2ff}
- CJK 扩展 B、C、D、E 区,包含西夏文、契丹小字、假名扩展和补充、女书;\u{20000}-\u{2fa1f}
- CJK 扩展 F、G 区;\u{30000}-\u{323af}
- CJK 扩展 H 区;- 所有 emoji 符号。
- 长破折号(
- 调整了需要跳过一次打印循环的字符匹配范围,现在包括:
移除
- 移除未使用的
echolive.print_effect_name
配置项。 - 移除未使用的
echolive.print_effect_duration
配置项。
修复
- 图片选择器未防范脚本注入。
- 繁体中文语言代码中存在拼写错误。
- 文本转消息格式小工具标题未被翻译。
editor.emoji.select
翻译缺失。- 一些主题样式变量回退值未被正确使用。
1.4.7
新增
编辑器
- 新增 “发送后清空内容” 选项。
控制台与命令
- 编辑器控制台命令新增注释
//
,仅支持用于行首。 - 编辑器控制台新增函数模式。
- 执行包含
//
开头的命令将进入函数模式。 - 再次输入
//
且不包含其他内容关闭函数模式。 - 函数中可写入多条命令,并被依次执行。
- 函数的执行结果将会输出在日志中。
- 函数中使用
var
命令定义的变量作用域仅限于函数。
- 执行包含
- 新增
clearlocalstorage
命令,用于清除本地存储数据。- 该命令不需要任何参数。
- 执行该命令后会弹出确认对话框。
- 该命令在函数中不可用。
- 新增
getlang
命令,用于获取当前的本地化信息。- 语法:
getlang [(code|ietf|name)]
(code|ietf|name)
- 若忽略此参数则默认选择
code
。 code
:获取语言的 ISO 639-3 代码。ietf
:获取语言的 IETF 代码。name
:获取语言的本地化名称。
- 若忽略此参数则默认选择
- 语法:
var
命令新增~
按位反转运算符。
配置
- 配置文件数据版本更新为 6。
- 新增
global.controller_layout_reverse
配置项,用于反转控制器按钮布局,默认为false
。 - 新增
advanced.settings.display_config_key
配置项,用于控制配置文件编辑器中是否显示配置键名,默认为false
。 - 新增
advanced.settings.speech_synthesis_voices_maximum
配置项,用于控制配置文件编辑器中列出的讲述人语言资源数量,默认为64
。
其他
- 新增对话剧本转消息格式小工具,位于
studio/text_to_messages.html
。- 仍在开发中,目前版本并不完善。
- 可将多行文本消息转换成消息队列,并将指定的分隔符之前的内容视为说话人。
- 新增开发版网页图标,仅在开发版中显示。
- 配置文件编辑器新增点击 “编辑” 选项卡回到顶部的交互。
- 配置文件编辑器新增未保存提醒。
- 补充了配置文件编辑器尝试打开文件选择器时的失败提示。
更改
- 现在编辑器发送消息后焦点会回到内容框。
- 阻止了试图在 OBS 中打开配置文件编辑器的行为。
- 禁用了对话框滚动条。
- 更改了顶层标签类名的存放位置,使得 View Transition 可以被禁用动画配置项控制。
- 统一了所有时间格式化函数。
- 现在
var
命令执行成功时,除了删除变量以外,都会返回变量值。
移除
- 移除了一些冗余函数。
修复
- 翻译键中包含数字会导致无法被其他翻译字符串调用。
- 在较新的 OBS 版本中对话框内容溢出时会出现滚动条。
1.4.6
修复
- 广播系统无法正确向 WebSocket 服务器发送消息。
1.4.5
更改
- 补充了配置文件编辑器中关于 WebSocket 协议头的描述信息。
- 统一了所有表单控件高度。
- 部分界面尺寸现在基于字号取值。
- 优化了一些技术细节。
修复
- 一些按钮在深色主题下的样式不正确。
- 编辑器图片选择器可以在未填写 URL 的情况下插入图片。
- 高度较矮的图片在编辑器图库中布局有误。
1.4.4
新增
- 新增通知气泡。
- 配置文件编辑器新增保存结果通知。
- 当发生未捕获的错误时将会弹出提醒。
- 新增浏览器缩放误操作提示,仅在 OBS 环境中触发。
- 表情包新增作者和授权协议信息显示。
更改
- 更新版权声明信息。
修复
- 对话框中说话人无法显示多个空格。
- 编辑器图片选择器填写意料之外的值时无警告。
- 除通用色以外颜色的 Air 按钮边框颜色不正确。
- 启用高对比度的深色主题投影样式不正确。
- 轮询模式不能正常工作。