淺談DOTA2中的碰撞體積

遊資網發表於2020-03-10
淺談DOTA2中的碰撞體積

原文由我發於微博 @DotA中文Wiki(https://dota.huijiwiki.com),歡迎關注。

注:本文內容對7.24b版本生效,不排除後續更新導致本文內容過時/失效的情況發生

什麼是碰撞體積

在DOTA2世界中,凡是可以互動的物件都存在一個範圍,這個範圍被稱為碰撞體積。

一個典型的碰撞體積應用是卡兵。

在遊戲檔案中,碰撞體積沒有明確的數值,而是分為幾種(括號內為具體數值[1]):

  • DOTA_HULL_SIZE_BUILDING (298)
  • DOTA_HULL_SIZE_TOWER (144)
  • DOTA_HULL_SIZE_BARRACKS (144)
  • DOTA_HULL_SIZE_FILLER (96)
  • DOTA_HULL_SIZE_HUGE (80)
  • DOTA_HULL_SIZE_HERO (24)
  • DOTA_HULL_SIZE_REGULAR (16)
  • DOTA_HULL_SIZE_SIEGE (16)
  • DOTA_HULL_SIZE_SMALL (8)
  • DOTA_HULL_SIZE_SMALLEST (2)


不同單位的碰撞體積如下圖所示。

淺談DOTA2中的碰撞體積

淺談DOTA2中的碰撞體積

淺談DOTA2中的碰撞體積

淺談DOTA2中的碰撞體積

順便一提,狼人終極技能----變身的技能說明是錯誤的。變狼後碰撞體積沒有發生變化,仍然是8。

測試模式下,在控制檯中輸入dota_unit_show_collision_radius 1 可以將單位的碰撞體積以黃色表示出來,如圖。

淺談DOTA2中的碰撞體積

需要特別注意的是,碰撞體積的大小與模型肥瘦、選中單位後的光圈大小沒有任何關係。

淺談DOTA2中的碰撞體積
如圖所示,狼人的選擇光圈與其他人是相同的,但其碰撞體積顯然小於其他單位

碰撞體積的應用

那麼碰撞體積與天怒A杖大招有什麼關係呢?

前面說到,碰撞體積是用於技能互動的。對於大部分AOE技能來說,他們的互動機制是:

如果技能的作用面積與碰撞體積有交集(重疊的地方),則造成傷害。

我們知道,天怒A杖大是不會對一個已經收到大招影響的單位再次放大的,那麼這個判定也是靠碰撞體積是否重疊來判定的嗎?

事實證明,不是。事實上,這個判定採用的是座標判定:如果目標單位的座標在一個神祕之耀的作用範圍外,那麼系統就有可能選擇這個目標,對其座標位置施放額外的一次大招。

簡單總結一下:

1.受傷與否是碰撞體積判定,面積重疊就受傷;

2.是否施放二次大招是座標判定。

根據這兩點,不難找到其中的“漏洞”:

如果我放大的位置距離敵方英雄的距離大於神祕之耀的作用範圍,但離得又不是太遠,大招的範圍和敵方英雄的碰撞體積又有重疊,不就可以讓他受到2次傷害了嗎?!

淺談DOTA2中的碰撞體積
採用上述方式對單一敵方英雄施放A杖大招,可以看到確實造成了2次傷害

淺談DOTA2中的碰撞體積
作為對比,圖中大招施放的位置稍微靠近了敵方英雄一點,可以看到只造成了1次傷害

淺談DOTA2中的碰撞體積

除此之外,一些可以製造地形的技能(如溝壑、冰片)也會用到碰撞體積的知識來解釋問題。

首先認識一下溝壑的碰撞體積。

如圖,可以看到溝壑實際上是由一塊一塊小的碰撞體積組成的,而不是由一個整體組成的。

淺談DOTA2中的碰撞體積
飾品不會影響溝壑的組成

圖為瑪爾斯矛的碰撞體積。

淺談DOTA2中的碰撞體積

圖為矛穿到英雄後矛和英雄的碰撞體積相互關係。

淺談DOTA2中的碰撞體積

直觀的看到了溝壑的碰撞體積組成後,我們可以瞄準碰撞體積間的縫隙,向縫隙處扔矛。根據我的測試,只要站位角度合適且瞄準了位置,是可以做到100%穿過溝壑的。

淺談DOTA2中的碰撞體積
瞄著縫扔矛

舉一反一,巨牙海民的冰片也是可以穿過去的,如圖。

淺談DOTA2中的碰撞體積

需要注意的是,顯示碰撞體積的命令只能在開啟作弊時使用,因此匹配中無法使用。

參考


^遊戲檔案中並沒有明確寫出碰撞體積的具體數值,括號內的數值為根據歷史經驗、英文版dota2 wiki、liquipedia wiki整理而來,可能會與實際情況存在一定出入 https://dota.huijiwiki.com/p/7583

作者:韓鬆
專欄地址:https://zhuanlan.zhihu.com/p/110771437

相關文章