[討論] 攔路豬鉤子的命中計算機制

看板OverWatch作者 (han)時間9年前 (2016/10/07 11:08), 9年前編輯推噓23(24143)
留言68則, 23人參與, 最新討論串1/1
原文:https://goo.gl/XShMQx 此篇報導講解攔路豬的勾子命中計算的背後機制 一直以來相信大家都對於攔路豬的勾子命中機制頗有怨言 像是躲在豬視線外牆角落、或是從勾子上方跳/瞬移過去(源氏、閃光)等 都會被奇妙的異次元勾鉤中 原本網路上的猜測是可能是因為網路延遲或是hitscan*的運算命中機制而導致 (註:勾子像條瞬間發出的光線,按下去在直線路徑上的角色就算被鉤) 然而Blizzard公開回應攔路豬勾子判斷機制如下: 基本上就是在勾子尖端放顆命中判斷的球體 直線投射出去,只要在球體內範圍即是命中範圍, 所以才會有像是原文影片裡面那種隔牆勾人或是跳過勾子上方也會被鉤的狀況發生 所以以後對面有攔路豬的時候、記得躲牆角要離得遠一點 不然即使不在勾子鉤中的直線範圍內還是有可能會被命中的 所以根本就不是勾子,是一顆棘鐵球啊... 但這篇沒有解釋為什麼有時候源氏開反彈還會被勾的情況 可能猜想鉤子的圓球範圍碰到源氏可反彈範圍的外側觸發鉤中的判斷 但源氏的正面反彈範圍真的不是想像中的大 reddit測試反彈範圍文與影片:https://goo.gl/5bYPIZ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.110.57.143 ※ 文章網址: https://www.ptt.cc/bbs/OverWatch/M.1475809681.A.DBE.html

10/07 11:19, , 1F
因為判定命中範圍的球體沒有經過場景牆壁的cliping運
10/07 11:19, 1F

10/07 11:19, , 2F
10/07 11:19, 2F

10/07 11:19, , 3F
這寫在哪裡啊 沒看到@@
10/07 11:19, 3F
那句原本是我個人看文章後的推導,回頭看了一下好像對翻譯文章有點失準 我把它刪掉好了

10/07 11:21, , 4F
我遇過看著鉤子從我旁邊穿過 想說躲過了 下一秒突然被勾
10/07 11:21, 4F

10/07 11:21, , 5F
中 鉤子的動畫像是突然瞬移一樣 不知道是不是這原因
10/07 11:21, 5F
因為在球體範圍中所以他會先讓鉤中的角色瞬移到勾子判定鉤中的位置 再拉回來,所以才會有瞬移狀況發生吧

10/07 11:23, , 6F
鉤子從旁邊穿過 —> 命中動畫(瞬移到正中央)
10/07 11:23, 6F

10/07 11:27, , 7F
事實上就是現在的勾太唬爛了 所以大家被勾到很賭爛
10/07 11:27, 7F

10/07 11:28, , 8F
拿訓練機器人測過鉤子命中範圍大概是小圓形準心大小
10/07 11:28, 8F

10/07 11:30, , 9F
這意思是即使躲牆後但如果在小圓形範圍內也會被勾?
10/07 11:30, 9F
沒錯

10/07 11:35, , 10F
應該是吧,躲牆後稍微在鐵鉤球範圍就算命中拉過去
10/07 11:35, 10F

10/07 11:35, , 11F
鉤子不是瞬間到。
10/07 11:35, 11F
那個註釋是解釋大家之前以為是hitscan的註解 blizzard解釋的就像是一顆看不見的磁鐵鐵球丟出去,途中經過的範圍有角色就會被鉤

10/07 11:38, , 12F
那這樣不是勾的問題吧 其他東西也都能隔牆射到阿
10/07 11:38, 12F

10/07 11:38, , 13F
單純hitbox大而已吧
10/07 11:38, 13F
hitbox是指每個角色模組身上的攻擊範圍, 勾子的命中範圍不會改變角色模組的hitbox大小 hitbox大 = 因為要判別鉤中/不鉤中所以每個角色都有專門給鉤子判斷的大hitbox 他的命中機制不是這樣設計的

10/07 11:38, , 14F
原來是陳可漢
10/07 11:38, 14F
剛好都是犯罪者XD

10/07 11:56, , 15F
所以這篇就會是 因為判定命中是球體 導致會被隔牆勾
10/07 11:56, 15F

10/07 11:56, , 16F
感覺不太合理吧
10/07 11:56, 16F

10/07 11:57, , 17F
*就會 -> 結論
10/07 11:57, 17F
畫張圖解釋好了 http://imgur.com/a/q6J28 (比例隨便畫的不要當真) 橘色半透明範圍就是在勾子尖端的命中範圍,只要在範圍內的角色就會被判定為被鉤 當豬對牆角射出勾子勾子抵達牆角時時,站在牆背面的角色沒在鉤子的直線上 但是因為勾子的命中判斷是以尖端為圓心的一個範圍, 所以即使站在牆角後的角色也會被鉤, 所以這就回到我原本推測沒有對地圖做的cliping的那句話, 如果要在牆角後面的角色不被鉤中,就要對牆壁的延伸面做出cliping(黑色框) 這樣命中圓球就不會超出牆角範圍

10/07 12:00, , 18F
就跟萊茵隨緣撞一樣吧 明明閃開還是被吸過去撞= =
10/07 12:00, 18F

10/07 12:00, , 19F
被吸過去是lag
10/07 12:00, 19F
我個人是懷疑萊茵撞也是這種機制... 基本上出現的狀況蠻像的(被判定命中角色就會瞬移到角色面前)

10/07 12:23, , 20F
那如果你的推論是對的 我直接朝牆壁射 也可以勾到人
10/07 12:23, 20F

10/07 12:24, , 21F
10/07 12:24, 21F
可能要實驗一下,但個人認為不會 因為兩者不一樣 直接朝牆壁射勾子中牆的時候命中範圍球體和牆壁界線有直接相交 所以應該會做cliping (不做就太蠢了) 球體與直線的cliping計算方式蠻簡單的 超過直線以上(例如x=0,y=0以上的判定不考慮) 但勾牆角的時候因為勾子沒有跟牆壁範圍有直接的接觸命中,不會對牆壁做cliping 所以現在的現況就是沒對牆壁延伸線做cliping才會出現打中牆角後的角色的狀況 ^ : <-命中球體沒有跟牆壁直角的"延伸線"做cliping 角色: --------------- wall | c --------------- / / /

10/07 12:37, , 22F
簡單的說就是丟鉤子的時候會瞬間出現一支棒棒糖,有碰到棒
10/07 12:37, 22F

10/07 12:38, , 23F
棒糖的都算被勾到,你往牆角丟一樣可以勾牆後的
10/07 12:38, 23F

10/07 12:41, , 24F
嘿啊 但是如果棒棒糖的頭可以穿牆 那應該不限牆角 你
10/07 12:41, 24F

10/07 12:41, , 25F
在牆後哪裡都可以勾過來阿
10/07 12:41, 25F

10/07 12:43, , 26F
不能穿牆啊 誰跟你說可以
10/07 12:43, 26F

10/07 12:43, , 27F
圖都那麼清楚了
10/07 12:43, 27F

10/07 12:45, , 28F
那下次花村a點跳洽洽我不就一直對牆邊盲勾用力勾機會多
10/07 12:45, 28F

10/07 12:52, , 29F
我自己覺得的解釋是
10/07 12:52, 29F

10/07 12:52, , 30F
1 所有投射物都是射球出來
10/07 12:52, 30F

10/07 12:52, , 31F
2 豬的勾子是投射物
10/07 12:52, 31F

10/07 12:52, , 32F
3 角色hitbox本來就會超出牆角 (事實)
10/07 12:52, 32F

10/07 12:52, , 33F
4 勾子的球射到hitbox 判定拉到 把別人拖過來
10/07 12:52, 33F

10/07 12:52, , 34F
就跟半藏可以射到牆後面的意思一樣
10/07 12:52, 34F

10/07 12:57, , 35F
所以其實鉤子不是立即判定 而是看鉤子頭有沒有碰到
10/07 12:57, 35F

10/07 12:57, , 36F
咯?
10/07 12:57, 36F

10/07 13:01, , 37F
我是覺得如果照原PO說的加個判定就解決的話
10/07 13:01, 37F

10/07 13:01, , 38F
BZ應該老早就修好了
10/07 13:01, 38F
你的理解跟我講的一樣啊XD (除了hitbox超出牆角這部分) 我講解cliping的情況其實很簡化,遊戲裡面有許多不規則的物體/障礙物 要即時運算球體穿過環境障礙物邊界的延長線再去做判斷其實頗難

10/07 13:07, , 39F
勾的球體本身應該有做個檢查是球體圓心和目標是否直接可視,
10/07 13:07, 39F

10/07 13:07, , 40F
是的話就視為勾到。但沒有計算豬本身和目標物是否直接可視
10/07 13:07, 40F

10/07 13:09, , 41F
所以會形成「勾看得到你,但豬看不到你」而仍然被勾的情況
10/07 13:09, 41F
我也覺得這樣比較好,比起對環境做cliping 對可視範圍做cliping比較合理

10/07 13:29, , 42F
其實沒遇過刀舉起來還被勾走的情況欸
10/07 13:29, 42F
我朋友有遇到幾次,shadder實況也有遇到幾次過

10/07 13:57, , 43F
其實不是鉤子 是能暈人+黏人的鐵球
10/07 13:57, 43F
※ 編輯: han960691 (27.110.57.143), 10/07/2016 14:15:52 ※ 編輯: han960691 (27.110.57.143), 10/07/2016 14:17:04

10/07 14:20, , 44F
原來招架的範圍大得這麼誇張難怪彈回來這麼猛 一堆打偏都彈
10/07 14:20, 44F

10/07 14:21, , 45F
停玩OW一段時間後回來覺得超過極限距離結果還是被勾中
10/07 14:21, 45F

10/07 14:22, , 46F
但訓練場測試一樣還是20米多一點(大概只有我QQ)
10/07 14:22, 46F

10/07 14:31, , 47F
最近常碰到勾到閃光被回朔吃掉 這是什麼情況
10/07 14:31, 47F

10/07 14:31, , 48F
如果是PING差異 12PING應該不會有這種事情發生
10/07 14:31, 48F

10/07 14:33, , 49F
那個是tick問題 不過不是改60了嗎
10/07 14:33, 49F

10/07 14:40, , 50F
關於這個喔 即使tick調高了 對面的網路也會改變世界的真理
10/07 14:40, 50F

10/07 14:41, , 51F
我上次碰到一隻豬(在NG半夜我猜是外國玩家)小美冰箱被拉破打
10/07 14:41, 51F

10/07 14:41, , 52F
還不是一次是三次 我提早半秒冰箱他鉤子過來就破了被拉過去
10/07 14:41, 52F

10/07 14:45, , 53F
不信邪的下場就是整場被拉著打 只差機制改過否則牆檔都會被|
10/07 14:45, 53F

10/07 15:26, , 54F
server狀態運算tick一直都是60,別再說啥改60了.....
10/07 15:26, 54F

10/07 15:27, , 55F
所謂的20改60是server送更新給client的速率,server運算之
10/07 15:27, 55F

10/07 15:27, , 56F
前就有人驗證是60
10/07 15:27, 56F

10/07 15:33, , 57F
之前沒這種問題 某次更新後常常勾到被回朔 被影襲
10/07 15:33, 57F

10/07 15:36, , 58F
現在感覺三個法拉杯距離拉大了 要先預判多一點
10/07 15:36, 58F

10/07 15:36, , 59F
不然就是要等對手用完招才比較穩
10/07 15:36, 59F

10/07 16:26, , 60F
所以勾子其實是AOE啊...
10/07 16:26, 60F

10/07 16:43, , 61F
範圍不算大算不上AOE吧...
10/07 16:43, 61F

10/07 19:10, , 62F
所有東西都是aoe 數學上的點並不存在,即使要用數學描
10/07 19:10, 62F

10/07 19:10, , 63F
述真的點,也是用dxdydz去做
10/07 19:10, 63F

10/07 19:18, , 64F
you are right
10/07 19:18, 64F

10/07 22:43, , 65F
還有死神無敵小美冰箱進cd還被勾的情況也沒解釋
10/07 22:43, 65F

10/07 22:48, , 66F
但很少耶 我有時故意給別的豬勾都擋得住
10/07 22:48, 66F

10/08 09:50, , 67F
結果今天打rank碰到冰箱被....好像法拉打爆 總之不是技能
10/08 09:50, 67F

10/08 09:50, , 68F
但是深夜對方像外國人 我覺得這是tick的鍋啦 死BUG
10/08 09:50, 68F
文章代碼(AID): #1Nzn6Hs- (OverWatch)