![]()
什么是碰撞體積
在DOTA2世界中,凡是可以交互的對象都存在一個范圍,這個范圍被稱為碰撞體積。
一個典型的碰撞體積應用是卡兵。
在游戲文件中,碰撞體積沒有明確的數值,而是分為幾種(括號內為具體數值):
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)
不同單位的碰撞體積如下圖所示。
![]()
![]()
![]()
![]()
順便一提,狼人終極技能----變身的技能說明是錯誤的。變狼后碰撞體積沒有發生變化,仍然是8。
測試模式下,在控制臺中輸入dota_unit_show_collision_radius 1 可以將單位的碰撞體積以黃色表示出來,如圖。
![]()
需要特別注意的是,碰撞體積的大小與模型肥瘦、選中單位后的光圈大小沒有任何關系。
![]()
如圖所示,狼人的選擇光圈與其他人是相同的,但其碰撞體積顯然小于其他單位
碰撞體積的應用
那么碰撞體積與天怒A杖大招有什么關系呢?
前面說到,碰撞體積是用于技能交互的。對于大部分AOE技能來說,他們的交互機制是:
如果技能的作用面積與碰撞體積有交集(重疊的地方),則造成傷害。
我們知道,天怒A杖大是不會對一個已經收到大招影響的單位再次放大的,那么這個判定也是靠碰撞體積是否重疊來判定的嗎?
事實證明,不是。事實上,這個判定采用的是坐標判定:如果目標單位的坐標在一個神秘之耀的作用范圍外,那么系統就有可能選擇這個目標,對其坐標位置施放額外的一次大招。
簡單總結一下:
1.受傷與否是碰撞體積判定,面積重疊就受傷;
2.是否施放二次大招是坐標判定。
根據這兩點,不難找到其中的“漏洞”:
如果我放大的位置距離敵方英雄的距離大于神秘之耀的作用范圍,但離得又不是太遠,大招的范圍和敵方英雄的碰撞體積又有重疊,不就可以讓他受到2次傷害了嗎?!
采用上述方式對單一敵方英雄施放A杖大招,可以看到確實造成了2次傷害
作為對比,圖中大招施放的位置稍微靠近了敵方英雄一點,可以看到只造成了1次傷害
![]()
除此之外,一些可以制造地形的技能(如溝壑、冰片)也會用到碰撞體積的知識來解釋問題。
首先認識一下溝壑的碰撞體積。
如圖,可以看到溝壑實際上是由一塊一塊小的碰撞體積組成的,而不是由一個整體組成的。
![]()
飾品不會影響溝壑的組成
圖為瑪爾斯矛的碰撞體積。
![]()
圖為矛穿到英雄后矛和英雄的碰撞體積相互關系。
![]()
直觀的看到了溝壑的碰撞體積組成后,我們可以瞄準碰撞體積間的縫隙,向縫隙處扔矛。根據我的測試,只要站位角度合適且瞄準了位置,是可以做到100%穿過溝壑的。
![]()
瞄著縫扔矛
舉一反一,巨牙海民的冰片也是可以穿過去的,如圖。
需要注意的是,顯示碰撞體積的命令只能在開啟作弊時使用,因此匹配中無法使用。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.