Skip to content

关于窗口字符底层全更新说明(v3.70)

该文档于2024/11开始编写,对应发布版本为v3.70,如果你是基于之后版本的插件,可以无视此文档。

需要更新的插件

核心插件:

Drill_CoreOfCharDraw [v1.0] 系统 - 字符绘制核心

Drill_CoreOfWindowCharacter [v2.0] 窗口字符 - 窗口字符核心

Drill_CoreOfWindowCharacterSprite [v1.0] 窗口字符 - 窗口字符贴图核心

Drill_CoreOfDialog [v1.0] 对话框 - 对话框优化核心

Drill_CoreOfWindowAuxiliary [v2.2] 系统 - 窗口辅助核心

主要子插件:

Drill_CoreOfColor [v1.8] 窗口字符 - 颜色核心

Drill_ActorTextColor [v2.1] UI - 角色文本颜色

Drill_EnemyTextColor [v2.3] UI - 敌人文本颜色

Drill_ItemTextColor [v2.5] UI - 物品+技能文本颜色

Drill_ItemTextFilter [v1.2] UI - 物品+技能文本的滤镜效果

Drill_CoreOfString [v1.3] 系统 - 字符串核心

Drill_DialogCharBackground [v1.0] 窗口字符 - 字符块的背景

Drill_DialogCharContinuedEffect [v1.4] 窗口字符 - 字符块的持续动作效果

Drill_DialogTextBigImage [v1.4] 窗口字符 - 大图片字符

Drill_DialogCharDisplayData [v1.0] 窗口字符 - 常用的指代字符

Drill_DialogMessageSpeed [v1.2] 窗口字符 - 逐个绘制的播放速度

Drill_DialogCharCursor [v1.0] 窗口字符 - 逐个绘制的文本光标

Drill_DialogNameBox [v1.2] 对话框 - 姓名框窗口

Drill_DialogChoiceButton [v1.3] 对话框 - 对话选项按钮组

Drill_DialogMessageFastSkip [v1.1] 对话框 - 对话加速键

Drill_DialogSingleSprite [v1.1] 对话框 - 简易对话图

Drill_DialogSkin [v1.6] 对话框 - 对话框皮肤

Drill_DialogArrow [v1.3] 对话框 - 对话框小箭头

相关子插件:

(系统-滚轴核心,改名为:窗口字符-长画布贴图核心 )

Drill_CoreOfScreenRoller [v1.3] 窗口字符 - 长画布贴图核心

Drill_SceneCredits [v1.3] 标题 - 制作组

Drill_SceneSelfplateE、F [v1.2] 面板 - 全自定义信息面板E、F

Drill_SceneSelfplateA、B [v2.7] 面板 - 全自定义信息面板A、B

Drill_SceneSelfplateC、D [v2.5] 面板 - 全自定义信息面板C、D

Drill_SceneSelfplateG、H [v2.0] 面板 - 全自定义信息面板G、H

Drill_SceneSelfplateI、J [v1.7] 面板 - 全自定义信息面板I、J

Drill_SceneSelfplateK、L [v1.8] 面板 - 全自定义信息面板K、L

Drill_SceneSelfplateM、N [v1.5] 面板 - 全自定义信息面板M、N

Drill_SceneGalleryA、B [v1.3] 面板 - 全自定义画廊A、B

Drill_SceneGalleryC、D [v1.4] 面板 - 全自定义画廊C、D

Drill_SceneShop [v2.2] 面板 - 全自定义商店界面

Drill_SceneLimitedShop [v1.6] 面板 - 限量商店

Drill_MiniPlateForState [v2.8] 鼠标 - 状态和buff说明窗口

Drill_MiniPlateForEvent [v2.3] 鼠标 - 事件说明窗口

Drill_MiniPlateForPicture [v2.0] 鼠标 - 图片说明窗口

Drill_MiniPlateForChar [v1.4] 鼠标 - 字符块的说明窗口

Drill_SceneMain [v1.9] 面板 - 全自定义主菜单面板

Drill_TitleScene [v1.7] 标题 - 全自定义标题界面

Drill_CoreOfSelectableButton [v1.8] 系统 - 按钮组核心

Drill_MenuBackButton [v1.5] 主菜单 - 返回按钮

Drill_X_SceneShopDiscount [v1.5] 控件 - 商店节假日的折扣[扩展]

Drill_AssetsOfCurrency [v1.2] 管理器 - 货币素材库

Drill_EventText [v2.6] 行走图 - 事件漂浮文字

Drill_BattleFloatingPermanentText [v1.6] 战斗UI - 永久漂浮文字

Drill_BattleFloatingTemporaryText [v1.6] 战斗UI - 临时漂浮文字

Drill_GaugeFloatingPermanentText [v1.7] 地图UI - 永久漂浮文字

Drill_GaugeFloatingTemporaryText [v1.7] 地图UI - 临时漂浮文字

Drill_GaugeFloatingTreasureHud [v1.3] 地图UI - 临时漂浮物品框

Drill_GaugeFloatingTreasurePopup [v1.3] 地图UI - 临时漂浮物品信息

Drill_GaugeFloatingMessage [v1.3] 地图UI - 临时漂浮消息

Drill_GaugeFloatingVideoBarrage [v1.2] 地图UI - 临时漂浮视频弹幕

Drill_CoreOfActionSequence [v1.9] 系统 - GIF动画序列核心

Drill_CoreOfInput [v2.1] 系统 - 输入设备核心

Drill_OperateKeys [v2.0] 键盘 - 键盘手柄按键修改器

Drill_EventBufferVariables [v1.4] 物体管理 - 事件的缓存变量值

Drill_EventBufferSwitches [v1.1] 物体管理 - 事件的缓存开关值

该插件介绍文本的对齐方式,

包括横向左对齐、居中、右对齐;纵向顶部对齐、居中、底部对齐。

插件底层变化说明

原插件结构的底层关系如下图。

原插件结构中,所有子插件都需要 窗口辅助核心+窗口字符核心 。并且YEP消息核心冲突会造成很多取舍的麻烦。

现插件结构如下图。

窗口辅助核心被分离了出去,大部分子插件不再强制需要 窗口辅助核心。并且 窗口字符核心 拆分成:字符绘制核心、窗口字符核心、窗口字符贴图核心、对话框优化核心现在除了 对话框优化核心 与YEP冲突,其它插件都不冲突了。

快速批量更新插件的方法

1)备份工程

注意,这次窗口字符底层改动非常大,更新前先备份工程,备份工程,备份工程。

2)打开小工具

打开小工具插件信息查看器。

3)读取工程

选择示例工程,也可以是你自己的工程,点击读取。

4)找到插件更新器

点击“其它功能”选项卡,点击“插件更新器”按钮。

5)浏览对应工程

注意填写“含新插件的工程”和“被更新的工程”。

6)列表勾选

以旧版本的工程的更新为例,插件情况如下图。

勾选可升级项。

7)执行更新

点击执行更新即可。(注意,文件覆盖后无法找回,记得先备份工程)

更新执行后,可能会卡顿一段时间,这时候不要强行关闭软件哦。

8)测试游戏

这时候,进入游戏测试。

可以马上看见缺少 字符绘制核心。

由于窗口字符核心分离成了多个核心插件,所以需要添加新的核心插件。更新器不会将没引用的插件放入文件夹,所以 字符绘制核心插件 你要自己手动加。

如果无视一大堆插件的关联,继续进入游戏,

你会发现标题的 按钮组 没有绘制任何文本,所以看不见按钮。

添加 字符绘制核心插件 后,

就是缺少 窗口字符贴图核心 ,这个也要手动加一下。

还有,长画布贴图核心,需要换一下位置,往后放。

(这个插件改了作用范围)

核心插件改好后,就能正常进入游戏了。

9)常见问题

进入游戏后,能看见最常见的问题,

就是大量窗口字符失效,出现了大量"\d"。

因为这次更新全是窗口字符底层,所以很多窗口字符也修改了配置指令,如果窗口字符没有相关插件解析,会被作为普通文本全部显示出来。

图中的 ”\dDCEE[使用方法:预设[4]]” 更新后应写为:

”\dDCCE[4]\dts[使用方法]\dDCCE[off]”。 (具体去看对应的插件)

原构造是把 字符块与插件配置紧密合并,但分离了 窗口字符贴图核心 后,字符块用“\dts[]”单独管理,所以动态效果只相当于给 ”\dts[]” 字符块添加新的样式,可以与其他插件样式叠加,所以才这样设计。

为什么要推翻

1)底层太差劲

原mv的窗口字符非常浪费性能,需要绘制两次才能实现功能。

还不如直接基于h5绘制系统,提前解析字符,将 解析和绘制过程 完全分开。

另外,如果新写的窗口字符不生效,在mv中显示的是下图这个样子。

正则表达式在一开始就没设计好,也不方便继承函数、覆写函数。

2)维护成本太高

作者我被 字符大小、行高设置 出现的各种bug弄烦了,无法维护。

(行走图显示窗口框架,窗口会被抬高)

3.62和以前的版本,都有这个问题,一直没能解决。

这个问题,还衍生出了:

》只要修改字体大小,行高分布、自动换行会乱。

》使用部分窗口字符时,会吞字。

》全自定义面板中,翻页会导致 字符 绘制的位置不唯一,反复抖动。

3)我要加新功能

2024/10你们对新底层的力量一无所知

比如作者我想在 图片上写文字,这在rmmv默认底层里面不能实现。

比如作者我想实现对每行行高的绝对控制,这在rmmv默认底层里面不能实现。

比如作者我想实现图片+文字嵌套,这在rmmv默认底层里面不能实现。

综上所述,所以要推翻原底层的结构。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史