一年之际,填坑信息

前言

哟,不知不觉一年又就这么过去了,我也差不多一整年没有正经写过什么东西了,再次面对Word界面的时候,甚至感觉有些生疏了起来——每天晚上码字的日子好像已经变得很遥远。

尽管没有人关注,但不管怎么说,沉寂一年终归是不好的。有句话说得好,我这不是咕,是工作量大(笑)

AVG部分

2019年全年精力基本集中在SLG部分,AVG部分主要的工作量是给引擎起了个名,叫Hibiscus(笑)


 


虽然没有“只起个名”那么夸张,但我的确仅仅在11、12两个月对AVG部分进行了架构上的细节调整,但这些调整可以说给维护与后续功能扩展带来了极大的便利。从16年6月到18年初,AVG部分总共迭代了三个大版本,基本功能已经相对较为全面,但架构设计的问题导致脚本维护起来非常麻烦,在其中增删改任意一行都是灾难,哪怕用Excel + VBA做生成也是。此外,旧有的架构让增加交叠淡化之外的演出基本是一个不可能的任务。所以,18年5月我才会重构了整个系统,在进化到V4之后,AVG部分终于达到了一个在中大型规模的项目中真正能说堪堪可用的程度。




不过V4还有一个问题,那就是用了许多不同的方法来干同一件事。举例说明,创建立绘时,引擎会创建图片对象,然后对其进行一系列初始化工作;而在读取存档时,却使用另一套创建方法——这明显是不太合理的。所以在V5版中,引擎内部的一切操作都是基于指令的。继续使用上面的例子,V5在读取存档时,会根据保存信息自动生成一条创建指令,并调用图片创建方法。在V4中,姓名栏,对话框,CG与立绘分为了四个不同的对象来处理,但他们本质上却是一致的,V5中将它们全部合并为立绘对象,并引入了指令转译——对用户来说,CG是CG,姓名栏是姓名栏,但引擎会将它们视作特殊的立绘进行处理。在解析到相关指令后,会转译为立绘指令进行执行——这样我只需要维护一套处理方法就可以了。这个思想渗透到V5的方方面面中去,甚至脚本错误显示报错信息也是同样的实现思路。




另外值得说的一点就是,我做了一个AVG部分的精简版,Hibiscus Lite,用来整合到其他系统中去,例如SLG部分。虽然是精简版,但精简版还是有额外功能的,比如指令扩展,演出判定扩展,初始化/退出回调之类,这样我就可以在SLG部分按照特定格式定义一条指令,在Lite版执行演出的时候控制SLG部分的对象与参数。

 


其实V5的改进不止这些,例如修改了坐标系统,脚本解析上支持了指令别名、缩进与注释区块、代码段折叠、自动捕获、十六进制颜色、默认参数;指令上增加了视频控制、对象运动、变量控制;追加了较为详细的调试系统、脚本错误保护、半透明差分叠化、平滑滚动、存档验证、语音序列、方法全局化;以及各种各样细节的优化与性能提升,等等。结合自定义语法高亮,脚本维护与调试终于方便了不少——或者说,终于像那么一点样了。

 



附带一提,虽然进度缓慢,但AVG部分的美术素材还是开始缓慢的到位了,但我个人实在是分身乏术,腾不出来多余的精力去弄演出了……哎,反正就我一个人干活,偶尔发点进度别人都装死,口亨。

牢骚就发到这里,这种破坏团结的话还是少说为妙(笑)。




 



评论
热度(4)

© defisym | Powered by LOFTER