您的位置 首頁 怪物彈珠

【心得】彈珠敵人模塊反射機制研究(圖多)

首先,所謂 「輪廓」 指的是敵人模塊的外形,
或說詳細點,是指敵人會造成碰撞判定的範圍。
輪廓的形狀是一個相當完整的圓形(不考慮弱點)。
那為甚麼會有亂反射呢?
這麼說好了,我們先來看「碰撞」的過程會發生什麼事:
首先,反射彈珠接觸到敵人輪廓時會發生碰撞判定,
然後內部機制(以下稱之為 反射機制)根據入射位置及入射角計算出反射角。
以上兩件事中,輪廓歸輪廓,反射機制歸反射機制。
一定程度上來說,反射並不由輪廓引起,而是反射機制。
而且,彈珠也沒有把反射機制用圓形設計。

說到這,「反射機制」是如何運作就是本篇要討論的主題。
而以下提到的理論是個人經測試及假設所得,
基本上很難以確認是否與彈珠實際的機制吻合。

1. 反射方式

反射基本上能分為三種:
水平反射、垂直反射以及切線反射。

水平/垂直反射為將碰撞點視為水平/垂直面計算反射角。
切線反射則是依圓形的輪廓於該點的切線視為平面計算反射角。


切線反射為現實中正常的球體碰撞反射角度計算方式。
然而但在彈珠中,許多的反射(非預期反射)是由切線反射造成的。


2. 反射方式判斷條件

上面講了三種反射方式,其會計算出三種不同的角度。
接下來就要探討反射機制是如何決定要用哪個角度來作為反射角。
我的研究方式為:利用導引線在角度連續的改變下,
觀察反射角是否發生不連續的變化(轉換反射方式),發生時就記錄下來,
並待數據足夠時加以推理。以下是推理出的條件:

(一) 水平/垂直反射角中,射入模塊的角度不列入考量

如果有些幾何概念的人,應該能知道水平及垂直面反射所算出來的方射角會相差180°(即:在同一條直在線,但指向相反的方向)。
而若此角度不與輪廓該點的切線角度平行,則必定會有一端指向模塊內部。
而該角度理所當然不能被採用。

(示例1:下圖中水平反射角(藍色箭頭)指向模塊內部)
(示例2:下圖中水平/垂直反射角與該點切線接近平行,在角度細微變化下可以觀察到兩種反射方式的切換,圖片經重疊處理)

但此判定有例外,即:角度指向模塊內部,但仍被機制選定。
我認為這是機制的漏洞,以下稱此現象為「缺陷角」。
出現缺陷角的狀況為:導引線指向敵人後就截止。此表示其反射後發生的下一次碰撞位置也幾乎在該點。
(示例1:缺陷角圖片)
(示例2:缺陷角實例影片,可觀察出第一下打在風扇上被判定出2 hits)
(示例3:缺陷角實例影片,可觀察出第一下打在鎖鏈怪上被判定出2 hits)
(二) 特定範圍內的入射角度,優先採用水平/垂直反射角。

在此所提的特定角度範圍,部分人稱之為「輪廓缺陷角」,
而一般的說法是:「在此角度下彈珠不易發生亂反彈」。

(示例:下2張圖中可發現在細微角度變化下,當角度進入垂直/水平優先範圍時,反射機制進行轉換)
(三) 排除前二個條件之水平/垂直反射角,若與切線反射角之夾角大於90°,則採用切線反射角。
最複雜的一點(但是是我最早假設的),此假設的主要原因為:
當反射角發生不連續變化(轉換反射方式)時,
常常會發現這兩個角度間的夾角相當接近於90°,
故猜測90°為水平/垂直反射角與切線反射角轉換的條件。
而此條件優先度低於第(二)點。

(示例1:下圖中垂直反射角(紅色)指向模塊內部,先排除。其入射角(綠色)不在特定優先範圍內,但水平反射角(藍色)切線反射角(黃色)之夾角小於90°,故采水平反射角(藍色)。)

(示例2:下圖中垂直反射角(紅色)指向模塊內部,先排除。其入射角(綠色)不在特定優先範圍內,並水平反射角(藍色)切線反射角(黃色)之夾角大於90°,故采切線反射角(黃色))


(示例3:在細微角度變化下發生反射方式轉換,而其夾角非常接近於90°)
3. 實例

以下提供一實例,對一段連續變化的角度及其反射角進行分析。

區段一:其入射角於垂直反射優先範圍,故采垂直反射角。

區段二:入射角超出垂直反射優先範圍,水平反射角指向模塊內部,垂直反射角與切線反射角之夾角大於90°,故采切線反射角。

區段三:入射角不處優先範圍,水平反射角指向模塊內部,垂直反射角與切線反射角之夾角小於90°,故采垂直反射角。

區段四:發生缺陷角。

區段五:入射角不處優先範圍,垂直反射角指向模塊內部,水平反射角與切線反射角之夾角大於90°,故采切線反射角。

區段六:其入射角於水平反射優先範圍,故采水平反射角。

實例影片:
4.補充
最前面所講的 「輪廓的形狀是一個相當完整的圓形」 可能會有人懷疑,
所以我在那有補充 「不考慮弱點」,而我選剪刀來測試也是因為這關大多敵人沒弱點,
因為弱點有他自己的模塊,也是相當完整的小圓形,
且弱點模塊不論其當時是否顯現,都會存在在它的位置。
而這麼個小圓形崁在大圓形上,就會使其表面變得凹凸不平滑,
它們增加了一些可以卡點的區段,但也增加了許多容易造成亂反彈(切線反射)的區域。
5.結論
這些都是我的假設,然後在經過許多測試覺得大致符合後才發布的。
而我也知道則篇文章絕對不是反射機制的全貌,但我暫時也不想去試了。
(像是就算射出角度於優先角度(輪廓缺陷角)內還是會發生亂反彈,這點本文無法解釋,
而我用導引線也還沒找到過這樣的情況)
如果有人發現不符合實際的地方,或想出更完整的機制,還請不吝指教。
說這麼多,這有助於遊戲技巧嗎? 我覺得:沒有
本文來自網路,不代表3樓貓立場,轉載請註明出處:https://www.3loumao.org/16280.html?variant=zh-tw
返回頂部