mod探索記錄二:為難度匹配不同PV
? 昨天我想有一件事情很不公平,不能因?yàn)樗鼪]有伴奏就無視掉——說的就是那個(gè)啊《南瓜夫人的滑稽夢境》,于是我把特別演唱會版本移植到了M661。61反對我說M661不歡迎日語歌,因?yàn)檫@是一個(gè)本地化項(xiàng)目。于是后來把它換到了M639。
? M639是用于慶祝M661階段性完結(jié)的特典,它可以讓未曾體驗(yàn)過歌姬計(jì)劃系列里“演唱會工作室/AR”的玩家獲得近似的體驗(yàn)。而演唱會模式大多是完整的樂曲,加入這種剪輯樂曲又違背了M661初衷。于是我決定移植完整版,甚至干脆把游戲剪輯版也收錄了。
? 歌姬計(jì)劃的單首樂曲,都對應(yīng)有自己的樂曲座位,座位都有自己的編號。我不想為這種純粹剪輯的樂曲而額外占用兩個(gè)樂曲座位,因?yàn)槟菢语@得太累贅了。就試著讓不同的難度對應(yīng)不同長度的同一首歌。
? 在一切其他準(zhǔn)備都可行后,最后的難點(diǎn),是為不同難度匹配不同字幕,而歌姬計(jì)劃里并沒有出現(xiàn)過這種情況,因?yàn)橐话阋粋€(gè)樂曲編號,對應(yīng)的歌曲時(shí)長都是一樣的,不同難度間頂多換了動畫。所以我沒有可以模仿的對象。
??在歌姬計(jì)劃里,一個(gè)歌曲字幕的時(shí)間軸和單行文本是分離的,每個(gè)單行文本都有自己的編號,按編號大小依次排列。而時(shí)間軸又帶有對應(yīng)文本的編號,編號可達(dá)三位數(shù)。到了對應(yīng)的時(shí)間,就會顯示對應(yīng)單行文本作為字幕。
? 歌姬計(jì)劃x移植的譜面并不包含時(shí)間軸,這是技術(shù)原因?qū)е碌?。所以需要外部?dǎo)入,discord用戶nas開發(fā)了一款新的譜面編輯器,可以用于給譜面導(dǎo)入時(shí)間軸。并且生成對應(yīng)的帶編號文本,從數(shù)字1開始按時(shí)間排序編號。我就是用這個(gè)做字幕的的。每次導(dǎo)入字幕,它都會刪除之前的所有時(shí)間軸并更新生成的編號文本。
? 所以每個(gè)難度都可以有不一樣的時(shí)間軸,現(xiàn)在的問題就是,他們的相同文本,編號卻不一定一樣。
? 這是因?yàn)?,完整版的樂曲?jīng)歷剪輯和修飾后,成為了游戲剪輯版和特別演唱會版本。如果歌詞被剪了,文本編號就可能和完整版的對不上,所以另外兩個(gè)版本不一定能用完整版所用的那一套文本。比如特別演唱會版中間剪去了,后面的歌詞編號就會被提前,拿來填補(bǔ)空缺。?所以如果不加以修改,時(shí)間軸就對不上文本。
? 事實(shí)上,由于游戲剪輯版只剪去了結(jié)尾,所以它的編號和完整版的完全對得上,是可以共用的。但我覺得這樣就不好玩了,所以并沒讓他們共用。
? 人工修改時(shí)間軸對應(yīng)編號當(dāng)然是可行的,但是我覺得那太累了。因?yàn)檫@完全是機(jī)器可以替代的活動,可我又不會編程,只能想辦法投機(jī)取巧了!
? 一般來說,字幕單行數(shù)量是達(dá)不到三位數(shù)的。所以我可以給編號們添加前綴數(shù)字,讓他們進(jìn)一位后還能被讀取。不一樣的字幕對應(yīng)的前綴不同,這樣它們的編號就成功地被分離了。
? 我的想法當(dāng)然沒有錯(cuò),但實(shí)際做起來時(shí),我忘記了編號是從一位數(shù)開始的。這么做并不是不行,但那樣的話,那些一位數(shù)的變成二位數(shù)后,就得和其他不同前綴的二位數(shù)放在一起,順序亂了就不會讀取字幕單行文本了。
? 于是我想給每一個(gè)字幕都提前插入沒有用的十個(gè)行,這樣正常的編號就會被推到后面。我是用subtitle?edit修改字幕的,我在開頭新創(chuàng)建了許多行,可他們時(shí)間都是重疊的,軟件并沒有給他們自動排序。于是我只留下了一行,用右鍵點(diǎn)了許多次分割,有一行甚至由于被分割得很小而和上一行重疊,我只好轉(zhuǎn)而分割別的行,最后留了十行空的。
??中途我一直困惑于分割的快捷鍵,因?yàn)檫@樣會快一些。結(jié)果進(jìn)入設(shè)置界面也沒有這個(gè)東西,白白浪費(fèi)了時(shí)間。
? 由于相同的文本會被關(guān)聯(lián)同一個(gè)編號,我給他們順次手工編號到了10。這樣正常的歌詞編號才會從11開始。(十個(gè)數(shù)湊個(gè)整,這就是不添加九行而是十行的原因。)
? 每次手工干這種苦活,我都會希望自己能用編程一鍵完成,然后陷入糾結(jié)“編程會不會更快工作”之中……
? 完成之后,我刪掉了沒有意義的前十行文本,雖然這已經(jīng)夠了,但我還是又刪掉了它們在譜面里對應(yīng)的時(shí)間軸(其實(shí)并不能節(jié)省多少空間)。
? 每行文本開頭格式都是固定的,所以我把這個(gè)格式文本后面加上數(shù)字前綴并替換全部,就能達(dá)到編號被進(jìn)一位的效果,如圖。

? 這樣,一切就都好了。
? 那么——以后的M639新曲也會同時(shí)支持三個(gè)版本嗎?
? 答案是不會,因?yàn)槲矣X得有點(diǎn)累了……
? 希望以后的人工智能聰明到我讓他開發(fā)一個(gè)小軟件他就能立馬做好的地步,機(jī)械性的勞動什么時(shí)候才能被更多地取代?
? 還是說,喊話的時(shí)間已經(jīng)夠我自己人工完成了?我想那樣的情況會比較少額。
??
??
??
??
??
??