mod探索记录二:为难度匹配不同PV
昨天我想有一件事情很不公平,不能因为它没有伴奏就无视掉——说的就是那个啊《南瓜夫人的滑稽梦境》,于是我把特别演唱会版本移植到了M661。61反对我说M661不欢迎日语歌,因为这是一个本地化项目。于是后来把它换到了M639。
M639是用于庆祝M661阶段性完结的特典,它可以让未曾体验过歌姬计划系列里“演唱会工作室/AR”的玩家获得近似的体验。而演唱会模式大多是完整的乐曲,加入这种剪辑乐曲又违背了M661初衷。于是我决定移植完整版,甚至干脆把游戏剪辑版也收录了。
歌姬计划的单首乐曲,都对应有自己的乐曲座位,座位都有自己的编号。我不想为这种纯粹剪辑的乐曲而额外占用两个乐曲座位,因为那样显得太累赘了。就试着让不同的难度对应不同长度的同一首歌。
在一切其他准备都可行后,最后的难点,是为不同难度匹配不同字幕,而歌姬计划里并没有出现过这种情况,因为一般一个乐曲编号,对应的歌曲时长都是一样的,不同难度间顶多换了动画。所以我没有可以模仿的对象。
在歌姬计划里,一个歌曲字幕的时间轴和单行文本是分离的,每个单行文本都有自己的编号,按编号大小依次排列。而时间轴又带有对应文本的编号,编号可达三位数。到了对应的时间,就会显示对应单行文本作为字幕。
歌姬计划x移植的谱面并不包含时间轴,这是技术原因导致的。所以需要外部导入,discord用户nas开发了一款新的谱面编辑器,可以用于给谱面导入时间轴。并且生成对应的带编号文本,从数字1开始按时间排序编号。我就是用这个做字幕的的。每次导入字幕,它都会删除之前的所有时间轴并更新生成的编号文本。
所以每个难度都可以有不一样的时间轴,现在的问题就是,他们的相同文本,编号却不一定一样。
这是因为,完整版的乐曲经历剪辑和修饰后,成为了游戏剪辑版和特别演唱会版本。如果歌词被剪了,文本编号就可能和完整版的对不上,所以另外两个版本不一定能用完整版所用的那一套文本。比如特别演唱会版中间剪去了,后面的歌词编号就会被提前,拿来填补空缺。 所以如果不加以修改,时间轴就对不上文本。
事实上,由于游戏剪辑版只剪去了结尾,所以它的编号和完整版的完全对得上,是可以共用的。但我觉得这样就不好玩了,所以并没让他们共用。
人工修改时间轴对应编号当然是可行的,但是我觉得那太累了。因为这完全是机器可以替代的活动,可我又不会编程,只能想办法投机取巧了!
一般来说,字幕单行数量是达不到三位数的。所以我可以给编号们添加前缀数字,让他们进一位后还能被读取。不一样的字幕对应的前缀不同,这样它们的编号就成功地被分离了。
我的想法当然没有错,但实际做起来时,我忘记了编号是从一位数开始的。这么做并不是不行,但那样的话,那些一位数的变成二位数后,就得和其他不同前缀的二位数放在一起,顺序乱了就不会读取字幕单行文本了。
于是我想给每一个字幕都提前插入没有用的十个行,这样正常的编号就会被推到后面。我是用subtitle edit修改字幕的,我在开头新创建了许多行,可他们时间都是重叠的,软件并没有给他们自动排序。于是我只留下了一行,用右键点了许多次分割,有一行甚至由于被分割得很小而和上一行重叠,我只好转而分割别的行,最后留了十行空的。
中途我一直困惑于分割的快捷键,因为这样会快一些。结果进入设置界面也没有这个东西,白白浪费了时间。
由于相同的文本会被关联同一个编号,我给他们顺次手工编号到了10。这样正常的歌词编号才会从11开始。(十个数凑个整,这就是不添加九行而是十行的原因。)
每次手工干这种苦活,我都会希望自己能用编程一键完成,然后陷入纠结“编程会不会更快工作”之中……
完成之后,我删掉了没有意义的前十行文本,虽然这已经够了,但我还是又删掉了它们在谱面里对应的时间轴(其实并不能节省多少空间)。
每行文本开头格式都是固定的,所以我把这个格式文本后面加上数字前缀并替换全部,就能达到编号被进一位的效果,如图。

这样,一切就都好了。
那么——以后的M639新曲也会同时支持三个版本吗?
答案是不会,因为我觉得有点累了……
希望以后的人工智能聪明到我让他开发一个小软件他就能立马做好的地步,机械性的劳动什么时候才能被更多地取代?
还是说,喊话的时间已经够我自己人工完成了?我想那样的情况会比较少额。

