【賽馬娘】變道相關(guān)(超車目標(biāo)選擇/超車變道判定)
[關(guān)于跑道位置]
在比賽中,會(huì)以[與內(nèi)場(chǎng)柵欄的距離]來劃分馬娘選取的跑道,計(jì)算時(shí)使用的單位是[道寬],目前推測(cè)[1道寬=18m]
而在涉及到馬娘之間位置的時(shí)候,則會(huì)用[馬寬]來作為計(jì)量單位,[1馬寬=1/18道寬=1m]
(*レーン距離=跑道位置 コース幅=道寬 ウマ幅=馬寬 征集更好的譯名)
跑道位置的最小值是0,最大值則會(huì)根據(jù)場(chǎng)地的不同而有所不同
最窄的跑道是札幌、函館、新潟的沙地跑道(僅1.1道寬),最寬的則是東京的草地跑道(1.5道寬)
極少數(shù)比賽里會(huì)出現(xiàn)最大值變動(dòng)的情況,但是由于太稀少了目前推測(cè)是廢棄設(shè)定
起跑時(shí)的跑道位置會(huì)根據(jù)馬的號(hào)碼來決定,公式如下
起步跑道位置 = 號(hào)碼 x 1馬寬
該計(jì)算有一個(gè)特例,大井競(jìng)馬場(chǎng)的8號(hào)與9號(hào)之間的寬度會(huì)比其他場(chǎng)地多0.6馬寬,這意味著9號(hào)往外的馬娘都會(huì)在更遠(yuǎn)的地方起跑
[關(guān)于阻擋判定]
馬娘之間的位置判定與3個(gè)因素有關(guān),分別是前后距離/橫向距離/速度差
如果前后距離大于0,則意味著對(duì)方在前方;小于0則對(duì)方在后方
如果橫向距離大于0,則意味著對(duì)方在外側(cè);小于0則對(duì)方在內(nèi)側(cè)
如果速度差大于0,則意味著對(duì)方比你慢;小于0則對(duì)方比你快
(速度差與前兩個(gè)有點(diǎn)區(qū)別 務(wù)必注意)
<前方阻擋判定>
判定條件為 0 < 前后距離 < 2m 且 橫向距離 <= (1.0 - 0.6 × 前后距離 / 2m) × 0.75馬寬
橫向的判定會(huì)根據(jù)與該馬娘前后距離的不同而發(fā)生變化(離得越近,橫向阻擋判定越大)
而如果前方有很多馬都能達(dá)成該判定,則會(huì)將前后距離最短的馬娘視作阻擋對(duì)象
<橫向阻擋判定>
判定條件為 前后距離 < 1.05m 且 橫向距離 < 2馬寬
如果技能發(fā)動(dòng)條件里有[互相競(jìng)爭(zhēng)]字眼的話,就是在指代橫向阻擋(例:重炮大招 blocked_side_continuetime>=2)
如果技能發(fā)動(dòng)條件里有[被包圍]字眼的話,就是在指代前方+橫向阻擋(例:烏拉拉S卡的吹風(fēng) blocked_all_continuetime>=1)
需要注意的是,這兩個(gè)橫向阻擋不一定只有外側(cè),內(nèi)側(cè)阻擋也可以觸發(fā)(內(nèi)側(cè)柵欄不會(huì)觸發(fā)橫向阻擋)
最后是比較特殊的[附近有馬娘]的判定條件,該條件為
前后距離 < 1.5m 且 橫向距離 < 1.5馬寬
[視野的定義]
馬娘的視野受前后距離及視野距離影響,具體條件如下
前后方視野= 前后距離 <= 視野距離
橫向視野= 橫向距離 <= (11.5馬寬 * 前后距離/視野距離 + 2馬寬)/2
其中視野距離默認(rèn)是20m,僅受視野類技能影響,比如皮皮船覺醒3的'視界良好!異常なし!'的效果就是增加視野距離10m
但是,提升視野距離并不會(huì)幫助馬娘視野變開闊,只會(huì)看得更遠(yuǎn)
值得注意的是,部分紅技(如優(yōu)秀素質(zhì)覺醒等級(jí)5的'八方にらみ' 其下位'鋭い眼光' 以及'まなざし')只會(huì)影響視野里能看見的馬娘
[橫向(變道)速度]
關(guān)于馬娘的橫向速度(即變道速度),有三個(gè)不同的定義,分別是目標(biāo)橫向速度/當(dāng)前橫向速度/實(shí)際橫向速度
<目標(biāo)橫向速度>
目標(biāo)橫向速度 = 0.02 × (0.3 + 0.001 × 力量) ×?起步補(bǔ)正?×?名次補(bǔ)正?[道寬/s]
?[起步補(bǔ)正]
生效比賽區(qū)間為序盤~中盤 生效賽道區(qū)間為起點(diǎn)至最終彎道前,具體公式如下
起步補(bǔ)正 = 1.0 + 0.05 × (當(dāng)前所處的跑道位置 / 最大跑道位置)
?[名次補(bǔ)正]
生效比賽區(qū)間為終盤~最終沖刺,具體公式如下
名次補(bǔ)正 = 1.0 + 0.01 × 名次
<當(dāng)前橫向速度>
馬娘會(huì)一直以目標(biāo)橫向速度為準(zhǔn)進(jìn)行加速/減速,其中加速度/減速度均為定值
加速度 = 0.02 × 1.5 [道寬/s^2]
到這一步為止計(jì)算的速度都是絕對(duì)值,與方向無關(guān)
<實(shí)際橫向速度>
實(shí)際橫向速度 = clamp(當(dāng)前橫向速度 + 技能補(bǔ)正, 0, 0.6) × 內(nèi)側(cè)移動(dòng)補(bǔ)正 [道寬/s]
(clamp的意思就是當(dāng)前橫向速度加上技能補(bǔ)正之后最大是0.6 最小是0)
?[內(nèi)側(cè)移動(dòng)補(bǔ)正]
該補(bǔ)正只有在馬娘往內(nèi)側(cè)移動(dòng)時(shí)才會(huì)觸發(fā),具體計(jì)算如下:
內(nèi)側(cè)移動(dòng)補(bǔ)正 = -(1.0 + 當(dāng)前所處跑道位置)
如果計(jì)算出來的結(jié)果是負(fù)數(shù),那么馬娘就會(huì)往內(nèi)側(cè)移動(dòng)
由于前兩個(gè)橫向速度的計(jì)算結(jié)果都是絕對(duì)值,所以即使變方向也不會(huì)影響當(dāng)前橫向速度
<變道結(jié)束后>
變道結(jié)束后,系統(tǒng)會(huì)根據(jù)橫向速度及變道時(shí)間來計(jì)算出移動(dòng)距離,并與變道前的寬度相加得出新的跑道位置
移動(dòng)距離 = 實(shí)際橫向速度 × 變道時(shí)間 [道寬]
需要注意的是,如果移動(dòng)的方向被阻擋了的話,馬娘就不會(huì)進(jìn)行變道
馬娘一旦成功變道到目標(biāo)跑道上,當(dāng)前橫向速度會(huì)被馬上重置成0
[變道(通常模式)]
馬娘在進(jìn)行目標(biāo)跑道選擇的時(shí)候,會(huì)有幾種不同的戰(zhàn)略,在目前的比賽系統(tǒng)中,只有[通常模式]以及[超車模式]
(這里的通常模式和超車模式與位置意識(shí)里面的模式是兩個(gè)東西)
值得注意的是,直線比賽里馬娘不會(huì)進(jìn)行變道
<目標(biāo)跑道選擇(通常模式)>
如果馬娘[沒有超車目標(biāo)]或者[在比賽的序/中盤時(shí),處于第一個(gè)彎道前200m的區(qū)間之內(nèi)]則會(huì)進(jìn)入通常模式
通常模式下的目標(biāo)選擇邏輯如下
?通用選擇邏輯
如果HP為0時(shí),則目標(biāo)跑道為當(dāng)前所處跑道
如果馬娘的位置意識(shí)處于[放緩節(jié)奏],則目標(biāo)跑道會(huì)被設(shè)定為0.18[道寬]
?序盤及中盤
如果內(nèi)側(cè)沒有被阻擋,則目標(biāo)跑道會(huì)被設(shè)定成 當(dāng)前跑道 - 0.05 [道寬]
如果在中盤且馬娘的內(nèi)側(cè)被阻擋,并且與該馬娘的橫向距離小于1.75[馬寬]的話,
則目標(biāo)跑道會(huì)在[當(dāng)前跑道 + 0.05]和[阻擋馬娘所處跑道 + 2馬寬]之間取小值
?最終直線
這里涉及到一個(gè)最終直線跑道的計(jì)算,該計(jì)算與[馬娘進(jìn)入最終直線時(shí)所處跑道]有關(guān),具體公式如下:
最終直線跑道 = clamp([馬娘進(jìn)入最終直線時(shí)所處跑道位置] / 0.1, 0, 1) × 0.5 + random(0.1)
如果該計(jì)算出來的值被判定為外側(cè),且外側(cè)沒有馬娘阻擋,
則目標(biāo)跑道會(huì)在[當(dāng)前跑道 + 0.05]以及[最終直線跑道]之間取小值
?若以上條件均不滿足,則目標(biāo)跑道會(huì)被設(shè)定成當(dāng)前跑道
需要注意的是,解包里有技能會(huì)影響目標(biāo)跑道選擇的相關(guān)信息,但是目前并沒有相對(duì)應(yīng)的技能
[超車目標(biāo)(OvertakeTarget)選擇]
如果馬娘視野里有另外一只馬娘滿足以下條件,則該馬娘會(huì)被選為超車目標(biāo),具體條件如下:
1. 1m <= 前后距離 <= 20m
2. 當(dāng)前速度差 >= 0 (即對(duì)方跑得比你慢)
3. 前後距離 / 現(xiàn)在速度差 <= 15秒 (也就是按這個(gè)速度差去跑,15秒內(nèi)可以追上)
4. 自己的目標(biāo)速度 > 對(duì)方的目標(biāo)速度 或者 對(duì)方被其他馬擋住了的時(shí)候,自己的目標(biāo)速度 > 對(duì)方的當(dāng)前速度
X. 與上述條件無關(guān),如果馬娘的前方被阻擋那么阻擋對(duì)象會(huì)優(yōu)先成為超車目標(biāo)
要注意的是,被標(biāo)記成超車目標(biāo)的馬娘即使跑出了馬娘的視野,也會(huì)繼續(xù)被當(dāng)成超車目標(biāo)
(與該判定有關(guān)的固有:白翼麥昆等)
[變道(超車模式)]
如果馬娘標(biāo)記了超車目標(biāo),則會(huì)馬上進(jìn)入超車模式,而在失去超車目標(biāo)后的1.5秒會(huì)回到通常模式
但需要注意的是,在序/中盤時(shí),如果馬娘處于最初彎道前200m內(nèi)則不會(huì)進(jìn)入超車模式
<目標(biāo)跑道選擇(超車模式-有超車目標(biāo)時(shí))>
首先馬娘會(huì)找到被標(biāo)記成超車目標(biāo)的馬娘,然后會(huì)在該馬娘所處的馬群中,尋找該馬娘內(nèi)/外側(cè)的其他馬娘
簡(jiǎn)單來說就是,會(huì)以超車目標(biāo)為基準(zhǔn),按以下條件尋找其他內(nèi)/外側(cè)馬娘:
0 < 橫向距離 < 2馬寬 且 0 <= 前后距離 <= 3m
如果能以該條件在超車目標(biāo)內(nèi)/外側(cè)找到馬娘的話,則會(huì)以新找到的馬娘為目標(biāo)用相同的條件接著尋找下一名馬娘,一直循環(huán)直到找到最內(nèi)/外側(cè)的馬娘為止
(該尋找過程視野不起作用)
最后以最內(nèi)/外側(cè)的馬娘所處的跑道位置作為基準(zhǔn)來決定目標(biāo)跑道,具體如下:
目標(biāo)跑道(內(nèi)) = 最內(nèi)側(cè)馬娘跑道位置 - 1馬寬
目標(biāo)跑道(外) = 最外側(cè)馬娘跑道位置 - 1馬寬
(要注意的是,計(jì)算出來的值不可以小于最小跑道位置/大于最大跑道位置)
計(jì)算完成后,如果馬娘視野內(nèi)沒有滿足以下條件的X馬娘,則會(huì)將上述計(jì)算結(jié)果加入目標(biāo)跑道候補(bǔ)中:
自身跑過的距離 <= X馬娘跑過的距離 <= 最內(nèi)/外側(cè)馬娘跑過的距離 + 0.5m (原文:ここの距離はスタートからの距離のこと)
目標(biāo)跑道 - 0.8馬寬 <= X馬娘的跑道位置 <= 目標(biāo)跑道 + 0.8馬寬
<目標(biāo)跑道選擇(超車模式-無關(guān)超車目標(biāo)時(shí))>
如果馬娘處于序/中盤,且內(nèi)側(cè)沒有其他馬娘,并且當(dāng)前跑道位置 < 1馬寬
則目標(biāo)跑道 = 當(dāng)前跑道位置 - 1馬寬
除此以外,目標(biāo)跑道 = 當(dāng)前跑道
計(jì)算完成后,如果馬娘視野內(nèi)沒有滿足以下條件的X馬娘,則會(huì)將上述計(jì)算結(jié)果加入目標(biāo)跑道候補(bǔ)中:
自身跑過的距離 <= X馬娘跑過的距離 <= 除自己以外名次最后的馬娘跑過的距離 + 3m
目標(biāo)跑道 - 0.8馬寬 <= X馬娘的跑道位置 <= 目標(biāo)跑道 + 0.8馬寬
<目標(biāo)跑道候補(bǔ)的具體判定>
?間距(Lane Space)
此處引入一個(gè)新的概念:間距(Lane Space)
所謂間距,是指與[移動(dòng)側(cè)中滿足橫向格擋中縱向距離條件的馬娘]的橫向距離的絕對(duì)值?(吐槽:距離不就是絕對(duì)值ma)
如果沒有滿足該條件的馬娘,則以[當(dāng)前賽道的最大/小跑道距離與當(dāng)前跑道距離之間]的絕對(duì)值作為間距
(往外側(cè)移動(dòng)就取[最大值-當(dāng)前] 往內(nèi)側(cè)移動(dòng)就取[最小值-當(dāng)前])
?具體判定過程
1.對(duì)于一個(gè)目標(biāo)跑道候補(bǔ),如果移動(dòng)側(cè)被阻擋,或者間距小于所需的移動(dòng)距離,則該候補(bǔ)會(huì)被廢棄
2.剩余的候補(bǔ)會(huì)以某種標(biāo)準(zhǔn)算出得分,以得分最低的(也就是最近的)作為目標(biāo)跑道,具體算分標(biāo)準(zhǔn)如下
得分 = (目標(biāo)跑道候補(bǔ) - 當(dāng)前跑道位置) *?比賽區(qū)間系數(shù)?*?技能系數(shù)
比賽區(qū)間系數(shù):與所處比賽區(qū)間及移動(dòng)方向有關(guān),具體為
序盤: 往內(nèi) = 1.0 往外 = 100.0
中盤: 往內(nèi) = 1.0 往外 = 1.0
終盤、最終沖刺:往內(nèi) = 1.0 往外 = 1.15
技能系數(shù):雖然公式中有提到技能系數(shù)(1.5)這個(gè)東西,但是因?yàn)槟壳皼]有這種技能所以不會(huì)參與計(jì)算
3.若在條件1之后已經(jīng)沒有剩余的候補(bǔ),則以當(dāng)前跑道為目標(biāo)跑道
X.如果采用的候補(bǔ)跑道比通常模式下算出的最終直線跑道還要靠?jī)?nèi)側(cè),并且最終直線跑道那一側(cè)沒有被阻擋,以及間距比移動(dòng)距離要大的話,會(huì)優(yōu)先采用最終直線跑道作為目標(biāo)跑道
其余情況則采用選好的候補(bǔ)作為目標(biāo)跑道
轉(zhuǎn)載自:https://ngabbs.com/read.php?tid=26267254&_fu=60668756%2C1&rand=815