《Deadlock》Bone Extractor 快速閱讀精華
- 🚀 告別手動更新骨骼清單 — 自動從遊戲VPK提取最新英雄骨架資料
- 💪 一鍵生成C++標頭檔 — 包含骨骼配對、名稱映射、命中框分類
- 🔑 ESP外掛開發必備 — 靜態對照表取代執行期字串查詢,效能大幅提升
目錄指引
前言介紹
開發《Deadlock》外掛或輔助工具時,最煩人的就是每次遊戲更新後,英雄骨骼資料全變了,ESP透視功能直接失效。手動維護一份骨骼名稱對照表?光是想到就頭痛,更別說還要確認每個骨骼的父子關係、命中框分類...
這款 BoneExtractor 正是為瞭解決這個痛點而生。它能自動整理遊戲VPK檔案,提取所有英雄的骨架與命中框資料,並生成可直接使用的C++標頭檔。加入你的建置流程後,每次編譯都能確保拿到最新的骨骼資料,完全不用手動幹預。
工具功能說明
BoneExtractor 的核心任務是整理《Deadlock》英雄骨架與命中框資料,並輸出兩個C++標頭檔供外掛開發使用。
取代低效的字串查詢
以前你可能這樣寫:
pEnt->GetBoneIdByName("head")
現在改用靜態對照表,執行期直接查詢骨骼索引,速度差了好幾個量級。對於需要每幀渲染ESP的程式來說,這個優化非常關鍵。
ESP渲染專用骨骼鏈
工具會產生骨骼的父子連結關係,讓你畫骨架線時不用自己拼湊哪些骨頭要連在一起。直接遍歷配對清單就能畫出完整的人物骨架。
使用方法
基本執行
自訂輸出路徑
預設會產生在當前目錄,若要指定位置:
dotnet run -- /patd/to/HeroSkeletonPairs.hpp
智慧快取機制
- Steam 安裝路徑會自動從登錄檔偵測
- 若 VPK 檔案的 SHA-256 雜湊沒變,會自動跳過提取
- 想強制重新提取就刪除 vpk.cache 檔案
輸出檔案結構
工具會產生兩個標頭檔,用途分明:
| 檔案名稱 | 內容 | 使用方式 | | HeroSkeletonTypes.hpp | 型別定義:HitboxSlot、BonePair、ModelBoneData | 任何標頭檔都可 include,不會拉進大量資料 | | HeroSkeletonPairs.hpp | 完整資料表 g_HeroModelData | 只在需要存取資料的 .cpp 檔 include,例如 CL_Bones.cpp |
ModelBoneData 結構心得分享
- pairs — 父子骨骼索引配對,用來畫骨架連線
- ids — 骨骼名稱對應索引的對照表,例如 "head" → 6
- slotBones — 依命中框位置分類的骨骼清單,按半徑大到小排序
命中框位置分類(HitboxSlot)
| 數值 | 位置 | 說明 | | 0 | Head | 頭部命中框 | | 1 | Neck | 頸部,若資料缺失會自動從骨架推導 | | 2 | Torso | 軀幹 | | 3 | Arms | 手臂 | | 4 | Legs | 腿部 |
分類邏輯優先使用 hitbox 資料的 m_nGroupId,若無法辨識則 fallback 到骨骼名稱模式比對。
執行期範例
底下展示如何在實際外掛程式中使用產生的資料:
#include "HeroSkeletonPairs.hpp"
auto it = g_HeroModelData.find(szModel);
if (it == g_HeroModelData.end())
return;
const ModelBoneData& data = it->second;
// 遍歷所有骨骼配對畫骨架
for (const auto& p : data.pairs) { /* p.idA, p.idB */ }
// 用名稱查骨骼索引
auto idIt = data.ids.find("head");
if (idIt != data.ids.end())
int headIdx = idIt->second;
// 取得特定命中框位置的所有骨骼
const auto& neckBones = data.slotBones[(int)HitboxSlot::Neck];
效能建議
每幀都查詢 g_HeroModelData 會有額外開銷,建議在實體建立時就快取 ModelBoneData* 指標,之後直接取用。
更新與重新生成
《Deadlock》每次更新後,英雄模型或骨架可能會變動。這時只需要重新執行:
工具會自動比對 VPK 雜湊值,沒變化就秒速結束,有變化才會重新提取。整個過程完全自動化,整合到建置流程後幾乎無感。
原始碼下載
所有站內附件皆會附上安全掃描報告 請會員查看純淨度百分比後判斷使用
相關檔案須知: 取得檔案前,請先詳細閱讀文章內容 避免不必要錯誤與誤會發生。 也可多參考文章討論樓層內容 了解附件檔案相關討論資訊。
常見問題Q&A
Q:這個工具需要遊戲執行中才能使用嗎?
A:不需要。工具直接讀取遊戲安裝目錄的VPK檔案,完全獨立運作。
Q:產生的標頭檔可以商用嗎?
A:原始碼是工具輸出,但資料內容來自《Deadlock》遊戲檔案。使用時請自行評估相關法律與服務條款風險。
Q:支援其他Source 2遊戲嗎?
A:目前專為《Deadlock》設計,但理論上可修改VPK整理邏輯支援其他Source 2遊戲。
Q:為什麼頸部骨骼有時候是推導出來的?
A:部分英雄模型的 hitbox 資料沒有獨立頸部定義,工具會自動從骨架結構找出最接近頸部位置的骨骼填入。
Q:如何確認提取的資料是最新的?
A:檢查 vpk.cache 檔案時間戳,或直接刪除它強制重新提取。工具會顯示當前處理的VPK路徑供確認。
|