【開山之文】關(guān)于phigros優(yōu)良譜面的分析和總結(jié)

2023-07-02 23:08:05       來源:嗶哩嗶哩

玩過phigros這款音游的玩家或多或少會對一些譜面印象深刻,覺得它們“手感好”或“順手”,即所謂的“優(yōu)良譜面”(簡稱良譜),本文將簡單探究良譜的原理以及特征。

前置定義,公設(shè)


(相關(guān)資料圖)

所謂譜面是什么?

讓我們先定義一些基本的東西。

在phigros中,可擊打音符(鍵Key)是一些定長的線段(為了方便,姑且這么定義),達到一定的條件后轉(zhuǎn)化為被判定的狀態(tài),有一些種類(包括藍(lán)鍵Tap、黃鍵Drag、紅鍵Flick、長條Hold)。

我們定義譜面(Spectrum)為該譜中所有鍵的集合,記為集合S。

判定線(Judgment Line)為一些直線,目的是讓玩家更直觀地看到判定區(qū)間(即實際擊打時間與期望擊打時間之差的分段容錯范圍)。一般的,判定線上會綁定一些鍵,這些鍵始終與判定線平行。

下落矢量(Motion Vector)是描述鍵在某一時刻運動的狀態(tài),包括位置、速度、下落方向。其起點為鍵的中點,方向始終與鍵垂直并朝向被綁定的判定線(解釋:因為鍵是與判定線綁定的,所以非垂直的鍵運動來自判定線的運動,畢竟判定線可以隱藏)。

鍵的位置在實際演出中由許多變量決定,而在解析型總譜面(Analytical Total Spectrum)(即舍棄全部特效,將所有判定線鍵集合并成一個,形成標(biāo)準(zhǔn)的下落型譜面)中,譜面被置于一個直角坐標(biāo)系的第一象限中,鍵的位置由橫軸下落橫坐標(biāo)x和縱軸期望擊打時間kt決定(鍵簡化成一個點,用鍵A(x,kt)表示)。

譜面中可以分出許多子集,這些子集有一些具有相同的特點,我們把這些子集稱為一類基本定式(均指藍(lán)鍵或滿足定式手法的長條)

雙押(Double Key)描述了在直線kt=h(h為常數(shù),后文懶得寫了)上的兩個鍵的集合,m個鍵稱為m押,稱為集合D。

交互(Sequential Keys)描述了一些Δkt相等的上升鍵序列(集合)(數(shù)量一般超過4),記為集合Se。特別的,如果這些鍵的x值都相等,就稱為縱連(Longitudinal?Sequential Keys)記為集合L。

疊鍵(Stacked Keys)描述了一些(一般是兩個)間隔時間較短、x變化較小的鍵的集合,記為集合St。(其實2~4個都可以叫這名)

公設(shè)部分。我們假設(shè)所有研究的譜面都是“準(zhǔn)確無誤”的:

“準(zhǔn)確”即譜面音押得很準(zhǔn),至少不會影響手感;

無誤”即譜面中不存在錯誤之處,即一定有某種常規(guī)手法可以AP。

一些變換

首先需要找到一些官方的良譜來總結(jié)規(guī)律。

(這里點名批評官方,md譜子寫個名會s啊?。。?!已經(jīng)找廢了)

(找譜詳見/video/BV1ZG4y1N7Sq/?spm_id_from=_right_bar_window_default_&vd_source=2195f014dbad1dc82771f38f613e907d)

找到以后,興奮地打開:

所以需要先做一個提取鍵信息的程序。

代碼如下:

不想看就不想看吧,寫論文需要,嚴(yán)謹(jǐn)一點。

以Chronomia(天文鐘)為例,提取如下:

不想看請省略(笑)

會發(fā)現(xiàn)每一行有五項,第一項是種類,第二項是kt,第三項是x,第四項是時間差,第五項是位移長度。

有人就問了:你怎么知道你提取的信息是對的?

為此我做了幾個驗證程序:

驗證kt(時間):

參數(shù)是這么算出來的:

天文鐘從開始到第一個音符約有,每拍秒數(shù)為60/227即約,鋪面上寫的第一個鍵時間為1408(不知道縮放了多少倍)。

列方程:1408/x*=

解得:x=約等于32

驗證,非常吻合

驗證x在代碼中,結(jié)果顯示中沒有考慮到時間差的不同,因而結(jié)果的行順序即鍵的先后逆序(為了還原出下落譜面所以是逆序)

因而對于一些時間差相同的鍵,其顯示結(jié)果將高度還原譜面:

蕪湖,提取出來了!

解析

接下來對交互、雙押和疊鍵三個方面進行解析。

雙押方面,將鋪面分為f段,找到雙押最多的時間段有x個以及算出每段時間雙押平均數(shù)m,求得雙押指數(shù)dk=(10*x+m)/(f*100)

交互方面,算得每個交互的最大單手位移、左右手平均位移以及左右手位移方差,通過乘法原理求得平均交互指數(shù)sk(太長了不寫了)

疊鍵方面,求得疊鍵總時長l,求得疊鍵指數(shù)st=l/100

(均詳見上文代碼)

最后得出障礙指數(shù)b=sk+dk+st

(100-2*b)/100記為該譜面集合的狹義良譜率(雙指)

如:天文鐘為%

良怒為%

321AT為%(不考慮多押也是雙指非常炸裂)

為什么叫狹義呢?因為并沒有考慮黃鍵、特效、流速、多押、指法等難以解析的因素。

不過也可以大致分析出譜面的好壞。

這有什么好處嗎?

也許,當(dāng)你覺得寫的譜子很爛(比如我)的時候,啟動一下狹義解析程序,翻一翻文本,找一找問題,再測一次,也許就成良譜了(

無論如何,這只是解析譜面的開始,我將會繼續(xù)努力,爭取寫出更準(zhǔn)確科學(xué)的解析程序!

(也希望有更多的人參與進來,畢竟我還有Practicer)

總結(jié)

THANK YOU!有問題隨時解答。

給個贊吧,肝了30個小時,真的很不容易(唯一一次求贊)

關(guān)鍵詞:
x 廣告
x 廣告

Copyright @  2015-2022 海外生活網(wǎng)版權(quán)所有  備案號: 滬ICP備2020036824號-21   聯(lián)系郵箱:562 66 29@qq.com