宣布更新YSP公开版本到V0.8.0_Pub
YSP公开版本(正式版本)将于2021年10月20日~25日期间择机更新为V0.8.0_Pub。版本号全称为V0.8.0_Pub(Build120.1000)_SPOL0.6.5;C++_Qt。因为本次公开版本更新与V0.8.0_Pre4版本功能基本一致,故内部渠道不参与此次版本更新。若有需要,内部渠道用户可以下载本公开版本,并在程序内手动将更新渠道切换至内部渠道。
内部渠道用户将在本月底(或下个月中旬)进入V0.9.0的内测。
本次更新是YSP从Python迁移到C++之后的第一个公开版本更新。本次更新后,SPOL版本号从0.6.0变更为0.6.5。
(2021年10月24日补充)SPOL0.6.5与SPOL0.6.0的唯一区别在于自由文本控制器的默认出字间隔从0恢复到了与讲述控制器默认出字间隔一致。该区别在程序内能正常体现,但是由于时间仓促我们并未更新指导文档中对于该出字间隔的说法,指导文档中仍然声称该值默认为0,请忽略该错误。
相比于上一个公开版本V0.7.4_Pub,我们做出了如下更新:

新功能:
应用了增强的按行跳转逻辑。
现在跳转播放效果和直接播放效果一致,不会因为跳转行导致背景与BGM错误。程序现在可以自动追加识别跳转之后的最后一个背景控制器与音乐控制器。
新增了程序的一般设置和高级设置页面。
用户可以在一般设置页面更改播放页的窗口化与否、窗口化后窗口大小参数,在高级设置页面更改程序的强制调试模式与更新接受通道。
新增了内置的SPOL文本着色编辑环境SPOLDev。
SPOLDev可以在开发页面进入。该页面是一个有基本键入功能的文字编辑窗口。该功能目前仍处于测试状态,可能有不稳定或其他问题。
SPOLDev通过上方的相对路径名确定SPOL文档名称与在程序目录内的存储位置。当您新建文档时,当前打开的文档会强制保存。
增强了更新提醒系统。
在该版本更新之后,程序每次更新时会查看当前版本有无更新日志,若有则会给出超链接以链接到对应页面,若无则会提示无更新日志。
程序改动:
toSPOL、运行时报错、CrashReport、双击打开剧情文件的功能暂时下线。
重新确定了翻译系统的内部代称。现在翻译文本的内部代称比以前有更高的可读性。
不再使用base.ini作为记录语言设置的文档。现在这一项设置被移入注册表之内。这意味着语言设置将在所有0.8及更高版本的程序中通用。
更改了程序主页的配色。
更改了程序启动时做出的操作。
因程序内核从K6U2升级到K9UT0,使用滤镜产生的缓存文档的后缀与原来不再相同。以前的缓存文件全部失效。
程序将在每次解释SPOL文档时都根据滤镜生成图像缓存,不再因为某个缓存文件已经生成过就不再生成。
存储语言文件的文件夹 lang 现在已经更名为 Language 。
程序优化:
优化了滤镜算法,现在不会因为使用“变暗”滤镜而导致产生缓存的缓存了。
由于不再使用Python,滤镜算法真正的使用到了多核处理,现在程序运算多滤镜的速度受CPU核心数量影响,相比于之前大概有4~20余倍性能利用提升(具体提升正相关于CPU核心数量)。
优化了预处理算法,现在不会因为在解释时遇到长篇大段的注释而导致实时解释过程卡顿。
优化了渐变算法,现在不会因为使用超长时间的渐变过渡而导致掉帧或者渐变时间严重偏离预期。
优化了特效算法,现在特效帧数会比以前提高。
优化了程序主页算法,现在程序主页的动效应该比之前更流畅。
上述二项提到的动效、帧数均由计划上的30帧提升到了60帧。实际帧数可能有所出入。
优化了程序的运行内存占用与程序包体大小。
问题修复:
修复了在一些特殊情况下打开跳转页面时,左侧“当前行”位置会显示文档最后几行的行号的问题。
修复了在一些特殊情况下打开跳转页面时,左侧“当前行”位置会显示2^16-1的问题。
修复了在一些特殊情况下使用自由文本控制器有几率导致黑屏的问题。
修复了在缺失语言文件时程序无法启动的问题。
对于V0.8.0_Pre4内测用户,修复了更新提醒页面的文本缺失问题,并完成了余下的英文文本的翻译工作以及繁体中文的转换工作。
其他:
程序已经内置部分0.9更新的内容(即原来的0.8内容但是未开发完全的)。这些内容应该已经被屏蔽,但如果在使用过程中遇到未开发完整的页面,请及时向我们反馈,因为这些屏蔽残余有可能会干扰程序正常功能。
我们正在测试一项来自Qt的固有功能,它使绝大多数Qt的文本内容可以部分兼容设置文本样式的HTML标签。这项功能也被继承在了YSP程序里,但YSP程序以及SPOL语法并未对此做出系统性的支持。我们寻求在下次大版本更新时官方支持这项内容。
我们曾经预告过,开发组正在尝试增加第一批GPOL控制器。但因GPOL特殊性,增加工作已经被推迟。
V0.8的维护工作会在10天内结束,因为V0.8的部分内容被移入了V0.9。开发组需要马上投入V0.9版本的开发工作。
V0.7的维护工作仍在进行,会至少持续到11月25日。但V0.5、V0.6的维护工作今日即宣布终止。

在过去的两个月里,开发组在重构过程中遇到了许多意料之外的问题,包括但不限于预想的核心算法不成立、第三方SPOL着色编辑器不再被推荐使用。许多问题现在都已经被克服,但仍有部分问题严重干扰了更新计划,因此本次更新的内容可能与过去两个月中的预告有所出入。
作为YSP的第一个C++版本,本次更新主要关注的是还原Python版本的主要功能。对于一些增强性功能并未作太多关注。例如,在本版以及接下来数个版本里,从游戏内的官方文件转译到SPOL文档的功能都不会再上线,对于其他语言的支持也将暂时搁置。但与此同时,开发组也更注重于程序的标准化,因此在内部提出了一套称为IFL的标准。IFL标准定义了解释SPOL文档时的九种标准异常,将会在后续更新中取代原来杂乱的异常报错系统,也会提供更强的SPOL错误时程序鲁棒性,在那之前,0.8版本的YSP将不再显示SPOL解释时的报错信息,在遇到错误的SPOL语句时程序会按照预设的处理方法进行处理,但在处理后有可能发生崩溃。
但是即便如此,我们仍然要宣布本次更新,希望它们能够提高您使用YSP播放器的体验。

YSP开发组
青雅音