-
Notifications
You must be signed in to change notification settings - Fork 6
Class Pivot zh TW
⚗ 實驗性分頁(預設關閉)。作用於已擷取的 snapshot(或一個即時 DataTable)。
Class Pivot 分頁是一個對遊戲資料的試算表式樞紐分析(pivot)。它把一個類別的實例依一個 key 分組(一個 key 欄位的值,例如 ItemID,或依物件身分),並逐組投影(project)出各個值欄位——讓你一眼看到每個庫存物品依 ItemID 及其 Count,或每個敵人依隊伍及其數值。
同一組內不同的值會呈現為衝突(collision) ⟨N: v1, v2, +M⟩。由於 snapshot 擷取全部是數值型的,key 是 int/enum ID。
🔍 Suggest targets — find what changed 面板是自動的入口:
- 在一個你想孤立的遊戲內動作(花費金錢、受傷、…)前後擷取 2–4 個 snapshot——在挑選器中勾選它們(最舊 → 最新 = Before … After)。
- 🔍 Discover 會把移動了的 (class, property) 目標排名——依每個看起來有多像遊戲狀態評分(具名欄位、明確的變化、低雜訊)。
- 挑一列並 Use → (pivot this) 把它載入下方的 pivot。不需要猜類別/key。
Discover 結果欄位:Class · Property · Changed · Δ · Category · Shape · Sample (oldest → newest) · Score。
運作方式與限制:
- 在動作前後擷取 2–4 個 snapshot(Before … After)。
- 用 3–4 個來把一次性的變化與持續的每幀雜訊(旋轉、計時器、位置)分開;只用 2 個時,兩者看起來都只是「changed」。
- 只有移動了的欄位會出現——在你的擷取之間從未改變的值不會顯示。
- 跨遊戲重啟時,只有以穩定身分重新出現的物件(GameInstance / PlayerState / Pawn / 元件 / GAS)才能可靠地重新接合;隨機生成的 actor 可能無法。
- 掃描在 snapshot 的數值欄位上以伺服器端執行;在大型擷取上可能需要數秒(可取消)。
⚙ Pivot target 區段(可折疊)選擇要 pivot 什麼。挑一個 Source:
| Source | 它 pivot 什麼 | Key |
|---|---|---|
| Snapshot | 一個已擷取 snapshot 中某個類別的實例。 | 一個 key 欄位值,或物件身分(見 Group by)。 |
| Snapshot Array | 一個已擷取的 struct array(例如 Cargo)依其 inner-key 值。 |
Key = inner-key 值——對重排與工作階段免疫。 |
| DataTable | 一個即時遊戲 DataTable(用 🔄 Find DataTables 列出它們)。 | Key = RowName——零設定,無需探索。 |
對於 Snapshot 來源,挑選 Snapshot 並篩選 Class 清單(輸入以篩選,然後挑選)。然後 Run Pivot。若要抵達底層物件,選取一個群組並用 Open in Live Walker / Copy Address(把該組的代表實例交給 Cheat Engine),或 🌍 / ⚙ 在 GWorld / GameEngine 中 Locate 它。
對於單純的 Snapshot 來源,Group by 選擇實例如何被 key(Snapshot Array 與 DataTable 來源沒有 Group by——它們分別一律以 inner-key 值/RowName 為 key):
-
Identity (object path)——把生成正規化後的手足(
BP_Enemy_C_0/_1/ …)分在一起。適合「這個類別的所有實例」。 -
Field——依一個 Key field 值分組。對於物件路徑相同的transient 物件(例如
//Engine/Transient/Item),這是正確的選擇——Identity 模式會把它們全部併成一組,但像ItemID這樣的 Field key 能讓它們保持分開。
勾選哪些欄位重要:
- Value——逐組投影這個欄位的值(pivot 的輸出欄)。
-
Key——把這個欄位加入群組 key。勾選超過一個會建立一個複合 key(composite key)——例如
(Team · Slot)依組合分組(僅 Field 模式)。
挑選器也顯示每個欄位的 Type · Distinct · Instances · Key score——Key score 提示哪個欄位是好的 key(高基數、ID 形狀的欄位分數最高)。
每組一列,欄位為 Count · Key · Projected values,以及一個 filter results… 框。若一組的成員在某個投影值上不一致,會顯示衝突形式 ⟨N: v1, v2, +M⟩,這本身就是一個訊號(一個在組內固定、但跨組變化的欄位,很可能就是該組的身分/數值)。
你可以 Hide selected class from picker 讓類別清單保持聚焦;被隱藏的類別會在 Hidden classes (Pivot only) 下以可移除的 chip 顯示。這個 denylist 的範圍僅限 Pivot 分頁。
- Snapshot——擷取 Class Pivot(與 Discover)所作用的 snapshot。
- SPC Query——同一批 snapshot 的方向鏈視角(逐欄位、跨 N 個 snapshot)。
- Detect Stats——一個更快、較不精確的「哪個欄位是 HP/MP/Gold」猜測器。
- Live Walker——Open in Live Walker / 🌍 / ⚙ 的落腳處。